Ejemplo n.º 1
0
        public void treeStructureTest()
        {
            MuCell.Model.SBML.Model model = new MuCell.Model.SBML.Model();
            MuCell.Model.SBML.Reaction reaction1 = new MuCell.Model.SBML.Reaction();
            model.listOfReactions = new List<MuCell.Model.SBML.Reaction>();
            model.listOfReactions.Add(reaction1);
            MuCell.Model.SBML.KineticLaw kw1 = new MuCell.Model.SBML.KineticLaw(model);

            kw1.math = new MuCell.Model.SBML.MathTree();
            kw1.math.root = new MuCell.Model.SBML.InnerNode(MuCell.Model.SBML.BinaryMathOperators.Times);

            reaction1.KineticLaw = kw1;
            model.AddId("reaction1", kw1);

            MuCell.Model.SBML.Reaction[] reactions = model.listOfReactions.ToArray();
            Assert.AreEqual(1, reactions.Length);

            Assert.AreEqual(MuCell.Model.SBML.BinaryMathOperators.Times, ((MuCell.Model.SBML.InnerNode)(reactions[0].KineticLaw.math.root)).data);
        }
Ejemplo n.º 2
0
        public void testInterrogateModelForIDs()
        {
            MuCell.Model.SBML.Model model = new MuCell.Model.SBML.Model();

            model.listOfReactions = new List<MuCell.Model.SBML.Reaction>();
            model.listOfSpecies = new List<MuCell.Model.SBML.Species>();

            MuCell.Model.SBML.Species species1 = new MuCell.Model.SBML.Species();
            MuCell.Model.SBML.Species species2 = new MuCell.Model.SBML.Species();
            MuCell.Model.SBML.Species species3 = new MuCell.Model.SBML.Species();

            species1.ID = "species1";
            species2.ID = "species2";
            species3.ID = "species 3";

            model.AddId("species1", species1);

            MuCell.Model.SBML.Reaction r1 = new MuCell.Model.SBML.Reaction();
            MuCell.Model.SBML.SpeciesReference sp1r = new MuCell.Model.SBML.SpeciesReference();
            sp1r.species = species1;
            MuCell.Model.SBML.SpeciesReference sp2r = new MuCell.Model.SBML.SpeciesReference();
            sp2r.species = species2;
            MuCell.Model.SBML.SpeciesReference sp3r = new MuCell.Model.SBML.SpeciesReference();
            sp3r.species = species3;

            r1.Reactants.Add(sp1r);
            r1.Reactants.Add(sp2r);
            r1.Products.Add(sp3r);

            MuCell.Model.SBML.KineticLaw kl = new MuCell.Model.SBML.KineticLaw(model);
            r1.KineticLaw = kl;

            MuCell.Model.SBML.Parameter k1 = new MuCell.Model.SBML.Parameter();
            k1.ID = "k1";
            r1.Parameters.Add(k1);
            r1.Formula = "species1*species_3*k1";

            model.listOfSpecies.Add(species1);
            model.listOfReactions.Add(r1);

            // Assert the unknown entities
            Assert.AreEqual(2, r1.KineticLaw.UnknownEntitiesFromFormula().Count);
            Assert.AreEqual("species_3", r1.KineticLaw.UnknownEntitiesFromFormula().ToArray()[0].ID);
            Assert.AreEqual("k1", r1.KineticLaw.UnknownEntitiesFromFormula().ToArray()[1].ID);

            // Assert missing items in model
            Assert.IsTrue(model.idExists("species1"));
            Assert.IsFalse(model.idExists("species2"));
            Assert.IsFalse(model.idExists("species 3"));
            Assert.IsFalse(model.idExists("k1"));

            model.InterrogateModelForMissingIDs();

            // redo formula
            r1.Formula = "species1*species_3*k1";

            // assert no unknown entities
            Assert.AreEqual(0, r1.KineticLaw.UnknownEntitiesFromFormula().Count);

            // Assert everything is in the model
            Assert.IsTrue(model.idExists("species1"));
            Assert.IsTrue(model.idExists("species2"));
            Assert.IsTrue(model.idExists("species 3"));
            Assert.IsTrue(model.idExists("k1"));
        }