2022-03-06 15:47:57 +01:00
|
|
|
#include <Bmp.h>
|
|
|
|
#include <stdexcept>
|
|
|
|
#include "Catch2.h"
|
|
|
|
|
|
|
|
using namespace Leonetienne::BmpPP;
|
2022-03-06 20:16:43 +01:00
|
|
|
using namespace Leonetienne::Eule;
|
2022-03-06 15:47:57 +01:00
|
|
|
|
|
|
|
// Tests converting between color modes works
|
|
|
|
TEST_CASE(__FILE__"/Converting_between_color_modes_works", "[Conversion]")
|
|
|
|
{
|
|
|
|
SECTION("RGB to RGB") {
|
|
|
|
// Read an RGB image
|
|
|
|
BMP bmp("base_kyokucho.bmp");
|
|
|
|
|
|
|
|
// Convert it to RGB
|
|
|
|
bmp.ConvertColormode(Colormode::RGB);
|
|
|
|
|
|
|
|
// Read reference image
|
|
|
|
const BMP reference("base_kyokucho.bmp");
|
|
|
|
|
|
|
|
// Assert that they are equal
|
|
|
|
REQUIRE(bmp == reference);
|
|
|
|
}
|
|
|
|
|
|
|
|
SECTION("RGB to RGBA") {
|
|
|
|
// Read an RGB image
|
|
|
|
BMP bmp("base_kyokucho.bmp");
|
|
|
|
|
|
|
|
// Convert it to RGBA
|
|
|
|
bmp.ConvertColormode(Colormode::RGBA);
|
|
|
|
|
|
|
|
// Read reference image
|
|
|
|
const BMP reference("basea_kyokucho.bmp");
|
|
|
|
|
|
|
|
// Assert that they are equal
|
|
|
|
REQUIRE(bmp == reference);
|
|
|
|
}
|
|
|
|
|
|
|
|
SECTION("RGBA to RGB") {
|
|
|
|
// Read an RGBA image
|
|
|
|
BMP bmp("basea_kyokucho.bmp");
|
|
|
|
|
|
|
|
// Convert it to RGB
|
|
|
|
bmp.ConvertColormode(Colormode::RGB);
|
|
|
|
|
|
|
|
// Read reference image
|
|
|
|
const BMP reference("base_kyokucho.bmp");
|
|
|
|
|
|
|
|
// Assert that they are equal
|
|
|
|
REQUIRE(bmp == reference);
|
|
|
|
}
|
|
|
|
|
|
|
|
SECTION("RGBA to RGBA") {
|
|
|
|
// Read an RGBA image
|
|
|
|
BMP bmp("basea_kyokucho.bmp");
|
|
|
|
|
|
|
|
// Convert it to RGBA
|
|
|
|
bmp.ConvertColormode(Colormode::RGBA);
|
|
|
|
|
|
|
|
// Read reference image
|
|
|
|
const BMP reference("basea_kyokucho.bmp");
|
|
|
|
|
|
|
|
// Assert that they are equal
|
|
|
|
REQUIRE(bmp == reference);
|
|
|
|
}
|
|
|
|
|
|
|
|
return;
|
|
|
|
}
|