END_TEST START_TEST (test_KineticLaw_getParameterById) { Parameter_t *k1 = Parameter_create(2, 4); Parameter_t *k2 = Parameter_create(2, 4); Parameter_setId(k1, "k1"); Parameter_setId(k2, "k2"); Parameter_setValue(k1, 3.14); Parameter_setValue(k2, 2.72); KineticLaw_addParameter(kl, k1); KineticLaw_addParameter(kl, k2); Parameter_free(k1); Parameter_free(k2); fail_unless( KineticLaw_getNumParameters(kl) == 2 ); k1 = KineticLaw_getParameterById(kl, "k1"); k2 = KineticLaw_getParameterById(kl, "k2"); fail_unless( !strcmp(Parameter_getId(k1), "k1") ); fail_unless( !strcmp(Parameter_getId(k2), "k2") ); fail_unless( Parameter_getValue(k1) == 3.14 ); fail_unless( Parameter_getValue(k2) == 2.72 ); }
END_TEST START_TEST (test_Parameter_setId) { char *id = "Km1"; Parameter_setId(P, id); fail_unless( !strcmp(Parameter_getId(P), id) ); fail_unless( Parameter_isSetId(P) ); if (Parameter_getId(P) == id) { fail("Parameter_setId(...) did not make a copy of string."); } /* Reflexive case (pathological) */ Parameter_setId(P, Parameter_getId(P)); fail_unless( !strcmp(Parameter_getId(P), id) ); Parameter_setId(P, NULL); fail_unless( !Parameter_isSetId(P) ); if (Parameter_getId(P) != NULL) { fail("Parameter_setId(P, NULL) did not clear string."); } }
END_TEST START_TEST (test_SBMLDocument_setLevelAndVersion_UnitsError) { SBMLDocument_t *d = SBMLDocument_create(); SBMLDocument_setLevelAndVersionNonStrict(d, 2, 4); Model_t *m1 = SBMLDocument_createModel(d); Compartment_t *c = Model_createCompartment(m1); Compartment_setId(c, "c"); Parameter_t *p = Model_createParameter(m1); Parameter_setId(p, "p"); Parameter_setUnits(p, "mole"); Rule_t * r = Model_createAssignmentRule(m1); Rule_setVariable(r, "c"); Rule_setFormula(r, "p*p"); fail_unless(SBMLDocument_setLevelAndVersionNonStrict(d,2,2) == 1); fail_unless(SBMLDocument_setLevelAndVersionNonStrict(d,2,3) == 1); fail_unless(SBMLDocument_setLevelAndVersionNonStrict(d,1,2) == 1); fail_unless(SBMLDocument_setLevelAndVersionNonStrict(d,1,1) == 0); SBMLDocument_free(d); }
END_TEST START_TEST (test_Parameter_setId2) { int i = Parameter_setId(P, "cell"); fail_unless( i == LIBSBML_OPERATION_SUCCESS ); fail_unless( Parameter_isSetId(P) ); fail_unless( !strcmp(Parameter_getId(P), "cell" )); i = Parameter_setId(P, NULL); fail_unless( i == LIBSBML_OPERATION_SUCCESS ); fail_unless( !Parameter_isSetId(P) ); }
END_TEST START_TEST (test_L3_KineticLaw_addParameter1) { KineticLaw_t *kl = KineticLaw_create(3, 1); Parameter_t *p = Parameter_create(3, 1); int i = KineticLaw_addParameter(KL, p); fail_unless( i == LIBSBML_INVALID_OBJECT); Parameter_setId(p, "p"); i = KineticLaw_addParameter(KL, p); fail_unless( i == LIBSBML_OPERATION_SUCCESS); fail_unless( KineticLaw_getNumParameters(KL) == 1); fail_unless( KineticLaw_getNumLocalParameters(KL) == 1); fail_unless( KineticLaw_getNumParameters(kl) == 0); fail_unless( KineticLaw_getNumLocalParameters(kl) == 0); i = KineticLaw_addParameter(kl, p); fail_unless( i == LIBSBML_OPERATION_SUCCESS); fail_unless( KineticLaw_getNumParameters(KL) == 1); fail_unless( KineticLaw_getNumLocalParameters(KL) == 1); fail_unless( KineticLaw_getNumParameters(kl) == 1); fail_unless( KineticLaw_getNumLocalParameters(kl) == 1); Parameter_free(p); KineticLaw_free(kl); }
END_TEST START_TEST (test_KineticLaw_addParameter) { Parameter_t * p = Parameter_create(2, 4); Parameter_setId(p, "p"); KineticLaw_addParameter(kl, p); fail_unless( KineticLaw_getNumParameters(kl) == 1 ); Parameter_free(p); }
END_TEST START_TEST (test_SBMLConvertStrict_convertL1ParamRule) { SBMLDocument_t *d = SBMLDocument_createWithLevelAndVersion(1, 2); Model_t * m = SBMLDocument_createModel(d); /* create a compartment */ Compartment_t * c = Model_createCompartment(m); Compartment_setId(c, "c"); /* create a parameter */ Parameter_t * p = Model_createParameter(m); Parameter_setId(p, "p"); Parameter_t * p1 = Model_createParameter(m); Parameter_setId(p1, "p1"); /* create a math element */ ASTNode_t *math = SBML_parseFormula("p"); /* create an assignment rule */ Rule_t *ar = Model_createAssignmentRule(m); Rule_setVariable(ar, "p1"); Rule_setMath(ar, math); Rule_setUnits(ar, "mole"); fail_unless( SBMLDocument_setLevelAndVersionStrict(d, 2, 1) == 1 ); fail_unless( SBMLDocument_getLevel (d) == 2, NULL ); fail_unless( SBMLDocument_getVersion(d) == 1, NULL ); Rule_t * r1 = Model_getRule(SBMLDocument_getModel(d), 0); fail_unless (Rule_getUnits(r1) == NULL ); SBMLDocument_free(d); }
END_TEST START_TEST (test_KineticLaw_addParameter3) { KineticLaw_t *kl = KineticLaw_create(2, 2); Parameter_t *p = Parameter_create(1, 2); Parameter_setId(p, "p"); int i = KineticLaw_addParameter(kl, p); fail_unless( i == LIBSBML_LEVEL_MISMATCH); fail_unless( KineticLaw_getNumParameters(kl) == 0); Parameter_free(p); KineticLaw_free(kl); }
END_TEST START_TEST (test_L3_Parameter_hasRequiredAttributes ) { Parameter_t *p = Parameter_create (3, 1); fail_unless ( !Parameter_hasRequiredAttributes(p)); Parameter_setId(p, "id"); fail_unless ( !Parameter_hasRequiredAttributes(p)); Parameter_setConstant(p, 0); fail_unless ( Parameter_hasRequiredAttributes(p)); Parameter_free(p); }
END_TEST START_TEST (test_L3_Parameter_id) { char *id = "mitochondria"; fail_unless( !Parameter_isSetId(P) ); Parameter_setId(P, id); fail_unless( !strcmp(Parameter_getId(P), id) ); fail_unless( Parameter_isSetId(P) ); if (Parameter_getId(P) == id) { fail("Parameter_setId(...) did not make a copy of string."); } }
END_TEST START_TEST (test_SBMLConvert_convertToL3_parameter) { SBMLDocument_t *d = SBMLDocument_createWithLevelAndVersion(2, 2); Model_t *m = SBMLDocument_createModel(d); const char *sid = "C"; Parameter_t *p = Model_createParameter(m); Parameter_t *p1; Parameter_setId ( p, sid ); fail_unless( SBMLDocument_setLevelAndVersionNonStrict(d, 3, 1) == 1, NULL); p1 = Model_getParameter(m, 0); fail_unless(Parameter_hasRequiredAttributes(p1) == 1); SBMLDocument_free(d); }
END_TEST START_TEST (test_SBMLConvert_convertToL3_localParameters) { SBMLDocument_t *d = SBMLDocument_createWithLevelAndVersion(1, 2); Model_t *m = SBMLDocument_createModel(d); Compartment_t *c = Model_createCompartment(m); Compartment_setId ( c, "c" ); Species_t *s = Model_createSpecies(m); Species_setId(s, "s"); Species_setCompartment(s, "c"); Reaction_t * r = Model_createReaction(m); SpeciesReference_t *sr = Reaction_createReactant(r); SpeciesReference_setSpecies(sr, "s"); KineticLaw_t *kl = Reaction_createKineticLaw(r); KineticLaw_setFormula(kl, "s*k"); Parameter_t *p = KineticLaw_createParameter(kl); Parameter_setId(p, "k"); fail_unless(KineticLaw_getNumLocalParameters(kl) == 0); fail_unless( SBMLDocument_setLevelAndVersionNonStrict(d, 3, 1) == 1 ); m = SBMLDocument_getModel(d); r = Model_getReaction(m,0); kl = Reaction_getKineticLaw(r); fail_unless(KineticLaw_getNumLocalParameters(kl) == 1); LocalParameter_t *lp = KineticLaw_getLocalParameter(kl, 0); SBMLDocument_free(d); }
END_TEST START_TEST (test_KineticLaw_removeParameter) { Parameter_t *o1, *o2, *o3; o1 = KineticLaw_createParameter(kl); o2 = KineticLaw_createParameter(kl); o3 = KineticLaw_createParameter(kl); Parameter_setId(o3,"test"); fail_unless( KineticLaw_removeParameter(kl,0) == o1 ); fail_unless( KineticLaw_getNumParameters(kl) == 2 ); fail_unless( KineticLaw_removeParameter(kl,0) == o2 ); fail_unless( KineticLaw_getNumParameters(kl) == 1 ); fail_unless( KineticLaw_removeParameterById(kl,"test") == o3 ); fail_unless( KineticLaw_getNumParameters(kl) == 0 ); Parameter_free(o1); Parameter_free(o2); Parameter_free(o3); }
END_TEST START_TEST (test_SBMLConvert_convertFromL3_conversionFactor) { SBMLDocument_t *d = SBMLDocument_createWithLevelAndVersion(3, 1); Model_t *m = SBMLDocument_createModel(d); const char *sid = "P"; Model_setConversionFactor(m, sid); Parameter_t *c = Model_createParameter(m); Parameter_setId ( c, sid ); Parameter_setConstant( c, 1); fail_unless(SBMLDocument_setLevelAndVersion(d, 1, 1) == 0); fail_unless(SBMLDocument_setLevelAndVersion(d, 1, 2) == 0); fail_unless(SBMLDocument_setLevelAndVersion(d, 2, 1) == 0); fail_unless(SBMLDocument_setLevelAndVersion(d, 2, 2) == 0); fail_unless(SBMLDocument_setLevelAndVersion(d, 2, 3) == 0); fail_unless(SBMLDocument_setLevelAndVersion(d, 2, 4) == 0); fail_unless(SBMLDocument_setLevelAndVersion(d, 3, 1) == 1); }