17 #include "utilities.hpp"
23 #include "sbml/math/ASTNode.h"
24 #include "sbml/SBMLDocument.h"
25 #include "sbml/Model.h"
26 #include "sbml/Compartment.h"
27 #include "sbml/Parameter.h"
28 #include "sbml/Event.h"
29 #include "sbml/Trigger.h"
30 #include "sbml/Delay.h"
31 #include "sbml/EventAssignment.h"
55 CPPUNIT_ASSERT(pModel != NULL);
56 CPPUNIT_ASSERT(pModel->getCompartments().size() == 0);
57 CPPUNIT_ASSERT(pModel->getMetabolites().size() == 0);
58 CPPUNIT_ASSERT(pModel->getModelValues().size() == 1);
59 const CModelValue* pModelValue = pModel->getModelValues()[0];
60 CPPUNIT_ASSERT(pModelValue != NULL);
61 CPPUNIT_ASSERT(pModel->getEvents().size() == 1);
62 const CEvent* pEvent = pModel->getEvents()[0];
63 CPPUNIT_ASSERT(pEvent != NULL);
66 const CExpression* pExpr = pEvent->getTriggerExpressionPtr();
67 CPPUNIT_ASSERT(pExpr != NULL);
69 CPPUNIT_ASSERT(pNode != NULL);
73 CPPUNIT_ASSERT(pNode != NULL);
76 CPPUNIT_ASSERT(pObjectNode != NULL);
78 CPPUNIT_ASSERT(!objectCN.empty());
79 std::vector<CCopasiContainer*> listOfContainers;
80 listOfContainers.push_back(pModel);
82 CPPUNIT_ASSERT(pObject != NULL);
84 CPPUNIT_ASSERT(pObject->
getObjectName() == std::string(
"Time"));
87 CPPUNIT_ASSERT(pNode != NULL);
90 CPPUNIT_ASSERT(pNumberNode != NULL);
91 CPPUNIT_ASSERT(fabs((pNumberNode->
getValue() - 2.0) / 2.0) < 1e-6);
94 CPPUNIT_ASSERT(pEvent->getAssignments().size() == 1);
96 std::string key = pEvent->getAssignments()[0]->getTargetKey();
97 CPPUNIT_ASSERT(key == pModelValue->getKey());
98 pExpr = pEvent->getAssignments()[0]->getExpressionPtr();
99 CPPUNIT_ASSERT(pExpr != NULL);
100 pNode = pExpr->getRoot();
101 CPPUNIT_ASSERT(pNode != NULL);
104 CPPUNIT_ASSERT(pNumberNode != NULL);
105 CPPUNIT_ASSERT((fabs(pNumberNode->
getValue() - 8.0) / 8.0) < 1e-9);
119 CPPUNIT_ASSERT(pModel != NULL);
120 CPPUNIT_ASSERT(pModel->getCompartments().size() == 0);
121 CPPUNIT_ASSERT(pModel->getMetabolites().size() == 0);
122 CPPUNIT_ASSERT(pModel->getModelValues().size() == 1);
123 const CModelValue* pModelValue = pModel->getModelValues()[0];
124 CPPUNIT_ASSERT(pModelValue != NULL);
125 CPPUNIT_ASSERT(pModel->getEvents().size() == 1);
126 const CEvent* pEvent = pModel->getEvents()[0];
127 CPPUNIT_ASSERT(pEvent != NULL);
130 const CExpression* pExpr = pEvent->getTriggerExpressionPtr();
131 CPPUNIT_ASSERT(pExpr != NULL);
133 CPPUNIT_ASSERT(pNode != NULL);
137 CPPUNIT_ASSERT(pNode != NULL);
140 CPPUNIT_ASSERT(pObjectNode != NULL);
142 CPPUNIT_ASSERT(!objectCN.empty());
143 std::vector<CCopasiContainer*> listOfContainers;
144 listOfContainers.push_back(pModel);
146 CPPUNIT_ASSERT(pObject != NULL);
148 CPPUNIT_ASSERT(pObject->
getObjectName() == std::string(
"Time"));
151 CPPUNIT_ASSERT(pNode != NULL);
154 CPPUNIT_ASSERT(pNumberNode != NULL);
155 CPPUNIT_ASSERT(fabs((pNumberNode->
getValue() - 2.0) / 2.0) < 1e-6);
158 CPPUNIT_ASSERT(pEvent->getAssignments().size() == 1);
160 std::string key = pEvent->getAssignments()[0]->getTargetKey();
161 CPPUNIT_ASSERT(key == pModelValue->getKey());
162 pExpr = pEvent->getAssignments()[0]->getExpressionPtr();
163 CPPUNIT_ASSERT(pExpr != NULL);
164 pNode = pExpr->getRoot();
165 CPPUNIT_ASSERT(pNode != NULL);
168 CPPUNIT_ASSERT(pNumberNode != NULL);
169 CPPUNIT_ASSERT((fabs(pNumberNode->
getValue() - 8.0) / 8.0) < 1e-9);
184 CPPUNIT_ASSERT(pModel != NULL);
185 CPPUNIT_ASSERT(pModel->getCompartments().size() == 0);
186 CPPUNIT_ASSERT(pModel->getMetabolites().size() == 0);
187 CPPUNIT_ASSERT(pModel->getModelValues().size() == 1);
188 const CModelValue* pModelValue = pModel->getModelValues()[0];
189 CPPUNIT_ASSERT(pModelValue != NULL);
190 CPPUNIT_ASSERT(pModel->getEvents().size() == 1);
191 const CEvent* pEvent = pModel->getEvents()[0];
192 CPPUNIT_ASSERT(pEvent != NULL);
195 const CExpression* pExpr = pEvent->getTriggerExpressionPtr();
196 CPPUNIT_ASSERT(pExpr != NULL);
198 CPPUNIT_ASSERT(pNode != NULL);
202 CPPUNIT_ASSERT(pNode != NULL);
205 CPPUNIT_ASSERT(pObjectNode != NULL);
207 CPPUNIT_ASSERT(!objectCN.empty());
208 std::vector<CCopasiContainer*> listOfContainers;
209 listOfContainers.push_back(pModel);
211 CPPUNIT_ASSERT(pObject != NULL);
213 CPPUNIT_ASSERT(pObject->
getObjectName() == std::string(
"Time"));
216 CPPUNIT_ASSERT(pNode != NULL);
219 CPPUNIT_ASSERT(pNumberNode != NULL);
220 CPPUNIT_ASSERT(fabs((pNumberNode->
getValue() - 2.0) / 2.0) < 1e-6);
223 CPPUNIT_ASSERT(pEvent->getAssignments().size() == 1);
225 std::string key = pEvent->getAssignments()[0]->getTargetKey();
226 CPPUNIT_ASSERT(key == pModelValue->getKey());
227 pExpr = pEvent->getAssignments()[0]->getExpressionPtr();
228 CPPUNIT_ASSERT(pExpr != NULL);
229 pNode = pExpr->getRoot();
230 CPPUNIT_ASSERT(pNode != NULL);
233 CPPUNIT_ASSERT(pNumberNode != NULL);
234 CPPUNIT_ASSERT((fabs(pNumberNode->
getValue() - 8.0) / 8.0) < 1e-9);
250 CPPUNIT_ASSERT(pModel != NULL);
251 CPPUNIT_ASSERT(pModel->getCompartments().size() == 0);
252 CPPUNIT_ASSERT(pModel->getMetabolites().size() == 0);
253 CPPUNIT_ASSERT(pModel->getModelValues().size() == 1);
254 const CModelValue* pModelValue = pModel->getModelValues()[0];
255 CPPUNIT_ASSERT(pModelValue != NULL);
256 CPPUNIT_ASSERT(pModel->getEvents().size() == 1);
257 const CEvent* pEvent = pModel->getEvents()[0];
258 CPPUNIT_ASSERT(pEvent != NULL);
261 const CExpression* pExpr = pEvent->getTriggerExpressionPtr();
262 CPPUNIT_ASSERT(pExpr != NULL);
264 CPPUNIT_ASSERT(pNode != NULL);
268 CPPUNIT_ASSERT(pNode != NULL);
271 CPPUNIT_ASSERT(pObjectNode != NULL);
273 CPPUNIT_ASSERT(!objectCN.empty());
274 std::vector<CCopasiContainer*> listOfContainers;
275 listOfContainers.push_back(pModel);
277 CPPUNIT_ASSERT(pObject != NULL);
279 CPPUNIT_ASSERT(pObject->
getObjectName() == std::string(
"Time"));
282 CPPUNIT_ASSERT(pNode != NULL);
285 CPPUNIT_ASSERT(pNumberNode != NULL);
286 CPPUNIT_ASSERT(fabs((pNumberNode->
getValue() - 2.0) / 2.0) < 1e-6);
289 CPPUNIT_ASSERT(pEvent->getAssignments().size() == 1);
291 std::string key = pEvent->getAssignments()[0]->getTargetKey();
292 CPPUNIT_ASSERT(key == pModelValue->getKey());
293 pExpr = pEvent->getAssignments()[0]->getExpressionPtr();
294 CPPUNIT_ASSERT(pExpr != NULL);
295 pNode = pExpr->getRoot();
296 CPPUNIT_ASSERT(pNode != NULL);
299 CPPUNIT_ASSERT(pNumberNode != NULL);
300 CPPUNIT_ASSERT((fabs(pNumberNode->
getValue() - 8.0) / 8.0) < 1e-9);
314 CPPUNIT_ASSERT(pModel != NULL);
315 CPPUNIT_ASSERT(pModel->getCompartments().size() == 0);
316 CPPUNIT_ASSERT(pModel->getMetabolites().size() == 0);
317 CPPUNIT_ASSERT(pModel->getModelValues().size() == 1);
318 const CModelValue* pModelValue = pModel->getModelValues()[0];
319 CPPUNIT_ASSERT(pModelValue != NULL);
320 CPPUNIT_ASSERT(pModel->getEvents().size() == 1);
321 const CEvent* pEvent = pModel->getEvents()[0];
322 CPPUNIT_ASSERT(pEvent != NULL);
325 const CExpression* pExpr = pEvent->getTriggerExpressionPtr();
326 CPPUNIT_ASSERT(pExpr != NULL);
328 CPPUNIT_ASSERT(pNode != NULL);
332 CPPUNIT_ASSERT(pNode != NULL);
335 CPPUNIT_ASSERT(pObjectNode != NULL);
337 CPPUNIT_ASSERT(!objectCN.empty());
338 std::vector<CCopasiContainer*> listOfContainers;
339 listOfContainers.push_back(pModel);
341 CPPUNIT_ASSERT(pObject != NULL);
343 CPPUNIT_ASSERT(pObject->
getObjectName() == std::string(
"Time"));
346 CPPUNIT_ASSERT(pNode != NULL);
349 CPPUNIT_ASSERT(pNumberNode != NULL);
350 CPPUNIT_ASSERT(fabs((pNumberNode->
getValue() - 2.0) / 2.0) < 1e-6);
353 CPPUNIT_ASSERT(pEvent->getAssignments().size() == 1);
355 std::string key = pEvent->getAssignments()[0]->getTargetKey();
356 CPPUNIT_ASSERT(key == pModelValue->getKey());
357 pExpr = pEvent->getAssignments()[0]->getExpressionPtr();
358 CPPUNIT_ASSERT(pExpr != NULL);
359 pNode = pExpr->getRoot();
360 CPPUNIT_ASSERT(pNode != NULL);
363 CPPUNIT_ASSERT(pNumberNode != NULL);
364 CPPUNIT_ASSERT((fabs(pNumberNode->
getValue() - 8.0) / 8.0) < 1e-9);
373 "<?xml version=\"1.0\" encoding=\"UTF-8\"?>"
374 "<sbml xmlns=\"http://www.sbml.org/sbml/level3/version1/core\" level=\"3\" version=\"1\">"
375 " <model id=\"Model_1\" name=\"New Model\">"
377 " <body xmlns=\"http://www.w3.org/1999/xhtml\">"
378 " <p>L3V1 model with event priority.</p>"
381 " <listOfParameters>"
382 " <parameter id=\"parameter_1\" name=\"K\" value=\"0\" constant=\"false\"/>"
383 " </listOfParameters>"
386 " <trigger initialValue=\"true\" persistent=\"true\">"
387 " <math xmlns=\"http://www.w3.org/1998/Math/MathML\">"
390 " <csymbol encoding=\"text\" definitionURL=\"http://www.sbml.org/sbml/symbols/time\"> time </csymbol>"
396 " <math xmlns=\"http://www.w3.org/1998/Math/MathML\">"
400 " <listOfEventAssignments>"
401 " <eventAssignment variable=\"parameter_1\">"
402 " <math xmlns=\"http://www.w3.org/1998/Math/MathML\">"
405 " </eventAssignment>"
406 " </listOfEventAssignments>"
414 "<?xml version=\"1.0\" encoding=\"UTF-8\"?>"
415 "<sbml xmlns=\"http://www.sbml.org/sbml/level3/version1/core\" level=\"3\" version=\"1\">"
416 " <model id=\"Model_1\" name=\"New Model\">"
418 " <body xmlns=\"http://www.w3.org/1999/xhtml\">"
419 " <p>L3V1 model with event priority.</p>"
422 " <listOfParameters>"
423 " <parameter id=\"parameter_1\" name=\"K\" value=\"0\" constant=\"false\"/>"
424 " </listOfParameters>"
427 " <trigger initialValue=\"false\" persistent=\"true\" >"
428 " <math xmlns=\"http://www.w3.org/1998/Math/MathML\">"
431 " <csymbol encoding=\"text\" definitionURL=\"http://www.sbml.org/sbml/symbols/time\"> time </csymbol>"
436 " <listOfEventAssignments>"
437 " <eventAssignment variable=\"parameter_1\">"
438 " <math xmlns=\"http://www.w3.org/1998/Math/MathML\">"
441 " </eventAssignment>"
442 " </listOfEventAssignments>"
451 "<?xml version=\"1.0\" encoding=\"UTF-8\"?>"
452 "<sbml xmlns=\"http://www.sbml.org/sbml/level3/version1/core\" level=\"3\" version=\"1\">"
453 " <model id=\"Model_1\" name=\"New Model\">"
455 " <body xmlns=\"http://www.w3.org/1999/xhtml\">"
456 " <p>L3V1 model with event priority.</p>"
459 " <listOfParameters>"
460 " <parameter id=\"parameter_1\" name=\"K\" value=\"0\" constant=\"false\"/>"
461 " </listOfParameters>"
464 " <trigger initialValue=\"false\" persistent=\"true\" >"
465 " <math xmlns=\"http://www.w3.org/1998/Math/MathML\">"
468 " <csymbol encoding=\"text\" definitionURL=\"http://www.sbml.org/sbml/symbols/time\"> time </csymbol>"
474 " <math xmlns=\"http://www.w3.org/1998/Math/MathML\">"
478 " <listOfEventAssignments>"
479 " <eventAssignment variable=\"parameter_1\">"
480 " <math xmlns=\"http://www.w3.org/1998/Math/MathML\">"
483 " </eventAssignment>"
484 " </listOfEventAssignments>"
492 "<?xml version=\"1.0\" encoding=\"UTF-8\"?>"
493 "<sbml xmlns=\"http://www.sbml.org/sbml/level3/version1/core\" level=\"3\" version=\"1\">"
494 " <model id=\"Model_1\" name=\"New Model\">"
496 " <body xmlns=\"http://www.w3.org/1999/xhtml\">"
497 " <p>L3V1 model with event priority.</p>"
500 " <listOfParameters>"
501 " <parameter id=\"parameter_1\" name=\"K\" value=\"0\" constant=\"false\"/>"
502 " </listOfParameters>"
505 " <trigger initialValue=\"true\" persistent=\"false\" >"
506 " <math xmlns=\"http://www.w3.org/1998/Math/MathML\">"
509 " <csymbol encoding=\"text\" definitionURL=\"http://www.sbml.org/sbml/symbols/time\"> time </csymbol>"
514 " <listOfEventAssignments>"
515 " <eventAssignment variable=\"parameter_1\">"
516 " <math xmlns=\"http://www.w3.org/1998/Math/MathML\">"
519 " </eventAssignment>"
520 " </listOfEventAssignments>"
528 "<?xml version=\"1.0\" encoding=\"UTF-8\"?>"
529 "<sbml xmlns=\"http://www.sbml.org/sbml/level3/version1/core\" level=\"3\" version=\"1\">"
530 " <model id=\"Model_1\" name=\"New Model\">"
532 " <body xmlns=\"http://www.w3.org/1999/xhtml\">"
533 " <p>L3V1 model with event priority.</p>"
536 " <listOfParameters>"
537 " <parameter id=\"parameter_1\" name=\"K\" value=\"0\" constant=\"false\"/>"
538 " </listOfParameters>"
541 " <trigger initialValue=\"true\" persistent=\"true\" >"
542 " <math xmlns=\"http://www.w3.org/1998/Math/MathML\">"
545 " <csymbol encoding=\"text\" definitionURL=\"http://www.sbml.org/sbml/symbols/time\"> time </csymbol>"
550 " <listOfEventAssignments>"
551 " <eventAssignment variable=\"parameter_1\">"
552 " <math xmlns=\"http://www.w3.org/1998/Math/MathML\">"
555 " </eventAssignment>"
556 " </listOfEventAssignments>"
Header file of class CModelEntity and CModelValue.
const std::string & getObjectName() const
const CRegisteredObjectName & getObjectCN() const
const C_FLOAT64 & getValue() const
static const char * MODEL_STRING3
const Type & getType() const
static Type type(const Type &type)
static const char * MODEL_STRING2
static const char * MODEL_STRING4
static const char * MODEL_STRING1
void test_import_l3_event_5()
static CCopasiDataModel * addDatamodel()
static Type subType(const Type &type)
static CCopasiDataModel * pCOPASIDATAMODEL
static bool checkForMessage(const size_t &number)
void test_import_l3_event_3()
bool importSBMLFromString(const std::string &sbmlDocumentText, CProcessReport *pImportHandler=NULL, const bool &deleteOldData=true)
static void init(int argc, char *argv[], const bool &withGui=false)
Header file of class CEvent.
void test_import_l3_event_2()
void test_import_l3_event_1()
CCopasiNode< Data > * getChild()
CCopasiObject * ObjectFromName(const std::vector< CCopasiContainer * > &listOfContainer, const CCopasiObjectName &CN) const
CEvaluationNode * getRoot()
CCopasiContainer * getObjectParent() const
static const char * MODEL_STRING5
void test_import_l3_event_4()