END_TEST START_TEST (test_SpeciesReference_setId) { const char *species = "X0"; SpeciesReference_setId(SR, species); fail_unless( !strcmp(SpeciesReference_getId(SR), species) ); fail_unless( SpeciesReference_isSetId(SR) ); if (SpeciesReference_getId(SR) == species) { fail("SpeciesReference_setId(...) did not make a copy of string."); } /* Reflexive case (pathological) */ SpeciesReference_setId(SR, SpeciesReference_getId(SR)); fail_unless( !strcmp(SpeciesReference_getId(SR), species) ); SpeciesReference_setId(SR, NULL); fail_unless( !SpeciesReference_isSetId(SR) ); if (SpeciesReference_getId(SR) != NULL) { fail("SpeciesReference_setId(SR, NULL) did not clear string."); } }
END_TEST START_TEST (test_Reaction_addModifier1) { Reaction_t *m = Reaction_create(2, 2); SpeciesReference_t *p = SpeciesReference_createModifier(2, 2); SpeciesReference_t *p1 = SpeciesReference_createModifier(2, 2); SpeciesReference_setSpecies(p1, "k"); SpeciesReference_setId(p1, "k1"); int i = Reaction_addModifier(m, p); fail_unless( i == LIBSBML_INVALID_OBJECT); SpeciesReference_setSpecies(p, "k"); SpeciesReference_setId(p, "k1"); i = Reaction_addModifier(m, p); fail_unless( i == LIBSBML_OPERATION_SUCCESS); fail_unless( Reaction_getNumModifiers(m) == 1); i = Reaction_addModifier(m, p1); fail_unless( i == LIBSBML_DUPLICATE_OBJECT_ID); fail_unless( Reaction_getNumModifiers(m) == 1); SpeciesReference_free(p); SpeciesReference_free(p1); Reaction_free(m); }
END_TEST START_TEST (test_SpeciesReference_setId4) { int i = SpeciesReference_setId(sr, "cell"); fail_unless( i == LIBSBML_OPERATION_SUCCESS ); fail_unless( SpeciesReference_isSetId(sr) ); fail_unless( !strcmp(SpeciesReference_getId(sr), "cell" )); i = SpeciesReference_setId(sr, NULL); fail_unless( i == LIBSBML_OPERATION_SUCCESS ); fail_unless( !SpeciesReference_isSetId(sr) ); }
END_TEST START_TEST (test_SpeciesReference_setId2) { int i = SpeciesReference_setId(sr, "1cell"); fail_unless( i == LIBSBML_INVALID_ATTRIBUTE_VALUE ); fail_unless( !SpeciesReference_isSetId(sr) ); }
END_TEST START_TEST (test_L3_SpeciesReference_id) { const char *id = "mitochondria"; fail_unless( !SpeciesReference_isSetId(SR) ); SpeciesReference_setId(SR, id); fail_unless( !strcmp(SpeciesReference_getId(SR), id) ); fail_unless( SpeciesReference_isSetId(SR) ); if (SpeciesReference_getId(SR) == id) { fail("SpeciesReference_setId(...) did not make a copy of string."); } }
END_TEST START_TEST (test_SpeciesReference_setId3) { SpeciesReference_t *c = SpeciesReference_create(2, 1); int i = SpeciesReference_setId(c, "cell"); /* this is going to give different results dependenet on whether * layout is enabled but the test code */ #ifdef USE_LAYOUT fail_unless( i == LIBSBML_OPERATION_SUCCESS ); fail_unless( SpeciesReference_isSetId(c) ); #else fail_unless( i == LIBSBML_UNEXPECTED_ATTRIBUTE ); fail_unless( !SpeciesReference_isSetId(c) ); #endif SpeciesReference_free(c); }