37 #include <boost/program_options.hpp>
39 #include "DGtal/base/Common.h"
40 #include "DGtal/kernel/PointVector.h"
41 #include "DGtal/shapes/fromPoints/CircleFrom3Points.h"
42 #include "DGtal/shapes/fromPoints/CircleFrom2Points.h"
44 #include "DGtal/io/boards/Board2D.h"
46 #include "ConfigTest.h"
51 using namespace DGtal;
61 template <
typename Coordinate>
62 bool testCircleFrom3Points()
72 c.
init( Point(0,1), Point(150,18), Point(250,-48) );
78 c.
init( Point(0,1), Point(150,18), Point(100,48) );
84 c.
init( Point(8,4), Point(9,3), Point(10,0) );
90 if ( (cx != 5.0)||(cy != 0.0) )
93 trace.
info() <<
"(" << cx <<
"," << cy <<
") " << endl;
94 trace.
info() <<
"instead of (5,0)" << endl;
99 c.
init( Point(0,0), Point(150,20), Point(15,2) );
106 board <<
SetMode(o.className(),
"Grid") << o;
108 c.
init( Point(8,4), Point(9,3), Point(10,0) );
112 Display2DFactory::draw(board, c, Point(5,10), Point(8,4));
115 Display2DFactory::draw(board, c, Point(9,3), Point(10,0) );
118 Display2DFactory::draw(board, c, Point(5,-10), Point(2,-4) );
120 board.
saveEPS(
"arcDisplay.eps");
129 template <
typename Coordinate>
130 bool testCircleFrom2Points()
141 c.
init( Point(15,2), Point(10,5) );
157 int main(
int argc,
char** argv )
161 for (
int i = 0; i < argc; ++i )
166 bool res = testCircleFrom3Points<int>()
167 && testCircleFrom3Points<double>()
168 #ifdef WITH_BIGINTEGER
169 && testCircleFrom3Points<BigInteger>()
171 && testCircleFrom2Points<int>()
175 trace.
emphase() << ( res ?
"Passed." :
"Error." ) << endl;