END_TEST START_TEST (test_comp_deletion_metaid) { const char *name = "delMetaId"; fail_unless( !SBase_isSetMetaId(P) ); SBase_setMetaId(P, name); const char* getmetaid = SBase_getMetaId(P); fail_unless( !strcmp(getmetaid, name) ); fail_unless( SBase_isSetMetaId(P) ); if (getmetaid == name) { fail("SBase_setMetaId(...) did not make a copy of string."); } SBase_unsetMetaId(P); fail_unless( !SBase_isSetMetaId(P) ); if (SBase_getMetaId(P) != NULL) { fail("Deletion_unsetName(P) did not clear string."); } }
END_TEST START_TEST ( test_LineSegment_createFrom ) { Point* start = new Point(LN,1.1,-2.2,3.3); Point* end=new Point(LN,-4.4,5.5,-6.6); LineSegment_setStart(LS,start); LineSegment_setEnd(LS,end); LineSegment_t* ls=LineSegment_createFrom(LS); fail_unless( SBase_getTypeCode ((SBase_t*) ls) == SBML_LAYOUT_LINESEGMENT ); if(SBase_isSetMetaId((SBase_t*)LS)){ std::string c1=SBase_getMetaId((SBase_t*)LS); std::string c2=SBase_getMetaId((SBase_t*)ls); fail_unless( c1 == c2 ); } // c1=SBase_getNotes((SBase_t*)LS); // c2=SBase_getNotes((SBase_t*)ls); // // if(SBase_isSetNotes((SBase_t*)LS)) // { // fail_unless( strncmp(c1 , c2 ,strlen( c1 ) + 1 ) ); // } // else // { // fail_unless(!(c1 || c2)); // } // // c1=SBase_getAnnotation((SBase_t*)LS); // c2=SBase_getAnnotation((SBase_t*)ls); // // if(SBase_isSetAnnotation((SBase_t*)LS)) // { // fail_unless( strncmp(c1 , c2 ,strlen( c1 ) + 1) ); // } // else // { // fail_unless(!(c1 || c2)); // } Point_t *pos=LineSegment_getStart(ls); Point_t *POS=LineSegment_getStart(LS); fail_unless(pos != NULL); fail_unless(Point_getXOffset(pos) == Point_getXOffset(POS)); fail_unless(Point_getYOffset(pos) == Point_getYOffset(POS)); fail_unless(Point_getZOffset(pos) == Point_getZOffset(POS)); pos=LineSegment_getEnd(ls); POS=LineSegment_getEnd(LS); fail_unless(pos != NULL); fail_unless(Point_getXOffset(pos) == Point_getXOffset(POS)); fail_unless(Point_getYOffset(pos) == Point_getYOffset(POS)); fail_unless(Point_getZOffset(pos) == Point_getZOffset(POS)); Point_free(start); Point_free(end); LineSegment_free(ls); }
END_TEST START_TEST ( test_LineSegment_createFrom ) { Point_t* start=Point_createWithCoordinates(1.1,-2.2,3.3); Point_t* end=Point_createWithCoordinates(-4.4,5.5,-6.6); LineSegment_setStart(LS,start); LineSegment_setEnd(LS,end); LineSegment_setId(LS,"TestID"); LineSegment_t* ls=LineSegment_createFrom(LS); fail_unless( SBase_getTypeCode ((SBase_t*) ls) == SBML_LAYOUT_LINESEGMENT ); const char* c1=SBase_getMetaId((SBase_t*)LS); const char* c2=SBase_getMetaId((SBase_t*)ls); if(SBase_isSetMetaId((SBase_t*)LS)){ fail_unless( strncmp(c1 , c2 ,strlen( c1 )+1 ) ); } else { fail_unless(!(c1 || c2)); } // c1=SBase_getNotes((SBase_t*)LS); // c2=SBase_getNotes((SBase_t*)ls); // // if(SBase_isSetNotes((SBase_t*)LS)) // { // fail_unless( strncmp(c1 , c2 ,strlen( c1 ) + 1 ) ); // } // else // { // fail_unless(!(c1 || c2)); // } // // c1=SBase_getAnnotation((SBase_t*)LS); // c2=SBase_getAnnotation((SBase_t*)ls); // // if(SBase_isSetAnnotation((SBase_t*)LS)) // { // fail_unless( strncmp(c1 , c2 ,strlen( c1 ) + 1) ); // } // else // { // fail_unless(!(c1 || c2)); // } fail_unless( LineSegment_isSetId(ls) == LineSegment_isSetId(LS) ); if( LineSegment_isSetId(ls) ) { c1=LineSegment_getId(LS); c2=LineSegment_getId(ls); fail_unless( strncmp(c1 , c2 ,strlen( c1 ) + 1 ) == 0); } Point_t *pos=LineSegment_getStart(ls); Point_t *POS=LineSegment_getStart(LS); fail_unless(pos != NULL); fail_unless(Point_getXOffset(pos) == Point_getXOffset(POS)); fail_unless(Point_getYOffset(pos) == Point_getYOffset(POS)); fail_unless(Point_getZOffset(pos) == Point_getZOffset(POS)); pos=LineSegment_getEnd(ls); POS=LineSegment_getEnd(LS); fail_unless(pos != NULL); fail_unless(Point_getXOffset(pos) == Point_getXOffset(POS)); fail_unless(Point_getYOffset(pos) == Point_getYOffset(POS)); fail_unless(Point_getZOffset(pos) == Point_getZOffset(POS)); Point_free(start); Point_free(end); LineSegment_free(ls); }
END_TEST START_TEST ( test_CubicBezier_createFrom ) { Point_t* start= new (std::nothrow) Point(LN,1.1,-2.2,3.3); Point_t* base1= new (std::nothrow) Point(LN,-4.4,5.5,-6.6); Point_t* base2= new (std::nothrow) Point(LN,7.7,-8.8,9.9); Point_t* end= new (std::nothrow) Point(LN,-10.10,11.11,-12.12); CubicBezier_setStart(CB,start); CubicBezier_setBasePoint1(CB,base1); CubicBezier_setBasePoint2(CB,base2); CubicBezier_setEnd(CB,end); CubicBezier_t* cb=CubicBezier_createFrom(CB); fail_unless( cb->getPackageName() == "layout"); fail_unless( cb->getTypeCode() == SBML_LAYOUT_CUBICBEZIER); if(SBase_isSetMetaId((SBase_t*)CB)) { std::string c1=SBase_getMetaId((SBase_t*)CB); std::string c2=SBase_getMetaId((SBase_t*)cb); fail_unless( c1 == c2 ); } // c1=SBase_getNotes((SBase_t*)CB); // c2=SBase_getNotes((SBase_t*)cb); // if(SBase_isSetNotes((SBase_t*)CB)) // { // fail_unless( strncmp(c1 , c2 ,strlen( c1)+1 )==0 ); // } // else{ // fail_unless(!(c1 || c2)); // } // c1=SBase_getAnnotation((SBase_t*)CB); // c2=SBase_getAnnotation((SBase_t*)cb); // if(SBase_isSetAnnotation((SBase_t*)CB)) // { // fail_unless( strncmp(c1 , c2 ,strlen( c1)+1 )==0 ); // } // else{ // fail_unless(!(c1 || c2)); // } Point_t *pos=CubicBezier_getStart(cb); Point_t *POS=CubicBezier_getStart(CB); fail_unless(pos != NULL); fail_unless(Point_getXOffset(pos) == Point_getXOffset(POS)); fail_unless(Point_getYOffset(pos) == Point_getYOffset(POS)); fail_unless(Point_getZOffset(pos) == Point_getZOffset(POS)); pos=CubicBezier_getBasePoint1(cb); POS=CubicBezier_getBasePoint1(CB); fail_unless(pos != NULL); fail_unless(Point_getXOffset(pos) == Point_getXOffset(POS)); fail_unless(Point_getYOffset(pos) == Point_getYOffset(POS)); fail_unless(Point_getZOffset(pos) == Point_getZOffset(POS)); pos=CubicBezier_getBasePoint2(cb); POS=CubicBezier_getBasePoint2(CB); fail_unless(pos != NULL); fail_unless(Point_getXOffset(pos) == Point_getXOffset(POS)); fail_unless(Point_getYOffset(pos) == Point_getYOffset(POS)); fail_unless(Point_getZOffset(pos) == Point_getZOffset(POS)); pos=CubicBezier_getEnd(cb); POS=CubicBezier_getEnd(CB); fail_unless(pos != NULL); fail_unless(Point_getXOffset(pos) == Point_getXOffset(POS)); fail_unless(Point_getYOffset(pos) == Point_getYOffset(POS)); fail_unless(Point_getZOffset(pos) == Point_getZOffset(POS)); Point_free(start); Point_free(base1); Point_free(base2); Point_free(end); CubicBezier_free(cb); }
int main (int argc, char *argv[]) { SBMLDocument_t* d; Model_t* m; unsigned int errors, n; Reaction_t *r; if (argc != 3) { printf("\n" " usage: addingEvidenceCodes_1 <input-filename> <output-filename>\n" " Adds controlled vocabulary term to a reaction\n" "\n"); return 2; } d = readSBML(argv[1]); errors = SBMLDocument_getNumErrors(d); if (errors > 0) { printf("Read Error(s):\n"); SBMLDocument_printErrors(d, stdout); printf("Correct the above and re-run.\n"); } else { m = SBMLDocument_getModel(d); n = Model_getNumReactions(m); if (n <= 0) { printf( "Model has no reactions.\n Cannot add CV terms\n"); } else { CVTerm_t *cv1, *cv2; r = Model_getReaction(m, 0); /* check that the reaction has a metaid * no CVTerms will be added if there is no metaid to reference */ if (SBase_isSetMetaId((SBase_t*)r)) SBase_setMetaId((SBase_t*)r, "metaid_0000052"); cv1 = CVTerm_createWithQualifierType(BIOLOGICAL_QUALIFIER); CVTerm_setBiologicalQualifierType(cv1, BQB_IS_DESCRIBED_BY); CVTerm_addResource(cv1, "urn:miriam:obo.eco:ECO%3A0000183"); SBase_addCVTerm((SBase_t*)r, cv1); cv2 = CVTerm_createWithQualifierType(BIOLOGICAL_QUALIFIER); CVTerm_setBiologicalQualifierType(cv2, BQB_IS); CVTerm_addResource(cv2, "urn:miriam:kegg.reaction:R00756"); CVTerm_addResource(cv2, "urn:miriam:reactome:REACT_736"); SBase_addCVTerm((SBase_t*)r, cv2); writeSBML(d, argv[2]); } } SBMLDocument_free(d); return errors; }