@Test
@Override
public void testInitiate_IAtomContainerSet_IAtomContainerSet() throws Exception {

    /* ionize(>C-C<): C=CCC -> C=C* + C+ , set the reactive center */
    IAtomContainerSet setOfReactants = getExampleReactants();
    IAtomContainer reactant = setOfReactants.getAtomContainer(0);
    Iterator<IBond> bonds = reactant.bonds().iterator();
    while (bonds.hasNext()) {
        IBond bond = (IBond) bonds.next();
        IAtom atom1 = bond.getBegin();
        IAtom atom2 = bond.getEnd();
        if (bond.getOrder() == IBond.Order.SINGLE && atom1.getSymbol().equals("C") && atom2.getSymbol().equals("C")) {
            bond.setFlag(CDKConstants.REACTIVE_CENTER, true);
            atom1.setFlag(CDKConstants.REACTIVE_CENTER, true);
            atom2.setFlag(CDKConstants.REACTIVE_CENTER, true);
        }
    }
    Assert.assertEquals(0, reactant.getSingleElectronCount());
    /* initiate */
    IReactionProcess type = new ElectronImpactSDBReaction();
    List<IParameterReact> paramList = new ArrayList<IParameterReact>();
    IParameterReact param = new SetReactionCenter();
    param.setParameter(Boolean.TRUE);
    paramList.add(param);
    type.setParameterList(paramList);
    IReactionSet setOfReactions = type.initiate(setOfReactants, null);
    Assert.assertEquals(2, setOfReactions.getReactionCount());
    Assert.assertEquals(2, setOfReactions.getReaction(0).getProductCount());
    IAtomContainer molecule1 = setOfReactions.getReaction(0).getProducts().getAtomContainer(0);//[H][C+]=C([H])[H]
    Assert.assertEquals(1, molecule1.getAtom(1).getFormalCharge().intValue());
    Assert.assertEquals(0, molecule1.getSingleElectronCount());
    IAtomContainer molecule2 = setOfReactions.getReaction(0).getProducts().getAtomContainer(1);//[H][C*]([H])[H]
    Assert.assertEquals(1, molecule2.getSingleElectronCount());
    Assert.assertEquals(1, molecule2.getConnectedSingleElectronsCount(molecule2.getAtom(0)));
    Assert.assertTrue(setOfReactions.getReaction(0).mappings().iterator().hasNext());
    Assert.assertEquals(2, setOfReactions.getReaction(1).getProductCount());
    molecule1 = setOfReactions.getReaction(1).getProducts().getAtomContainer(0);//[H]C=[C*]([H])[H]
    Assert.assertEquals(1, molecule1.getConnectedSingleElectronsCount(molecule1.getAtom(1)));
    molecule2 = setOfReactions.getReaction(1).getProducts().getAtomContainer(1);//[H][C+]([H])[H]
    Assert.assertEquals(0, molecule2.getSingleElectronCount());
    Assert.assertEquals(1, molecule2.getAtom(0).getFormalCharge().intValue());
}