diff --git a/Exec/main.cpp b/Exec/main.cpp index 85bc1e0..52dd952 100644 --- a/Exec/main.cpp +++ b/Exec/main.cpp @@ -23,12 +23,12 @@ int main() { bmp.Write("write.bmp"); */ - BMP bmp("test.bmp"); + BMP bmp("basea_gradient.bmp"); - //BMP newBmp = bmp.MirrorHorizontally(); - BMP newBmp = bmp.MirrorVertically(); + BMP newBmp = bmp.MirrorHorizontally(); + //BMP newBmp = bmp.MirrorVertically(); - if(!newBmp.Write("testwrite.bmp")) + if(!newBmp.Write("basea_gradient_flipped_hor.bmp")) std::cerr << "What the hell" << std::endl; /* diff --git a/Test/CMakeLists.txt b/Test/CMakeLists.txt index 8a2f19b..4fb73b2 100644 --- a/Test/CMakeLists.txt +++ b/Test/CMakeLists.txt @@ -25,6 +25,8 @@ add_executable(Test Write.cpp OperatorEquals.cpp FillChannel.cpp + MirrorHorizontally.cpp + MirrorVertically.cpp ) # Move test images to build dir diff --git a/Test/MirrorHorizontally.cpp b/Test/MirrorHorizontally.cpp new file mode 100644 index 0000000..6b83761 --- /dev/null +++ b/Test/MirrorHorizontally.cpp @@ -0,0 +1,39 @@ +#include +#include +#include "Catch2.h" + +using namespace Leonetienne::BmpPP; +using namespace Eule; + +// Tests the mirror horizontal function against reference images +TEST_CASE(__FILE__"/Mirroring produces the correct results", "[Mirroring][MirrorHorizontally]") +{ + SECTION("RGB") { + // Read a gradient image + BMP bmp("base_gradient.bmp"); + + // Mirror it + bmp = bmp.MirrorHorizontally(); + + // Read reference image + const BMP reference("base_gradient_flipped_hor.bmp"); + + // Assert that they are equal + REQUIRE(bmp == reference); + } + + SECTION("RGBA") { + // Read a gradient image + BMP bmp("basea_gradient.bmp"); + + // Mirror it + bmp = bmp.MirrorHorizontally(); + + // Read reference image + const BMP reference("basea_gradient_flipped_hor.bmp"); + + // Assert that they are equal + REQUIRE(bmp == reference); + } + return; +} diff --git a/Test/MirrorVertically.cpp b/Test/MirrorVertically.cpp new file mode 100644 index 0000000..9979f4d --- /dev/null +++ b/Test/MirrorVertically.cpp @@ -0,0 +1,39 @@ +#include +#include +#include "Catch2.h" + +using namespace Leonetienne::BmpPP; +using namespace Eule; + +// Tests the mirror vertical function against reference images +TEST_CASE(__FILE__"/Mirroring produces the correct results", "[Mirroring][MirrorVertically]") +{ + SECTION("RGB") { + // Read a gradient image + BMP bmp("base_gradient.bmp"); + + // Mirror it + bmp = bmp.MirrorVertically(); + + // Read reference image + const BMP reference("base_gradient_flipped_ver.bmp"); + + // Assert that they are equal + REQUIRE(bmp == reference); + } + + SECTION("RGBA") { + // Read a gradient image + BMP bmp("basea_gradient.bmp"); + + // Mirror it + bmp = bmp.MirrorVertically(); + + // Read reference image + const BMP reference("basea_gradient_flipped_ver.bmp"); + + // Assert that they are equal + REQUIRE(bmp == reference); + } + return; +} diff --git a/Test/TestAssets/base_gradient_flipped_hor.bmp b/Test/TestAssets/base_gradient_flipped_hor.bmp new file mode 100644 index 0000000..cc70ec7 Binary files /dev/null and b/Test/TestAssets/base_gradient_flipped_hor.bmp differ diff --git a/Test/TestAssets/base_gradient_flipped_ver.bmp b/Test/TestAssets/base_gradient_flipped_ver.bmp new file mode 100644 index 0000000..4263440 Binary files /dev/null and b/Test/TestAssets/base_gradient_flipped_ver.bmp differ diff --git a/Test/TestAssets/basea_gradient_flipped_hor.bmp b/Test/TestAssets/basea_gradient_flipped_hor.bmp new file mode 100644 index 0000000..dedcca8 Binary files /dev/null and b/Test/TestAssets/basea_gradient_flipped_hor.bmp differ diff --git a/Test/TestAssets/basea_gradient_flipped_ver.bmp b/Test/TestAssets/basea_gradient_flipped_ver.bmp new file mode 100644 index 0000000..8c21b2e Binary files /dev/null and b/Test/TestAssets/basea_gradient_flipped_ver.bmp differ