VoxelEngine/test/world/generator/SurroundMap.cpp
2024-09-10 22:19:54 +03:00

33 lines
850 B
C++

#include <gtest/gtest.h>
#include <atomic>
#include "world/generator/SurroundMap.hpp"
TEST(SurroundMap, InitTest) {
int maxLevelZone = 50;
int x = 0;
int y = 0;
int8_t maxLevel = 5;
SurroundMap map(maxLevelZone, maxLevel);
std::atomic_int affected = 0;
map.setLevelCallback(1, [&affected](auto, auto) {
affected++;
});
map.setCenter(0, 0);
map.completeAt(x, y);
EXPECT_EQ(affected, (maxLevel * 2 - 1) * (maxLevel * 2 - 1));
for (int ly = -maxLevel + 1; ly < maxLevel; ly++) {
for (int lx = -maxLevel + 1; lx < maxLevel; lx++) {
int levelExpected = maxLevel - std::max(std::abs(lx), std::abs(ly));
EXPECT_EQ(map.at(x + lx, y + ly), levelExpected);
}
}
affected = 0;
map.completeAt(x - 1, y);
EXPECT_EQ(affected, maxLevel * 2 - 1);
}