@Test
@Category(SlowTest.class)
public void testFluorobenzene_symm() throws Exception {

    IAtomContainer molecule = builder.newInstance(IAtomContainer.class);
    molecule.addAtom(builder.newInstance(IAtom.class, "F"));
    molecule.addAtom(builder.newInstance(IAtom.class, "C"));
    molecule.addBond(0, 1, IBond.Order.SINGLE);
    molecule.addAtom(builder.newInstance(IAtom.class, "C"));
    molecule.addBond(1, 2, IBond.Order.DOUBLE);
    molecule.addAtom(builder.newInstance(IAtom.class, "C"));
    molecule.addBond(2, 3, IBond.Order.SINGLE);
    molecule.addAtom(builder.newInstance(IAtom.class, "C"));
    molecule.addBond(3, 4, IBond.Order.DOUBLE);
    molecule.addAtom(builder.newInstance(IAtom.class, "C"));
    molecule.addBond(4, 5, IBond.Order.SINGLE);
    molecule.addAtom(builder.newInstance(IAtom.class, "C"));
    molecule.addBond(5, 6, IBond.Order.DOUBLE);
    molecule.addBond(6, 1, IBond.Order.SINGLE);
    addExplicitHydrogens(molecule);
    AtomContainerManipulator.percieveAtomTypesAndConfigureAtoms(molecule);
    lpcheck.saturate(molecule);
    StructureResonanceGenerator gRI = new StructureResonanceGenerator(true);
    IAtomContainerSet setOfMolecules = gRI.getStructures(molecule);
    Assert.assertEquals(3, setOfMolecules.getAtomContainerCount());
    IAtomContainer molecule1 = builder.newInstance(IAtomContainer.class);
    molecule1.addAtom(builder.newInstance(IAtom.class, "F"));
    molecule1.getAtom(0).setFormalCharge(1);
    molecule1.addAtom(builder.newInstance(IAtom.class, "C"));
    molecule1.addBond(0, 1, IBond.Order.DOUBLE);
    molecule1.addAtom(builder.newInstance(IAtom.class, "C"));
    molecule1.getAtom(2).setFormalCharge(-1);
    molecule1.addBond(1, 2, IBond.Order.SINGLE);
    molecule1.addAtom(builder.newInstance(IAtom.class, "C"));
    molecule1.addBond(2, 3, IBond.Order.SINGLE);
    molecule1.addAtom(builder.newInstance(IAtom.class, "C"));
    molecule1.addBond(3, 4, IBond.Order.DOUBLE);
    molecule1.addAtom(builder.newInstance(IAtom.class, "C"));
    molecule1.addBond(4, 5, IBond.Order.SINGLE);
    molecule1.addAtom(builder.newInstance(IAtom.class, "C"));
    molecule1.addBond(5, 6, IBond.Order.DOUBLE);
    molecule1.addBond(6, 1, IBond.Order.SINGLE);
    addExplicitHydrogens(molecule1);
    AtomContainerManipulator.percieveAtomTypesAndConfigureAtoms(molecule1);
    lpcheck.saturate(molecule1);
    QueryAtomContainer qAC = QueryAtomContainerCreator.createSymbolAndChargeQueryContainer(molecule1);
    Assert.assertTrue(new UniversalIsomorphismTester().isIsomorph(setOfMolecules.getAtomContainer(1), qAC));
    IAtomContainer molecule2 = builder.newInstance(IAtomContainer.class);
    molecule2.addAtom(builder.newInstance(IAtom.class, "F"));
    molecule2.getAtom(0).setFormalCharge(1);
    molecule2.addAtom(builder.newInstance(IAtom.class, "C"));
    molecule2.addBond(0, 1, IBond.Order.DOUBLE);
    molecule2.addAtom(builder.newInstance(IAtom.class, "C"));
    molecule2.addBond(1, 2, IBond.Order.SINGLE);
    molecule2.addAtom(builder.newInstance(IAtom.class, "C"));
    molecule2.addBond(2, 3, IBond.Order.DOUBLE);
    molecule2.addAtom(builder.newInstance(IAtom.class, "C"));
    molecule2.addBond(3, 4, IBond.Order.SINGLE);
    molecule2.addAtom(builder.newInstance(IAtom.class, "C"));
    molecule2.getAtom(4).setFormalCharge(-1);
    molecule2.addBond(4, 5, IBond.Order.SINGLE);
    molecule2.addAtom(builder.newInstance(IAtom.class, "C"));
    molecule2.addBond(5, 6, IBond.Order.DOUBLE);
    molecule2.addBond(6, 1, IBond.Order.SINGLE);
    addExplicitHydrogens(molecule2);
    AtomContainerManipulator.percieveAtomTypesAndConfigureAtoms(molecule2);
    lpcheck.saturate(molecule2);
    IAtomContainer product2 = setOfMolecules.getAtomContainer(2);
    qAC = QueryAtomContainerCreator.createSymbolAndChargeQueryContainer(molecule2);
    Assert.assertTrue(new UniversalIsomorphismTester().isIsomorph(product2, qAC));
}