mirror of
https://github.com/MihailRis/voxelcore.git
synced 2026-10-08 12:31:51 +00:00
add AreaMap2D tests
This commit is contained in:
parent
6fdea11e2e
commit
ab110ab8bf
3 changed files with 90 additions and 10 deletions
|
|
@ -5,22 +5,28 @@
|
|||
|
||||
TEST(SurroundMap, InitTest) {
|
||||
int maxLevelZone = 50;
|
||||
int x = 20;
|
||||
int y = 30;
|
||||
int x = 0;
|
||||
int y = 0;
|
||||
int8_t maxLevel = 5;
|
||||
std::atomic_int affected = 0;
|
||||
|
||||
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));
|
||||
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);
|
||||
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);
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue