@Test
public void testFluorobenzene() 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);
    IReactionProcess type = new RearrangementLonePairReaction();
    IAtomContainerSet setOfReactants = DefaultChemObjectBuilder.getInstance().newInstance(IAtomContainerSet.class);
    setOfReactants.addAtomContainer(molecule);
    /* automatic search of the center active */
    List<IParameterReact> paramList = new ArrayList<IParameterReact>();
    IParameterReact param = new SetReactionCenter();
    param.setParameter(Boolean.FALSE);
    paramList.add(param);
    type.setParameterList(paramList);
    /* initiate */
    IReactionSet setOfReactions = type.initiate(setOfReactants, null);
    Assert.assertEquals(1, setOfReactions.getReactionCount());
    Assert.assertEquals(1, setOfReactions.getReaction(0).getProductCount());
    IAtomContainer product1 = setOfReactions.getReaction(0).getProducts().getAtomContainer(0);
    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);
    assertEquals(molecule1, product1);
}