public static IEnumerable <string> GetAllIDs(IChemModel chemModel) { if (chemModel.Id != null) { yield return(chemModel.Id); } var crystal = chemModel.Crystal; if (crystal != null) { foreach (var e in AtomContainerManipulator.GetAllIDs(crystal)) { yield return(e); } } var moleculeSet = chemModel.MoleculeSet; if (moleculeSet != null) { foreach (var e in MoleculeSetManipulator.GetAllIDs(moleculeSet)) { yield return(e); } } var reactionSet = chemModel.ReactionSet; if (reactionSet != null) { foreach (var e in ReactionSetManipulator.GetAllIDs(reactionSet)) { yield return(e); } } yield break; }
public void TestGetAllIDs_IReactionSet() { IReactionSet set = builder.NewReactionSet(); IReaction reaction1 = builder.NewReaction(); set.Add(reaction1); reaction1.Id = "r1"; IAtomContainer water = new AtomContainer { Id = "m1" }; Atom oxygen = new Atom("O") { Id = "a1" }; water.Atoms.Add(oxygen); reaction1.Reactants.Add(water); reaction1.Products.Add(water); IReaction reaction2 = builder.NewReaction(); reaction2.Id = "r2"; set.Add(reaction2); var ids = ReactionSetManipulator.GetAllIDs(set); Assert.IsNotNull(ids); Assert.AreEqual(6, ids.Count()); }