@Test
public void testMapping() throws Exception {

    IReactionProcess type = new HyperconjugationReaction();
    IAtomContainerSet setOfReactants = getExampleReactants();
    IAtomContainer molecule = setOfReactants.getAtomContainer(0);
    /* 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);
    IAtomContainer product1 = setOfReactions.getReaction(0).getProducts().getAtomContainer(0);
    IAtomContainer product2 = setOfReactions.getReaction(0).getProducts().getAtomContainer(1);
    Assert.assertEquals(3, setOfReactions.getReactionCount());
    Assert.assertEquals(2, setOfReactions.getReaction(0).getProductCount());
    // if these assertions fail the atom order may have changed
    IAtom mappedProductA1 = (IAtom) ReactionManipulator.getMappedChemObject(setOfReactions.getReaction(0),
            molecule.getAtom(1));
    Assert.assertEquals(mappedProductA1, product1.getAtom(1));
    mappedProductA1 = (IAtom) ReactionManipulator.getMappedChemObject(setOfReactions.getReaction(0),
            molecule.getAtom(2));
    Assert.assertEquals(mappedProductA1, product1.getAtom(2));
    mappedProductA1 = (IAtom) ReactionManipulator.getMappedChemObject(setOfReactions.getReaction(0),
            molecule.getAtom(6));
    Assert.assertEquals(mappedProductA1, product2.getAtom(0));
}