38 #include "DGtal/base/Common.h"
39 #include "DGtal/kernel/SpaceND.h"
40 #include "DGtal/kernel/domains/HyperRectDomain.h"
41 #include "DGtal/images/CImage.h"
42 #include "DGtal/images/ImageContainerBySTLVector.h"
43 #include "DGtal/images/ImageContainerBySTLMap.h"
44 #include "DGtal/images/ImageContainerByHashTree.h"
45 #include "DGtal/images/Image.h"
48 using namespace DGtal;
56 template<
typename Image>
57 bool testImage(
const Image& aImage)
74 for (
int i = 0; ( (dit != ditEnd)&&(i < 5) ); ++dit, ++i)
76 img.setValue(*dit, i);
86 bool flag2 = std::equal(rimg.
begin(), rimg.
end(), rimg2.
begin());
87 bool flag3 = std::equal(rimg.
begin(), rimg.
end(), rimg3.
begin());
88 bool flag23 = std::equal(rimg2.
begin(), rimg2.
end(), rimg3.
begin());
90 nbok += ( (!flag2) && flag3 && (!flag23) )?1:0;
92 trace.
info() <<
"(" <<nbok <<
"/" << nb <<
")" << std::endl;
97 std::copy(rimg.
begin(), rimg.
end(), img2.
range().outputIterator());
103 flag2 = std::equal(rimg.
begin(), rimg.
end(), rimg2.begin());
106 trace.
info() <<
"(" <<nbok <<
"/" << nb <<
")" << std::endl;
114 img.setValue( p, 128 );
115 bool flag4 = ( img(p) == 128 );
118 rimg = img.constRange();
120 rimg3 = img3.constRange();
121 std::copy( rimg.
begin(), rimg.
end(), std::ostream_iterator<int>(cout,
", ") );
123 flag2 = std::equal(rimg.
begin(), rimg.
end(), rimg2.begin());
124 std::copy( rimg2.begin(), rimg2.end(), std::ostream_iterator<int>(cout,
", ") );
127 std::copy( rimg3.
begin(), rimg3.
end(), std::ostream_iterator<int>(cout,
", ") );
130 nbok += ( flag4 && (!flag2) && (!flag3) )?1:0;
132 trace.
info() <<
"(" <<nbok <<
"/" << nb <<
")" << std::endl;
142 return ( img.isValid() && img2.
isValid() && img3.isValid() && (nbok == nb) );
145 int main(
int argc,
char** argv )
150 for (
int i = 0; i < argc; ++i )
157 typedef Space::Point
Point;
160 const Integer size = 5;
161 Point p = Point::diagonal(0);
162 Point q = Point::diagonal(size-1);
174 bool res = testImage(vi);
177 res = res && testImage(mi);
186 trace.
emphase() << ( res ?
"Passed." :
"Error." ) << endl;