DGtal  0.9.3
Functions
testDGtalGMP.cpp File Reference
#include <iostream>
#include "DGtal/base/Common.h"
#include "DGtal/io/boards/Board2D.h"
#include "DGtal/kernel/SpaceND.h"
#include "DGtal/geometry/curves/ArithmeticalDSSComputer.h"
#include "DGtal/geometry/curves/FreemanChain.h"
#include "DGtal/geometry/curves/GreedySegmentation.h"
#include "DGtal/kernel/domains/HyperRectDomain.h"
#include "DGtal/images/ImageContainerBySTLVector.h"
Include dependency graph for testDGtalGMP.cpp:

Go to the source code of this file.

Functions

bool testDGtalBIGINTEGER ()
 
bool testBIGINTEGERSpace ()
 
int main (int argc, char **argv)
 

Detailed Description

This program is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with this program. If not, see http://www.gnu.org/licenses/.

Author
David Coeurjolly (david.nosp@m..coe.nosp@m.urjol.nosp@m.ly@l.nosp@m.iris..nosp@m.cnrs.nosp@m..fr ) Laboratoire d'InfoRmatique en Image et Systèmes d'information - LIRIS (CNRS, UMR 5205), CNRS, France
Date
2010/12/13

Functions for testing class DGtalGMP.

This file is part of the DGtal library.

Definition in file testDGtalGMP.cpp.

Function Documentation

◆ main()

int main ( int  argc,
char **  argv 
)

Definition at line 134 of file testDGtalGMP.cpp.

References DGtal::Trace::beginBlock(), DGtal::Trace::emphase(), DGtal::Trace::endBlock(), DGtal::Trace::info(), testBIGINTEGERSpace(), testDGtalBIGINTEGER(), and DGtal::trace.

135 {
136  trace.beginBlock ( "Testing class DGtalBIGINTEGER" );
137  trace.info() << "Args:";
138  for ( int i = 0; i < argc; ++i )
139  trace.info() << " " << argv[ i ];
140  trace.info() << endl;
141 
142  bool res = testDGtalBIGINTEGER() && testBIGINTEGERSpace(); // && ... other tests
143  trace.emphase() << ( res ? "Passed." : "Error." ) << endl;
144  trace.endBlock();
145  return res ? 0 : 1;
146 }
void beginBlock(const std::string &keyword="")
Trace trace
Definition: Common.h:137
bool testBIGINTEGERSpace()
double endBlock()
bool testDGtalBIGINTEGER()
std::ostream & emphase()
std::ostream & info()

◆ testBIGINTEGERSpace()

bool testBIGINTEGERSpace ( )

Example of a test. To be completed.

Definition at line 82 of file testDGtalGMP.cpp.

References DGtal::Trace::beginBlock(), DGtal::HyperRectDomain< TSpace >::className(), domain(), DGtal::Trace::endBlock(), DGtal::Trace::info(), LibBoard::Board::saveSVG(), and DGtal::trace.

Referenced by main().

83 {
84  unsigned int nbok = 0;
85  unsigned int nb = 0;
86 
87  trace.beginBlock ( "BIGINTEGER Space test..." );
88 
89  //This space is weird...
90  typedef SpaceND<2, DGtal::BigInteger> Space2;
91  typedef Space2::Point Point;
92  typedef Space2::Point::Coordinate Coordinate;
94 
95  DGtal::BigInteger a, b, c;
96 
97  a = 1234;
98  b = "-5678";
99  Point p(a,b);
100 
102 
103  // Construct the Freeman chain
104  std::stringstream ss(stringstream::in | stringstream::out);
105  ss << "31 16 11121212121212212121212212122122222322323233323333333323333323303330330030300000100010010010001000101010101111" << endl;
106  Contour theContour( ss );
107 
108  Point p1( 0, 0 );
109  Point p2( 31, 31 );
110 
111  trace.info() <<"p2.norm()= "<< p2.norm()<<endl;
112 
113  Domain domain( p1, p2 );
114  Board2D aBoard;
115  aBoard << SetMode( domain.className(), "Grid" )
116  << domain
117  << theContour;
118 
119  aBoard.saveSVG("testgmpcontour.svg");
120 
121 
122  nbok += true ? 1 : 0;
123  nb++;
124  trace.info() << "(" << nbok << "/" << nb << ") "
125  << "true == true" << std::endl;
126  trace.endBlock();
127 
128  return nbok == nb;
129 }
void beginBlock(const std::string &keyword="")
HyperRectDomain< Space > Domain
const Domain domain(Point(1, 2), Point(6, 5))
Trace trace
Definition: Common.h:137
Aim: SpaceND is a utility class that defines the fundamental structure of a Digital Space in ND...
Definition: SpaceND.h:95
Aim: Parallelepidec region of a digital space, model of a &#39;CDomain&#39;.
double endBlock()
mpz_class BigInteger
Multi-precision integer with GMP implementation.
Definition: BasicTypes.h:79
void saveSVG(const char *filename, PageSize size=Board::BoundingBox, double margin=10.0) const
Definition: Board.cpp:1012
FreemanChain< int > Contour
std::string className() const
MyPointD Point
Definition: testClone2.cpp:383
std::ostream & info()
Modifier class in a Board2D stream. Useful to choose your own mode for a given class. Realizes the concept CDrawableWithBoard2D.
Definition: Board2D.h:247
Aim: This class specializes a &#39;Board&#39; class so as to display DGtal objects more naturally (with <<)...
Definition: Board2D.h:70

◆ testDGtalBIGINTEGER()

bool testDGtalBIGINTEGER ( )

Example of a test. To be completed.

Definition at line 53 of file testDGtalGMP.cpp.

References DGtal::Trace::beginBlock(), DGtal::Trace::endBlock(), DGtal::Trace::info(), and DGtal::trace.

Referenced by main().

54 {
55  unsigned int nbok = 0;
56  unsigned int nb = 0;
57 
58  trace.beginBlock ( "BIGINTEGER linking test..." );
59 
60  DGtal::BigInteger a, b, c;
61 
62  a = 1234;
63  b = "-5678";
64  c = a+b;
65  trace.info() << "sum is " << c << "\n";
66  trace.info() << "absolute value is " << abs(c) << "\n";
67 
68  nbok += (abs(c)==4444) ? 1 : 0;
69  nb++;
70  trace.info() << "(" << nbok << "/" << nb << ") "
71  << "true == true" << std::endl;
72  trace.endBlock();
73 
74  return nbok == nb;
75 }
void beginBlock(const std::string &keyword="")
Trace trace
Definition: Common.h:137
double endBlock()
mpz_class BigInteger
Multi-precision integer with GMP implementation.
Definition: BasicTypes.h:79
std::ostream & info()