END_TEST START_TEST (test_SBMLDocument_setModel) { SBMLDocument_t *d = SBMLDocument_createWithLevelAndVersion(2, 4); Model_t *m1 = Model_create(2, 4); Model_t *m2 = Model_create(2, 4); Model_t *mout; fail_unless(SBMLDocument_getModel(d) == NULL); int i = SBMLDocument_setModel(d, m1); fail_unless ( i == LIBSBML_OPERATION_SUCCESS ); mout = SBMLDocument_getModel(d); fail_unless(mout != NULL); fail_unless(mout != m1); /* Reflexive case (pathological) */ i = SBMLDocument_setModel(d, SBMLDocument_getModel(d)); fail_unless ( i == LIBSBML_OPERATION_SUCCESS ); mout = SBMLDocument_getModel(d); fail_unless(mout != NULL); fail_unless(mout != m1); i = SBMLDocument_setModel(d, m2); fail_unless ( i == LIBSBML_OPERATION_SUCCESS ); mout = SBMLDocument_getModel(d); fail_unless(mout != NULL); fail_unless(mout != m2); SBMLDocument_free(d); /* m1 is freed by SBMLDocument_setModel(d, m2); */ }
END_TEST START_TEST (test_SBMLDocument_setLevelAndVersion_Error) { SBMLDocument_t *d = SBMLDocument_create(); SBMLDocument_setLevelAndVersion(d, 2, 1); Model_t *m1 = Model_create(2, 1); /* add unitDefinition */ Unit_t * u = Unit_create(2, 1); Unit_setKind(u, UnitKind_forName("mole")); Unit_setOffset(u, 3.2); UnitDefinition_t *ud = UnitDefinition_create(2, 1); UnitDefinition_setId(ud, "ud"); UnitDefinition_addUnit(ud, u); Model_addUnitDefinition(m1, ud); SBMLDocument_setModel(d, m1); fail_unless(SBMLDocument_setLevelAndVersionStrict(d,2,2) == 0); fail_unless(SBMLDocument_setLevelAndVersionStrict(d,2,3) == 0); fail_unless(SBMLDocument_setLevelAndVersionStrict(d,1,2) == 0); fail_unless(SBMLDocument_setLevelAndVersionStrict(d,1,1) == 0); SBMLDocument_free(d); }
void printODEsToSBML(Model_t *ode, FILE *f) { SBMLDocument_t *d; char *model; d = SBMLDocument_create(); SBMLDocument_setModel(d, ode); model = writeSBMLToString(d); fprintf(f, "%s", model); free(model); }
static SBMLDocument_t * rsbml_build_doc(SEXP r_doc) { SBMLDocument_t *doc; doc = SBMLDocument_create(); SET_ATTR(SBMLDocument, doc, Level, level, INTEGER); SET_ATTR(SBMLDocument, doc, Version, ver, INTEGER); SBMLDocument_setModel(doc, rsbml_build_doc_model(GET_SLOT(r_doc, install("model")))); return doc; }
END_TEST START_TEST (test_SBMLDocument_setModel3) { SBMLDocument_t *d = SBMLDocument_createWithLevelAndVersion(2, 2); Model_t *m1 = Model_create(2, 2); int i = SBMLDocument_setModel(d, m1); fail_unless ( i == LIBSBML_OPERATION_SUCCESS); fail_unless (SBMLDocument_getModel(d) != 0); SBMLDocument_free(d); }
END_TEST START_TEST (test_SBMLDocument_setModel2) { SBMLDocument_t *d = SBMLDocument_createWithLevelAndVersion(2, 2); Model_t *m1 = Model_create(1, 2); int i = SBMLDocument_setModel(d, m1); fail_unless ( i == LIBSBML_LEVEL_MISMATCH); fail_unless (SBMLDocument_getModel(d) == 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); }