END_TEST START_TEST (test_SBMLConvert_convertToL3_defaultUnits) { SBMLDocument_t *d = SBMLDocument_createWithLevelAndVersion(1, 2); Model_t *m = SBMLDocument_createModel(d); const char *sid = "C"; Compartment_t *c = Model_createCompartment(m); Compartment_setId ( c, sid ); Compartment_setSize ( c, 1.2 ); Compartment_setUnits( c, "volume"); fail_unless(Model_getNumUnitDefinitions(m) == 0); fail_unless( SBMLDocument_setLevelAndVersion(d, 3, 1) == 1, NULL); fail_unless(Model_getNumUnitDefinitions(m) == 2); UnitDefinition_t *ud = Model_getUnitDefinition(m, 0); fail_unless (ud != NULL); fail_unless (!strcmp(UnitDefinition_getId( ud), "volume")); fail_unless(UnitDefinition_getNumUnits(ud) == 1); Unit_t * u = UnitDefinition_getUnit(ud, 0); fail_unless(Unit_getKind(u) == UNIT_KIND_LITRE); fail_unless(Unit_getExponent(u) == 1); fail_unless(Unit_getMultiplier(u) == 1); fail_unless(Unit_getScale(u) == 0); ud = Model_getUnitDefinition(m, 1); fail_unless (ud != NULL); fail_unless (!strcmp(UnitDefinition_getId( ud), "time")); fail_unless(UnitDefinition_getNumUnits(ud) == 1); u = UnitDefinition_getUnit(ud, 0); fail_unless(Unit_getKind(u) == UNIT_KIND_SECOND); fail_unless(Unit_getExponent(u) == 1); fail_unless(Unit_getMultiplier(u) == 1); fail_unless(Unit_getScale(u) == 0); fail_unless(!strcmp(Model_getTimeUnits(m), "time")); SBMLDocument_free(d); }
END_TEST START_TEST (test_UnitDefinition_removeUnit) { Unit_t *o1, *o2, *o3; o1 = UnitDefinition_createUnit(UD); o2 = UnitDefinition_createUnit(UD); o3 = UnitDefinition_createUnit(UD); fail_unless( UnitDefinition_removeUnit(UD,0) == o1 ); fail_unless( UnitDefinition_getNumUnits(UD) == 2 ); fail_unless( UnitDefinition_removeUnit(UD,0) == o2 ); fail_unless( UnitDefinition_getNumUnits(UD) == 1 ); fail_unless( UnitDefinition_removeUnit(UD,0) == o3 ); fail_unless( UnitDefinition_getNumUnits(UD) == 0 ); Unit_free(o1); Unit_free(o2); Unit_free(o3); }
END_TEST START_TEST (test_UnitDefinition_addUnit) { Unit_t *u = Unit_create(2, 4); Unit_setKind(u, UNIT_KIND_MOLE); UnitDefinition_addUnit(UD, u); fail_unless( UnitDefinition_getNumUnits(UD) == 1 ); Unit_free(u); }
END_TEST START_TEST (test_UnitDefinition_createUnit) { UnitDefinition_t *m = UnitDefinition_create(2, 2); Unit_t *p = UnitDefinition_createUnit(m); fail_unless( UnitDefinition_getNumUnits(m) == 1); fail_unless( SBase_getLevel((SBase_t *) (p)) == 2 ); fail_unless( SBase_getVersion((SBase_t *) (p)) == 2 ); UnitDefinition_free(m); }
END_TEST START_TEST (test_UnitDefinition_addUnit4) { UnitDefinition_t *m = UnitDefinition_create(2, 2); Unit_t *p = NULL; int i = UnitDefinition_addUnit(m, p); fail_unless( i == LIBSBML_OPERATION_FAILED); fail_unless( UnitDefinition_getNumUnits(m) == 0); UnitDefinition_free(m); }
END_TEST //START_TEST (test_UnitDefinition_createWith) //{ // UnitDefinition_t *ud = UnitDefinition_createWith("mmls", ""); // // // fail_unless( SBase_getTypeCode ((SBase_t *) ud) == SBML_UNIT_DEFINITION ); // fail_unless( SBase_getMetaId ((SBase_t *) ud) == NULL ); // fail_unless( SBase_getNotes ((SBase_t *) ud) == NULL ); // fail_unless( SBase_getAnnotation((SBase_t *) ud) == NULL ); // // fail_unless( UnitDefinition_getName(ud) == NULL ); // // fail_unless( !strcmp(UnitDefinition_getId(ud), "mmls") ); // fail_unless(UnitDefinition_isSetId(ud)); // // fail_unless(UnitDefinition_getNumUnits(ud) == 0); // // UnitDefinition_free(ud); //} //END_TEST START_TEST (test_UnitDefinition_createWithName) { UnitDefinition_t *ud = UnitDefinition_create(2, 4); UnitDefinition_setName(ud, "mmol_per_liter_per_sec"); fail_unless( SBase_getTypeCode ((SBase_t *) ud) == SBML_UNIT_DEFINITION ); fail_unless( SBase_getMetaId ((SBase_t *) ud) == NULL ); fail_unless( SBase_getNotes ((SBase_t *) ud) == NULL ); fail_unless( SBase_getAnnotation((SBase_t *) ud) == NULL ); fail_unless( UnitDefinition_getId(ud) == NULL ); fail_unless( !strcmp(UnitDefinition_getName(ud), "mmol_per_liter_per_sec"), NULL ); fail_unless(UnitDefinition_isSetName(ud)); fail_unless(UnitDefinition_getNumUnits(ud) == 0); UnitDefinition_free(ud); }
END_TEST START_TEST (test_UnitDefinition_addUnit3) { UnitDefinition_t *m = UnitDefinition_create(2, 2); Unit_t *p = Unit_create(1, 2); Unit_setKind(p, UNIT_KIND_MOLE); int i = UnitDefinition_addUnit(m, p); fail_unless( i == LIBSBML_LEVEL_MISMATCH); fail_unless( UnitDefinition_getNumUnits(m) == 0); Unit_free(p); UnitDefinition_free(m); }
END_TEST START_TEST (test_UnitDefinition_getUnit) { Unit_t *mole = Unit_create(2, 4); Unit_t *litre = Unit_create(2, 4); Unit_t *second = Unit_create(2, 4); Unit_setKind( mole , UnitKind_forName("mole") ); Unit_setKind( litre , UnitKind_forName("litre") ); Unit_setKind( second, UnitKind_forName("second") ); Unit_setScale (mole , -3); Unit_setExponent(litre , -1); Unit_setExponent(second, -1); UnitDefinition_addUnit( UD, mole ); UnitDefinition_addUnit( UD, litre ); UnitDefinition_addUnit( UD, second ); Unit_free(mole); Unit_free(litre); Unit_free(second); fail_unless( UnitDefinition_getNumUnits(UD) == 3 ); mole = UnitDefinition_getUnit(UD, 0); litre = UnitDefinition_getUnit(UD, 1); second = UnitDefinition_getUnit(UD, 2); fail_unless( Unit_getKind(mole) == UNIT_KIND_MOLE ); fail_unless( Unit_getKind(litre) == UNIT_KIND_LITRE ); fail_unless( Unit_getKind(second) == UNIT_KIND_SECOND ); fail_unless( Unit_getScale(mole) == -3 ); fail_unless( Unit_getExponent(litre) == -1 ); fail_unless( Unit_getExponent(second) == -1 ); }
END_TEST START_TEST (test_UnitDefinition_addUnit1) { UnitDefinition_t *m = UnitDefinition_create(2, 2); Unit_t *p = Unit_create(2, 2); int i = UnitDefinition_addUnit(m, p); fail_unless( i == LIBSBML_INVALID_OBJECT); Unit_setKind(p, UNIT_KIND_MOLE); i = UnitDefinition_addUnit(m, p); fail_unless( i == LIBSBML_OPERATION_SUCCESS); fail_unless( UnitDefinition_getNumUnits(m) == 1); Unit_free(p); UnitDefinition_free(m); }
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 ); }