From e5c628db786407e3be7b9397aab24d40a24d7680 Mon Sep 17 00:00:00 2001 From: Gleb Mazovetskiy Date: Fri, 26 Jul 2024 08:49:36 +0100 Subject: [PATCH] Add a test for Crawl order --- test/lighting_test.cpp | 28 +++++++++++++++++++++++++++- 1 file changed, 27 insertions(+), 1 deletion(-) diff --git a/test/lighting_test.cpp b/test/lighting_test.cpp index e3995be62..c6c7ca7dc 100644 --- a/test/lighting_test.cpp +++ b/test/lighting_test.cpp @@ -1,11 +1,14 @@ #include +#include #include #include "control.h" #include "lighting.h" -using namespace devilution; +namespace devilution { +namespace { +using ::testing::ElementsAre; TEST(Lighting, CrawlTables) { @@ -33,3 +36,26 @@ TEST(Lighting, CrawlTables) } } } + +TEST(Lighting, CrawlTablesVisitationOrder) +{ + std::vector order; + Crawl(0, 2, [&](Displacement displacement) { + order.push_back(displacement); + return false; + }); + EXPECT_THAT( + order, + ElementsAre( + Displacement(0, 0), + Displacement(0, 1), Displacement(0, -1), + Displacement(-1, 0), Displacement(1, 0), + Displacement(0, 2), Displacement(0, -2), + Displacement(-1, 2), Displacement(1, 2), Displacement(-1, -2), Displacement(1, -2), + Displacement(-1, 1), Displacement(1, 1), Displacement(-1, -1), Displacement(1, -1), + Displacement(-2, 0), Displacement(2, 0), Displacement(-2, 1), + Displacement(2, 1), Displacement(-2, -1), Displacement(2, -1))); +} + +} // namespace +} // namespace devilution