public void TestMapping() { var type = new HeterolyticCleavageSBReaction(); var setOfReactants = GetExampleReactants(); var molecule = setOfReactants[0]; /* automatic search of the center active */ var paramList = new List <IParameterReaction>(); var param = new SetReactionCenter(); param.IsSetParameter = false; paramList.Add(param); type.ParameterList = paramList; /* initiate */ MakeSureAtomTypesAreRecognized(molecule); var setOfReactions = type.Initiate(setOfReactants, null); var product1 = setOfReactions[0].Products[0]; var product2 = setOfReactions[0].Products[1]; Assert.AreEqual(6, setOfReactions[0].Mappings.Count); var mappedProductA1 = (IAtom)ReactionManipulator.GetMappedChemObject(setOfReactions[0], molecule.Atoms[0]); Assert.AreEqual(mappedProductA1, product1.Atoms[0]); var mappedProductA2 = (IAtom)ReactionManipulator.GetMappedChemObject(setOfReactions[0], molecule.Atoms[1]); Assert.AreEqual(mappedProductA2, product2.Atoms[0]); }
public void TestCDKConstants_REACTIVE_CENTER() { var type = new HeterolyticCleavageSBReaction(); var setOfReactants = GetExampleReactants(); var molecule = setOfReactants[0]; /* manually put the reactive center */ molecule.Atoms[0].IsReactiveCenter = true; molecule.Atoms[1].IsReactiveCenter = true; molecule.Bonds[0].IsReactiveCenter = true; var paramList = new List <IParameterReaction>(); var param = new SetReactionCenter(); param.IsSetParameter = true; paramList.Add(param); type.ParameterList = paramList; /* initiate */ var setOfReactions = type.Initiate(setOfReactants, null); Assert.AreEqual(1, setOfReactions.Count); Assert.AreEqual(2, setOfReactions[0].Products.Count); var reactant = setOfReactions[0].Reactants[0]; Assert.IsTrue(molecule.Atoms[0].IsReactiveCenter); Assert.IsTrue(reactant.Atoms[0].IsReactiveCenter); Assert.IsTrue(molecule.Atoms[1].IsReactiveCenter); Assert.IsTrue(reactant.Atoms[1].IsReactiveCenter); Assert.IsTrue(molecule.Bonds[0].IsReactiveCenter); Assert.IsTrue(reactant.Bonds[0].IsReactiveCenter); }
public void TestFspSingleB() { //CreateFromSmiles("FC") var molecule = builder.NewAtomContainer(); molecule.Atoms.Add(builder.NewAtom("F")); molecule.Atoms.Add(builder.NewAtom("C")); molecule.AddBond(molecule.Atoms[0], molecule.Atoms[1], BondOrder.Single); molecule.Atoms.Add(builder.NewAtom("H")); molecule.Atoms.Add(builder.NewAtom("H")); molecule.Atoms.Add(builder.NewAtom("H")); molecule.AddBond(molecule.Atoms[1], molecule.Atoms[2], BondOrder.Single); molecule.AddBond(molecule.Atoms[1], molecule.Atoms[3], BondOrder.Single); molecule.AddBond(molecule.Atoms[1], molecule.Atoms[4], BondOrder.Single); AtomContainerManipulator.PercieveAtomTypesAndConfigureAtoms(molecule); CDK.LonePairElectronChecker.Saturate(molecule); molecule.Atoms[0].IsReactiveCenter = true; molecule.Atoms[1].IsReactiveCenter = true; molecule.Bonds[0].IsReactiveCenter = true; var setOfReactants = CDK.Builder.NewAtomContainerSet(); setOfReactants.Add(molecule); var type = new HeterolyticCleavageSBReaction(); var paramList = new List <IParameterReaction>(); var param = new SetReactionCenter(); param.IsSetParameter = true; paramList.Add(param); type.ParameterList = paramList; /* initiate */ var setOfReactions = type.Initiate(setOfReactants, null); Assert.AreEqual(1, setOfReactions.Count); //CreateFromSmiles("[F-]") var expected1 = builder.NewAtomContainer(); expected1.Atoms.Add(builder.NewAtom("F")); expected1.Atoms[0].FormalCharge = -1; AtomContainerManipulator.PercieveAtomTypesAndConfigureAtoms(expected1); CDK.LonePairElectronChecker.Saturate(expected1); var product1 = setOfReactions[0].Products[0]; var queryAtom = QueryAtomContainerCreator.CreateSymbolAndChargeQueryContainer(expected1); Assert.IsTrue(uiTester.IsIsomorph(product1, queryAtom)); //CreateFromSmiles("[C+]") var expected2 = builder.NewAtomContainer(); expected2.Atoms.Add(builder.NewAtom("C")); expected2.Atoms[0].FormalCharge = +1; expected2.Atoms.Add(builder.NewAtom("H")); expected2.Atoms.Add(builder.NewAtom("H")); expected2.Atoms.Add(builder.NewAtom("H")); expected2.AddBond(expected2.Atoms[0], expected2.Atoms[1], BondOrder.Single); expected2.AddBond(expected2.Atoms[0], expected2.Atoms[2], BondOrder.Single); expected2.AddBond(expected2.Atoms[0], expected2.Atoms[3], BondOrder.Single); AtomContainerManipulator.PercieveAtomTypesAndConfigureAtoms(expected2); var product2 = setOfReactions[0].Products[1]; queryAtom = QueryAtomContainerCreator.CreateSymbolAndChargeQueryContainer(expected2); Assert.IsTrue(uiTester.IsIsomorph(product2, queryAtom)); }
public void TestHeterolyticCleavageSBReaction() { var type = new HeterolyticCleavageSBReaction(); Assert.IsNotNull(type); }