diff --git a/modules/img/base/tests/test_image.cc b/modules/img/base/tests/test_image.cc index e04eba193893e5fb730065a25e2a29d159e143ef..160b7e044da1711751b03c677e498a6519460b4d 100644 --- a/modules/img/base/tests/test_image.cc +++ b/modules/img/base/tests/test_image.cc @@ -97,17 +97,17 @@ void test_Cctor_Assignement() ih1.ApplyIP(alg::Randomize()); ImageHandle ih2(ih1); - BOOST_REQUIRE(ih1==ih2); + BOOST_CHECK(ih1==ih2); for(ExtentIterator it(ih1.GetExtent());!it.AtEnd(); ++it) { - BOOST_REQUIRE(ih1.GetReal(it)==ih2.GetReal(it)); + BOOST_CHECK(ih1.GetReal(it)==ih2.GetReal(it)); } ImageHandle ih3=CreateImage(Size(10)); ih3.ApplyIP(alg::Randomize()); ih3=ih1; - BOOST_REQUIRE(ih1==ih3); + BOOST_CHECK(ih1==ih3); for(ExtentIterator it(ih1.GetExtent());!it.AtEnd(); ++it) { - BOOST_REQUIRE(ih1.GetReal(it)==ih3.GetReal(it)); + BOOST_CHECK(ih1.GetReal(it)==ih3.GetReal(it)); } } @@ -176,14 +176,14 @@ void test_Observer() { ImageHandle ih = CreateImage(); - BOOST_REQUIRE(ih.obs_); + BOOST_CHECK(ih.obs_); BOOST_CHECK(ih.obs_.get()->GetListSize()==0); to1 = new MyObserver(ih); - BOOST_REQUIRE(ih.obs_.get()->GetListSize()==1); + BOOST_CHECK(ih.obs_.get()->GetListSize()==1); to2 = new MyObserver(ih); - BOOST_REQUIRE(ih.obs_.get()->GetListSize()==2); + BOOST_CHECK(ih.obs_.get()->GetListSize()==2); BOOST_CHECK(to1->update_count==0); BOOST_CHECK(to1->release_count==0); @@ -197,7 +197,7 @@ void test_Observer() delete to2; - BOOST_REQUIRE(ih.obs_.get()->GetListSize()==1); + BOOST_CHECK(ih.obs_.get()->GetListSize()==1); ImageHandle ih2 = ih; @@ -241,7 +241,7 @@ void test_Interpolation() +( dx )*(one-dy)*( dz )*ih3d.GetReal(Point(1,0,1)) +(one-dx)*( dy )*( dz )*ih3d.GetReal(Point(0,1,1)) +( dx )*( dy )*( dz )*ih3d.GetReal(Point(1,1,1)); - BOOST_REQUIRE(check_close(val3,ih3d.GetIntpolReal(Vec3(dx,dy,dz)),1.0e-8)); + BOOST_CHECK(check_close(val3,ih3d.GetIntpolReal(Vec3(dx,dy,dz)),1.0e-8)); ImageHandle ih2d=CreateImage(Extent(Point(0,0),Point(1,1))); @@ -254,7 +254,7 @@ void test_Interpolation() +(one-dx)*( dy )*ih2d.GetReal(Point(0,1)) +( dx )*( dy )*ih2d.GetReal(Point(1,1)); - BOOST_REQUIRE(check_close(val2,ih2d.GetIntpolReal(Vec2(dx,dy)),1.0e-10)); + BOOST_CHECK(check_close(val2,ih2d.GetIntpolReal(Vec2(dx,dy)),1.0e-10)); ImageHandle ih1d=CreateImage(Extent(Point(0),Point(1))); ih3d.SetReal(Point(0,0,0), Real(0.000)); @@ -262,7 +262,7 @@ void test_Interpolation() Real val1= (one-dx)*ih1d.GetReal(Point(0,0)) +( dx )*ih1d.GetReal(Point(1,0)); - BOOST_REQUIRE(check_close(val1,ih1d.GetIntpolReal(dx),1.0e-15)); + BOOST_CHECK(check_close(val1,ih1d.GetIntpolReal(dx),1.0e-15)); } @@ -273,50 +273,56 @@ void test_ScalarOps() ih2+=1.0; for(ExtentIterator it(ih2.GetExtent()); !it.AtEnd(); ++it) { - BOOST_REQUIRE(ih2.GetReal(it) == ih1.GetReal(it) + 1.0); + BOOST_CHECK(ih2.GetReal(it) == ih1.GetReal(it) + 1.0); } ih2 = ih1.Copy(); ih2-=2.5; for(ExtentIterator it(ih2.GetExtent()); !it.AtEnd(); ++it) { - BOOST_REQUIRE(ih2.GetReal(it) == ih1.GetReal(it) - 2.5); + BOOST_CHECK(ih2.GetReal(it) == ih1.GetReal(it) - 2.5); } ih2 = ih1.Copy(); ih2*=0.9; for(ExtentIterator it(ih2.GetExtent()); !it.AtEnd(); ++it) { - BOOST_REQUIRE(std::abs(ih2.GetReal(it) - ih1.GetReal(it) * 0.9)<1e-10); + BOOST_CHECK(std::abs(ih2.GetReal(it) - ih1.GetReal(it) * 0.9)<1e-10); } ih2 = ih1.Copy(); ih2/=2.1; for(ExtentIterator it(ih2.GetExtent()); !it.AtEnd(); ++it) { - BOOST_REQUIRE(std::abs(ih2.GetReal(it) - ih1.GetReal(it) / 2.1)<1e-10); + BOOST_CHECK(std::abs(ih2.GetReal(it) - ih1.GetReal(it) / 2.1)<1e-10); } } void test_ImageOps() { - alg::Randomize rnd; Extent ex1(Point(-3,-2),Point(2,2)); ImageHandle h1=CreateImage(ex1); - h1.ApplyIP(rnd); + Real count=1.0; + for(ExtentIterator it(ex1); !it.AtEnd(); ++it) { + h1.SetReal(it,count); + count+=1.0; + } Extent ex2(Point(-1,-2),Point(3,4)); ImageHandle h2=CreateImage(ex2, COMPLEX); - h2.ApplyIP(rnd); + for(ExtentIterator it(ex2); !it.AtEnd(); ++it) { + h2.SetReal(it,count); + count+=1.0; + } // addition ImageHandle h3=h1+h2; for(ExtentIterator it(Extent(Point(-4,-3),Point(4,5))); !it.AtEnd(); ++it) { if(ex1.Contains(it) && ex2.Contains(it)) { - BOOST_REQUIRE(check_close(std::fabs(h3.GetReal(it)-(h1.GetReal(it)+h2.GetReal(it))),Real(0.0),1e-6)); + BOOST_CHECK_SMALL(h3.GetReal(it)-(h1.GetReal(it)+h2.GetReal(it)),Real(1e-6)); } else if (ex1.Contains(it)) { - BOOST_REQUIRE(h3.GetReal(it)==h1.GetReal(it)); + BOOST_CHECK(h3.GetReal(it)==h1.GetReal(it)); } else { - BOOST_REQUIRE(h3.GetReal(it)==0.0); + BOOST_CHECK(h3.GetReal(it)==0.0); } } @@ -324,28 +330,36 @@ void test_ImageOps() h3=h1-h2; for(ExtentIterator it(Extent(Point(-2,-1),Point(1,2))); !it.AtEnd(); ++it) { if(ex1.Contains(it) && ex2.Contains(it)) { - BOOST_REQUIRE(check_close(std::fabs(h3.GetReal(it)-(h1.GetReal(it)-h2.GetReal(it))),Real(0.0),1e-6)); + BOOST_CHECK_SMALL(h3.GetReal(it)-(h1.GetReal(it)-h2.GetReal(it)),Real(1e-6)); } else if (ex1.Contains(it)) { - BOOST_REQUIRE(h3.GetReal(it)==h1.GetReal(it)); + BOOST_CHECK(h3.GetReal(it)==h1.GetReal(it)); } else { - BOOST_REQUIRE(h3.GetReal(it)==0.0); + BOOST_CHECK(h3.GetReal(it)==0.0); } } // half frequency tests h1=CreateImage(Size(4,5),COMPLEX,HALF_FREQUENCY); h2=CreateImage(Size(4,5),COMPLEX,HALF_FREQUENCY); - h1.ApplyIP(rnd); - h2.ApplyIP(rnd); + for(ExtentIterator it(h1.GetExtent()); !it.AtEnd(); ++it) { + Complex c(count,count+2); + h1.SetComplex(it,c); + count+=1.0; + } + for(ExtentIterator it(h2.GetExtent()); !it.AtEnd(); ++it) { + Complex c(count,count+2); + h2.SetComplex(it,c); + count+=1.0; + } h3=h1+h2; for(ExtentIterator it(h1.GetExtent());!it.AtEnd();++it) { - BOOST_REQUIRE(std::abs(h1.GetComplex(it)+h2.GetComplex(it)-h3.GetComplex(it))<1e-10); + BOOST_CHECK_SMALL(std::abs(h1.GetComplex(it)+h2.GetComplex(it)-h3.GetComplex(it)),Real(1e-10)); } h3=h1-h2; for(ExtentIterator it(Extent(Point(-1,0),Point(2,2)));!it.AtEnd();++it) { - BOOST_REQUIRE(std::abs(h1.GetComplex(it)-h2.GetComplex(it)-h3.GetComplex(it))<1e-10); + BOOST_CHECK_SMALL(std::abs(h1.GetComplex(it)-h2.GetComplex(it)-h3.GetComplex(it)),Real(1e-10)); } } @@ -408,7 +422,7 @@ void test_DataAlgorithms() TestOPAlg op_alg; ImageHandle ih1=CreateImage(Size(1)); - BOOST_REQUIRE(ih1.GetReal(Point(0))==0.0); + BOOST_CHECK(ih1.GetReal(Point(0))==0.0); // in-place alg applied in-place ih1.ApplyIP(ip_alg); @@ -442,28 +456,36 @@ void test_Mult() { ImageHandle im1=CreateImage(Extent(Point(-2,-1,-3),Point(1,2,1)),REAL); ImageHandle im2=CreateImage(Extent(Point(-1,-2,-1),Point(2,1,3)),COMPLEX); - im1.ApplyIP(alg::Randomize()); - im2.ApplyIP(alg::Randomize()); + Real count=0; + for(ExtentIterator it(im1.GetExtent()); !it.AtEnd(); ++it) { + im1.SetReal(it,count); + count+=1.0; + } + for(ExtentIterator it(im2.GetExtent()); !it.AtEnd(); ++it) { + Complex c(count,count+2); + im2.SetComplex(it,c); + count+=1.0; + } ImageHandle im12=im1*im2; - BOOST_REQUIRE(im12.GetExtent()==im1.GetExtent()); + BOOST_CHECK(im12.GetExtent()==im1.GetExtent()); for(ExtentIterator it(im12.GetExtent());!it.AtEnd();++it) { - if(im2.GetExtent().Contains(it)) { - BOOST_REQUIRE(check_close(im12.GetReal(it),im1.GetReal(it)*im2.GetReal(it),1e-10)); + if(im1.GetExtent().Contains(it) && im2.GetExtent().Contains(it)) { + BOOST_CHECK_CLOSE(im12.GetReal(it),im1.GetReal(it)*im2.GetReal(it),Real(1e-10)); } else { - //BOOST_REQUIRE(im12.GetReal(it)==0.0); + //BOOST_CHECK(im21.GetReal(it)==0.0); } } ImageHandle im21=im2*im1; - BOOST_REQUIRE(im21.GetExtent()==im2.GetExtent()); + BOOST_CHECK(im21.GetExtent()==im2.GetExtent()); for(ExtentIterator it(im21.GetExtent());!it.AtEnd();++it) { if(im1.GetExtent().Contains(it) && im2.GetExtent().Contains(it)) { - BOOST_REQUIRE(std::abs(im21.GetComplex(it)-im2.GetComplex(it)*im1.GetComplex(it))<1e-10); + BOOST_CHECK_SMALL(std::abs(im21.GetComplex(it)-im2.GetComplex(it)*im1.GetComplex(it)),Real(1e-10)); } else { - //BOOST_REQUIRE(im21.GetReal(it)==0.0); + //BOOST_CHECK(im21.GetReal(it)==0.0); } } } @@ -476,46 +498,48 @@ void test_AddSub() im2.ApplyIP(alg::Randomize()); ImageHandle im12=im1+im2; - BOOST_REQUIRE(im12.GetExtent()==im1.GetExtent()); + BOOST_CHECK(im12.GetExtent()==im1.GetExtent()); for(ExtentIterator it(im12.GetExtent());!it.AtEnd();++it) { if(im2.GetExtent().Contains(it)) { - BOOST_REQUIRE(check_close(im12.GetReal(it),im1.GetReal(it)+im2.GetReal(it),1e-10)); + BOOST_CHECK_CLOSE(im12.GetReal(it),im1.GetReal(it)+im2.GetReal(it),Real(1e-10)); } else { - BOOST_REQUIRE(im12.GetReal(it)==im1.GetReal(it)); + BOOST_CHECK(im12.GetReal(it)==im1.GetReal(it)); } } im12=im1-im2; - BOOST_REQUIRE(im12.GetExtent()==im1.GetExtent()); + BOOST_CHECK(im12.GetExtent()==im1.GetExtent()); for(ExtentIterator it(im12.GetExtent());!it.AtEnd();++it) { if(im2.GetExtent().Contains(it)) { - BOOST_REQUIRE(check_close(im12.GetReal(it),im1.GetReal(it)-im2.GetReal(it),1e-10)); + BOOST_CHECK_CLOSE(im12.GetReal(it),im1.GetReal(it)-im2.GetReal(it),Real(1e-10)); } else { - BOOST_REQUIRE(im12.GetReal(it)==im1.GetReal(it)); + BOOST_CHECK(im12.GetReal(it)==im1.GetReal(it)); } } ImageHandle im21=im2+im1; - BOOST_REQUIRE(im21.GetExtent()==im2.GetExtent()); + BOOST_CHECK(im21.GetExtent()==im2.GetExtent()); for(ExtentIterator it(im21.GetExtent());!it.AtEnd();++it) { if(im2.GetExtent().Contains(it)) { - BOOST_REQUIRE(im21.GetComplex(it)==im1.GetComplex(it)+im2.GetComplex(it)); + BOOST_CHECK_CLOSE(real(im21.GetComplex(it)),real(im1.GetComplex(it)+im2.GetComplex(it)),Real(1e-10)); + BOOST_CHECK_CLOSE(imag(im21.GetComplex(it)),imag(im1.GetComplex(it)+im2.GetComplex(it)),Real(1e-10)); } else { - BOOST_REQUIRE(im21.GetReal(it)==im2.GetReal(it)); + BOOST_CHECK_CLOSE(im21.GetReal(it),im2.GetReal(it),Real(1e-10)); } } im21=im2-im1; - BOOST_REQUIRE(im21.GetExtent()==im2.GetExtent()); + BOOST_CHECK(im21.GetExtent()==im2.GetExtent()); for(ExtentIterator it(im21.GetExtent());!it.AtEnd();++it) { if(im2.GetExtent().Contains(it)) { - BOOST_REQUIRE(im21.GetComplex(it)==im2.GetComplex(it)-im1.GetComplex(it)); + BOOST_CHECK_CLOSE(real(im21.GetComplex(it)),real(im2.GetComplex(it)-im1.GetComplex(it)),Real(1e-10)); + BOOST_CHECK_CLOSE(imag(im21.GetComplex(it)),imag(im2.GetComplex(it)-im1.GetComplex(it)),Real(1e-10)); } else { - BOOST_REQUIRE(im21.GetReal(it)==im2.GetReal(it)); + BOOST_CHECK_CLOSE(im21.GetReal(it),im2.GetReal(it),Real(1e-10)); } } } @@ -532,8 +556,8 @@ void test_Copy() ImageHandle i3=i1.Copy(false); BOOST_CHECK(i3.GetSpatialOrigin()==Point(7,3,-2)); for(ExtentIterator it(i1.GetExtent());!it.AtEnd();++it) { - BOOST_REQUIRE(i1.GetReal(it)==i2.GetReal(it)); - BOOST_REQUIRE(i3.GetReal(it)==0.0); + BOOST_CHECK(i1.GetReal(it)==i2.GetReal(it)); + BOOST_CHECK(i3.GetReal(it)==0.0); } // complex half frequency i1=CreateImage(Size(6,7),COMPLEX,HALF_FREQUENCY); @@ -554,7 +578,7 @@ void test_Extract() BOOST_CHECK(i2.GetDomain()==SPATIAL); BOOST_CHECK(i2.GetExtent()==Extent(Point(2,3),Point(7,8))); for(ExtentIterator it(i2.GetExtent());!it.AtEnd();++it) { - BOOST_REQUIRE(i2.GetReal(it)==i1.GetReal(it)); + BOOST_CHECK(i2.GetReal(it)==i1.GetReal(it)); } i1=CreateImage(Size(13,20),COMPLEX,FREQUENCY); @@ -565,7 +589,7 @@ void test_Extract() BOOST_CHECK(i2.GetDomain()==SPATIAL); BOOST_CHECK(i2.GetExtent()==Extent(Point(2,3),Point(7,8))); for(ExtentIterator it(i2.GetExtent());!it.AtEnd();++it) { - BOOST_REQUIRE(i2.GetComplex(it)==i1.GetComplex(it)); + BOOST_CHECK(i2.GetComplex(it)==i1.GetComplex(it)); } i1=CreateImage(Size(13,30),COMPLEX,HALF_FREQUENCY); @@ -576,7 +600,7 @@ void test_Extract() BOOST_CHECK(i2.GetDomain()==SPATIAL); BOOST_CHECK(i2.GetExtent()==Extent(Point(-2,-3),Point(7,8))); for(ExtentIterator it(i2.GetExtent());!it.AtEnd();++it) { - BOOST_REQUIRE(i2.GetComplex(it)==i1.GetComplex(it)); + BOOST_CHECK(i2.GetComplex(it)==i1.GetComplex(it)); } } @@ -592,9 +616,9 @@ void test_Paste() for(ExtentIterator it(i3.GetExtent());!it.AtEnd();++it) { if(i2.GetExtent().Contains(it)) { - BOOST_REQUIRE(i3.GetReal(it)==i2.GetReal(it)); + BOOST_CHECK(i3.GetReal(it)==i2.GetReal(it)); } else { - BOOST_REQUIRE(i3.GetReal(it)==i1.GetReal(it)); + BOOST_CHECK(i3.GetReal(it)==i1.GetReal(it)); } } }