@Test
public void testDoubleRingConjugated() throws Exception {

    IReactionProcess type = new PiBondingMovementReaction();
    // C1=CC(=CC2=C1C=CC=C2)C
    IAtomContainerSet setOfReactants = getExampleReactants();
    /* initiate */
    List<IParameterReact> paramList = new ArrayList<>();
    IParameterReact param = new SetReactionCenter();
    param.setParameter(Boolean.FALSE);
    paramList.add(param);
    type.setParameterList(paramList);
    IReactionSet setOfReactions = type.initiate(setOfReactants, null);
    Assert.assertEquals(2, setOfReactions.getReactionCount());
    Assert.assertEquals(1, setOfReactions.getReaction(0).getProductCount());
    IAtomContainer product1 = setOfReactions.getReaction(0).getProducts().getAtomContainer(0);
    IAtomContainer molecule1 = getExpectedProducts().getAtomContainer(0);
    Assert.assertEquals(1, setOfReactions.getReaction(1).getProductCount());
    IAtomContainer product2 = setOfReactions.getReaction(1).getProducts().getAtomContainer(0);
    //C1=CC(=CC2=CC=CC=C12)C
    IAtomContainer molecule2 = builder.newInstance(IAtomContainer.class);
    molecule2.addAtom(builder.newInstance(IAtom.class, "C"));
    molecule2.addAtom(builder.newInstance(IAtom.class, "C"));
    molecule2.addBond(0, 1, IBond.Order.SINGLE);
    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.addBond(4, 5, IBond.Order.DOUBLE);
    molecule2.addAtom(builder.newInstance(IAtom.class, "C"));
    molecule2.addBond(5, 6, IBond.Order.SINGLE);
    molecule2.addAtom(builder.newInstance(IAtom.class, "C"));
    molecule2.addBond(6, 7, IBond.Order.DOUBLE);
    molecule2.addAtom(builder.newInstance(IAtom.class, "C"));
    molecule2.addBond(7, 8, IBond.Order.SINGLE);
    molecule2.addAtom(builder.newInstance(IAtom.class, "C"));
    molecule2.addBond(8, 9, IBond.Order.DOUBLE);
    molecule2.addAtom(builder.newInstance(IAtom.class, "C"));
    molecule2.addBond(9, 10, IBond.Order.SINGLE);
    molecule2.addBond(10, 1, IBond.Order.DOUBLE);
    molecule2.addBond(9, 4, IBond.Order.SINGLE);
    addExplicitHydrogens(molecule2);
    AtomContainerManipulator.percieveAtomTypesAndConfigureAtoms(molecule2);
    makeSureAtomTypesAreRecognized(molecule2);
    // order depends on ring perception order (may change between versions) we check both
    // combinations just in case
    Assert.assertTrue((matches(molecule2, product1) && matches(molecule1, product2))
            || (matches(molecule1, product1) && matches(molecule2, product2)));
}