public void TestMapping() { var type = new RadicalChargeSiteInitiationHReaction(); var setOfReactants = GetExampleReactants(); var molecule = setOfReactants[0]; /* initiate */ /* manually put the reactive center */ molecule.Atoms[0].IsReactiveCenter = true; molecule.Atoms[1].IsReactiveCenter = true; molecule.Atoms[3].IsReactiveCenter = true; molecule.Bonds[0].IsReactiveCenter = true; molecule.Bonds[2].IsReactiveCenter = true; var paramList = new List <IParameterReaction>(); var param = new SetReactionCenter { IsSetParameter = true }; paramList.Add(param); type.ParameterList = paramList; var setOfReactions = type.Initiate(setOfReactants, null); var product = setOfReactions[0].Products[0]; var product2 = setOfReactions[0].Products[1]; Assert.AreEqual(9, setOfReactions[0].Mappings.Count); var mappedProductA1 = (IAtom)ReactionManipulator.GetMappedChemObject(setOfReactions[0], molecule.Atoms[0]); Assert.AreEqual(mappedProductA1, product.Atoms[0]); var mappedProductA2 = (IAtom)ReactionManipulator.GetMappedChemObject(setOfReactions[0], molecule.Atoms[1]); Assert.AreEqual(mappedProductA2, product.Atoms[1]); var mappedProductA3 = (IAtom)ReactionManipulator.GetMappedChemObject(setOfReactions[0], molecule.Atoms[3]); Assert.AreEqual(mappedProductA3, product2.Atoms[0]); }
public void TestManuallyCentreActive() { var type = new RadicalChargeSiteInitiationHReaction(); var setOfReactants = GetExampleReactants(); var molecule = setOfReactants[0]; /* manually put the reactive center */ molecule.Atoms[0].IsReactiveCenter = true; molecule.Atoms[1].IsReactiveCenter = true; molecule.Atoms[3].IsReactiveCenter = true; molecule.Bonds[0].IsReactiveCenter = true; molecule.Bonds[2].IsReactiveCenter = true; var paramList = new List <IParameterReaction>(); var param = new SetReactionCenter { IsSetParameter = true }; paramList.Add(param); type.ParameterList = paramList; var setOfReactions = type.Initiate(setOfReactants, null); Assert.AreEqual(1, setOfReactions.Count); Assert.AreEqual(2, setOfReactions[0].Products.Count); var product1 = setOfReactions[0].Products[0]; var molecule1 = GetExpectedProducts()[0]; var queryAtom = QueryAtomContainerCreator.CreateSymbolAndChargeQueryContainer(product1); Assert.IsTrue(new UniversalIsomorphismTester().IsIsomorph(molecule1, queryAtom)); var product2 = setOfReactions[0].Products[1]; var molecule2 = GetExpectedProducts()[1]; queryAtom = QueryAtomContainerCreator.CreateSymbolAndChargeQueryContainer(product2); Assert.IsTrue(new UniversalIsomorphismTester().IsIsomorph(molecule2, queryAtom)); }
public void TestCDKConstants_REACTIVE_CENTER() { var type = new RadicalChargeSiteInitiationHReaction(); var setOfReactants = GetExampleReactants(); var molecule = setOfReactants[0]; /* manually put the reactive center */ molecule.Atoms[0].IsReactiveCenter = true; molecule.Atoms[1].IsReactiveCenter = true; molecule.Atoms[3].IsReactiveCenter = true; molecule.Bonds[0].IsReactiveCenter = true; molecule.Bonds[2].IsReactiveCenter = true; var paramList = new List <IParameterReaction>(); var param = new SetReactionCenter { IsSetParameter = true }; paramList.Add(param); type.ParameterList = paramList; var setOfReactions = type.Initiate(setOfReactants, null); 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.Atoms[3].IsReactiveCenter); Assert.IsTrue(reactant.Atoms[3].IsReactiveCenter); Assert.IsTrue(molecule.Bonds[0].IsReactiveCenter); Assert.IsTrue(reactant.Bonds[0].IsReactiveCenter); Assert.IsTrue(molecule.Bonds[2].IsReactiveCenter); Assert.IsTrue(reactant.Bonds[2].IsReactiveCenter); }
public override void TestInitiate_IAtomContainerSet_IAtomContainerSet() { var type = new RadicalChargeSiteInitiationHReaction(); var setOfReactants = GetExampleReactants(); var paramList = new List <IParameterReaction>(); var param = new SetReactionCenter { IsSetParameter = false }; paramList.Add(param); type.ParameterList = paramList; var setOfReactions = type.Initiate(setOfReactants, null); Assert.AreEqual(2, setOfReactions.Count); Assert.AreEqual(2, setOfReactions[0].Products.Count); var product1 = setOfReactions[0].Products[0]; /* [O+]=CC */ var molecule1 = GetExpectedProducts()[0]; var queryAtom = QueryAtomContainerCreator.CreateSymbolAndChargeQueryContainer(product1); Assert.IsTrue(new UniversalIsomorphismTester().IsIsomorph(molecule1, queryAtom)); var product2 = setOfReactions[0].Products[1]; /* [H*] */ var molecule2 = GetExpectedProducts()[1]; queryAtom = QueryAtomContainerCreator.CreateSymbolAndChargeQueryContainer(product2); Assert.IsTrue(new UniversalIsomorphismTester().IsIsomorph(molecule2, queryAtom)); }