#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); } }