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_Reaction_compartment) { const char *name = "Cell"; Reaction_t * r = Reaction_create(3, 1); Reaction_setCompartment(r, name); fail_unless( !strcmp(Reaction_getCompartment(r), name) ); fail_unless( Reaction_isSetCompartment(r) ); if (Reaction_getCompartment(r) == name) { fail("Reaction_setCompartment(...) did not make a copy of string."); } /* Reflexive case (pathological) */ Reaction_setCompartment(r, Reaction_getCompartment(r)); fail_unless( !strcmp(Reaction_getCompartment(r), name) ); Reaction_unsetCompartment(r); fail_unless( !Reaction_isSetCompartment(r) ); if (Reaction_getCompartment(r) != NULL) { fail("Reaction_unsetCompartment(r) did not clear string."); } Reaction_free(r); }
void ReactionTest_setup (void) { R = Reaction_create(2, 4); if (R == NULL) { fail("Reaction_create() returned a NULL pointer."); } }
END_TEST START_TEST (test_Reaction_setFast2) { Reaction_t *R1 = Reaction_create(2, 4); int i = Reaction_unsetFast(R1); fail_unless( i == LIBSBML_OPERATION_SUCCESS ); fail_unless( Reaction_getFast(R1) == 0 ); fail_unless( !Reaction_isSetFast(R1)); }
END_TEST START_TEST (test_Reaction_createKineticLaw) { Reaction_t *r = Reaction_create(2, 2); KineticLaw_t *kl = Reaction_createKineticLaw(r); fail_unless( Reaction_isSetKineticLaw(r) == 1); fail_unless( SBase_getLevel((SBase_t *) (kl)) == 2 ); fail_unless( SBase_getVersion((SBase_t *) (kl)) == 2 ); Reaction_free(r); }
END_TEST START_TEST (test_Reaction_createModifier) { Reaction_t *m = Reaction_create(2, 2); SpeciesReference_t *p = Reaction_createModifier(m); fail_unless( Reaction_getNumModifiers(m) == 1); fail_unless( SBase_getLevel((SBase_t *) (p)) == 2 ); fail_unless( SBase_getVersion((SBase_t *) (p)) == 2 ); Reaction_free(m); }
END_TEST START_TEST (test_Reaction_addModifier3) { Reaction_t *m = Reaction_create(2, 2); SpeciesReference_t *p = NULL; int i = Reaction_addModifier(m, p); fail_unless( i == LIBSBML_OPERATION_FAILED); fail_unless( Reaction_getNumModifiers(m) == 0); Reaction_free(m); }
END_TEST START_TEST (test_Reaction_setName3) { Reaction_t *p = Reaction_create(2, 2); int i = Reaction_setName(p, NULL); fail_unless( i == LIBSBML_OPERATION_SUCCESS ); fail_unless( !Reaction_isSetName(p) ); Reaction_free(p); }
END_TEST START_TEST (test_Reaction_addModifier2) { Reaction_t *m = Reaction_create(2, 2); SpeciesReference_t *p = SpeciesReference_createModifier(2, 1); SpeciesReference_setSpecies(p, "k"); int i = Reaction_addModifier(m, p); fail_unless( i == LIBSBML_VERSION_MISMATCH); fail_unless( Reaction_getNumModifiers(m) == 0); SpeciesReference_free(p); Reaction_free(m); }
END_TEST START_TEST (test_Reaction_addProduct3) { Reaction_t *m = Reaction_create(2, 2); SpeciesReference_t *p = SpeciesReference_create(1, 2); SpeciesReference_setSpecies(p, "k"); int i = Reaction_addProduct(m, p); fail_unless( i == LIBSBML_LEVEL_MISMATCH); fail_unless( Reaction_getNumProducts(m) == 0); SpeciesReference_free(p); Reaction_free(m); }
static Reaction_t * rsbml_build_doc_reaction(SEXP r_reaction) { Reaction_t * reaction; SEXP kineticLaw = GET_SLOT(r_reaction, install("kineticLaw")); reaction = Reaction_create(); rsbml_build_doc_s_base((SBase_t *)reaction, r_reaction); SET_ATTR(Reaction, reaction, Id, id, STRING); SET_ATTR(Reaction, reaction, Name, name, STRING); ADD_LIST(Reaction, reaction, Reactant, reactants, species_reference); ADD_LIST(Reaction, reaction, Product, products, species_reference); ADD_LIST(Reaction, reaction, Modifier, modifiers, modifier_species_reference); if (GET_LENGTH(kineticLaw)) Reaction_setKineticLaw(reaction, rsbml_build_doc_kinetic_law(kineticLaw)); SET_ATTR(Reaction, reaction, Reversible, reversible, LOGICAL); SET_ATTR(Reaction, reaction, Fast, fast, LOGICAL); return reaction; }