summaryrefslogtreecommitdiffhomepage
path: root/test
diff options
context:
space:
mode:
authorStanislaw Halik <sthalik@misaki.pl>2023-10-11 10:35:06 +0200
committerStanislaw Halik <sthalik@misaki.pl>2023-10-11 13:35:27 +0200
commitca4544f04cc67c296e58170e76203bc11519d988 (patch)
tree2dcbe936be206c4e7f95a28525fafff6f7340e5e /test
parent018755dab3d2a5bb0ead627b6ecad6735a9f0114 (diff)
add benchmark executable
Diffstat (limited to 'test')
-rw-r--r--test/CMakeLists.txt15
-rw-r--r--test/app.hpp13
-rw-r--r--test/dijkstra.cpp56
-rw-r--r--test/main.cpp (renamed from test/app.cpp)3
4 files changed, 7 insertions, 80 deletions
diff --git a/test/CMakeLists.txt b/test/CMakeLists.txt
index 0d713de5..f8048278 100644
--- a/test/CMakeLists.txt
+++ b/test/CMakeLists.txt
@@ -4,15 +4,12 @@ file(GLOB sources "*.cpp" CONFIGURE_ARGS)
file(MAKE_DIRECTORY "${CMAKE_BINARY_DIR}/test")
add_library(${self}_o OBJECT "${sources}")
-target_link_libraries(${self}_o PUBLIC Magnum::GL Magnum::Trade nlohmann_json::nlohmann_json fmt::fmt tsl::robin_map)
-
-if(APPLE)
- target_link_libraries(${self}_o PUBLIC Magnum::WindowlessCglApplication)
-elseif(WIN32)
- target_link_libraries(${self}_o PUBLIC Magnum::WindowlessWglApplication ntdll)
-else()
- target_link_libraries(${self}_o PUBLIC Magnum::WindowlessGlxApplication)
-endif()
+target_link_libraries(${self}_o PUBLIC
+ ${floormat_headless-library}
+ Magnum::GL Magnum::Trade
+ nlohmann_json::nlohmann_json
+ fmt::fmt tsl::robin_map
+)
add_executable(${self} dummy.cc)
target_link_libraries(${self} ${self}_o floormat-serialize floormat)
diff --git a/test/app.hpp b/test/app.hpp
index 0822e68f..630acf02 100644
--- a/test/app.hpp
+++ b/test/app.hpp
@@ -1,19 +1,9 @@
#pragma once
#undef FM_NO_DEBUG
#include "compat/assert.hpp"
+#include "compat/headless.hpp"
#include <Magnum/Magnum.h>
-#ifdef __APPLE__
-#include <Magnum/Platform/WindowlessCglApplication.h>
-#define FM_APPLICATION Platform::WindowlessCglApplication
-#elif defined _WIN32
-#include <Magnum/Platform/WindowlessWglApplication.h>
-#define FM_APPLICATION Platform::WindowlessWglApplication
-#else
-#include <Magnum/Platform/WindowlessGlxApplication.h>
-#define FM_APPLICATION Platform::WindowlessGlxApplication
-#endif
-
namespace floormat {
struct chunk_coords;
@@ -44,7 +34,6 @@ struct test_app final : private FM_APPLICATION
static void test_path_search();
static void test_hash();
static void test_path_search_node_pool();
- static void test_dijkstra();
static void zzz_test_misc();
};
} // namespace floormat
diff --git a/test/dijkstra.cpp b/test/dijkstra.cpp
index 301257b1..e69de29b 100644
--- a/test/dijkstra.cpp
+++ b/test/dijkstra.cpp
@@ -1,56 +0,0 @@
-#include "app.hpp"
-#include "bench.hpp"
-#include "src/path-search.hpp"
-#include "loader/loader.hpp"
-#include <Magnum/Math/Functions.h>
-
-namespace floormat {
-
-void test_app::test_dijkstra()
-{
- auto w = world();
- auto a = astar();
-
- constexpr auto wcx = 1, wcy = 1, wtx = 8, wty = 8, wox = 3, woy = 3;
- constexpr auto max_dist = (uint32_t)(Vector2i(Math::abs(wcx)+1, Math::abs(wcy)+1)*TILE_MAX_DIM*iTILE_SIZE2).length();
- constexpr auto wch = chunk_coords_{wcx, wcy, 0};
- constexpr auto wt = local_coords{wtx, wty};
- constexpr auto wpos = global_coords{wch, wt};
-
- auto& ch = w[chunk_coords_{0,0,0}];
-#if 1
- auto& ch2 = w[wch];
- auto metal2 = tile_image_proto{loader.tile_atlas("metal2", {2, 2}, pass_mode::blocked), 0};
-
- ch[{4, 4}].wall_west() = metal2;
- ch[{4, 4}].wall_north() = metal2;
-
- ch2[{ wtx, wty }].wall_west() = metal2;
- ch2[{ wtx, wty }].wall_north() = metal2;
- ch2[{ wtx+1, wty }].wall_west() = metal2;
- ch2[{ wtx, wty -1}].wall_north() = metal2;
-#endif
-
- fm_assert(ch.is_passability_modified());
-
- auto do_bench = [&](int count, int debug) {
- for (int i = 0; i < count; i++)
- a.Dijkstra(w,
- {{0,0,0}, {11,9}}, // from
- {wpos, {wox, woy}}, // to
- 0, max_dist, {32,32}, // size
- debug);
- };
-
- static constexpr int iters = 10;
- if constexpr (iters > 1)
- do_bench(1, 1);
-#if 1
- for (int i = 0; i < iters; i++)
- bench_run("Dijkstra", [&] {
- do_bench(1, iters == 1);
- });
-#endif
-}
-
-} // namespace floormat
diff --git a/test/app.cpp b/test/main.cpp
index 3e1f7f82..c6ef7557 100644
--- a/test/app.cpp
+++ b/test/main.cpp
@@ -34,9 +34,6 @@ int test_app::exec()
test_math();
test_hash();
test_path_search_node_pool();
-
- test_dijkstra();
-
zzz_test_misc();
return 0;