public void TestGetRelevantAtomContainer_IReaction_IBond()
 {
     foreach (var container in ReactionManipulator.GetAllAtomContainers(reaction))
     {
         IBond aBond = container.Bonds[0];
         Assert.AreEqual(container, ReactionManipulator.GetRelevantAtomContainer(reaction, aBond));
     }
 }
 public void TestGetRelevantAtomContainer_IReaction_IAtom()
 {
     foreach (var container in ReactionManipulator.GetAllAtomContainers(reaction))
     {
         IAtom anAtom = container.Atoms[0];
         Assert.AreEqual(container, ReactionManipulator.GetRelevantAtomContainer(reaction, anAtom));
     }
 }
 public void TestSetAtomProperties_IReactionSet_Object_Object()
 {
     ReactionManipulator.SetAtomProperties(reaction, "test", "ok");
     foreach (var container in ReactionManipulator.GetAllAtomContainers(reaction))
     {
         foreach (var atom in container.Atoms)
         {
             Assert.IsNotNull(atom.GetProperty <string>("test"));
             Assert.AreEqual("ok", atom.GetProperty <string>("test"));
         }
     }
 }
        /// <summary>
        /// Get all molecule objects from a set of Reactions given a <see cref="IAtomContainerSet"/> to add.
        /// </summary>
        /// <param name="scheme">The set of reaction to inspect</param>
        /// <param name="molSet">The set of molecules to be added</param>
        /// <returns>All molecules</returns>
        public static IChemObjectSet <IAtomContainer> GetAllAtomContainers(IReactionScheme scheme, IChemObjectSet <IAtomContainer> molSet)
        {
            // A ReactionScheme can contain other IRreactionSet objects
            foreach (var rm in scheme.Schemes)
            {
                foreach (var ac in GetAllAtomContainers(rm, molSet))
                {
                    bool contain = false;
                    foreach (var atomContainer in molSet)
                    {
                        if (atomContainer.Equals(ac))
                        {
                            contain = true;
                            break;
                        }
                    }
                    if (!contain)
                    {
                        molSet.Add((IAtomContainer)(ac));
                    }
                }
            }
            foreach (var reaction in scheme.Reactions)
            {
                var newAtomContainerSet = ReactionManipulator.GetAllAtomContainers(reaction);
                foreach (var ac in newAtomContainerSet)
                {
                    bool contain = false;
                    foreach (var atomContainer in molSet)
                    {
                        if (atomContainer.Equals(ac))
                        {
                            contain = true;
                            break;
                        }
                    }
                    if (!contain)
                    {
                        molSet.Add(ac);
                    }
                }
            }

            return(molSet);
        }
 public void TestGetAllAtomContainers_IReaction()
 {
     Assert.AreEqual(3, ReactionManipulator.GetAllAtomContainers(reaction).Count());
 }