From b27068a6b60b32e6e40e9280e541678a2bec6c87 Mon Sep 17 00:00:00 2001 From: Leonetienne Date: Sat, 5 Mar 2022 19:59:32 +0100 Subject: [PATCH] Added unit test for re-initialization --- Test/CMakeLists.txt | 16 +++++++++++----- Test/ReInitialize.cpp | 32 ++++++++++++++++++++++++++++++++ 2 files changed, 43 insertions(+), 5 deletions(-) create mode 100644 Test/ReInitialize.cpp diff --git a/Test/CMakeLists.txt b/Test/CMakeLists.txt index 3efb081..032be23 100644 --- a/Test/CMakeLists.txt +++ b/Test/CMakeLists.txt @@ -3,15 +3,21 @@ project(Test) set(CMAKE_CXX_STANDARD 17) -include_directories(../Src) -link_directories(../Src/cmake-build-debug) +ADD_COMPILE_DEFINITIONS(_EULE_NO_INTRINSICS_) + +INCLUDE_DIRECTORIES(../Src/Eule/) +INCLUDE_DIRECTORIES(../Src/) + +FILE(GLOB Eule ../Src/Eule/Eule/*.cpp) +FILE(GLOB BmpPP ../Src/*.cpp) add_executable(Test + ${Eule} + ${BmpPP} + Catch2.h main.cpp BmpHeader.cpp + ReInitialize.cpp ) - -target_link_libraries(Test BmpPP) - diff --git a/Test/ReInitialize.cpp b/Test/ReInitialize.cpp new file mode 100644 index 0000000..49a9987 --- /dev/null +++ b/Test/ReInitialize.cpp @@ -0,0 +1,32 @@ +#include +#include "Catch2.h" + +using namespace Leonetienne::BmpPP; + +// Tests that re-initializing images produces the correct getter values +TEST_CASE(__FILE__"/ReInitialize", "[ReInitialize]") +{ + // Create image + BMP bmp({800, 600}, Colormode::RGBA); + + SECTION("Check that the initial values are OK") { + REQUIRE(bmp.GetDimensions().x == 800); + REQUIRE(bmp.GetDimensions().y == 600); + REQUIRE(bmp.GetNumColorChannels() == 4); + REQUIRE(bmp.GetColormode() == Colormode::RGBA); + REQUIRE(bmp.GetPixelbufferSize() == 800*600*4); + } + + // Now re-initialize the image + bmp.ReInitialize({1920, 1080}, Colormode::RGB); + + SECTION("Check that getters now return the updated values") { + REQUIRE(bmp.GetDimensions().x == 1920); + REQUIRE(bmp.GetDimensions().y == 1080); + REQUIRE(bmp.GetNumColorChannels() == 3); + REQUIRE(bmp.GetColormode() == Colormode::RGB); + REQUIRE(bmp.GetPixelbufferSize() == 1920*1080*3); + } + + return; +}