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_setStart_NULL ) { LineSegment_setStart(LS,NULL); Point_t *pos=LineSegment_getStart(LS); fail_unless(pos != NULL); fail_unless(Point_getXOffset(pos) == 0.0); fail_unless(Point_getYOffset(pos) == 0.0); fail_unless(Point_getZOffset(pos) == 0.0); }
END_TEST START_TEST (test_LineSegment_setStart){ Point_t *pos=Point_createWithCoordinates(1.1,-2.2,3.3); LineSegment_setStart(LS,pos); Point_t* POS=LineSegment_getStart(LS); 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(pos); }
static LineSegment_t * rsbml_build_doc_line_segment(SEXP r_line_segment) { LineSegment_t * line_segment; if (inherits(r_line_segment, "CubicBezier")) { line_segment = (LineSegment_t *)CubicBezier_create(); CubicBezier_setBasePoint1((CubicBezier_t *)line_segment, rsbml_build_doc_point(GET_SLOT(r_line_segment, install("basePoint1")))); CubicBezier_setBasePoint2((CubicBezier_t *)line_segment, rsbml_build_doc_point(GET_SLOT(r_line_segment, install("basePoint2")))); } else line_segment = LineSegment_create(); rsbml_build_doc_s_base((SBase_t *)line_segment, r_line_segment); LineSegment_setStart(line_segment, rsbml_build_doc_point(GET_SLOT(r_line_segment, install("start")))); LineSegment_setEnd(line_segment, rsbml_build_doc_point(GET_SLOT(r_line_segment, install("end")))); return line_segment; }
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); }
LIBSBML_EXTERN void CubicBezier_setStart (CubicBezier_t *cb, const Point_t *start) { LineSegment_setStart((LineSegment_t*)cb, start); }