37 #include "DGtal/base/Common.h"
39 #include "DGtal/images/imagesSetsUtils/ImageFromSet.h"
40 #include "DGtal/images/imagesSetsUtils/SetFromImage.h"
42 #include "DGtal/kernel/sets/DigitalSetInserter.h"
43 #include "DGtal/images/ImageHelper.h"
45 #include "DGtal/images/ImageContainerBySTLMap.h"
46 #include "DGtal/images/ImageContainerBySTLVector.h"
47 #include "DGtal/images/ImageSelector.h"
49 #include "DGtal/helpers/StdDefs.h"
51 #include "ConfigTest.h"
56 using namespace DGtal;
67 typedef typename P::Coordinate
Value;
79 bool testImageFromSet()
84 unsigned int nbok = 0;
101 nbok += ( (image(c) == 128)&&(image(a) == 0) ) ? 1 : 0;
103 trace.
info() <<
"(" << nbok <<
"/" << nb <<
") " << std::endl;
109 nbok += ( (image2(c) == (int)c.norm1())
110 &&(image2(a) == (int)a.norm1())
111 &&(image2(b) == (int)b.norm1()) )? 1 : 0;
113 trace.
info() <<
"(" << nbok <<
"/" << nb <<
") " << std::endl;
115 Image image3 = image;
123 bool flag2 = std::equal(rimg.
begin(), rimg.
end(), rimg2.
begin());
124 bool flag3 = std::equal(rimg.
begin(), rimg.
end(), rimg3.
begin());
125 bool flag23 = std::equal(rimg2.
begin(), rimg2.
end(), rimg3.
begin());
126 nbok += ( (!flag2) && (!flag3) && flag23 )?1:0;
128 trace.
info() <<
"(" << nbok <<
"/" << nb <<
") " << std::endl;
135 bool testSetFromImage()
137 unsigned int nbok = 0;
153 image.setValue(p,127);
154 image.setValue(q,128);
155 image.setValue(r,10);
159 std::copy(range.
begin(), range.
end(), ostream_iterator<Image::Value>(cout,
" ") );
169 nbok += ( (aSet.find(p) == aSet.end())
170 &&(aSet.find(q) == aSet.end())
171 &&(aSet.size()==(d.size()-2)) ) ? 1 : 0;
173 trace.
info() <<
"(" << nbok <<
"/" << nb <<
") " << std::endl;
180 nbok += ( (aSet2.find(q) == aSet2.end())
181 &&(aSet2.size()==(d.size()-1)) ) ? 1 : 0;
183 trace.
info() <<
"(" << nbok <<
"/" << nb <<
") " << std::endl;
190 nbok += ( aSet3.size()==d.size() ) ? 1 : 0;
192 trace.
info() <<
"(" << nbok <<
"/" << nb <<
") " << std::endl;
199 nbok += ( (aSet4.find(r)!=aSet4.end())&&(aSet4.size()==1) ) ? 1 : 0;
201 trace.
info() <<
"(" << nbok <<
"/" << nb <<
") " << std::endl;
206 typedef std::equal_to<Image::Value> EqualBinaryFunctor;
207 typedef std::binder2nd<EqualBinaryFunctor> ValuePredicate;
208 ValuePredicate equalTo1 (EqualBinaryFunctor(),1);
213 nbok += ( (aSet5.find(p) == aSet5.end())
214 &&(aSet5.find(q) == aSet5.end())
215 &&(aSet5.find(r) == aSet5.end())
216 &&(aSet5.size()==(d.size()-3)) ) ? 1 : 0;
218 trace.
info() <<
"(" << nbok <<
"/" << nb <<
") " << std::endl;
227 int main(
int argc,
char** argv )
231 for (
int i = 0; i < argc; ++i )
235 bool res = testImageFromSet() && testSetFromImage();
236 trace.
emphase() << ( res ?
"Passed." :
"Error." ) << endl;