From 5fd11965fbde71e56423da13955069aa92c28d30 Mon Sep 17 00:00:00 2001 From: Stanislaw Halik Date: Sat, 10 Feb 2024 06:12:44 +0100 Subject: test: don't load in the atlases multiple times --- loader/loader.hpp | 2 +- test/loader.cpp | 20 +++++++++++++++----- 2 files changed, 16 insertions(+), 6 deletions(-) diff --git a/loader/loader.hpp b/loader/loader.hpp index 2da6b361..60fda8b6 100644 --- a/loader/loader.hpp +++ b/loader/loader.hpp @@ -32,7 +32,7 @@ struct loader_ virtual Trade::ImageData2D texture(StringView prefix, StringView filename) noexcept(false) = 0; virtual const std::shared_ptr& ground_atlas(StringView filename, loader_policy policy = loader_policy::DEFAULT) noexcept(false) = 0; virtual ArrayView anim_atlas_list() = 0; - virtual std::shared_ptr anim_atlas(StringView name, StringView dir = ANIM_PATH, loader_policy policy = loader_policy::DEFAULT) noexcept(false) = 0; + virtual std::shared_ptr anim_atlas(StringView name, StringView dir, loader_policy policy = loader_policy::DEFAULT) noexcept(false) = 0; virtual const std::shared_ptr& wall_atlas(StringView name, loader_policy policy = loader_policy::DEFAULT) noexcept(false) = 0; virtual ArrayView wall_atlas_list() = 0; virtual void destroy() = 0; diff --git a/test/loader.cpp b/test/loader.cpp index 3c5ebf30..c51ad971 100644 --- a/test/loader.cpp +++ b/test/loader.cpp @@ -3,6 +3,8 @@ #include "loader/loader.hpp" #include "loader/wall-cell.hpp" #include "src/ground-atlas.hpp" +#include "src/wall-atlas.hpp" +#include namespace floormat { @@ -46,11 +48,20 @@ void test_app::test_loader() fm_assert(loader.make_invalid_wall_atlas().name == loader.INVALID); for (const auto& str : anim_atlases) - (void)loader.get_anim_atlas(str); + (void)loader.anim_atlas(str, {}); for (const auto& x : ground_atlases) - (void)loader.get_ground_atlas(x.name, x.size, x.pass); + { + auto& A = *loader.ground_atlas(x.name); + fm_assert(A.num_tiles2() == x.size); + fm_assert(A.pass_mode() == x.pass); + fm_assert(A.texture().id()); + } for (const auto& name : wall_atlases) - (void)loader.get_wall_atlas(name); + { + auto& A = *loader.wall_atlas(name); + fm_assert(!A.raw_frame_array().isEmpty()); + fm_assert(A.texture().id()); + } for (const auto& x : loader.ground_atlas_list()) { @@ -63,7 +74,6 @@ void test_app::test_loader() else { fm_assert(x.atlas); - fm_assert(loader.make_invalid_ground_atlas().atlas); fm_assert(x.atlas == loader.make_invalid_ground_atlas().atlas); } } @@ -71,7 +81,7 @@ void test_app::test_loader() fm_assert(loader.ground_atlas("metal1")->pass_mode() == pass_mode::pass); loader.sceneries(); for (StringView name : loader.anim_atlas_list()) - loader.anim_atlas(name); + loader.anim_atlas(name, loader.ANIM_PATH); } } // namespace floormat -- cgit v1.2.3