@Test
public void testPorphyrine() throws Exception {

    boolean isAromatic = false;
    boolean testResults[] = {false, false, false, false, false, true, true, true, true, true, false, true, true,
            true, false, true, true, false, false, true, true, false, false, false, true, true, false, false,
            false, true, true, false, false, false, false, true, true, true, true, false, false, false};
    String filename = "data/mdl/porphyrin.mol";
    InputStream ins = this.getClass().getClassLoader().getResourceAsStream(filename);
    MDLV2000Reader reader = new MDLV2000Reader(ins);
    IAtomContainer molecule = (IAtomContainer) reader.read(DefaultChemObjectBuilder.getInstance().newInstance(
            IAtomContainer.class));
    reader.close();
    AtomContainerManipulator.percieveAtomTypesAndConfigureAtoms(molecule);
    isAromatic = DoubleBondAcceptingAromaticityDetector.detectAromaticity(molecule);
    for (int f = 0; f < molecule.getAtomCount(); f++) {
        Assert.assertEquals(testResults[f], molecule.getAtom(f).getFlag(CDKConstants.ISAROMATIC));
    }
    Assert.assertTrue(isAromatic);
}