mirror of
https://github.com/MihailRis/voxelcore.git
synced 2026-10-11 05:51:51 +00:00
advanced SurroundMap test
This commit is contained in:
parent
4248917aab
commit
6fdea11e2e
1 changed files with 20 additions and 4 deletions
|
|
@ -1,10 +1,26 @@
|
||||||
#include <gtest/gtest.h>
|
#include <gtest/gtest.h>
|
||||||
|
#include <atomic>
|
||||||
|
|
||||||
#include "world/generator/SurroundMap.hpp"
|
#include "world/generator/SurroundMap.hpp"
|
||||||
|
|
||||||
TEST(SurroundMap, InitTest) {
|
TEST(SurroundMap, InitTest) {
|
||||||
int8_t maxLevel = 2;
|
int maxLevelZone = 50;
|
||||||
SurroundMap map(50, maxLevel);
|
int x = 20;
|
||||||
map.completeAt(25, 25);
|
int y = 30;
|
||||||
EXPECT_EQ(map.at(25, 25), maxLevel);
|
int8_t maxLevel = 5;
|
||||||
|
std::atomic_int affected = 0;
|
||||||
|
|
||||||
|
SurroundMap map(maxLevelZone, maxLevel);
|
||||||
|
map.setLevelCallback(1, [&affected](auto, auto) {
|
||||||
|
affected++;
|
||||||
|
});
|
||||||
|
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);
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue