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_SBMLDocument_setLevelAndVersion) { SBMLDocument_t *d = SBMLDocument_createWithLevelAndVersion(2, 2); Model_t *m1 = Model_create(2, 2); SBMLDocument_setModel(d, m1); fail_unless(SBMLDocument_setLevelAndVersionNonStrict(d,2,3) == 1); fail_unless(SBMLDocument_setLevelAndVersionNonStrict(d,2,1) == 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_SBMLConvert_addModifiersToReaction) { SBMLDocument_t *d = SBMLDocument_createWithLevelAndVersion(1, 2); Model_t *m = SBMLDocument_createModel(d); Reaction_t *r = Model_createReaction(m); KineticLaw_t *kl = Reaction_createKineticLaw(r); KineticLaw_setFormula(kl, "k1*S1*S2*S3*S4*S5"); SpeciesReference_t *ssr1; SpeciesReference_t *ssr2; Species_t *s1 = Model_createSpecies( m ); Species_setId( s1, "S1" ); Species_t *s2 = Model_createSpecies( m ); Species_setId( s2, "S2"); Species_t *s3 = Model_createSpecies( m ); Species_setId( s3, "S3"); Species_t *s4 = Model_createSpecies( m ); Species_setId( s4, "S4"); Species_t *s5 = Model_createSpecies( m ); Species_setId( s5, "S5"); SpeciesReference_t *sr1 = Reaction_createReactant( r ); SpeciesReference_t *sr2 = Reaction_createReactant( r ); SpeciesReference_t *sr3 = Reaction_createProduct ( r ); SpeciesReference_setSpecies(sr1, "S1"); SpeciesReference_setSpecies(sr2, "S2"); SpeciesReference_setSpecies(sr3, "S5"); fail_unless( Reaction_getNumModifiers(r) == 0, NULL ); fail_unless( SBMLDocument_setLevelAndVersionNonStrict(d, 2, 1) == 1, NULL ); fail_unless( SBMLDocument_getLevel (d) == 2, NULL ); fail_unless( SBMLDocument_getVersion(d) == 1, NULL ); fail_unless( Reaction_getNumModifiers(Model_getReaction(m, 0)) == 2, NULL ); ssr1 = (SpeciesReference_t *) Reaction_getModifier(Model_getReaction(m, 0), 0); ssr2 = (SpeciesReference_t *) Reaction_getModifier(Model_getReaction(m, 0), 1); fail_unless( !strcmp(SpeciesReference_getSpecies(ssr1), "S3"), NULL ); fail_unless( !strcmp(SpeciesReference_getSpecies(ssr2), "S4"), NULL ); SBMLDocument_free(d); }
END_TEST START_TEST (test_SBMLConvert_convertToL1_SBMLDocument) { SBMLDocument_t *d = SBMLDocument_createWithLevelAndVersion(2, 1); fail_unless( SBMLDocument_setLevelAndVersionNonStrict(d, 1, 2) == 1, NULL); fail_unless( SBMLDocument_getLevel (d) == 1, NULL ); fail_unless( SBMLDocument_getVersion(d) == 2, NULL ); SBMLDocument_free(d); }
BEGIN_C_DECLS START_TEST (test_SBMLConvert_convertToL2_SBMLDocument) { SBMLDocument_t *d = SBMLDocument_createWithLevelAndVersion(1, 2); fail_unless( SBMLDocument_setLevelAndVersionNonStrict(d, 2, 1) == 1, NULL ); fail_unless( SBMLDocument_getLevel (d) == 2, NULL ); fail_unless( SBMLDocument_getVersion(d) == 1, NULL ); fail_unless( SBMLDocument_setLevelAndVersionNonStrict(d, 2, 2) == 1, NULL ); fail_unless( SBMLDocument_getLevel (d) == 2, NULL ); fail_unless( SBMLDocument_getVersion(d) == 2, NULL ); fail_unless( SBMLDocument_setLevelAndVersionNonStrict(d, 2, 3) == 1, NULL ); fail_unless( SBMLDocument_getLevel (d) == 2, NULL ); fail_unless( SBMLDocument_getVersion(d) == 3, NULL ); SBMLDocument_free(d); }
END_TEST START_TEST (test_SBMLConvert_convertToL3_event) { SBMLDocument_t *d = SBMLDocument_createWithLevelAndVersion(2, 2); Model_t *m = SBMLDocument_createModel(d); Event_t *e = Model_createEvent(m); Event_t *e1; fail_unless( SBMLDocument_setLevelAndVersionNonStrict(d, 3, 1) == 1, NULL); e1 = Model_getEvent(m, 0); fail_unless(Event_hasRequiredAttributes(e1) == 1); SBMLDocument_free(d); }
END_TEST START_TEST (test_SBMLConvert_convertToL3_reaction) { SBMLDocument_t *d = SBMLDocument_createWithLevelAndVersion(2, 2); Model_t *m = SBMLDocument_createModel(d); const char *sid = "C"; Reaction_t *r = Model_createReaction(m); Reaction_setId ( r, sid ); fail_unless( SBMLDocument_setLevelAndVersionNonStrict(d, 3, 1) == 1, NULL); Reaction_t *r1 = Model_getReaction(m, 0); fail_unless(Reaction_hasRequiredAttributes(r1) == 1); SBMLDocument_free(d); }
END_TEST START_TEST (test_SBMLConvert_convertToL3_stoichiometryMath) { SBMLDocument_t *d = SBMLDocument_createWithLevelAndVersion(2, 1); 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"); StoichiometryMath_t *sm = SpeciesReference_createStoichiometryMath(sr); ASTNode_t * ast = SBML_parseFormula("c*2"); StoichiometryMath_setMath(sm, ast); fail_unless(Model_getNumRules(m) == 0); fail_unless(SpeciesReference_isSetId(sr) == 0); fail_unless( SBMLDocument_setLevelAndVersionNonStrict(d, 3, 1) == 1); m = SBMLDocument_getModel(d); r = Model_getReaction(m, 0); sr = Reaction_getReactant(r, 0); fail_unless(Model_getNumRules(m) == 1); fail_unless(SpeciesReference_isSetId(sr) == 1); Rule_t *rule = Model_getRule(m, 0); fail_unless( strcmp(SpeciesReference_getId(sr), Rule_getVariable(rule)) == 0 ); SBMLDocument_free(d); }
END_TEST START_TEST (test_SBMLConvert_convertToL3_trigger) { SBMLDocument_t *d = SBMLDocument_createWithLevelAndVersion(2, 2); Model_t *m = SBMLDocument_createModel(d); Event_t *e = Model_createEvent(m); Trigger_t *t = Event_createTrigger(e); Trigger_t *t1; fail_unless( SBMLDocument_setLevelAndVersionNonStrict(d, 3, 1) == 1, NULL); t1 = Event_getTrigger(Model_getEvent(m, 0)); fail_unless(Trigger_hasRequiredAttributes(t1) == 1); SBMLDocument_free(d); }
END_TEST START_TEST (test_SBMLConvert_convertToL3_product) { SBMLDocument_t *d = SBMLDocument_createWithLevelAndVersion(2, 2); Model_t *m = SBMLDocument_createModel(d); Reaction_t *r = Model_createReaction(m); SpeciesReference_t *sr = Reaction_createProduct(r); SpeciesReference_t *sr1; SpeciesReference_setSpecies ( sr, "s" ); fail_unless( SBMLDocument_setLevelAndVersionNonStrict(d, 3, 1) == 1, NULL); sr1 = Reaction_getProduct(Model_getReaction(m, 0), 0); fail_unless(SpeciesReference_hasRequiredAttributes(sr1) == 1); SBMLDocument_free(d); }
END_TEST START_TEST (test_SBMLConvert_convertFromL3_priority) { SBMLDocument_t *d = SBMLDocument_createWithLevelAndVersion(3, 1); Model_t *m = SBMLDocument_createModel(d); Event_t * e = Model_createEvent(m); Priority_t * p = Event_createPriority(e); fail_unless(SBMLDocument_setLevelAndVersionNonStrict(d, 1, 1) == 0); fail_unless(SBMLDocument_setLevelAndVersionNonStrict(d, 1, 2) == 0); fail_unless(SBMLDocument_setLevelAndVersionNonStrict(d, 2, 1) == 1); fail_unless(SBMLDocument_setLevelAndVersionNonStrict(d, 2, 2) == 1); fail_unless(SBMLDocument_setLevelAndVersionNonStrict(d, 2, 3) == 1); fail_unless(SBMLDocument_setLevelAndVersionNonStrict(d, 2, 4) == 1); fail_unless(SBMLDocument_setLevelAndVersionNonStrict(d, 3, 1) == 1); }
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_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_unit) { SBMLDocument_t *d = SBMLDocument_createWithLevelAndVersion(2, 2); Model_t *m = SBMLDocument_createModel(d); const char *sid = "C"; UnitDefinition_t *ud = Model_createUnitDefinition(m); UnitDefinition_setId ( ud, sid ); Unit_t *u = UnitDefinition_createUnit(ud); Unit_setKind(u, UNIT_KIND_MOLE); fail_unless( SBMLDocument_setLevelAndVersionNonStrict(d, 3, 1) == 1, NULL); Unit_t *u1 = UnitDefinition_getUnit(Model_getUnitDefinition(m, 0), 0); fail_unless(Unit_hasRequiredAttributes(u1) == 1); SBMLDocument_free(d); }
END_TEST START_TEST (test_SBMLConvert_convertToL3_compartment) { SBMLDocument_t *d = SBMLDocument_createWithLevelAndVersion(2, 2); Model_t *m = SBMLDocument_createModel(d); const char *sid = "C"; Compartment_t *c = Model_createCompartment(m); Compartment_t *c1; Compartment_setId ( c, sid ); fail_unless( SBMLDocument_setLevelAndVersionNonStrict(d, 3, 1) == 1, NULL); c1 = Model_getCompartment(m, 0); fail_unless(Compartment_hasRequiredAttributes(c1) == 1); SBMLDocument_free(d); }
END_TEST START_TEST (test_SBMLConvert_convertFromL3_initialValue) { SBMLDocument_t *d = SBMLDocument_createWithLevelAndVersion(3, 1); Model_t *m = SBMLDocument_createModel(d); Event_t * e = Model_createEvent(m); Trigger_t * t = Event_createTrigger(e); Trigger_setInitialValue(t, 0); fail_unless(SBMLDocument_setLevelAndVersionNonStrict(d, 1, 1) == 0); fail_unless(SBMLDocument_setLevelAndVersionNonStrict(d, 1, 2) == 0); fail_unless(SBMLDocument_setLevelAndVersionNonStrict(d, 2, 1) == 0); fail_unless(SBMLDocument_setLevelAndVersionNonStrict(d, 2, 2) == 0); fail_unless(SBMLDocument_setLevelAndVersionNonStrict(d, 2, 3) == 0); fail_unless(SBMLDocument_setLevelAndVersionNonStrict(d, 2, 4) == 0); fail_unless(SBMLDocument_setLevelAndVersionNonStrict(d, 3, 1) == 1); }
END_TEST START_TEST (test_SBMLConvert_convertToL3_species) { SBMLDocument_t *d = SBMLDocument_createWithLevelAndVersion(2, 2); Model_t *m = SBMLDocument_createModel(d); const char *sid = "C"; Species_t *s = Model_createSpecies(m); Species_t *s1; Species_setId ( s, sid ); Species_setCompartment( s, "comp"); fail_unless( SBMLDocument_setLevelAndVersionNonStrict(d, 3, 1) == 1, NULL); s1 = Model_getSpecies(m, 0); fail_unless(Species_hasRequiredAttributes(s1) == 1); SBMLDocument_free(d); }
END_TEST START_TEST (test_SBMLConvert_convertFromL3_modelUnits) { UnitDefinition_t *ud; SBMLDocument_t *d = SBMLDocument_createWithLevelAndVersion(3, 1); Model_t *m = SBMLDocument_createModel(d); Model_setVolumeUnits(m, "litre"); fail_unless(Model_getNumUnitDefinitions(m) == 0); fail_unless(SBMLDocument_setLevelAndVersionNonStrict(d, 1, 2) == 1); m = SBMLDocument_getModel(d); fail_unless(Model_getNumUnitDefinitions(m) == 1); ud = Model_getUnitDefinition(m, 0); fail_unless(!strcmp(UnitDefinition_getId(ud), "volume")); fail_unless(UnitDefinition_getNumUnits(ud) == 1); fail_unless(Unit_getKind(UnitDefinition_getUnit(ud, 0)) == UNIT_KIND_LITRE ); }