diff options
Diffstat (limited to 'test/perf-geoData.cpp')
-rw-r--r-- | test/perf-geoData.cpp | 42 |
1 files changed, 42 insertions, 0 deletions
diff --git a/test/perf-geoData.cpp b/test/perf-geoData.cpp new file mode 100644 index 0000000..4d4505e --- /dev/null +++ b/test/perf-geoData.cpp @@ -0,0 +1,42 @@ +#include <benchmark/benchmark.h> +#include <game/geoData.h> + +namespace { + const GeoData tm {GeoData::loadFromAsciiGrid(FIXTURESDIR "height/SD19.asc")}; + + void + terrain_findPoint(benchmark::State & state) + { + for (auto _ : state) { + benchmark::DoNotOptimize(tm.findPoint({315555000, 495556000})); + } + } + + void + terrain_walk(benchmark::State & state) + { + const glm::vec2 point {310001000, 490000000}; + const GeoData::PointFace start {point, tm.findPoint(point)}; + for (auto _ : state) { + tm.walk(start, {319999000, 500000000}, [](auto f) { + benchmark::DoNotOptimize(f); + }); + } + } + + void + terrain_walkBoundary(benchmark::State & state) + { + for (auto _ : state) { + tm.boundaryWalk([](auto heh) { + benchmark::DoNotOptimize(heh); + }); + } + } +} + +BENCHMARK(terrain_findPoint); +BENCHMARK(terrain_walk); +BENCHMARK(terrain_walkBoundary); + +BENCHMARK_MAIN(); |