22 #include "utilities.hpp"
25 #include "sbml/SBMLDocument.h"
26 #include "sbml/Model.h"
27 #include "sbml/Rule.h"
28 #include "sbml/Species.h"
29 #include "sbml/Parameter.h"
30 #include "sbml/math/ASTNode.h"
57 CPPUNIT_ASSERT(pDataModel->
getModel() != NULL);
60 CPPUNIT_ASSERT(pDocument != NULL);
61 Model* pModel = pDocument->getModel();
62 CPPUNIT_ASSERT(pModel != NULL);
65 CPPUNIT_ASSERT(pModel->getNumCompartments() == 1);
66 Compartment* pCompartment = pModel->getCompartment(0);
67 CPPUNIT_ASSERT(pCompartment->getConstant() ==
false);
70 CPPUNIT_ASSERT(pModel->getNumSpecies() == 2);
71 const Species* pA = pModel->getSpecies(0);
72 CPPUNIT_ASSERT(pA != NULL);
73 CPPUNIT_ASSERT(pA->getHasOnlySubstanceUnits() ==
true);
74 const Species* pB = pModel->getSpecies(0);
75 CPPUNIT_ASSERT(pB != NULL);
76 CPPUNIT_ASSERT(pB->getHasOnlySubstanceUnits() ==
true);
78 CPPUNIT_ASSERT(pModel->getNumInitialAssignments() == 1);
80 const InitialAssignment* pIA = pModel->getInitialAssignment(0);
81 CPPUNIT_ASSERT(pIA != NULL);
82 CPPUNIT_ASSERT(pIA->getSymbol() == pCompartment->getId());
83 CPPUNIT_ASSERT(pIA->isSetMath() ==
true);
84 const ASTNode* pNode = pIA->getMath();
85 CPPUNIT_ASSERT(pNode != NULL);
88 CPPUNIT_ASSERT(pNode->getType() == AST_NAME);
89 CPPUNIT_ASSERT(pNode->getName() == pA->getId());
90 CPPUNIT_ASSERT(pModel->getNumRules() == 1);
92 const Rule* pRule = pModel->getRule(0);
93 CPPUNIT_ASSERT(pRule != NULL);
94 const RateRule* pRateRule =
dynamic_cast<const RateRule*
>(pRule);
95 CPPUNIT_ASSERT(pRateRule != NULL);
96 CPPUNIT_ASSERT(pRateRule->getVariable() == pCompartment->getId());
97 CPPUNIT_ASSERT(pRule->isSetMath() ==
true);
98 pNode = pRateRule->getMath();
99 CPPUNIT_ASSERT(pNode != NULL);
100 CPPUNIT_ASSERT(pNode->getType() == AST_NAME);
101 CPPUNIT_ASSERT(pNode->getName() == pA->getId());
105 "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n"
106 "<!-- generated with COPASI 4.2.23++ (Debug) (http://www.copasi.org) at 2007-12-05 21:20:21 UTC -->\n"
107 "<COPASI xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xsi:noNamespaceSchemaLocation=\"http://www.copasi.org/static/schema.xsd\" versionMajor=\"1\" versionMinor=\"0\" versionDevel=\"23\">\n"
108 " <ListOfFunctions>\n"
109 " <Function key=\"Function_13\" name=\"Mass action (irreversible)\" type=\"MassAction\" reversible=\"false\">\n"
111 " k1*PRODUCT<substrate_i>\n"
113 " <ListOfParameterDescriptions>\n"
114 " <ParameterDescription key=\"FunctionParameter_81\" name=\"k1\" order=\"0\" role=\"constant\"/>\n"
115 " <ParameterDescription key=\"FunctionParameter_79\" name=\"substrate\" order=\"1\" role=\"substrate\"/>\n"
116 " </ListOfParameterDescriptions>\n"
118 " <Function key=\"Function_44\" name=\"Objective Function\" type=\"Expression\">\n"
123 " </ListOfFunctions>\n"
124 " <Model key=\"Model_1\" name=\"New Model\" timeUnit=\"s\" volumeUnit=\"ml\" quantityUnit=\"#\" type=\"deterministic\">\n"
126 " <body xmlns=\"http://www.w3.org/1999/xhtml\">\n"
130 " <ListOfCompartments>\n"
131 " <Compartment key=\"Compartment_0\" name=\"compartment\" simulationType=\"ode\">\n"
133 " <CN=Root,Model=New Model,Vector=Compartments[compartment],Vector=Metabolites[A],Reference=ParticleNumber>\n"
135 " <InitialExpression>\n"
136 " <CN=Root,Model=New Model,Vector=Compartments[compartment],Vector=Metabolites[A],Reference=InitialParticleNumber>\n"
137 " </InitialExpression>\n"
139 " </ListOfCompartments>\n"
140 " <ListOfMetabolites>\n"
141 " <Metabolite key=\"Metabolite_0\" name=\"A\" simulationType=\"reactions\" compartment=\"Compartment_0\">\n"
143 " <Metabolite key=\"Metabolite_1\" name=\"B\" simulationType=\"reactions\" compartment=\"Compartment_0\">\n"
145 " </ListOfMetabolites>\n"
146 " <ListOfReactions>\n"
147 " <Reaction key=\"Reaction_0\" name=\"reaction\" reversible=\"false\">\n"
148 " <ListOfSubstrates>\n"
149 " <Substrate metabolite=\"Metabolite_0\" stoichiometry=\"1\"/>\n"
150 " </ListOfSubstrates>\n"
151 " <ListOfProducts>\n"
152 " <Product metabolite=\"Metabolite_1\" stoichiometry=\"1\"/>\n"
153 " </ListOfProducts>\n"
154 " <ListOfConstants>\n"
155 " <Constant key=\"Parameter_103\" name=\"k1\" value=\"0.1\"/>\n"
156 " </ListOfConstants>\n"
157 " <KineticLaw function=\"Function_13\">\n"
158 " <ListOfCallParameters>\n"
159 " <CallParameter functionParameter=\"FunctionParameter_81\">\n"
160 " <SourceParameter reference=\"Parameter_103\"/>\n"
161 " </CallParameter>\n"
162 " <CallParameter functionParameter=\"FunctionParameter_79\">\n"
163 " <SourceParameter reference=\"Metabolite_0\"/>\n"
164 " </CallParameter>\n"
165 " </ListOfCallParameters>\n"
168 " </ListOfReactions>\n"
170 " <StateTemplateVariable objectReference=\"Model_1\"/>\n"
171 " <StateTemplateVariable objectReference=\"Compartment_0\"/>\n"
172 " <StateTemplateVariable objectReference=\"Metabolite_0\"/>\n"
173 " <StateTemplateVariable objectReference=\"Metabolite_1\"/>\n"
174 " </StateTemplate>\n"
175 " <InitialState type=\"initialState\">\n"
SBMLDocument * getCurrentSBMLDocument()
std::string exportSBMLToString(CProcessReport *pExportHandler, int sbmlLevel, int sbmlVersion)
bool load_cps_model_from_stream(std::istream &is, CCopasiDataModel &dataModel)
static CCopasiDataModel * pCOPASIDATAMODEL
static CCopasiDataModel * addDatamodel()
static void init(int argc, char *argv[], const bool &withGui=false)
static const char * MODEL_STRING