DGtal
2.2.0
Toggle main menu visibility
Loading...
Searching...
No Matches
testBoundedLatticePolytopeCounter.cpp
Go to the documentation of this file.
1
16
29
31
#include <iostream>
32
#include <vector>
33
#include <algorithm>
34
#include "DGtal/base/Common.h"
35
#include "DGtal/kernel/SpaceND.h"
36
#include "DGtal/geometry/volumes/BoundedLatticePolytope.h"
37
#include "DGtal/geometry/volumes/BoundedLatticePolytopeCounter.h"
38
#include "DGtalCatch.h"
40
41
using namespace
std
;
42
using namespace
DGtal
;
43
44
46
// Functions for testing class BoundedLatticePolytopeCounter.
48
49
SCENARIO
(
"BoundedLatticePolytopeCounter< Z2 > unit tests"
,
"[lattice_polytope][2d]"
)
50
{
51
typedef
SpaceND<2,int>
Space
;
52
typedef
Space::Point
Point
;
53
typedef
BoundedLatticePolytope< Space >
Polytope;
54
typedef
BoundedLatticePolytopeCounter< Space >
Counter
;
55
56
GIVEN
(
"A triangle P at (0,3), (5,0), (15,7)"
) {
57
Point
a( 0, 3 );
58
Point
b( 8, 0 );
59
Point
c( 15, 7 );
60
Polytope P { a, b, c };
61
int
nbInside = P.count();
62
int
nbInterior = P.countInterior();
63
Counter
C( P );
64
int
nb0 = C.countAlongAxis( 0 );
65
int
nb1 = C.countAlongAxis( 1 );
66
int
nb0_int = C.countInteriorAlongAxis( 0 );
67
int
nb1_int = C.countInteriorAlongAxis( 1 );
68
THEN(
"Its longest axis is 0"
)
69
{
70
REQUIRE
( C.longestAxis() == 0 );
71
}
72
THEN(
"We can count its points per point or per axis"
)
73
{
74
REQUIRE
( nbInside == nb0 );
75
REQUIRE
( nbInside == nb1 );
76
}
77
THEN(
"We can count its interior points per point or per axis"
)
78
{
79
REQUIRE
( nbInterior == nb0_int );
80
REQUIRE
( nbInterior == nb1_int );
81
}
82
}
83
}
84
85
SCENARIO
(
"BoundedLatticePolytope< Z3 > unit tests"
,
"[lattice_polytope][3d]"
)
86
{
87
typedef
SpaceND<3,int>
Space
;
88
typedef
Space::Point
Point
;
89
typedef
BoundedLatticePolytope< Space >
Polytope;
90
typedef
BoundedLatticePolytopeCounter< Space >
Counter
;
91
92
GIVEN
(
"A closed arbitrary simplex P at (0,0,0), (6,3,0), (0,5,-10), (-6,4,8)"
) {
93
Point
a( 0, 0, 0 );
94
Point
b( 6, 3, 0 );
95
Point
c( 0, 5, -10 );
96
Point
d( -6, 4, 8 );
97
Polytope P { a, b, c, d };
98
int
nbInside = P.count();
99
int
nbInterior = P.countInterior();
100
Counter
C( P );
101
int
nb0 = C.countAlongAxis( 0 );
102
int
nb1 = C.countAlongAxis( 1 );
103
int
nb2 = C.countAlongAxis( 2 );
104
int
nb0_int = C.countInteriorAlongAxis( 0 );
105
int
nb1_int = C.countInteriorAlongAxis( 1 );
106
int
nb2_int = C.countInteriorAlongAxis( 2 );
107
// std::cout << P << std::endl;
108
THEN(
"Its longest axis is 2"
)
109
{
110
REQUIRE
( C.longestAxis() == 2 );
111
}
112
THEN(
"We can count its points per point or per axis"
)
113
{
114
REQUIRE
( nbInside == nb0 );
115
REQUIRE
( nbInside == nb1 );
116
REQUIRE
( nbInside == nb2 );
117
}
118
THEN(
"We can count its interior points per point or per axis"
)
119
{
120
REQUIRE
( nbInterior == nb0_int );
121
REQUIRE
( nbInterior == nb1_int );
122
REQUIRE
( nbInterior == nb2_int );
123
}
124
}
125
}
DGtal::BoundedLatticePolytopeCounter< Space >
DGtal::BoundedLatticePolytope< Space >
DGtal::Counter
DGtal::SpaceND
Definition
SpaceND.h:96
DGtal::SpaceND< 3, Integer >::Point
PointVector< dim, Integer > Point
Definition
SpaceND.h:110
DGtal
DGtal is the top-level namespace which contains all DGtal functions and types.
Definition
ClosedIntegerHalfPlane.h:49
std
STL namespace.
DGtal::Space
SCENARIO
SCENARIO("CorrectedNormalCurrentComputer interpolated curvature measures on sphere tests", "[icnc][sphere]")
Definition
testCorrectedNormalCurrentComputer.cpp:50
GIVEN
GIVEN("A cubical complex with random 3-cells")
Definition
testCubicalComplex.cpp:70
REQUIRE
REQUIRE(domain.isInside(aPoint))
tests
geometry
volumes
testBoundedLatticePolytopeCounter.cpp
Generated on
for DGtal by
1.18.0