From 55c93fe609888be73677317978959040cf35b2ff Mon Sep 17 00:00:00 2001 From: HampusM Date: Sat, 19 Mar 2022 13:21:54 +0100 Subject: refactor: implement matrix iterator --- test/string_matrix.test.cpp | 53 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 53 insertions(+) create mode 100644 test/string_matrix.test.cpp (limited to 'test/string_matrix.test.cpp') diff --git a/test/string_matrix.test.cpp b/test/string_matrix.test.cpp new file mode 100644 index 0000000..522a274 --- /dev/null +++ b/test/string_matrix.test.cpp @@ -0,0 +1,53 @@ +#include "engine/graphics/string_matrix.hpp" +#include "engine/data/bounds.hpp" + +#include +#include + +constexpr uint32_t MATRIX_WIDTH = 76; +constexpr uint32_t MATRIX_HEIGHT = 31; + +TEST_CASE("String matrix") +{ + auto string_matrix = + StringMatrix(Bounds({.width = MATRIX_WIDTH, .height = MATRIX_HEIGHT})); + + SUBCASE("Can set & get elements") + { + // NOLINTNEXTLINE(cppcoreguidelines-avoid-magic-numbers,readability-magic-numbers) + const auto position = Vector2({.x = 56, .y = 20}); + + string_matrix.set(position, "#"); + + CHECK(string_matrix.get(position) == "#"); + } + + SUBCASE("Can iterate") + { + CHECK(std::is_same_v>); + + CHECK(std::is_same_v>); + + uint32_t row_iter_cnt = 0; + + for (auto row : string_matrix) + { + row_iter_cnt++; + + CHECK(std::is_same_v>); + + uint32_t col_iter_cnt = 0; + + for (auto &col : row) + { + col_iter_cnt++; + } + + CHECK(col_iter_cnt == MATRIX_WIDTH); + } + + CHECK(row_iter_cnt == MATRIX_HEIGHT); + } +} -- cgit v1.2.3-18-g5258