14 #include "utilities.hpp"
31 #include "sbml/SBMLDocument.h"
32 #include "sbml/Model.h"
62 CPPUNIT_ASSERT(
false);
66 CPPUNIT_ASSERT(pModel != NULL);
73 CPPUNIT_ASSERT(pFun != NULL);
75 CPPUNIT_ASSERT(pKinFun != NULL);
79 CPPUNIT_ASSERT(pFunParams != NULL);
80 CPPUNIT_ASSERT(pFunParams->
size() == 1);
82 CPPUNIT_ASSERT(pFunParam != NULL);
83 CPPUNIT_ASSERT(pFunParam->getObjectName() == std::string(
"k"));
85 CPPUNIT_ASSERT(pRoot != NULL);
89 CPPUNIT_ASSERT(pChild != NULL);
93 CPPUNIT_ASSERT(pNumberNode != NULL);
94 CPPUNIT_ASSERT(fabs((pNumberNode->
getValue() - 3.0) / 3.0) < 1e-6);
96 CPPUNIT_ASSERT(pChild != NULL);
100 CPPUNIT_ASSERT(pVarNode != NULL);
101 CPPUNIT_ASSERT(pVarNode->
getData() == std::string(
"k"));
103 CPPUNIT_ASSERT(pChild == NULL);
105 pFun = pFunDB->findFunction(
"function_2");
106 CPPUNIT_ASSERT(pFun != NULL);
108 CPPUNIT_ASSERT(pKinFun != NULL);
112 CPPUNIT_ASSERT(pFunParams != NULL);
113 CPPUNIT_ASSERT(pFunParams->
size() == 2);
114 pFunParam = (*pFunParams)[0];
115 CPPUNIT_ASSERT(pFunParam != NULL);
116 CPPUNIT_ASSERT(pFunParam->getObjectName() == std::string(
"A"));
117 pFunParam = (*pFunParams)[1];
118 CPPUNIT_ASSERT(pFunParam != NULL);
119 CPPUNIT_ASSERT(pFunParam->getObjectName() == std::string(
"B"));
121 CPPUNIT_ASSERT(pRoot != NULL);
125 CPPUNIT_ASSERT(pChild != NULL);
129 CPPUNIT_ASSERT(pVarNode != NULL);
130 CPPUNIT_ASSERT(pVarNode->
getData() == std::string(
"B"));
132 CPPUNIT_ASSERT(pChild != NULL);
136 CPPUNIT_ASSERT(pVarNode != NULL);
137 CPPUNIT_ASSERT(pVarNode->
getData() == std::string(
"A"));
139 CPPUNIT_ASSERT(pChild == NULL);
141 pFun = pFunDB->findFunction(
"function_3");
142 CPPUNIT_ASSERT(pFun != NULL);
144 CPPUNIT_ASSERT(pKinFun != NULL);
148 CPPUNIT_ASSERT(pFunParams != NULL);
149 CPPUNIT_ASSERT(pFunParams->
size() == 2);
150 pFunParam = (*pFunParams)[0];
151 CPPUNIT_ASSERT(pFunParam != NULL);
152 CPPUNIT_ASSERT(pFunParam->getObjectName() == std::string(
"k"));
153 pFunParam = (*pFunParams)[1];
154 CPPUNIT_ASSERT(pFunParam != NULL);
155 CPPUNIT_ASSERT(pFunParam->getObjectName() == std::string(
"C"));
157 CPPUNIT_ASSERT(pRoot != NULL);
161 CPPUNIT_ASSERT(pChild != NULL);
165 CPPUNIT_ASSERT(pVarNode != NULL);
166 CPPUNIT_ASSERT(pVarNode->
getData() == std::string(
"C"));
168 CPPUNIT_ASSERT(pChild != NULL);
171 CPPUNIT_ASSERT(pChild->getSibling() == NULL);
176 CPPUNIT_ASSERT(pVarNode != NULL);
177 CPPUNIT_ASSERT(pVarNode->
getData() == std::string(
"k"));
179 CPPUNIT_ASSERT(pChild != NULL);
183 CPPUNIT_ASSERT(pNumberNode != NULL);
184 CPPUNIT_ASSERT(fabs((pNumberNode->
getValue() - 1.3) / 1.3) < 1e-6);
185 CPPUNIT_ASSERT(pChild->getSibling() == NULL);
187 pFun = pFunDB->findFunction(
"function_4");
188 CPPUNIT_ASSERT(pFun != NULL);
190 CPPUNIT_ASSERT(pKinFun != NULL);
194 CPPUNIT_ASSERT(pFunParams != NULL);
195 CPPUNIT_ASSERT(pFunParams->
size() == 2);
196 pFunParam = (*pFunParams)[0];
197 CPPUNIT_ASSERT(pFunParam != NULL);
198 CPPUNIT_ASSERT(pFunParam->getObjectName() == std::string(
"x"));
199 pFunParam = (*pFunParams)[1];
200 CPPUNIT_ASSERT(pFunParam != NULL);
201 CPPUNIT_ASSERT(pFunParam->getObjectName() == std::string(
"y"));
203 CPPUNIT_ASSERT(pRoot != NULL);
207 CPPUNIT_ASSERT(pChild != NULL);
211 CPPUNIT_ASSERT(pCallNode != NULL);
212 CPPUNIT_ASSERT(pCallNode->
getData() == std::string(
"function_2"));
214 CPPUNIT_ASSERT(pChild != NULL);
218 CPPUNIT_ASSERT(pVarNode != NULL);
219 CPPUNIT_ASSERT(pVarNode->
getData() == std::string(
"x"));
221 CPPUNIT_ASSERT(pChild != NULL);
225 CPPUNIT_ASSERT(pVarNode != NULL);
226 CPPUNIT_ASSERT(pVarNode->
getData() == std::string(
"y"));
227 CPPUNIT_ASSERT(pChild->getSibling() == NULL);
228 pChild =
dynamic_cast<const CEvaluationNode*
>(pRoot->getChild()->getSibling());
232 CPPUNIT_ASSERT(pNumberNode != NULL);
233 CPPUNIT_ASSERT(fabs((pNumberNode->
getValue() - 2.0) / 2.0) < 1e-6);
235 CPPUNIT_ASSERT(pChild == NULL);
237 pFun = pFunDB->findFunction(
"function_5");
238 CPPUNIT_ASSERT(pFun != NULL);
240 CPPUNIT_ASSERT(pKinFun != NULL);
244 CPPUNIT_ASSERT(pFunParams != NULL);
245 CPPUNIT_ASSERT(pFunParams->
size() == 3);
246 pFunParam = (*pFunParams)[0];
247 CPPUNIT_ASSERT(pFunParam != NULL);
248 CPPUNIT_ASSERT(pFunParam->getObjectName() == std::string(
"a"));
249 pFunParam = (*pFunParams)[1];
250 CPPUNIT_ASSERT(pFunParam != NULL);
251 CPPUNIT_ASSERT(pFunParam->getObjectName() == std::string(
"b"));
252 pFunParam = (*pFunParams)[2];
253 CPPUNIT_ASSERT(pFunParam != NULL);
254 CPPUNIT_ASSERT(pFunParam->getObjectName() == std::string(
"c"));
256 CPPUNIT_ASSERT(pRoot != NULL);
260 CPPUNIT_ASSERT(pChild != NULL);
264 CPPUNIT_ASSERT(pCallNode != NULL);
265 CPPUNIT_ASSERT(pCallNode->
getData() == std::string(
"function_3"));
267 CPPUNIT_ASSERT(pChild != NULL);
271 CPPUNIT_ASSERT(pVarNode != NULL);
272 CPPUNIT_ASSERT(pVarNode->
getData() == std::string(
"c"));
274 CPPUNIT_ASSERT(pChild != NULL);
278 CPPUNIT_ASSERT(pVarNode != NULL);
279 CPPUNIT_ASSERT(pVarNode->
getData() == std::string(
"a"));
280 CPPUNIT_ASSERT(pChild->getSibling() == NULL);
281 pChild =
dynamic_cast<const CEvaluationNode*
>(pRoot->getChild()->getSibling());
285 CPPUNIT_ASSERT(pChild != NULL);
289 CPPUNIT_ASSERT(pCallNode != NULL);
290 CPPUNIT_ASSERT(pCallNode->
getData() == std::string(
"function_1"));
292 CPPUNIT_ASSERT(pChild != NULL);
296 CPPUNIT_ASSERT(pVarNode != NULL);
297 CPPUNIT_ASSERT(pVarNode->
getData() == std::string(
"b"));
298 CPPUNIT_ASSERT(pChild->getSibling() == NULL);
299 pChild =
dynamic_cast<const CEvaluationNode*
>(pRoot->getChild()->getSibling()->getChild()->getSibling());
300 CPPUNIT_ASSERT(pChild != NULL);
304 CPPUNIT_ASSERT(pNumberNode != NULL);
305 CPPUNIT_ASSERT(fabs((pNumberNode->
getValue() - 5.23) / 5.23) < 1e-6);
306 CPPUNIT_ASSERT(pChild->getSibling() == NULL);
308 pFun = pFunDB->findFunction(
"function_6");
309 CPPUNIT_ASSERT(pFun != NULL);
311 CPPUNIT_ASSERT(pKinFun != NULL);
315 CPPUNIT_ASSERT(pFunParams != NULL);
316 CPPUNIT_ASSERT(pFunParams->
size() == 3);
317 pFunParam = (*pFunParams)[0];
318 CPPUNIT_ASSERT(pFunParam != NULL);
319 CPPUNIT_ASSERT(pFunParam->getObjectName() == std::string(
"k1"));
320 pFunParam = (*pFunParams)[1];
321 CPPUNIT_ASSERT(pFunParam != NULL);
322 CPPUNIT_ASSERT(pFunParam->getObjectName() == std::string(
"k2"));
323 pFunParam = (*pFunParams)[2];
324 CPPUNIT_ASSERT(pFunParam != NULL);
325 CPPUNIT_ASSERT(pFunParam->getObjectName() == std::string(
"k3"));
327 CPPUNIT_ASSERT(pRoot != NULL);
331 CPPUNIT_ASSERT(pCallNode != NULL);
332 CPPUNIT_ASSERT(pCallNode->
getData() == std::string(
"function_5"));
334 CPPUNIT_ASSERT(pChild != NULL);
338 CPPUNIT_ASSERT(pVarNode != NULL);
339 CPPUNIT_ASSERT(pVarNode->
getData() == std::string(
"k1"));
341 CPPUNIT_ASSERT(pChild != NULL);
345 CPPUNIT_ASSERT(pVarNode != NULL);
346 CPPUNIT_ASSERT(pVarNode->
getData() == std::string(
"k2"));
348 CPPUNIT_ASSERT(pChild != NULL);
352 CPPUNIT_ASSERT(pVarNode != NULL);
353 CPPUNIT_ASSERT(pVarNode->
getData() == std::string(
"k3"));
354 CPPUNIT_ASSERT(pChild->getSibling() == NULL);
358 CPPUNIT_ASSERT(pCompartment != NULL);
363 CPPUNIT_ASSERT(pMetab != NULL);
364 CPPUNIT_ASSERT(pMetab->getObjectName() ==
"A");
367 CPPUNIT_ASSERT(pMetab != NULL);
368 CPPUNIT_ASSERT(pMetab->getObjectName() ==
"B");
372 CPPUNIT_ASSERT(pMetab != NULL);
373 CPPUNIT_ASSERT(pMetab->getObjectName() ==
"C");
377 CPPUNIT_ASSERT(pTree != NULL);
378 pRoot = pTree->getRoot();
379 CPPUNIT_ASSERT(pRoot != NULL);
380 CPPUNIT_ASSERT(dynamic_cast<const CEvaluationNodeCall*>(pRoot) != NULL);
381 CPPUNIT_ASSERT(dynamic_cast<const CEvaluationNodeCall*>(pRoot)->getData() ==
"function_5");
384 CPPUNIT_ASSERT(pMetab != NULL);
385 CPPUNIT_ASSERT(pMetab->getObjectName() ==
"D");
388 pTree = pMetab->getExpressionPtr();
389 CPPUNIT_ASSERT(pTree != NULL);
390 pRoot = pTree->getRoot();
391 CPPUNIT_ASSERT(pRoot != NULL);
392 CPPUNIT_ASSERT(dynamic_cast<const CEvaluationNodeCall*>(pRoot) != NULL);
393 CPPUNIT_ASSERT(dynamic_cast<const CEvaluationNodeCall*>(pRoot)->getData() ==
"function_2");
396 CPPUNIT_ASSERT(pMetab != NULL);
397 CPPUNIT_ASSERT(pMetab->getObjectName() ==
"E");
400 pTree = pMetab->getExpressionPtr();
401 CPPUNIT_ASSERT(pTree != NULL);
402 pRoot = pTree->getRoot();
403 CPPUNIT_ASSERT(pRoot != NULL);
404 CPPUNIT_ASSERT(dynamic_cast<const CEvaluationNodeCall*>(pRoot) != NULL);
405 CPPUNIT_ASSERT(dynamic_cast<const CEvaluationNodeCall*>(pRoot)->getData() ==
"function_4");
408 CPPUNIT_ASSERT(pMetab != NULL);
409 CPPUNIT_ASSERT(pMetab->getObjectName() ==
"F");
412 pTree = pMetab->getExpressionPtr();
413 CPPUNIT_ASSERT(pTree != NULL);
414 pRoot = pTree->getRoot();
415 CPPUNIT_ASSERT(pRoot != NULL);
416 CPPUNIT_ASSERT(dynamic_cast<const CEvaluationNodeCall*>(pRoot) != NULL);
417 CPPUNIT_ASSERT(dynamic_cast<const CEvaluationNodeCall*>(pRoot)->getData() ==
"function_6");
422 CPPUNIT_ASSERT(pModelValue != NULL);
423 CPPUNIT_ASSERT(pModelValue->getObjectName() ==
"K1");
426 pTree = pModelValue->getExpressionPtr();
427 CPPUNIT_ASSERT(pTree != NULL);
428 pRoot = pTree->getRoot();
429 CPPUNIT_ASSERT(pRoot != NULL);
430 CPPUNIT_ASSERT(dynamic_cast<const CEvaluationNodeCall*>(pRoot) != NULL);
431 CPPUNIT_ASSERT(dynamic_cast<const CEvaluationNodeCall*>(pRoot)->getData() ==
"function_1");
434 CPPUNIT_ASSERT(pModelValue != NULL);
435 CPPUNIT_ASSERT(pModelValue->getObjectName() ==
"K2");
439 CPPUNIT_ASSERT(pModelValue != NULL);
440 CPPUNIT_ASSERT(pModelValue->getObjectName() ==
"K3");
442 pTree = pModelValue->getExpressionPtr();
443 CPPUNIT_ASSERT(pTree != NULL);
444 pRoot = pTree->getRoot();
445 CPPUNIT_ASSERT(pRoot != NULL);
446 CPPUNIT_ASSERT(dynamic_cast<const CEvaluationNodeCall*>(pRoot) != NULL);
447 CPPUNIT_ASSERT(dynamic_cast<const CEvaluationNodeCall*>(pRoot)->getData() ==
"function_3");
452 CPPUNIT_ASSERT(pReaction != NULL);
453 CPPUNIT_ASSERT(pReaction->getChemEq().getSubstrates().size() == 1);
454 CPPUNIT_ASSERT(pReaction->getChemEq().getProducts().size() == 1);
455 CPPUNIT_ASSERT(pReaction->getChemEq().getModifiers().size() == 0);
456 CPPUNIT_ASSERT(pReaction->isReversible() ==
true);
458 CPPUNIT_ASSERT(pReaction->getParameters().size() == 1);
459 const CFunction* pFunction = pReaction->getFunction();
460 CPPUNIT_ASSERT(pFunction != NULL);
462 CPPUNIT_ASSERT(pFunction->getObjectName() ==
"Function for reaction1");
463 pRoot = pFunction->getRoot();
464 CPPUNIT_ASSERT(pRoot != NULL);
467 CPPUNIT_ASSERT(pReaction != NULL);
468 CPPUNIT_ASSERT(pReaction->getChemEq().getSubstrates().size() == 1);
469 CPPUNIT_ASSERT(pReaction->getChemEq().getProducts().size() == 1);
470 CPPUNIT_ASSERT(pReaction->getChemEq().getModifiers().size() == 0);
471 CPPUNIT_ASSERT(pReaction->isReversible() ==
true);
473 CPPUNIT_ASSERT(pReaction->getParameters().size() == 2);
474 pFunction = pReaction->getFunction();
475 CPPUNIT_ASSERT(pFunction != NULL);
477 CPPUNIT_ASSERT(pFunction->getObjectName() ==
"Function for reaction2");
478 pRoot = pFunction->getRoot();
479 CPPUNIT_ASSERT(pRoot != NULL);
482 CPPUNIT_ASSERT(pReaction != NULL);
483 CPPUNIT_ASSERT(pReaction->getChemEq().getSubstrates().size() == 1);
484 CPPUNIT_ASSERT(pReaction->getChemEq().getProducts().size() == 1);
485 CPPUNIT_ASSERT(pReaction->getChemEq().getModifiers().size() == 0);
486 CPPUNIT_ASSERT(pReaction->isReversible() ==
true);
488 CPPUNIT_ASSERT(pReaction->getParameters().size() == 1);
489 pFunction = pReaction->getFunction();
490 CPPUNIT_ASSERT(pFunction != NULL);
492 CPPUNIT_ASSERT(pFunction->getObjectName() ==
"Function for reaction3");
493 pRoot = pFunction->getRoot();
494 CPPUNIT_ASSERT(pRoot != NULL);
497 CPPUNIT_ASSERT(pReaction != NULL);
498 CPPUNIT_ASSERT(pReaction->getChemEq().getSubstrates().size() == 1);
499 CPPUNIT_ASSERT(pReaction->getChemEq().getProducts().size() == 1);
500 CPPUNIT_ASSERT(pReaction->getChemEq().getModifiers().size() == 0);
501 CPPUNIT_ASSERT(pReaction->isReversible() ==
true);
503 CPPUNIT_ASSERT(pReaction->getParameters().size() == 0);
504 pFunction = pReaction->getFunction();
505 CPPUNIT_ASSERT(pFunction != NULL);
507 CPPUNIT_ASSERT(pFunction->getObjectName() ==
"Function for reaction4");
508 pRoot = pFunction->getRoot();
509 CPPUNIT_ASSERT(pRoot != NULL);
512 CPPUNIT_ASSERT(pReaction != NULL);
513 CPPUNIT_ASSERT(pReaction->getChemEq().getSubstrates().size() == 1);
514 CPPUNIT_ASSERT(pReaction->getChemEq().getProducts().size() == 1);
515 CPPUNIT_ASSERT(pReaction->getChemEq().getModifiers().size() == 0);
516 CPPUNIT_ASSERT(pReaction->isReversible() ==
true);
518 CPPUNIT_ASSERT(pReaction->getParameters().size() == 2);
519 pFunction = pReaction->getFunction();
520 CPPUNIT_ASSERT(pFunction != NULL);
522 CPPUNIT_ASSERT(pFunction->getObjectName() ==
"Function for reaction5");
523 pRoot = pFunction->getRoot();
524 CPPUNIT_ASSERT(pRoot != NULL);
527 CPPUNIT_ASSERT(pReaction != NULL);
528 CPPUNIT_ASSERT(pReaction->getChemEq().getSubstrates().size() == 1);
529 CPPUNIT_ASSERT(pReaction->getChemEq().getProducts().size() == 1);
530 CPPUNIT_ASSERT(pReaction->getChemEq().getModifiers().size() == 0);
531 CPPUNIT_ASSERT(pReaction->isReversible() ==
true);
533 CPPUNIT_ASSERT(pReaction->getParameters().size() == 3);
534 pFunction = pReaction->getFunction();
535 CPPUNIT_ASSERT(pFunction != NULL);
537 CPPUNIT_ASSERT(pFunction->getObjectName() ==
"Function for reaction6");
538 pRoot = pFunction->getRoot();
539 CPPUNIT_ASSERT(pRoot != NULL);
543 "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n"
544 "<sbml xmlns=\"http://www.sbml.org/sbml/level2/version4\" level=\"2\" version=\"4\">\n"
545 " <model id=\"Model_1\" name=\"New Model\">\n"
547 " <body xmlns=\"http://www.w3.org/1999/xhtml\">\n"
548 " <p>Model with function call in kinetics and rules.</p>\n"
549 " <p>This is to check import of unordered function definitions as allowed in L2V4</p>\n"
552 " <listOfFunctionDefinitions>\n"
553 " <functionDefinition id=\"function_6\" name=\"function_6\">\n"
554 " <math xmlns=\"http://www.w3.org/1998/Math/MathML\">\n"
566 " <ci> function_5 </ci>\n"
573 " </functionDefinition>\n"
574 " <functionDefinition id=\"function_4\" name=\"function_4\">\n"
575 " <math xmlns=\"http://www.w3.org/1998/Math/MathML\">\n"
586 " <ci> function_2 </ci>\n"
594 " </functionDefinition>\n"
595 " <functionDefinition id=\"function_5\" name=\"function_5\">\n"
596 " <math xmlns=\"http://www.w3.org/1998/Math/MathML\">\n"
610 " <ci> function_3 </ci>\n"
617 " <ci> function_1 </ci>\n"
625 " </functionDefinition>\n"
626 " <functionDefinition id=\"function_2\" name=\"function_2\">\n"
627 " <math xmlns=\"http://www.w3.org/1998/Math/MathML\">\n"
642 " </functionDefinition>\n"
643 " <functionDefinition id=\"function_3\" name=\"function_3\">\n"
644 " <math xmlns=\"http://www.w3.org/1998/Math/MathML\">\n"
663 " </functionDefinition>\n"
664 " <functionDefinition id=\"function_1\" name=\"function_1\">\n"
665 " <math xmlns=\"http://www.w3.org/1998/Math/MathML\">\n"
677 " </functionDefinition>\n"
678 " </listOfFunctionDefinitions>\n"
679 " <listOfCompartments>\n"
680 " <compartment id=\"compartment_1\" name=\"compartment\" size=\"1\"/>\n"
681 " </listOfCompartments>\n"
683 " <species id=\"species_1\" name=\"A\" compartment=\"compartment_1\" initialConcentration=\"1\"/>\n"
684 " <species id=\"species_2\" name=\"B\" compartment=\"compartment_1\" initialConcentration=\"1\"/>\n"
685 " <species id=\"species_3\" name=\"C\" compartment=\"compartment_1\" initialConcentration=\"1\" constant=\"false\"/>\n"
686 " <species id=\"species_4\" name=\"D\" compartment=\"compartment_1\" initialConcentration=\"1\" constant=\"false\"/>\n"
687 " <species id=\"species_5\" name=\"E\" compartment=\"compartment_1\" initialConcentration=\"1\" constant=\"false\"/>\n"
688 " <species id=\"species_6\" name=\"F\" compartment=\"compartment_1\" initialConcentration=\"1\" constant=\"false\"/>\n"
689 " </listOfSpecies>\n"
690 " <listOfParameters>\n"
691 " <parameter id=\"parameter_1\" name=\"K1\" value=\"1.1\" constant=\"false\"/>\n"
692 " <parameter id=\"parameter_2\" name=\"K2\" value=\"1.2\"/>\n"
693 " <parameter id=\"parameter_3\" name=\"K3\" value=\"1.3\" constant=\"false\"/>\n"
694 " </listOfParameters>\n"
696 " <assignmentRule variable=\"parameter_1\">\n"
697 " <math xmlns=\"http://www.w3.org/1998/Math/MathML\">\n"
699 " <ci> function_1 </ci>\n"
703 " </assignmentRule>\n"
704 " <assignmentRule variable=\"parameter_3\">\n"
705 " <math xmlns=\"http://www.w3.org/1998/Math/MathML\">\n"
707 " <ci> function_3 </ci>\n"
709 " <ci> parameter_1 </ci>\n"
712 " </assignmentRule>\n"
713 " <assignmentRule variable=\"species_3\">\n"
714 " <math xmlns=\"http://www.w3.org/1998/Math/MathML\">\n"
716 " <ci> function_5 </ci>\n"
717 " <ci> parameter_1 </ci>\n"
722 " </assignmentRule>\n"
723 " <rateRule variable=\"species_4\">\n"
724 " <math xmlns=\"http://www.w3.org/1998/Math/MathML\">\n"
726 " <ci> function_2 </ci>\n"
727 " <ci> parameter_1 </ci>\n"
732 " <rateRule variable=\"species_5\">\n"
733 " <math xmlns=\"http://www.w3.org/1998/Math/MathML\">\n"
735 " <ci> function_4 </ci>\n"
737 " <ci> parameter_2 </ci>\n"
741 " <rateRule variable=\"species_6\">\n"
742 " <math xmlns=\"http://www.w3.org/1998/Math/MathML\">\n"
744 " <ci> function_6 </ci>\n"
745 " <ci> parameter_3 </ci>\n"
746 " <ci> parameter_1 </ci>\n"
752 " <listOfReactions>\n"
753 " <reaction id=\"reaction1\" reversible=\"true\">\n"
754 " <listOfReactants>\n"
755 " <speciesReference species=\"species_1\"/>\n"
756 " </listOfReactants>\n"
757 " <listOfProducts>\n"
758 " <speciesReference species=\"species_2\"/>\n"
759 " </listOfProducts>\n"
761 " <math xmlns=\"http://www.w3.org/1998/Math/MathML\">\n"
764 " <ci> compartment_1 </ci>\n"
766 " <ci> function_1 </ci>\n"
767 " <ci> parameter_1 </ci>\n"
773 " <reaction id=\"reaction2\" reversible=\"true\">\n"
774 " <listOfReactants>\n"
775 " <speciesReference species=\"species_1\"/>\n"
776 " </listOfReactants>\n"
777 " <listOfProducts>\n"
778 " <speciesReference species=\"species_2\"/>\n"
779 " </listOfProducts>\n"
781 " <math xmlns=\"http://www.w3.org/1998/Math/MathML\">\n"
784 " <ci> compartment_1 </ci>\n"
786 " <ci> function_2 </ci>\n"
787 " <ci> parameter_1 </ci>\n"
788 " <ci> parameter_2 </ci>\n"
794 " <reaction id=\"reaction3\" reversible=\"true\">\n"
795 " <listOfReactants>\n"
796 " <speciesReference species=\"species_1\"/>\n"
797 " </listOfReactants>\n"
798 " <listOfProducts>\n"
799 " <speciesReference species=\"species_2\"/>\n"
800 " </listOfProducts>\n"
802 " <math xmlns=\"http://www.w3.org/1998/Math/MathML\">\n"
805 " <ci> compartment_1 </ci>\n"
807 " <ci> function_3 </ci>\n"
808 " <ci> parameter_1 </ci>\n"
809 " <ci> species_2 </ci>\n"
815 " <reaction id=\"reaction4\" reversible=\"true\">\n"
816 " <listOfReactants>\n"
817 " <speciesReference species=\"species_1\"/>\n"
818 " </listOfReactants>\n"
819 " <listOfProducts>\n"
820 " <speciesReference species=\"species_2\"/>\n"
821 " </listOfProducts>\n"
823 " <math xmlns=\"http://www.w3.org/1998/Math/MathML\">\n"
826 " <ci> compartment_1 </ci>\n"
828 " <ci> function_4 </ci>\n"
829 " <ci> species_1 </ci>\n"
830 " <ci> species_2 </ci>\n"
836 " <reaction id=\"reaction5\" reversible=\"true\">\n"
837 " <listOfReactants>\n"
838 " <speciesReference species=\"species_1\"/>\n"
839 " </listOfReactants>\n"
840 " <listOfProducts>\n"
841 " <speciesReference species=\"species_2\"/>\n"
842 " </listOfProducts>\n"
844 " <math xmlns=\"http://www.w3.org/1998/Math/MathML\">\n"
847 " <ci> compartment_1 </ci>\n"
849 " <ci> function_5 </ci>\n"
850 " <ci> parameter_1 </ci>\n"
851 " <ci> parameter_3 </ci>\n"
852 " <ci> species_2 </ci>\n"
858 " <reaction id=\"reaction6\" reversible=\"true\">\n"
859 " <listOfReactants>\n"
860 " <speciesReference species=\"species_1\"/>\n"
861 " </listOfReactants>\n"
862 " <listOfProducts>\n"
863 " <speciesReference species=\"species_2\"/>\n"
864 " </listOfProducts>\n"
866 " <math xmlns=\"http://www.w3.org/1998/Math/MathML\">\n"
869 " <ci> compartment_1 </ci>\n"
871 " <ci> function_6 </ci>\n"
872 " <ci> parameter_1 </ci>\n"
873 " <ci> parameter_2 </ci>\n"
874 " <ci> parameter_3 </ci>\n"
880 " </listOfReactions>\n"
Header file of class CExpression.
static CCopasiDataModel * pCOPASIDATAMODEL
void test_l2v4_import_unordered_functions()
const CCopasiVector< CMetab > & getMetabolites() const
const CCopasiVectorN< CModelValue > & getModelValues() const
CModel::QuantityUnit getQuantityUnitEnum() const
virtual size_t size() const
const C_FLOAT64 & getValue() const
const Type & getType() const
static Type type(const Type &type)
virtual const Data & getData() const
static CFunctionDB * getFunctionList()
static CCopasiDataModel * addDatamodel()
CCopasiVectorNS< CCompartment > & getCompartments()
static Type subType(const Type &type)
CModel::TimeUnit getTimeUnitEnum() const
static const char * MODEL_STRING1
bool importSBMLFromString(const std::string &sbmlDocumentText, CProcessReport *pImportHandler=NULL, const bool &deleteOldData=true)
The class for handling a chemical kinetic function.
CCopasiVectorNS< CReaction > & getReactions()
static void init(int argc, char *argv[], const bool &withGui=false)
virtual const Data & getData() const
CModel::VolumeUnit getVolumeUnitEnum() const
CEvaluationNode * getRoot()
CFunctionParameters & getVariables()