readerFactory.registerFormat((IChemFormatMatcher) MDLFormat .getInstance()); readerFactory.registerFormat((IChemFormatMatcher) SDFFormat .getInstance());
/** * @cdk.bug 2153298 */ @Test public void testBug2153298() throws Exception { String filename = "data/asn/pubchem/cid1145.xml"; InputStream ins = this.getClass().getClassLoader().getResourceAsStream(filename); Assert.assertNotNull("Cannot find file: " + filename, ins); IChemFormatMatcher realFormat = (IChemFormatMatcher) PubChemCompoundXMLFormat.getInstance(); factory.registerFormat(realFormat); // ok, if format ok, try instantiating a reader ins = this.getClass().getClassLoader().getResourceAsStream(filename); ISimpleChemObjectReader reader = factory.createReader(ins); Assert.assertNotNull(reader); Assert.assertEquals(((IChemFormat) PubChemCompoundXMLFormat.getInstance()).getReaderClassName(), reader .getClass().getName()); // now try reading something from it IAtomContainer molecule = (IAtomContainer) reader.read(new AtomContainer()); Assert.assertNotNull(molecule); Assert.assertNotSame(0, molecule.getAtomCount()); Assert.assertNotSame(0, molecule.getBondCount()); }
void expectReader(String filename, IResourceFormat expectedFormat, int expectedAtomCount, int expectedBondCount) throws Exception { InputStream ins = this.getClass().getClassLoader().getResourceAsStream(filename); Assert.assertNotNull("Cannot find file: " + filename, ins); if (expectedFormat instanceof IChemFormatMatcher) { factory.registerFormat((IChemFormatMatcher) expectedFormat); } ISimpleChemObjectReader reader = factory.createReader(ins); Assert.assertNotNull(reader); Assert.assertEquals(((IChemFormat) expectedFormat).getReaderClassName(), reader.getClass().getName()); // now try reading something from it IChemObject[] objects = {new ChemFile(), new ChemModel(), new AtomContainer(), new Reaction()}; boolean read = false; for (int i = 0; (i < objects.length && !read); i++) { if (reader.accepts(objects[i].getClass())) { IChemObject chemObject = reader.read(objects[i]); Assert.assertNotNull("Reader accepted a " + objects[i].getClass().getName() + " but failed to read it", chemObject); assertAtomCount(expectedAtomCount, chemObject); assertBondCount(expectedBondCount, chemObject); read = true; } } if (read) { // ok, reseting worked } else { Assert.fail("Reading an IChemObject from the Reader did not work properly."); } }