X-Git-Url: https://git.pterodactylus.net/?a=blobdiff_plain;f=ETL%2Ftrunk%2Ftest%2Fhermite.cpp;h=9499d342d37c51a6ec3d192dce182f318301f243;hb=36d01e1527fda602a9aed07d209eb34e6770bca8;hp=8e51901c5a7d80622545cb7fe8942a2109ac047b;hpb=b3016b249333ac0ab0008d8c6c4d9029b2ff30c9;p=synfig.git diff --git a/ETL/trunk/test/hermite.cpp b/ETL/trunk/test/hermite.cpp index 8e51901..9499d34 100644 --- a/ETL/trunk/test/hermite.cpp +++ b/ETL/trunk/test/hermite.cpp @@ -1,7 +1,7 @@ /*! ======================================================================== ** Extended Template and Library Test Suite ** Hermite Curve Test -** $Id: hermite.cpp,v 1.1.1.1 2005/01/04 01:31:48 darco Exp $ +** $Id$ ** ** Copyright (c) 2002 Robert B. Quattlebaum Jr. ** @@ -40,21 +40,21 @@ int basic_test(void) { int ret=0; float f; - + hermite Hermie; etl::clock timer; double t; - + Hermie.p1()=0; Hermie.t1()=1; Hermie.p2()=0; Hermie.t2()=1; - + Hermie.sync(); - + integral > inte(Hermie); - + fprintf(stderr,"integral of curve() on [0,1] = %f\n",inte(0,1.0)); fprintf(stderr,"integral of curve() on [-1,3] = %f\n",inte(-1.0,3.0)); Hermie.set_rs(-1.0,7.0); @@ -62,8 +62,8 @@ int basic_test(void) fprintf(stderr,"integral of curve()[%f,%f] on [-1,7] = %f\n",Hermie.get_r(),Hermie.get_s(),inte(-1.0,7.0)); fprintf(stderr,"integral of curve()[%f,%f] on [0,1] = %f\n",Hermie.get_r(),Hermie.get_s(),inte(0,1.0)); Hermie.set_rs(0.0,1.0); - - + + for(f=0.0f,timer.reset();f<1.001f;f+=0.000005f) { t+=Hermie(f)+Hermie(f+0.1f); @@ -80,7 +80,7 @@ int basic_test(void) t+=Hermie(f)+Hermie(f+0.1f); } t=timer(); - + fprintf(stderr,"time=%f milliseconds\n",t*1000); return ret; } @@ -89,21 +89,21 @@ int angle_test(void) { int ret=0; float f; - + hermite Hermie; etl::clock timer; angle tmp; double t; - + Hermie.p1()=angle::degrees(0); Hermie.t1()=angle::degrees(45); Hermie.p2()=angle::degrees(-45); Hermie.t2()=angle::degrees(180); - Hermie.sync(); - - + Hermie.sync(); + + for(f=0.0f,timer.reset();f<1.001f;f+=0.000005f) { tmp+=Hermie(f)+Hermie(f+0.1f); @@ -120,7 +120,7 @@ int angle_test(void) tmp+=Hermie(f)+Hermie(f+0.1f); } t=timer(); - + fprintf(stderr,"angle time=%f milliseconds\n",t*1000); return ret; @@ -130,20 +130,20 @@ int fixed_test(void) { int ret=0; float f; - + hermite Hermie; etl::clock timer; double t; - + Hermie.p1()=0; Hermie.t1()=1; Hermie.p2()=0; Hermie.t2()=1; - + Hermie.sync(); - - - + + + for(f=0.0f,timer.reset();f<1.001f;f+=0.005f) { t+=Hermie(f)+Hermie(f+0.1f); @@ -160,7 +160,7 @@ int fixed_test(void) t+=Hermie(f)+Hermie(f+0.1f); } t=timer(); - + fprintf(stderr,"time=%f milliseconds\n",t*1000); return ret; } @@ -170,21 +170,21 @@ int anglefixed_test(void) { int ret=0; float f; - + hermite Hermie; etl::clock timer; angle tmp; double t; - + Hermie.p1()=angle::degrees(0); Hermie.t1()=angle::degrees(45); Hermie.p2()=angle::degrees(-45); Hermie.t2()=angle::degrees(180); - Hermie.sync(); - - + Hermie.sync(); + + for(f=0.0f,timer.reset();f<1.001f;f+=0.0005f) { tmp+=Hermie(f)+Hermie(f+0.1f); @@ -201,7 +201,7 @@ int anglefixed_test(void) tmp+=Hermie(f)+Hermie(f+0.1f); } t=timer(); - + fprintf(stderr,"angle fixed time=%f milliseconds\n",t*1000); return ret; @@ -210,7 +210,6 @@ int anglefixed_test(void) int float_intersection_test() { int ret=0; - float f; hermite curve1(0,1,0,1); hermite curve2(-1,2,-1,-2); @@ -221,7 +220,7 @@ int float_intersection_test() t2=curve2.intersect(curve1); d=curve1(t1)-curve2(t2); - + fprintf(stderr,"float:Intersection difference: %f (t1=%f, t2=%f)\n",d,t1,t2); if(d>0.01) @@ -238,7 +237,7 @@ int float_intersection_test() int main() { int error=0; - + error+=basic_test(); error+=angle_test(); error+=fixed_test();