END_TEST START_TEST (test_Compartment_setUnits) { const char *units = "volume"; Compartment_setUnits(C, units); fail_unless( !strcmp(Compartment_getUnits(C), units) ); fail_unless( Compartment_isSetUnits(C) ); if (Compartment_getUnits(C) == units) { fail("Compartment_setUnits(...) did not make a copy of string."); } /* Reflexive case (pathological) */ Compartment_setUnits(C, Compartment_getUnits(C)); fail_unless( !strcmp(Compartment_getUnits(C), units) ); Compartment_setUnits(C, NULL); fail_unless( !Compartment_isSetUnits(C) ); if (Compartment_getUnits(C) != NULL) { fail("Compartment_setUnits(C, NULL) did not clear string."); } }
END_TEST START_TEST (test_L3_Compartment_units) { const char *units = "volume"; fail_unless( !Compartment_isSetUnits(C) ); Compartment_setUnits(C, units); fail_unless( !strcmp(Compartment_getUnits(C), units) ); fail_unless( Compartment_isSetUnits(C) ); if (Compartment_getUnits(C) == units) { fail("Compartment_setUnits(...) did not make a copy of string."); } Compartment_unsetUnits(C); fail_unless( !Compartment_isSetUnits(C) ); if (Compartment_getUnits(C) != NULL) { fail("Compartment_unsetUnits(C, NULL) did not clear string."); } }
END_TEST START_TEST (test_Compartment_setUnits3) { int i = Compartment_setUnits(C, NULL); fail_unless( i == LIBSBML_OPERATION_SUCCESS ); fail_unless( !Compartment_isSetUnits(C) ); }
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_Compartment_setUnits2) { int i = Compartment_setUnits(C, "litre"); fail_unless( i == LIBSBML_OPERATION_SUCCESS ); fail_unless( Compartment_isSetUnits(C) ); i = Compartment_unsetUnits(C); fail_unless( i == LIBSBML_OPERATION_SUCCESS ); fail_unless( !Compartment_isSetUnits(C) ); }
END_TEST START_TEST (test_Compartment_setUnits1) { int i = Compartment_setUnits(C, "1cell"); fail_unless( i == LIBSBML_INVALID_ATTRIBUTE_VALUE ); fail_unless( !Compartment_isSetUnits(C) ); i = Compartment_unsetUnits(C); fail_unless( i == LIBSBML_OPERATION_SUCCESS ); fail_unless( !Compartment_isSetUnits(C) ); }
END_TEST START_TEST (test_SBMLConvert_invalidLevelVersion) { SBMLDocument_t *d = SBMLDocument_createWithLevelAndVersion(2, 1); 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(SBMLDocument_setLevelAndVersion(d, 1, 3) == 0); fail_unless(SBMLDocument_setLevelAndVersion(d, 2, 5) == 0); fail_unless(SBMLDocument_setLevelAndVersion(d, 3, 2) == 0); fail_unless(SBMLDocument_setLevelAndVersion(d, 4, 1) == 0); }