diff options
Diffstat (limited to 'test/hole.cpp')
| -rw-r--r-- | test/hole.cpp | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/test/hole.cpp b/test/hole.cpp index ade06a9c..f5cbb345 100644 --- a/test/hole.cpp +++ b/test/hole.cpp @@ -1,6 +1,7 @@ #include "app.hpp" #include "src/hole.hpp" #include "src/hole-cut.hpp" +#include "src/tile-constants.hpp" namespace floormat { namespace { @@ -54,6 +55,25 @@ void test1(Vector2i offset) #endif } +auto make_search_predicate(const CutResult<int>& res) +{ + return [&](Vector2i min, Vector2i max) -> bool { + for (auto i = 0u; i < res.size; i++) + if (res.array[i].min == min && res.array[i].max == max) + return true; + return false; + }; +} + +void test2() +{ + const auto res = CutResult<int>::cut({{}, Vector2ub{tile_size_xy}}, {Vector2i(-tile_size_xy/2), Vector2ub{tile_size_xy}}); + fm_assert(res.size == 2); + const auto has = make_search_predicate(res); + fm_assert(has({-32, 0}, {32, 32})); + fm_assert(has({0, -32}, {32, 0})); +} + } // namespace void Test::test_hole() @@ -68,6 +88,8 @@ void Test::test_hole() for (auto offset : offsets) test1(offset); + + test2(); } } // namespace floormat |
