Fix operator++
This commit is contained in:
parent
971cd54688
commit
ba82a2e066
2 changed files with 15 additions and 3 deletions
|
@ -4,6 +4,7 @@ namespace dk {
|
||||||
m_pos(CoordinateScalarType(0)),
|
m_pos(CoordinateScalarType(0)),
|
||||||
m_size(parSize)
|
m_size(parSize)
|
||||||
{
|
{
|
||||||
|
assert(m_pos <= m_size);
|
||||||
}
|
}
|
||||||
|
|
||||||
template <uint32_t D>
|
template <uint32_t D>
|
||||||
|
@ -11,7 +12,7 @@ namespace dk {
|
||||||
m_pos(parValue),
|
m_pos(parValue),
|
||||||
m_size(parSize)
|
m_size(parSize)
|
||||||
{
|
{
|
||||||
assert(parValue < parSize);
|
assert(m_pos <= m_size);
|
||||||
}
|
}
|
||||||
|
|
||||||
template <uint32_t D>
|
template <uint32_t D>
|
||||||
|
@ -19,7 +20,7 @@ namespace dk {
|
||||||
const coords lower(0);
|
const coords lower(0);
|
||||||
for (CoordinateDistType d = 0; d < D - 1; ++d) {
|
for (CoordinateDistType d = 0; d < D - 1; ++d) {
|
||||||
++m_pos[d];
|
++m_pos[d];
|
||||||
if (m_pos[d] >= m_size[d])
|
if (m_pos[d] > m_size[d])
|
||||||
m_pos[d] = lower[d];
|
m_pos[d] = lower[d];
|
||||||
else
|
else
|
||||||
return *this;
|
return *this;
|
||||||
|
|
|
@ -4,13 +4,15 @@
|
||||||
TEST(increment, tilecoords) {
|
TEST(increment, tilecoords) {
|
||||||
typedef dk::TileCoords<2> tcoords2;
|
typedef dk::TileCoords<2> tcoords2;
|
||||||
typedef dk::TileCoords<2>::coords coords2;
|
typedef dk::TileCoords<2>::coords coords2;
|
||||||
|
typedef dk::TileCoords<5> tcoords5;
|
||||||
|
typedef dk::TileCoords<5>::coords coords5;
|
||||||
|
|
||||||
{
|
{
|
||||||
const coords2 max_coords(150, 200);
|
const coords2 max_coords(150, 200);
|
||||||
tcoords2 test(max_coords);
|
tcoords2 test(max_coords);
|
||||||
EXPECT_EQ(tcoords2(coords2(0), max_coords), test);
|
EXPECT_EQ(tcoords2(coords2(0), max_coords), test);
|
||||||
|
|
||||||
for (auto z = coords2(0).x(); z < max_coords.x(); ++z) {
|
for (auto z = coords2(0).x(); z <= max_coords.x(); ++z) {
|
||||||
EXPECT_EQ(tcoords2(coords2(z, 0), max_coords), test);
|
EXPECT_EQ(tcoords2(coords2(z, 0), max_coords), test);
|
||||||
++test;
|
++test;
|
||||||
}
|
}
|
||||||
|
@ -18,4 +20,13 @@ TEST(increment, tilecoords) {
|
||||||
EXPECT_EQ(tcoords2(coords2(1, 1), max_coords), test);
|
EXPECT_EQ(tcoords2(coords2(1, 1), max_coords), test);
|
||||||
EXPECT_EQ(tcoords2(coords2(0, 1), max_coords), test_old);
|
EXPECT_EQ(tcoords2(coords2(0, 1), max_coords), test_old);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
{
|
||||||
|
const coords5 max_coords(3);
|
||||||
|
tcoords5 test(max_coords);
|
||||||
|
for (int z = 0; z < 4 * 4 * 4 * 4 * 4 - 1; ++z) {
|
||||||
|
++test;
|
||||||
|
}
|
||||||
|
EXPECT_EQ(tcoords5(max_coords, max_coords), test);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue