diff --git a/src/sbml/conversion/ExpressionAnalyser.cpp b/src/sbml/conversion/ExpressionAnalyser.cpp index 14e12976f..f9e21a3de 100644 --- a/src/sbml/conversion/ExpressionAnalyser.cpp +++ b/src/sbml/conversion/ExpressionAnalyser.cpp @@ -245,7 +245,7 @@ void ExpressionAnalyser::identifyHiddenSpeciesWithinExpressions() } } } - substituteNodes(); + //substituteNodes(); } void ExpressionAnalyser::substituteParameters(SubstitutionValues_t* exp) @@ -691,7 +691,7 @@ void ExpressionAnalyser::orderExpressions() } void -ExpressionAnalyser::detectHiddenSpecies() +ExpressionAnalyser::detectHiddenSpecies(bool testing) { mExpressions.clear(); @@ -703,6 +703,10 @@ ExpressionAnalyser::detectHiddenSpecies() //} orderExpressions(); identifyHiddenSpeciesWithinExpressions(); + if (!testing) + { + substituteNodes(); + } } /* @@ -766,8 +770,9 @@ void ExpressionAnalyser::substituteNodes() for (unsigned int i = 0; i < mExpressions.size(); i++) { SubstitutionValues_t* exp = mExpressions.at(i); - replaceExpressionInNodeWithNode(exp->current, exp->z_expression, getODE(exp->odeIndex)); //getODEFor(exp->current); + replaceExpressionInNodeWithNode(getODE(exp->odeIndex), exp->current, exp->z_expression); //getODEFor(exp->current); cout << "node: " << SBML_formulaToL3String(getODE(exp->odeIndex)) << endl; + addParametersAndRateRules(exp); } } @@ -776,6 +781,7 @@ void ExpressionAnalyser::addParametersAndRateRules(SubstitutionValues_t* exp) { if (exp->z_value.empty()) return; + if (mHiddenSpecies == NULL) mHiddenSpecies = new List(); //for (unsigned int i = 0; i < mExpressions.size(); i++) //{ // SubstitutionValues_t *exp = mExpressions.at(i); @@ -947,6 +953,14 @@ ExpressionAnalyser::replaceExpressionWithNewParameter(ASTNode* ode, Substitution } } +unsigned int ExpressionAnalyser::getNumHiddenNodes() +{ + if (mHiddenNodes == NULL) + return 0; + else + return mHiddenNodes->getSize(); +} + /* * Have we already created a parameter for this expression diff --git a/src/sbml/conversion/ExpressionAnalyser.h b/src/sbml/conversion/ExpressionAnalyser.h index 06dad87ef..d01c3d81c 100644 --- a/src/sbml/conversion/ExpressionAnalyser.h +++ b/src/sbml/conversion/ExpressionAnalyser.h @@ -155,13 +155,16 @@ class LIBSBML_EXTERN ExpressionAnalyser */ unsigned int getNumHiddenSpecies(); + unsigned int getNumHiddenNodes(); + + // need a function to get hidden species by index // TODO /** * Function to work through all the expressions and detect hidden species */ - void detectHiddenSpecies(); + void detectHiddenSpecies(bool testing = false); /** * Function to create a blank substitution value @@ -407,7 +410,6 @@ class LIBSBML_EXTERN ExpressionAnalyser void replaceExpressionWithNewParameter(ASTNode* ode, SubstitutionValues_t* exp); - // member variables populated during analysis pairODEs mODEs; diff --git a/src/sbml/conversion/SBMLRateRuleConverter.cpp b/src/sbml/conversion/SBMLRateRuleConverter.cpp index 23ea143f6..c70a2f1bb 100644 --- a/src/sbml/conversion/SBMLRateRuleConverter.cpp +++ b/src/sbml/conversion/SBMLRateRuleConverter.cpp @@ -881,6 +881,7 @@ SBMLRateRuleConverter::populateODEinfo() ea->detectHiddenSpecies(); + // add all hidden species to the model for (unsigned int hs=0; hs < ea->getNumHiddenSpecies(); hs++) { diff --git a/src/sbml/conversion/test/TestExpressionAnalyser.cpp b/src/sbml/conversion/test/TestExpressionAnalyser.cpp index 0194366f9..78a8a8c60 100644 --- a/src/sbml/conversion/test/TestExpressionAnalyser.cpp +++ b/src/sbml/conversion/test/TestExpressionAnalyser.cpp @@ -677,7 +677,7 @@ START_TEST(test_analyse_replace) fail_unless(analyser->getNumExpressions() == 0); - analyser->detectHiddenSpecies(); + analyser->detectHiddenSpecies(true); fail_unless(analyser->getNumExpressions() == 1); SubstitutionValues_t* value = analyser->getExpression(0); @@ -695,7 +695,7 @@ START_TEST(test_analyse_replace) fail_unless(value->odeIndex == 0); fail_unless(util_isNaN(value->k_real_value)); - fail_unless(analyser->getNumHiddenSpecies() == 1); + fail_unless(analyser->getNumHiddenNodes() == 1); delete analyser; } END_TEST @@ -716,7 +716,7 @@ START_TEST(test_analyse_same_expression_replace) fail_unless(analyser->getNumExpressions() == 0); - analyser->detectHiddenSpecies(); + analyser->detectHiddenSpecies(true); fail_unless(analyser->getNumExpressions() == 1); SubstitutionValues_t* value = analyser->getExpression(0); @@ -733,7 +733,7 @@ START_TEST(test_analyse_same_expression_replace) fail_unless(formulas_equal("newVar1", value->z_expression)); fail_unless(value->odeIndex == 0); fail_unless(util_isNaN(value->k_real_value)); - fail_unless(analyser->getNumHiddenSpecies() == 1); + fail_unless(analyser->getNumHiddenNodes() == 1); delete analyser; } @@ -756,7 +756,7 @@ START_TEST(test_analyse_different_expression_replace) fail_unless(analyser->getNumExpressions() == 0); - analyser->detectHiddenSpecies(); + analyser->detectHiddenSpecies(true); fail_unless(analyser->getNumExpressions() == 2); SubstitutionValues_t* value = analyser->getExpression(0); @@ -788,7 +788,7 @@ START_TEST(test_analyse_different_expression_replace) fail_unless(formulas_equal("newVar2", value1->z_expression)); fail_unless(value1->odeIndex == 1); fail_unless(util_isNaN(value1->k_real_value)); - fail_unless(analyser->getNumHiddenSpecies() == 2); + fail_unless(analyser->getNumHiddenNodes() == 2); delete analyser; } @@ -804,7 +804,7 @@ START_TEST(test_analyse_1_replace) fail_unless(analyser->getNumExpressions() == 0); - analyser->detectHiddenSpecies(); + analyser->detectHiddenSpecies(true); fail_unless(analyser->getNumExpressions() == 1); SubstitutionValues_t* value = analyser->getExpression(0); @@ -821,7 +821,7 @@ START_TEST(test_analyse_1_replace) fail_unless(formulas_equal("newVar1 + v", value->z_expression)); fail_unless(value->odeIndex == 0); fail_unless(util_isNaN(value->k_real_value)); - fail_unless(analyser->getNumHiddenSpecies() == 1); + fail_unless(analyser->getNumHiddenNodes() == 1); delete analyser; } @@ -837,7 +837,7 @@ START_TEST(test_analyse_2_replace) fail_unless(analyser->getNumExpressions() == 0); - analyser->detectHiddenSpecies(); + analyser->detectHiddenSpecies(true); fail_unless(analyser->getNumExpressions() == 1); SubstitutionValues_t* value = analyser->getExpression(0); @@ -854,7 +854,7 @@ START_TEST(test_analyse_2_replace) fail_unless(formulas_equal("newVar1 + w", value->z_expression)); fail_unless(value->odeIndex == 0); fail_unless(util_isNaN(value->k_real_value)); - fail_unless(analyser->getNumHiddenSpecies() == 1); + fail_unless(analyser->getNumHiddenNodes() == 1); delete analyser; } @@ -870,7 +870,7 @@ START_TEST(test_analyse_3_replace) fail_unless(analyser->getNumExpressions() == 0); - analyser->detectHiddenSpecies(); + analyser->detectHiddenSpecies(true); fail_unless(analyser->getNumExpressions() == 1); SubstitutionValues_t* value = analyser->getExpression(0); @@ -887,7 +887,7 @@ START_TEST(test_analyse_3_replace) fail_unless(formulas_equal("newVar1", value->z_expression)); fail_unless(value->odeIndex == 0); fail_unless(util_isNaN(value->k_real_value)); - fail_unless(analyser->getNumHiddenSpecies() == 1); + fail_unless(analyser->getNumHiddenNodes() == 1); delete analyser; } @@ -903,7 +903,7 @@ START_TEST(test_analyse_4_replace) fail_unless(analyser->getNumExpressions() == 0); - analyser->detectHiddenSpecies(); + analyser->detectHiddenSpecies(true); fail_unless(analyser->getNumExpressions() == 1); SubstitutionValues_t* value = analyser->getExpression(0); @@ -920,7 +920,7 @@ START_TEST(test_analyse_4_replace) fail_unless(formulas_equal("newVar1 + v", value->z_expression)); fail_unless(value->odeIndex == 0); fail_unless(util_isNaN(value->k_real_value)); - fail_unless(analyser->getNumHiddenSpecies() == 1); + fail_unless(analyser->getNumHiddenNodes() == 1); delete analyser; } @@ -939,7 +939,7 @@ START_TEST(test_analyse_1_different_replace) fail_unless(analyser->getNumExpressions() == 0); - analyser->detectHiddenSpecies(); + analyser->detectHiddenSpecies(true); fail_unless(analyser->getNumExpressions() == 2); SubstitutionValues_t* value = analyser->getExpression(0); @@ -971,7 +971,7 @@ START_TEST(test_analyse_1_different_replace) fail_unless(formulas_equal("newVar2 + v", value1->z_expression)); fail_unless(value1->odeIndex == 1); fail_unless(util_isNaN(value1->k_real_value)); - fail_unless(analyser->getNumHiddenSpecies() == 2); + fail_unless(analyser->getNumHiddenNodes() == 2); delete analyser; } @@ -990,7 +990,7 @@ START_TEST(test_analyse_1_different_replace_1) fail_unless(analyser->getNumExpressions() == 0); - analyser->detectHiddenSpecies(); + analyser->detectHiddenSpecies(true); fail_unless(analyser->getNumExpressions() == 2); SubstitutionValues_t* value = analyser->getExpression(0); @@ -1022,7 +1022,7 @@ START_TEST(test_analyse_1_different_replace_1) fail_unless(formulas_equal("newVar1 + v", value1->z_expression)); fail_unless(value1->odeIndex == 1); fail_unless(util_isNaN(value1->k_real_value)); - fail_unless(analyser->getNumHiddenSpecies() == 1); + fail_unless(analyser->getNumHiddenNodes() == 1); delete analyser; } @@ -1041,7 +1041,7 @@ START_TEST(test_analyse_1_different_replace_2) fail_unless(analyser->getNumExpressions() == 0); - analyser->detectHiddenSpecies(); + analyser->detectHiddenSpecies(true); fail_unless(analyser->getNumExpressions() == 2); SubstitutionValues_t* value = analyser->getExpression(0); @@ -1069,7 +1069,7 @@ START_TEST(test_analyse_1_different_replace_2) fail_unless(formulas_equal("newVar2 + v", value1->z_expression)); fail_unless(value1->odeIndex == 1); fail_unless(util_isNaN(value1->k_real_value)); - fail_unless(analyser->getNumHiddenSpecies() == 2); + fail_unless(analyser->getNumHiddenNodes() == 2); delete analyser; } @@ -1088,7 +1088,7 @@ START_TEST(test_analyse_1_different_replace_3) fail_unless(analyser->getNumExpressions() == 0); - analyser->detectHiddenSpecies(); + analyser->detectHiddenSpecies(true); fail_unless(analyser->getNumExpressions() == 2); SubstitutionValues_t* value = analyser->getExpression(0); @@ -1119,7 +1119,7 @@ START_TEST(test_analyse_1_different_replace_3) fail_unless(formulas_equal("newVar1 + w", value1->z_expression)); fail_unless(value1->odeIndex == 1); fail_unless(util_isNaN(value1->k_real_value)); - fail_unless(analyser->getNumHiddenSpecies() == 1); + fail_unless(analyser->getNumHiddenNodes() == 1); delete analyser; } @@ -1138,7 +1138,7 @@ START_TEST(test_analyse_1_different_replace_4) fail_unless(analyser->getNumExpressions() == 0); - analyser->detectHiddenSpecies(); + analyser->detectHiddenSpecies(true); fail_unless(analyser->getNumExpressions() == 2); SubstitutionValues_t* value = analyser->getExpression(0); @@ -1169,7 +1169,7 @@ START_TEST(test_analyse_1_different_replace_4) fail_unless(formulas_equal("newVar2 + w", value1->z_expression)); fail_unless(value1->odeIndex == 1); fail_unless(util_isNaN(value1->k_real_value)); - fail_unless(analyser->getNumHiddenSpecies() == 2); + fail_unless(analyser->getNumHiddenNodes() == 2); delete analyser; } @@ -1192,7 +1192,7 @@ START_TEST(test_analyse_1_different_replace_5) fail_unless(analyser->getNumExpressions() == 0); - analyser->detectHiddenSpecies(); + analyser->detectHiddenSpecies(true); fail_unless(analyser->getNumExpressions() == 3); SubstitutionValues_t* value = analyser->getExpression(0); @@ -1231,7 +1231,7 @@ START_TEST(test_analyse_1_different_replace_5) fail_unless(formulas_equal("newVar1 + v", value1->z_expression)); fail_unless(value1->odeIndex == 1); fail_unless(util_isNaN(value1->k_real_value)); - fail_unless(analyser->getNumHiddenSpecies() == 2); + fail_unless(analyser->getNumHiddenNodes() == 2); delete analyser; } @@ -1254,7 +1254,7 @@ START_TEST(test_analyse_1_different_replace_6) fail_unless(analyser->getNumExpressions() == 0); - analyser->detectHiddenSpecies(); + analyser->detectHiddenSpecies(true); fail_unless(analyser->getNumExpressions() == 3); SubstitutionValues_t* value = analyser->getExpression(0); @@ -1293,7 +1293,7 @@ START_TEST(test_analyse_1_different_replace_6) fail_unless(formulas_equal("newVar1 + v", value1->z_expression)); fail_unless(value1->odeIndex == 2); fail_unless(util_isNaN(value1->k_real_value)); - fail_unless(analyser->getNumHiddenSpecies() == 2); + fail_unless(analyser->getNumHiddenNodes() == 2); delete analyser; } @@ -1312,7 +1312,7 @@ START_TEST(test_analyse_1_two_terms_replace) fail_unless(analyser->getNumExpressions() == 0); - analyser->detectHiddenSpecies(); + analyser->detectHiddenSpecies(true); fail_unless(analyser->getNumExpressions() == 2); SubstitutionValues_t* value = analyser->getExpression(0); @@ -1345,7 +1345,7 @@ START_TEST(test_analyse_1_two_terms_replace) fail_unless(value1->odeIndex == 0); fail_unless(util_isNaN(value1->k_real_value)); - fail_unless(analyser->getNumHiddenSpecies() == 2); + fail_unless(analyser->getNumHiddenNodes() == 2); delete analyser; } @@ -1364,7 +1364,7 @@ START_TEST(test_analyse_2_replace_1) fail_unless(analyser->getNumExpressions() == 0); - analyser->detectHiddenSpecies(); + analyser->detectHiddenSpecies(true); fail_unless(analyser->getNumExpressions() == 2); SubstitutionValues_t* value = analyser->getExpression(0); @@ -1395,7 +1395,7 @@ START_TEST(test_analyse_2_replace_1) fail_unless(formulas_equal("newVar2 + w", value1->z_expression)); fail_unless(value1->odeIndex == 1); fail_unless(util_isNaN(value1->k_real_value)); - fail_unless(analyser->getNumHiddenSpecies() == 2); + fail_unless(analyser->getNumHiddenNodes() == 2); delete analyser; } @@ -1418,7 +1418,7 @@ START_TEST(test_analyse_2_replace_2) fail_unless(analyser->getNumExpressions() == 0); - analyser->detectHiddenSpecies(); + analyser->detectHiddenSpecies(true); fail_unless(analyser->getNumExpressions() == 3); SubstitutionValues_t* value = analyser->getExpression(1); @@ -1462,7 +1462,7 @@ START_TEST(test_analyse_2_replace_2) fail_unless(value2->odeIndex == 2); fail_unless(util_isNaN(value2->k_real_value)); - fail_unless(analyser->getNumHiddenSpecies() == 2); + fail_unless(analyser->getNumHiddenNodes() == 2); delete analyser; } @@ -1483,7 +1483,7 @@ START_TEST(test_analyse_3_replace_1) fail_unless(analyser->getNumExpressions() == 0); - analyser->detectHiddenSpecies(); + analyser->detectHiddenSpecies(true); fail_unless(analyser->getNumExpressions() == 2); SubstitutionValues_t* value = analyser->getExpression(0); @@ -1508,7 +1508,7 @@ START_TEST(test_analyse_3_replace_1) fail_unless(value1->odeIndex == 1); fail_unless(util_isNaN(value1->k_real_value)); - fail_unless(analyser->getNumHiddenSpecies() == 2); + fail_unless(analyser->getNumHiddenNodes() == 2); delete analyser; } @@ -1527,7 +1527,7 @@ START_TEST(test_analyse_4_replace_1) fail_unless(analyser->getNumExpressions() == 0); - analyser->detectHiddenSpecies(); + analyser->detectHiddenSpecies(true); fail_unless(analyser->getNumExpressions() == 2); SubstitutionValues_t* value = analyser->getExpression(0); @@ -1552,7 +1552,7 @@ START_TEST(test_analyse_4_replace_1) fail_unless(value1->odeIndex == 0); fail_unless(util_isNaN(value1->k_real_value)); - fail_unless(analyser->getNumHiddenSpecies() == 1); + fail_unless(analyser->getNumHiddenNodes() == 1); delete analyser; } @@ -1572,7 +1572,7 @@ START_TEST(test_analyse_4_replace_2) fail_unless(analyser->getNumExpressions() == 0); - analyser->detectHiddenSpecies(); + analyser->detectHiddenSpecies(true); fail_unless(analyser->getNumExpressions() == 2); SubstitutionValues_t* value = analyser->getExpression(0); @@ -1597,7 +1597,7 @@ START_TEST(test_analyse_4_replace_2) fail_unless(value1->odeIndex == 0); fail_unless(util_isNaN(value1->k_real_value)); - fail_unless(analyser->getNumHiddenSpecies() == 2); + fail_unless(analyser->getNumHiddenNodes() == 2); delete analyser; } @@ -1616,7 +1616,7 @@ START_TEST(test_analyse_4_replace_3) fail_unless(analyser->getNumExpressions() == 0); - analyser->detectHiddenSpecies(); + analyser->detectHiddenSpecies(true); fail_unless(analyser->getNumExpressions() == 2); SubstitutionValues_t* value = analyser->getExpression(0); @@ -1641,7 +1641,7 @@ START_TEST(test_analyse_4_replace_3) fail_unless(value1->odeIndex == 1); fail_unless(util_isNaN(value1->k_real_value)); - fail_unless(analyser->getNumHiddenSpecies() == 2); + fail_unless(analyser->getNumHiddenNodes() == 2); delete analyser; } @@ -1661,7 +1661,7 @@ START_TEST(test_analyse_4_replace_4) fail_unless(analyser->getNumExpressions() == 0); - analyser->detectHiddenSpecies(); + analyser->detectHiddenSpecies(true); fail_unless(analyser->getNumExpressions() == 2); SubstitutionValues_t* value = analyser->getExpression(0); @@ -1686,7 +1686,7 @@ START_TEST(test_analyse_4_replace_4) fail_unless(value1->odeIndex == 1); fail_unless(util_isNaN(value1->k_real_value)); - fail_unless(analyser->getNumHiddenSpecies() == 2); + fail_unless(analyser->getNumHiddenNodes() == 2); delete analyser; } @@ -1709,7 +1709,7 @@ START_TEST(test_analyse_4_replace_5) fail_unless(analyser->getNumExpressions() == 0); - analyser->detectHiddenSpecies(); + analyser->detectHiddenSpecies(true); fail_unless(analyser->getNumExpressions() == 3); SubstitutionValues_t* value = analyser->getExpression(1); @@ -1746,7 +1746,7 @@ START_TEST(test_analyse_4_replace_5) fail_unless(value2->odeIndex == 2); fail_unless(util_isNaN(value2->k_real_value)); - fail_unless(analyser->getNumHiddenSpecies() == 2); + fail_unless(analyser->getNumHiddenNodes() == 2); delete analyser; } @@ -1769,7 +1769,7 @@ START_TEST(test_analyse_4_replace_6) fail_unless(analyser->getNumExpressions() == 0); - analyser->detectHiddenSpecies(); + analyser->detectHiddenSpecies(true); fail_unless(analyser->getNumExpressions() == 3); SubstitutionValues_t* value = analyser->getExpression(1); @@ -1806,7 +1806,7 @@ START_TEST(test_analyse_4_replace_6) fail_unless(value2->odeIndex == 2); fail_unless(util_isNaN(value2->k_real_value)); - fail_unless(analyser->getNumHiddenSpecies() == 2); + fail_unless(analyser->getNumHiddenNodes() == 2); delete analyser; } @@ -1830,7 +1830,7 @@ START_TEST(test_analyse_4_replace_7) fail_unless(analyser->getNumExpressions() == 0); - analyser->detectHiddenSpecies(); + analyser->detectHiddenSpecies(true); fail_unless(analyser->getNumExpressions() == 3); SubstitutionValues_t* value = analyser->getExpression(0); @@ -1867,7 +1867,7 @@ START_TEST(test_analyse_4_replace_7) fail_unless(value2->odeIndex == 2); fail_unless(util_isNaN(value2->k_real_value)); - fail_unless(analyser->getNumHiddenSpecies() == 2); + fail_unless(analyser->getNumHiddenNodes() == 2); delete analyser; } @@ -1938,4 +1938,4 @@ create_suite_TestExpressionAnalyser (void) } END_C_DECLS - \ No newline at end of file + \ No newline at end of file diff --git a/src/sbml/conversion/test/TestSBMLRateRuleConverter.cpp b/src/sbml/conversion/test/TestSBMLRateRuleConverter.cpp index cb6a64ef2..9de32c0e5 100644 --- a/src/sbml/conversion/test/TestSBMLRateRuleConverter.cpp +++ b/src/sbml/conversion/test/TestSBMLRateRuleConverter.cpp @@ -1041,7 +1041,7 @@ END_TEST Suite * create_suite_TestSBMLRateRuleConverter (void) { - bool testing = true; + bool testing = false; Suite *suite = suite_create("SBMLRateRuleConverter"); TCase *tcase = tcase_create("SBMLRateRuleConverter"); if (testing) @@ -1051,26 +1051,26 @@ Suite *suite = suite_create("SBMLRateRuleConverter"); else { tcase_add_test(tcase, test_conversion_raterule_converter_invalid); - //tcase_add_test(tcase, test_conversion_raterule_converter); - //tcase_add_test(tcase, test_conversion_raterule_converter_non_standard_stoichiometry); - //tcase_add_test(tcase, test_crash_converter); - //tcase_add_test(tcase, test_conversion_raterule_converter_hidden_variable); - //tcase_add_test(tcase, test_model); - //tcase_add_test(tcase, test_model1); // ??? not sure these are accurate - //tcase_add_test(tcase, test_model2); - //tcase_add_test(tcase, test_model3); - //tcase_add_test(tcase, test_model4); - //tcase_add_test(tcase, test_model5); // not working again - ////tcase_add_test(tcase, test_model6); // not working - //tcase_add_test(tcase, test_model_valid_01); // fixed - //tcase_add_test(tcase, test_model_valid_02); - //tcase_add_test(tcase, test_model_valid_04); - //tcase_add_test(tcase, test_model_valid_05); // have changed the output model but I think it was only valid if compartment volume is one - //tcase_add_test(tcase, test_model_valid_51); - //tcase_add_test(tcase, test_model_valid_52); - //tcase_add_test(tcase, test_model_valid_53); // - //tcase_add_test(tcase, test_model_valid_54); // - //tcase_add_test(tcase, test_model_valid_55); // + tcase_add_test(tcase, test_conversion_raterule_converter); + tcase_add_test(tcase, test_conversion_raterule_converter_non_standard_stoichiometry); + tcase_add_test(tcase, test_crash_converter); + tcase_add_test(tcase, test_conversion_raterule_converter_hidden_variable); + tcase_add_test(tcase, test_model); + tcase_add_test(tcase, test_model1); // ??? not sure these are accurate + tcase_add_test(tcase, test_model2); + tcase_add_test(tcase, test_model3); + tcase_add_test(tcase, test_model4); + tcase_add_test(tcase, test_model5); // not working again + //tcase_add_test(tcase, test_model6); // not working + tcase_add_test(tcase, test_model_valid_01); // fixed + tcase_add_test(tcase, test_model_valid_02); + tcase_add_test(tcase, test_model_valid_04); + tcase_add_test(tcase, test_model_valid_05); // have changed the output model but I think it was only valid if compartment volume is one + tcase_add_test(tcase, test_model_valid_51); + tcase_add_test(tcase, test_model_valid_52); + tcase_add_test(tcase, test_model_valid_53); // + tcase_add_test(tcase, test_model_valid_54); // + tcase_add_test(tcase, test_model_valid_55); // } suite_add_tcase(suite, tcase);