33 #include "DGtal/base/Common.h"
34 #include "DGtal/base/CUnaryFunctor.h"
35 #include "DGtal/kernel/PointVector.h"
36 #include "DGtal/kernel/SpaceND.h"
37 #include "DGtal/kernel/BasicPointFunctors.h"
39 using namespace DGtal;
42 template <
typename TFunctor,
typename TArg,
typename TRes >
43 void checkingConcepts()
50 unsigned int nbok = 0;
60 std::vector<Dimension> v1, v2;
61 v1.push_back(0); v1.push_back(2);
62 v2.push_back(2); v2.push_back(1);
63 Projector2D proj1, proj2, proj3;
64 proj1.init(v1.begin(), v1.end());
65 proj2.init(v2.begin(), v2.end());
69 trace.
info() <<
"p " << p <<
" => " << proj1(p) <<
" == " << res1 << std::endl;
70 nbok += ( proj1(p) == res1 ) ? 1 : 0;
74 trace.
info() <<
"p " << p <<
" => " << proj2(p) <<
" == " << res2 << std::endl;
75 nbok += ( proj2(p) == res2 ) ? 1 : 0;
79 trace.
info() <<
"p " << p <<
" => " << proj3(p) <<
" == " << res3 << std::endl;
80 nbok += ( proj3(p) == res3 ) ? 1 : 0;
92 std::vector<Dimension> v1, v2, v4;
93 v1.push_back(0); v1.push_back(2); v1.push_back(1);
94 v2.push_back(1); v2.push_back(0);
96 Projector3D proj1, proj2, proj3;
97 proj1.init(v1.begin(), v1.end());
98 proj2.init(v2.begin(), v2.end());
99 Projector3D proj4(-1);
100 proj4.init(v4.begin(), v4.end());
104 trace.
info() <<
"p " << p <<
" => " << proj1(p) <<
" == " << res1 << std::endl;
105 nbok += ( proj1(p) == res1 ) ? 1 : 0;
109 trace.
info() <<
"p " << p <<
" => " << proj2(p) <<
" == " << res2 << std::endl;
110 nbok += ( proj2(p) == res2 ) ? 1 : 0;
114 trace.
info() <<
"p " << p <<
" => " << proj3(p) <<
" == " << res3 << std::endl;
115 nbok += ( proj3(p) == res3 ) ? 1 : 0;
119 trace.
info() <<
"p " << p <<
" => " << proj4(p) <<
" == " << res4
120 <<
"(-1 as default value)" << std::endl;
121 nbok += ( proj4(p) == res4 ) ? 1 : 0;
132 int main(
int argc,
char** argv )
136 for (
int i = 0; i < argc; ++i )
146 bool res = testProjector();
148 trace.
emphase() << ( res ?
"Passed." :
"Error." ) << endl;