public void test_AssignmentRule_parent_create() { Model m = new Model(2,4); AssignmentRule r = m.createAssignmentRule(); ListOf lo = m.getListOfRules(); assertTrue( lo == m.getRule(0).getParentSBMLObject() ); assertTrue( lo == r.getParentSBMLObject() ); assertTrue( m == lo.getParentSBMLObject() ); }
public void test_AssignmentRule_ancestor_create() { Model m = new Model(2,4); AssignmentRule r = m.createAssignmentRule(); ListOf lo = m.getListOfRules(); assertTrue( r.getAncestorOfType(libsbml.SBML_MODEL) == m ); assertTrue( r.getAncestorOfType(libsbml.SBML_LIST_OF) == lo ); assertTrue( r.getAncestorOfType(libsbml.SBML_DOCUMENT) == null ); assertTrue( r.getAncestorOfType(libsbml.SBML_EVENT) == null ); Rule obj = m.getRule(0); assertTrue( obj.getAncestorOfType(libsbml.SBML_MODEL) == m ); assertTrue( obj.getAncestorOfType(libsbml.SBML_LIST_OF) == lo ); assertTrue( obj.getAncestorOfType(libsbml.SBML_DOCUMENT) == null ); assertTrue( obj.getAncestorOfType(libsbml.SBML_EVENT) == null ); }
/// <summary> /// [ RuleStruct ] /// [[ RuleType, Formula, Variable ]] /// </summary> /// <param name="aSBMLmodel"></param> /// <returns></returns> public static List<RuleStruct> getRule(Model aSBMLmodel) { List<RuleStruct> list = new List<RuleStruct>(); ListOfRules rules = aSBMLmodel.getListOfRules(); for (int i = 0; i < rules.size(); i++ ) { Rule aRule = aSBMLmodel.getRule(i); int aRuleType = aRule.getTypeCode(); string aFormula = aRule.getFormula(); string aVariable = null; if ( aRuleType == libsbml.libsbml.SBML_ALGEBRAIC_RULE ) aVariable = ""; else if (aRuleType == libsbml.libsbml.SBML_ASSIGNMENT_RULE || aRuleType == libsbml.libsbml.SBML_RATE_RULE) aVariable = aRule.getVariable(); //else if (aRuleType == libsbml.libsbml.SBML_SPECIES_CONCENTRATION_RULE) // aVariable = aRule.getSpecies(); //else if (aRuleType == libsbml.libsbml.SBML_COMPARTMENT_VOLUME_RULE) // aVariable = aRule.getCompartment(); // ToDo: LibSBML3.2C#で呼び出せない。どうするか検討する。 else if (aRuleType == libsbml.libsbml.SBML_PARAMETER_RULE) aVariable = aRule.getName(); else throw new EcellException(" The type of Rule must be Algebraic, Assignment or Rate Rule"); RuleStruct rule = new RuleStruct( aRuleType, aFormula, aVariable ); list.Add(rule); } return list; }
public void test_Rule_parent_add() { Rule ia = new RateRule(2,4); ia.setVariable("a"); ia.setMath(libsbml.parseFormula("9")); Model m = new Model(2,4); m.addRule(ia); ia = null; ListOf lo = m.getListOfRules(); assertTrue( lo == m.getRule(0).getParentSBMLObject() ); assertTrue( m == lo.getParentSBMLObject() ); }
public void test_ReadSBML_ParameterRule() { Rule pr; string s = wrapSBML_L1v2("<listOfRules>" + " <parameterRule name='k' formula='k3/k2'/>" + "</listOfRules>"); D = libsbml.readSBMLFromString(s); M = D.getModel(); assertTrue( M.getNumRules() == 1 ); pr = M.getRule(0); assertEquals( true, pr.isParameter() ); assertTrue(( "k" == pr.getVariable() )); assertTrue(( "k3/k2" == pr.getFormula() )); assertTrue( pr.getType() == libsbml.RULE_TYPE_SCALAR ); }
public void test_Rule_ancestor_add() { Rule ia = new RateRule(2,4); ia.setVariable("a"); ia.setMath(libsbml.parseFormula("9")); Model m = new Model(2,4); m.addRule(ia); ia = null; ListOf lo = m.getListOfRules(); Rule obj = m.getRule(0); assertTrue( obj.getAncestorOfType(libsbml.SBML_MODEL) == m ); assertTrue( obj.getAncestorOfType(libsbml.SBML_LIST_OF) == lo ); assertTrue( obj.getAncestorOfType(libsbml.SBML_DOCUMENT) == null ); assertTrue( obj.getAncestorOfType(libsbml.SBML_EVENT) == null ); }
public void test_ReadSBML_metaid() { SBase sb; string s = wrapSBML_L2v1("<listOfFunctionDefinitions>" + " <functionDefinition metaid='fd'/>" + "</listOfFunctionDefinitions>" + "<listOfUnitDefinitions>" + " <unitDefinition metaid='ud'/>" + "</listOfUnitDefinitions>" + "<listOfCompartments>" + " <compartment metaid='c'/>" + "</listOfCompartments>" + "<listOfSpecies>" + " <species metaid='s'/>" + "</listOfSpecies>" + "<listOfParameters>" + " <parameter metaid='p'/>" + "</listOfParameters>" + "<listOfRules>" + " <rateRule metaid='rr'/>" + "</listOfRules>" + "<listOfReactions>" + " <reaction metaid='rx'/>" + "</listOfReactions>" + "<listOfEvents>" + " <event metaid='e'/>" + "</listOfEvents>"); D = libsbml.readSBMLFromString(s); M = D.getModel(); assertTrue( M != null ); sb = M.getFunctionDefinition(0); assertEquals( true, sb.isSetMetaId() ); assertTrue(( "fd" == sb.getMetaId() )); sb = M.getUnitDefinition(0); assertEquals( true, sb.isSetMetaId() ); assertTrue(( "ud" == sb.getMetaId() )); sb = M.getCompartment(0); assertEquals( true, sb.isSetMetaId() ); assertTrue(( "c" == sb.getMetaId() )); sb = M.getSpecies(0); assertEquals( true, sb.isSetMetaId() ); assertTrue(( "s" == sb.getMetaId() )); sb = M.getParameter(0); assertEquals( true, sb.isSetMetaId() ); assertTrue(( "p" == sb.getMetaId() )); sb = M.getRule(0); assertEquals( true, sb.isSetMetaId() ); assertTrue(( "rr" == sb.getMetaId() )); sb = M.getReaction(0); assertEquals( true, sb.isSetMetaId() ); assertTrue(( "rx" == sb.getMetaId() )); sb = M.getEvent(0); assertEquals( true, sb.isSetMetaId() ); assertTrue(( "e" == sb.getMetaId() )); }
public void test_ReadSBML_AlgebraicRule() { Rule ar; string s = wrapSBML_L1v2("<listOfRules>" + " <algebraicRule formula='x + 1'/>" + "</listOfRules>"); D = libsbml.readSBMLFromString(s); M = D.getModel(); assertTrue( M.getNumRules() == 1 ); ar = M.getRule(0); assertTrue(( "x + 1" == ar.getFormula() )); }
public void test_ReadSBML_CompartmentVolumeRule() { Rule cvr; string s = wrapSBML_L1v2("<listOfRules>" + " <compartmentVolumeRule compartment='A' formula='0.10 * t'/>" + "</listOfRules>"); D = libsbml.readSBMLFromString(s); M = D.getModel(); assertTrue( M.getNumRules() == 1 ); cvr = M.getRule(0); assertEquals( true, cvr.isCompartmentVolume() ); assertTrue(( "A" == cvr.getVariable() )); assertTrue(( "0.10 * t" == cvr.getFormula() )); assertTrue( cvr.getType() == libsbml.RULE_TYPE_SCALAR ); }
public void test_ReadSBML_AssignmentRule() { Rule ar; ASTNode math; string formula; string s = wrapSBML_L2v1("<listOfRules>" + " <assignmentRule variable='k'>" + " <math>" + " <apply>" + " <divide/>" + " <ci> k3 </ci>" + " <ci> k2 </ci>" + " </apply>" + " </math>" + " </assignmentRule>" + "</listOfRules>"); D = libsbml.readSBMLFromString(s); M = D.getModel(); assertTrue( M.getNumRules() == 1 ); ar = M.getRule(0); assertTrue( ar != null ); assertEquals( true, ar.isSetMath() ); math = ar.getMath(); formula = ar.getFormula(); assertTrue( formula != null ); assertTrue(( "k3 / k2" == formula )); }
public void test_ReadSBML_SpeciesConcentrationRule() { Rule scr; string s = wrapSBML_L1v2("<listOfRules>" + " <speciesConcentrationRule species='s2' formula='k * t/(1 + k)'/>" + "</listOfRules>"); D = libsbml.readSBMLFromString(s); M = D.getModel(); assertTrue( M.getNumRules() == 1 ); scr = M.getRule(0); assertEquals( true, scr.isSpeciesConcentration() ); assertTrue(( "s2" == scr.getVariable() )); assertTrue(( "k * t/(1 + k)" == scr.getFormula() )); assertTrue( scr.getType() == libsbml.RULE_TYPE_SCALAR ); }
public void test_ReadSBML_AlgebraicRule_L2() { Rule ar; ASTNode math; string formula; string s = wrapSBML_L2v1("<listOfRules>" + " <algebraicRule>" + " <math>" + " <apply>" + " <minus/>" + " <apply>" + " <plus/>" + " <ci> S1 </ci>" + " <ci> S2 </ci>" + " </apply>" + " <ci> T </ci>" + " </apply>" + " </math>" + " </algebraicRule>" + "</listOfRules>"); D = libsbml.readSBMLFromString(s); M = D.getModel(); assertTrue( M.getNumRules() == 1 ); ar = M.getRule(0); assertTrue( ar != null ); assertEquals( true, ar.isSetMath() ); math = ar.getMath(); formula = ar.getFormula(); assertTrue( formula != null ); assertTrue(( "S1 + S2 - T" == formula )); }
public void test_ReadSBML_RateRule() { Rule rr; ASTNode math; string formula; string s = wrapSBML_L2v1("<listOfRules>" + " <rateRule variable='x'>" + " <math>" + " <apply>" + " <times/>" + " <apply>" + " <minus/>" + " <cn> 1 </cn>" + " <ci> x </ci>" + " </apply>" + " <apply>" + " <ln/>" + " <ci> x </ci>" + " </apply>" + " </apply>" + " </math>" + " </rateRule>" + "</listOfRules>"); D = libsbml.readSBMLFromString(s); M = D.getModel(); assertTrue( M.getNumRules() == 1 ); rr = M.getRule(0); assertTrue( rr != null ); assertEquals( true, rr.isSetMath() ); math = rr.getMath(); formula = rr.getFormula(); assertTrue( formula != null ); assertTrue(( "(1 - x) * log(x)" == formula )); }