@Test
public void testCspSingleB() throws Exception {

    //Smiles("C#CC")
    IAtomContainer molecule = builder.newInstance(IAtomContainer.class);
    molecule.addAtom(builder.newInstance(IAtom.class, "C"));
    molecule.addAtom(builder.newInstance(IAtom.class, "C"));
    molecule.addAtom(builder.newInstance(IAtom.class, "C"));
    molecule.addBond(0, 1, IBond.Order.TRIPLE);
    molecule.addBond(1, 2, IBond.Order.SINGLE);
    molecule.addAtom(builder.newInstance(IAtom.class, "H"));
    molecule.addAtom(builder.newInstance(IAtom.class, "H"));
    molecule.addAtom(builder.newInstance(IAtom.class, "H"));
    molecule.addAtom(builder.newInstance(IAtom.class, "H"));
    molecule.addBond(0, 3, IBond.Order.SINGLE);
    molecule.addBond(2, 4, IBond.Order.SINGLE);
    molecule.addBond(2, 5, IBond.Order.SINGLE);
    molecule.addBond(2, 6, IBond.Order.SINGLE);
    AtomContainerManipulator.percieveAtomTypesAndConfigureAtoms(molecule);
    molecule.getAtom(1).setFlag(CDKConstants.REACTIVE_CENTER, true);
    molecule.getAtom(2).setFlag(CDKConstants.REACTIVE_CENTER, true);
    molecule.getBond(1).setFlag(CDKConstants.REACTIVE_CENTER, true);
    IAtomContainerSet setOfReactants = DefaultChemObjectBuilder.getInstance().newInstance(IAtomContainerSet.class);
    setOfReactants.addAtomContainer(molecule);
    IReactionProcess type = new HeterolyticCleavageSBReaction();
    List<IParameterReact> paramList = new ArrayList<IParameterReact>();
    IParameterReact param = new SetReactionCenter();
    param.setParameter(Boolean.TRUE);
    paramList.add(param);
    type.setParameterList(paramList);
    /* initiate */
    IReactionSet setOfReactions = type.initiate(setOfReactants, null);
    Assert.assertEquals(2, setOfReactions.getReactionCount());
    // expected products
    //Smiles("C#[C-]")
    IAtomContainer expected1 = builder.newInstance(IAtomContainer.class);
    expected1.addAtom(builder.newInstance(IAtom.class, "C"));
    expected1.addAtom(builder.newInstance(IAtom.class, "C"));
    expected1.getAtom(1).setFormalCharge(-1);
    expected1.addBond(0, 1, IBond.Order.TRIPLE);
    expected1.addAtom(builder.newInstance(IAtom.class, "H"));
    expected1.addBond(0, 2, IBond.Order.SINGLE);
    AtomContainerManipulator.percieveAtomTypesAndConfigureAtoms(expected1);
    IAtomContainer product1 = setOfReactions.getReaction(1).getProducts().getAtomContainer(0);
    QueryAtomContainer queryAtom = QueryAtomContainerCreator.createSymbolAndChargeQueryContainer(expected1);
    Assert.assertTrue(uiTester.isIsomorph(product1, queryAtom));
    //Smiles("[C+]")
    IAtomContainer expected2 = builder.newInstance(IAtomContainer.class);
    expected2.addAtom(builder.newInstance(IAtom.class, "C"));
    expected2.getAtom(0).setFormalCharge(+1);
    expected2.addAtom(builder.newInstance(IAtom.class, "H"));
    expected2.addAtom(builder.newInstance(IAtom.class, "H"));
    expected2.addAtom(builder.newInstance(IAtom.class, "H"));
    expected2.addBond(0, 1, IBond.Order.SINGLE);
    expected2.addBond(0, 2, IBond.Order.SINGLE);
    expected2.addBond(0, 3, IBond.Order.SINGLE);
    AtomContainerManipulator.percieveAtomTypesAndConfigureAtoms(expected2);
    lpcheck.saturate(expected2);
    IAtomContainer product2 = setOfReactions.getReaction(1).getProducts().getAtomContainer(1);
    queryAtom = QueryAtomContainerCreator.createSymbolAndChargeQueryContainer(expected2);
    Assert.assertTrue(uiTester.isIsomorph(product2, queryAtom));
    //Smiles("C#[C+]")
    expected1.getAtom(1).setFormalCharge(+1);
    AtomContainerManipulator.percieveAtomTypesAndConfigureAtoms(expected1);
    lpcheck.saturate(expected1);
    product1 = setOfReactions.getReaction(0).getProducts().getAtomContainer(0);
    queryAtom = QueryAtomContainerCreator.createSymbolAndChargeQueryContainer(expected1);
    Assert.assertTrue(uiTester.isIsomorph(product1, queryAtom));
    //Smiles("[C-]")
    expected2.getAtom(0).setFormalCharge(-1);
    AtomContainerManipulator.percieveAtomTypesAndConfigureAtoms(expected2);
    product2 = setOfReactions.getReaction(0).getProducts().getAtomContainer(1);
    queryAtom = QueryAtomContainerCreator.createSymbolAndChargeQueryContainer(expected2);
    Assert.assertTrue(uiTester.isIsomorph(product2, queryAtom));
}