public void test_SBMLConvertStrict_convertNonStrictUnits()
        {
            SBMLDocument d = new  SBMLDocument(2, 4);
            Model        m = d.createModel();
            Compartment  c = m.createCompartment();

            c.setId("c");
            c.setConstant(false);
            Parameter p = m.createParameter();

            p.setId("p");
            p.setUnits("mole");
            ASTNode math = libsbml.parseFormula("p");
            Rule    ar   = m.createAssignmentRule();

            ar.setVariable("c");
            ar.setMath(math);
            assertTrue(d.setLevelAndVersion(2, 1, true) == false);
            assertTrue(d.getLevel() == 2);
            assertTrue(d.getVersion() == 4);
            assertTrue(d.setLevelAndVersion(2, 2, true) == false);
            assertTrue(d.getLevel() == 2);
            assertTrue(d.getVersion() == 4);
            assertTrue(d.setLevelAndVersion(2, 3, true) == false);
            assertTrue(d.getLevel() == 2);
            assertTrue(d.getVersion() == 4);
            assertTrue(d.setLevelAndVersion(1, 2, true) == false);
            assertTrue(d.getLevel() == 2);
            assertTrue(d.getVersion() == 4);
            d = null;
        }
        public void test_SBMLConvertStrict_convertNonStrictSBO()
        {
            SBMLDocument d = new  SBMLDocument(2, 4);
            Model        m = d.createModel();
            Compartment  c = m.createCompartment();

            c.setId("c");
            c.setConstant(false);
            (c).setSBOTerm(64);
            assertTrue(d.setLevelAndVersion(2, 3, true) == false);
            assertTrue(d.getLevel() == 2);
            assertTrue(d.getVersion() == 4);
            assertTrue(d.setLevelAndVersion(2, 2, true) == false);
            assertTrue(d.getLevel() == 2);
            assertTrue(d.getVersion() == 4);
            assertTrue(d.setLevelAndVersion(2, 1, true) == true);
            assertTrue(d.getLevel() == 2);
            assertTrue(d.getVersion() == 1);
            Compartment c1 = d.getModel().getCompartment(0);

            assertTrue((c1).getSBOTerm() == -1);
            assertTrue(d.setLevelAndVersion(1, 2, true) == true);
            assertTrue(d.getLevel() == 1);
            assertTrue(d.getVersion() == 2);
            Compartment c2 = d.getModel().getCompartment(0);

            assertTrue((c2).getSBOTerm() == -1);
            d = null;
        }
        public void test_SBMLDocument_setLevelAndVersion()
        {
            SBMLDocument d  = new  SBMLDocument(2, 2);
            Model        m1 = new  Model(2, 2);

            d.setModel(m1);
            assertTrue(d.setLevelAndVersion(2, 3, false) == true);
            assertTrue(d.setLevelAndVersion(2, 1, false) == true);
            assertTrue(d.setLevelAndVersion(1, 2, false) == true);
            assertTrue(d.setLevelAndVersion(1, 1, false) == false);
            d = null;
        }
예제 #4
0
        public void test_SBMLConvert_invalidLevelVersion()
        {
            SBMLDocument d   = new  SBMLDocument(2, 1);
            Model        m   = d.createModel();
            string       sid = "C";
            Compartment  c   = m.createCompartment();

            c.setId(sid);
            c.setSize(1.2);
            c.setUnits("volume");
            assertTrue(d.setLevelAndVersion(1, 3, true) == false);
            assertTrue(d.setLevelAndVersion(2, 7, true) == false);
            assertTrue(d.setLevelAndVersion(3, 5, true) == false);
            assertTrue(d.setLevelAndVersion(4, 1, true) == false);
        }
예제 #5
0
        public void test_SBMLConvert_convertToL2_SBMLDocument()
        {
            SBMLDocument d = new  SBMLDocument(1, 2);

            assertTrue(d.setLevelAndVersion(2, 1, false) == true);
            assertTrue(d.getLevel() == 2);
            assertTrue(d.getVersion() == 1);
            assertTrue(d.setLevelAndVersion(2, 2, false) == true);
            assertTrue(d.getLevel() == 2);
            assertTrue(d.getVersion() == 2);
            assertTrue(d.setLevelAndVersion(2, 3, false) == true);
            assertTrue(d.getLevel() == 2);
            assertTrue(d.getVersion() == 3);
            d = null;
        }
        public void test_SBMLConvertStrict_convertToL1()
        {
            SBMLDocument d = new  SBMLDocument(2, 4);
            Model        m = d.createModel();

            (m).setMetaId("_m");
            Compartment c = m.createCompartment();

            c.setId("c");
            (c).setSBOTerm(240);
            Species s = m.createSpecies();

            s.setId("s");
            s.setCompartment("c");
            assertTrue(d.setLevelAndVersion(1, 2, true) == true);
            assertTrue(d.getLevel() == 1);
            assertTrue(d.getVersion() == 2);
            Model m1 = d.getModel();

            assertTrue((m1).getMetaId() == "");
            Compartment c1 = m1.getCompartment(0);

            assertTrue((c1).getSBOTerm() == -1);
            Species s1 = m1.getSpecies(0);

            assertTrue(s1.getHasOnlySubstanceUnits() == false);
            d = null;
        }
예제 #7
0
        public void test_SBMLConvert_convertToL3_stoichiometryMath()
        {
            SBMLDocument d = new  SBMLDocument(2, 1);
            Model        m = d.createModel();
            Compartment  c = m.createCompartment();

            c.setId("c");
            Species s = m.createSpecies();

            s.setId("s");
            s.setCompartment("c");
            Reaction         r  = m.createReaction();
            SpeciesReference sr = r.createReactant();

            sr.setSpecies("s");
            StoichiometryMath sm  = sr.createStoichiometryMath();
            ASTNode           ast = libsbml.parseFormula("c*2");

            sm.setMath(ast);
            assertTrue(m.getNumRules() == 0);
            assertTrue(sr.isSetId() == false);
            assertTrue(d.setLevelAndVersion(3, 1, false) == true);
            m  = d.getModel();
            r  = m.getReaction(0);
            sr = r.getReactant(0);
            assertTrue(m.getNumRules() == 1);
            assertTrue(sr.isSetId() == true);
            Rule rule = m.getRule(0);

            assertTrue((rule.getVariable() == sr.getId()));
            d = null;
        }
예제 #8
0
        public void test_SBMLConvert_convertToL3_localParameters()
        {
            SBMLDocument d = new  SBMLDocument(1, 2);
            Model        m = d.createModel();
            Compartment  c = m.createCompartment();

            c.setId("c");
            Species s = m.createSpecies();

            s.setId("s");
            s.setCompartment("c");
            Reaction         r  = m.createReaction();
            SpeciesReference sr = r.createReactant();

            sr.setSpecies("s");
            KineticLaw kl = r.createKineticLaw();

            kl.setFormula("s*k");
            Parameter p = kl.createParameter();

            p.setId("k");
            assertTrue(kl.getNumLocalParameters() == 0);
            assertTrue(d.setLevelAndVersion(3, 1, false) == true);
            m  = d.getModel();
            r  = m.getReaction(0);
            kl = r.getKineticLaw();
            assertTrue(kl.getNumLocalParameters() == 1);
            LocalParameter lp = kl.getLocalParameter(0);

            d = null;
        }
예제 #9
0
        public void test_SBMLDocument_clone()
        {
            SBMLDocument o1 = new SBMLDocument();

            o1.setLevelAndVersion(1, 1, false);
            Model m = new Model(1, 1);

            m.createCompartment();
            m.createSpecies();
            m.createReaction();
            m.setId("foo");
            o1.setModel(m);
            assertTrue(o1.getLevel() == 1);
            assertTrue(o1.getVersion() == 1);
            assertTrue(o1.getModel().getId() == "foo");
            assertTrue(o1.getModel().getLevel() == 1);
            assertTrue(o1.getModel().getVersion() == 1);
            assertTrue(o1.getModel().getSBMLDocument() == o1);
            SBMLDocument o2 = o1.clone();

            assertTrue(o2.getLevel() == 1);
            assertTrue(o2.getVersion() == 1);
            assertTrue(o2.getModel().getId() == "foo");
            assertTrue(o2.getModel().getLevel() == 1);
            assertTrue(o2.getModel().getVersion() == 1);
            assertTrue(o2.getModel().getSBMLDocument() == o2);
            o2 = null;
            o1 = null;
        }
        public void test_SBMLConvertStrict_convertL1ParamRule()
        {
            SBMLDocument d = new  SBMLDocument(1, 2);
            Model        m = d.createModel();
            Compartment  c = m.createCompartment();

            c.setId("c");
            Parameter p = m.createParameter();

            p.setId("p");
            Parameter p1 = m.createParameter();

            p1.setId("p1");
            ASTNode math = libsbml.parseFormula("p");
            Rule    ar   = m.createAssignmentRule();

            ar.setVariable("p1");
            ar.setMath(math);
            ar.setUnits("mole");
            assertTrue(d.setLevelAndVersion(2, 1, true) == true);
            assertTrue(d.getLevel() == 2);
            assertTrue(d.getVersion() == 1);
            Rule r1 = d.getModel().getRule(0);

            assertTrue(r1.getUnits() == "");
            d = null;
        }
예제 #11
0
        public void test_SBMLConvert_convertToL1_Species_Concentration()
        {
            SBMLDocument d   = new  SBMLDocument(2, 1);
            Model        m   = d.createModel();
            string       sid = "C";
            Compartment  c   = new  Compartment(2, 1);
            Species      s   = new  Species(2, 1);

            c.setId(sid);
            c.setSize(1.2);
            m.addCompartment(c);
            s.setId("s");
            s.setCompartment(sid);
            s.setInitialConcentration(2.34);
            m.addSpecies(s);
            assertTrue(d.setLevelAndVersion(1, 2, true) == true);
            Species s1 = m.getSpecies(0);

            assertTrue(s1 != null);
            assertTrue(("C" == s1.getCompartment()));
            assertTrue(m.getCompartment("C").getSize() == 1.2);
            assertTrue(s1.getInitialConcentration() == 2.34);
            assertTrue(s1.isSetInitialConcentration() == true);
            d = null;
        }
예제 #12
0
        public void test_SBMLConvert_convertToL3_event()
        {
            SBMLDocument d = new  SBMLDocument(2, 2);
            Model        m = d.createModel();
            Event        e = m.createEvent();
            Event        e1;

            assertTrue(d.setLevelAndVersion(3, 1, false) == true);
            e1 = m.getEvent(0);
            assertTrue(e1.hasRequiredAttributes() == true);
            d = null;
        }
        public void test_SBMLDocument_setLevelAndVersion_Error()
        {
            SBMLDocument d = new  SBMLDocument();

            d.setLevelAndVersion(2, 1, true);
            Model m1 = new  Model(2, 1);
            Unit  u  = new  Unit(2, 1);

            u.setKind(libsbml.UnitKind_forName("mole"));
            u.setOffset(3.2);
            UnitDefinition ud = new  UnitDefinition(2, 1);

            ud.setId("ud");
            ud.addUnit(u);
            m1.addUnitDefinition(ud);
            d.setModel(m1);
            assertTrue(d.setLevelAndVersion(2, 2, true) == false);
            assertTrue(d.setLevelAndVersion(2, 3, true) == false);
            assertTrue(d.setLevelAndVersion(1, 2, true) == false);
            assertTrue(d.setLevelAndVersion(1, 1, true) == false);
            d = null;
        }
예제 #14
0
        public void test_SBMLConvert_convertToL3_parameter()
        {
            SBMLDocument d   = new  SBMLDocument(2, 2);
            Model        m   = d.createModel();
            string       sid = "C";
            Parameter    p   = m.createParameter();
            Parameter    p1;

            p.setId(sid);
            assertTrue(d.setLevelAndVersion(3, 1, false) == true);
            p1 = m.getParameter(0);
            assertTrue(p1.hasRequiredAttributes() == true);
            d = null;
        }
예제 #15
0
        public void test_SBMLConvert_convertToL3_reaction()
        {
            SBMLDocument d   = new  SBMLDocument(2, 2);
            Model        m   = d.createModel();
            string       sid = "C";
            Reaction     r   = m.createReaction();

            r.setId(sid);
            assertTrue(d.setLevelAndVersion(3, 1, false) == true);
            Reaction r1 = m.getReaction(0);

            assertTrue(r1.hasRequiredAttributes() == true);
            d = null;
        }
예제 #16
0
        public void test_SBMLConvert_convertToL3_reactant()
        {
            SBMLDocument     d  = new  SBMLDocument(2, 2);
            Model            m  = d.createModel();
            Reaction         r  = m.createReaction();
            SpeciesReference sr = r.createReactant();
            SpeciesReference sr1;

            sr.setSpecies("s");
            assertTrue(d.setLevelAndVersion(3, 1, false) == true);
            sr1 = m.getReaction(0).getReactant(0);
            assertTrue(sr1.hasRequiredAttributes() == true);
            d = null;
        }
예제 #17
0
        public void test_SBMLConvert_convertToL3_compartment()
        {
            SBMLDocument d   = new  SBMLDocument(2, 2);
            Model        m   = d.createModel();
            string       sid = "C";
            Compartment  c   = m.createCompartment();
            Compartment  c1;

            c.setId(sid);
            assertTrue(d.setLevelAndVersion(3, 1, false) == true);
            c1 = m.getCompartment(0);
            assertTrue(c1.hasRequiredAttributes() == true);
            d = null;
        }
예제 #18
0
        public void test_SBMLDocument_copyConstructor()
        {
            SBMLDocument o1 = new SBMLDocument();

            o1.setLevelAndVersion(2, 1, false);
            assertTrue(o1.getLevel() == 2);
            assertTrue(o1.getVersion() == 1);
            SBMLDocument o2 = new SBMLDocument(o1);

            assertTrue(o2.getLevel() == 2);
            assertTrue(o2.getVersion() == 1);
            o2 = null;
            o1 = null;
        }
        public void test_SBMLDocument_setLevelAndVersion_UnitsError()
        {
            SBMLDocument d = new  SBMLDocument();

            d.setLevelAndVersion(2, 4, false);
            Model       m1 = d.createModel();
            Compartment c  = m1.createCompartment();

            c.setId("c");
            Parameter p = m1.createParameter();

            p.setId("p");
            p.setUnits("mole");
            Rule r = m1.createAssignmentRule();

            r.setVariable("c");
            r.setFormula("p*p");
            assertTrue(d.setLevelAndVersion(2, 2, false) == true);
            assertTrue(d.setLevelAndVersion(2, 3, false) == true);
            assertTrue(d.setLevelAndVersion(1, 2, false) == true);
            assertTrue(d.setLevelAndVersion(1, 1, false) == false);
            d = null;
        }
예제 #20
0
        public void test_SBMLConvert_convertToL3_species()
        {
            SBMLDocument d   = new  SBMLDocument(2, 2);
            Model        m   = d.createModel();
            string       sid = "C";
            Species      s   = m.createSpecies();
            Species      s1;

            s.setId(sid);
            s.setCompartment("comp");
            assertTrue(d.setLevelAndVersion(3, 1, false) == true);
            s1 = m.getSpecies(0);
            assertTrue(s1.hasRequiredAttributes() == true);
            d = null;
        }
예제 #21
0
        public void test_SBMLDocument_assignmentOperator()
        {
            SBMLDocument o1 = new SBMLDocument();

            o1.setLevelAndVersion(2, 1, false);
            assertTrue(o1.getLevel() == 2);
            assertTrue(o1.getVersion() == 1);
            SBMLDocument o2 = new SBMLDocument();

            o2 = o1;
            assertTrue(o2.getLevel() == 2);
            assertTrue(o2.getVersion() == 1);
            o2 = null;
            o1 = null;
        }
예제 #22
0
        public void test_SBMLConvert_convertFromL3_modelUnits()
        {
            UnitDefinition ud;
            SBMLDocument   d = new  SBMLDocument(3, 1);
            Model          m = d.createModel();

            m.setVolumeUnits("litre");
            assertTrue(m.getNumUnitDefinitions() == 0);
            assertTrue(d.setLevelAndVersion(2, 4, false) == true);
            m = d.getModel();
            assertTrue(m.getNumUnitDefinitions() == 1);
            ud = m.getUnitDefinition(0);
            assertTrue(("volume" == ud.getId()));
            assertTrue(ud.getNumUnits() == 1);
            assertTrue(ud.getUnit(0).getKind() == libsbml.UNIT_KIND_LITRE);
        }
예제 #23
0
        public void test_SBMLConvert_convertFromL3_priority()
        {
            SBMLDocument d = new  SBMLDocument(3, 1);
            Model        m = d.createModel();
            Event        e = m.createEvent();
            Priority     p = e.createPriority();

            assertTrue(d.setLevelAndVersion(1, 1, false) == false);
            assertTrue(d.setLevelAndVersion(1, 2, false) == true);
            assertTrue(d.setLevelAndVersion(2, 1, false) == true);
            assertTrue(d.setLevelAndVersion(2, 2, false) == true);
            assertTrue(d.setLevelAndVersion(2, 3, false) == true);
            assertTrue(d.setLevelAndVersion(2, 4, false) == true);
            assertTrue(d.setLevelAndVersion(3, 1, false) == true);
        }
예제 #24
0
        public void test_SBMLConvert_convertToL1_Species_Amount()
        {
            SBMLDocument d   = new  SBMLDocument(2, 4);
            Model        m   = d.createModel();
            string       sid = "C";
            Compartment  c   = new  Compartment(2, 4);
            Species      s   = new  Species(2, 4);

            c.setId(sid);
            m.addCompartment(c);
            s.setCompartment(sid);
            s.setInitialAmount(2.34);
            m.addSpecies(s);
            assertTrue(d.setLevelAndVersion(1, 2, true) == true);
            assertTrue(s.getInitialAmount() == 2.34);
            d = null;
        }
예제 #25
0
        public void test_SBMLConvert_convertToL2v4_DuplicateAnnotations_model()
        {
            SBMLDocument d          = new  SBMLDocument(2, 1);
            Model        m          = d.createModel();
            string       annotation = "<rdf/>\n<rdf/>";
            int          i          = (m).setAnnotation(annotation);

            assertTrue(d.getLevel() == 2);
            assertTrue(d.getVersion() == 1);
            assertTrue((m).getAnnotation().getNumChildren() == 2);
            assertTrue(d.setLevelAndVersion(2, 4, true) == true);
            assertTrue(d.getLevel() == 2);
            assertTrue(d.getVersion() == 4);
            m = d.getModel();
            assertTrue((m).getAnnotation().getNumChildren() == 1);
            d = null;
        }
예제 #26
0
        public void test_SBMLConvert_convertToL3_unit()
        {
            SBMLDocument   d   = new  SBMLDocument(2, 2);
            Model          m   = d.createModel();
            string         sid = "C";
            UnitDefinition ud  = m.createUnitDefinition();

            ud.setId(sid);
            Unit u = ud.createUnit();

            u.setKind(libsbml.UNIT_KIND_MOLE);
            assertTrue(d.setLevelAndVersion(3, 1, false) == true);
            Unit u1 = m.getUnitDefinition(0).getUnit(0);

            assertTrue(u1.hasRequiredAttributes() == true);
            d = null;
        }
예제 #27
0
        public void test_SBMLConvert_convertFromL3_persistent()
        {
            SBMLDocument d = new  SBMLDocument(3, 1);
            Model        m = d.createModel();
            Event        e = m.createEvent();
            Trigger      t = e.createTrigger();

            t.setPersistent(false);
            assertTrue(d.setLevelAndVersion(1, 1, false) == false);
            assertTrue(d.setLevelAndVersion(1, 2, false) == true);
            assertTrue(d.setLevelAndVersion(2, 1, false) == true);
            assertTrue(d.setLevelAndVersion(2, 2, false) == true);
            assertTrue(d.setLevelAndVersion(2, 3, false) == true);
            assertTrue(d.setLevelAndVersion(2, 4, false) == true);
            assertTrue(d.setLevelAndVersion(3, 1, false) == true);
        }
예제 #28
0
        /// <summary>
        ///    Converts a SBML document to the latest version (3.1) that is supported.
        /// </summary>
        private void convertSBML(SBMLDocument sbmlDoc)
        {
            var latestLevel   = SBMLDocument.getDefaultLevel();
            var latestVersion = SBMLDocument.getDefaultVersion();

            if (sbmlDoc.getLevel() == latestLevel || sbmlDoc.getVersion() == latestVersion)
            {
                return;
            }

            var success = sbmlDoc.setLevelAndVersion(latestLevel, latestVersion);

            if (!success)
            {
                throw new MoBiException(SBMLConstants.CouldNotConvertToActualLevel(latestLevel, latestVersion,
                                                                                   sbmlDoc.getLevel(), sbmlDoc.getVersion()));
            }
        }
예제 #29
0
        public void test_SBMLConvert_addModifiersToReaction()
        {
            SBMLDocument d  = new  SBMLDocument(1, 2);
            Model        m  = d.createModel();
            Reaction     r  = m.createReaction();
            KineticLaw   kl = r.createKineticLaw();

            kl.setFormula("k1*S1*S2*S3*S4*S5");
            SimpleSpeciesReference ssr1;
            SimpleSpeciesReference ssr2;
            Species s1 = m.createSpecies();

            s1.setId("S1");
            Species s2 = m.createSpecies();

            s2.setId("S2");
            Species s3 = m.createSpecies();

            s3.setId("S3");
            Species s4 = m.createSpecies();

            s4.setId("S4");
            Species s5 = m.createSpecies();

            s5.setId("S5");
            SpeciesReference sr1 = r.createReactant();
            SpeciesReference sr2 = r.createReactant();
            SpeciesReference sr3 = r.createProduct();

            sr1.setSpecies("S1");
            sr2.setSpecies("S2");
            sr3.setSpecies("S5");
            assertTrue(r.getNumModifiers() == 0);
            assertTrue(d.setLevelAndVersion(2, 1, false) == true);
            assertTrue(d.getLevel() == 2);
            assertTrue(d.getVersion() == 1);
            assertTrue(m.getReaction(0).getNumModifiers() == 2);
            ssr1 = m.getReaction(0).getModifier(0);
            ssr2 = m.getReaction(0).getModifier(1);
            assertTrue(("S3" == ssr1.getSpecies()));
            assertTrue(("S4" == ssr2.getSpecies()));
            d = null;
        }
예제 #30
0
        public void test_SBMLConvert_convertFromL3_conversionFactor()
        {
            SBMLDocument d   = new  SBMLDocument(3, 1);
            Model        m   = d.createModel();
            string       sid = "P";

            m.setConversionFactor(sid);
            Parameter c = m.createParameter();

            c.setId(sid);
            c.setConstant(true);
            assertTrue(d.setLevelAndVersion(1, 1, true) == false);
            assertTrue(d.setLevelAndVersion(1, 2, true) == false);
            assertTrue(d.setLevelAndVersion(2, 1, true) == false);
            assertTrue(d.setLevelAndVersion(2, 2, true) == false);
            assertTrue(d.setLevelAndVersion(2, 3, true) == false);
            assertTrue(d.setLevelAndVersion(2, 4, true) == false);
            assertTrue(d.setLevelAndVersion(3, 1, true) == true);
        }