25 #define BOOST_TEST_MODULE ( PointIsolationAlg_test )
26 #include "boost/test/unit_test.hpp"
49 Container_t
grid({{{ 2U, 3U }}});
54 BOOST_TEST(
grid.dims() == 2U);
56 BOOST_TEST(
grid.size() == 6U);
57 BOOST_TEST(
grid.sizeX() == 2U);
58 BOOST_TEST(
grid.sizeY() == 3U);
62 BOOST_TEST(
grid.index({{ 0, 0 }}) == 0U);
63 BOOST_TEST(
grid.index({{ 1, 2 }}) == 5U);
64 BOOST_CHECK_NO_THROW(
grid.index({{ 2, 2 }}));
66 BOOST_TEST(
grid.has(0));
67 BOOST_TEST(
grid.has(
grid.size() - 1));
72 BOOST_TEST(
grid.indexOffset({{ 0, 1 }}, {{ 1, 2 }}) == 4);
73 BOOST_TEST(
grid.indexOffset({{ 1, 2 }}, {{ 0, 1 }}) == -4);
78 Container_t::CellID_t cellID;
79 for (cellID[0] = 0; (size_t) cellID[0] <
grid.sizeX(); ++cellID[0]) {
80 for (cellID[1] = 0; (size_t) cellID[1] <
grid.sizeY(); ++cellID[1]) {
82 auto cellIndex =
grid.index(cellID);
84 int count = cellID[0] + cellID[1];
86 if (count & 1)
grid.insert(cellID, count);
87 else grid.insert(cellIndex, count);
96 for (cellID[0] = 0; (size_t) cellID[0] <
grid.sizeX(); ++cellID[0]) {
97 for (cellID[1] = 0; (size_t) cellID[1] <
grid.sizeY(); ++cellID[1]) {
99 int count = cellID[0] + cellID[1];
101 auto cellIndex =
grid.index(cellID);
102 auto const& cell = (count & 1)?
grid[cellIndex]:
grid[cellID];
104 BOOST_TEST_CHECKPOINT
105 (
"[" << cellID[0] <<
"][" << cellID[1] <<
"]");
106 BOOST_TEST(cell.size() == (size_t) count);
108 for (
size_t k = 0;
k < cell.size(); ++
k) {
110 BOOST_TEST_CHECKPOINT(
" [" <<
k <<
"]");
111 BOOST_TEST(val == --count);
139 Container_t
grid({{{ 2U, 3U, 4U }}});
144 BOOST_TEST(
grid.dims() == 3U);
146 BOOST_TEST(
grid.size() == 24U);
147 BOOST_TEST(
grid.sizeX() == 2U);
148 BOOST_TEST(
grid.sizeY() == 3U);
149 BOOST_TEST(
grid.sizeZ() == 4U);
153 BOOST_TEST(
grid.index({{ 0, 0, 0 }}) == 0U);
154 BOOST_TEST(
grid.index({{ 1, 2, 3 }}) == 23U);
155 BOOST_CHECK_NO_THROW(
grid.index({{ 2, 2, 3 }}));
157 BOOST_TEST(
grid.has(0));
158 BOOST_TEST(
grid.has(
grid.size() - 1));
163 BOOST_TEST(
grid.indexOffset({{ 0, 1, 2 }}, {{ 1, 2, 3 }}) == 17);
164 BOOST_TEST(
grid.indexOffset({{ 1, 2, 3 }}, {{ 0, 1, 2 }}) == -17);
169 Container_t::CellID_t cellID;
170 for (cellID[0] = 0; (size_t) cellID[0] <
grid.sizeX(); ++cellID[0]) {
171 for (cellID[1] = 0; (size_t) cellID[1] <
grid.sizeY(); ++cellID[1]) {
172 for (cellID[2] = 0; (size_t) cellID[2] <
grid.sizeZ(); ++cellID[2]) {
174 auto cellIndex =
grid.index(cellID);
176 int count = cellID[0] + cellID[1] + cellID[2];
177 while (count-- > 0) {
178 if (count & 1)
grid.insert(cellID, count);
179 else grid.insert(cellIndex, count);
189 for (cellID[0] = 0; (size_t) cellID[0] <
grid.sizeX(); ++cellID[0]) {
190 for (cellID[1] = 0; (size_t) cellID[1] <
grid.sizeY(); ++cellID[1]) {
191 for (cellID[2] = 0; (size_t) cellID[2] <
grid.sizeZ(); ++cellID[2]) {
193 int count = cellID[0] + cellID[1] + cellID[2];
195 auto cellIndex =
grid.index(cellID);
196 auto const& cell = (count & 1)?
grid[cellIndex]:
grid[cellID];
198 BOOST_TEST_CHECKPOINT
199 (
"[" << cellID[0] <<
"][" << cellID[1] <<
"][" << cellID[2] <<
"]");
200 BOOST_TEST(cell.size() == (size_t) count);
202 for (
size_t k = 0;
k < cell.size(); ++
k) {
204 BOOST_TEST_CHECKPOINT(
" [" <<
k <<
"]");
205 BOOST_TEST(val == --count);
Base class for a container of data arranged on a 2D-grid.
void GridContainer3DTest()
Test for a GridContainer3D of integers.
void GridContainer2DTest()
Test for a GridContainer2D of integers.
Containers with indices in 1, 2 and 3 dimensions.
std::size_t count(Cont const &cont)
Base class for a container of data arranged on a 3D-grid.