101 lines
2.4 KiB
C++
101 lines
2.4 KiB
C++
#include <Bmp.h>
|
|
#include <stdexcept>
|
|
#include "Catch2.h"
|
|
|
|
using namespace Leonetienne::BmpPP;
|
|
using namespace Eule;
|
|
|
|
// Tests that cropping produces the correct result
|
|
TEST_CASE(__FILE__"/HappyPath", "[Cropping]")
|
|
{
|
|
SECTION("RGB") {
|
|
// Read an image
|
|
BMP bmp("base_hachi.bmp");
|
|
|
|
// Crop it
|
|
bmp = bmp.Crop(
|
|
Vector2i(95, 83),
|
|
Vector2i(149, 239)
|
|
);
|
|
|
|
// Read reference image
|
|
const BMP reference("base_hachi_cropped.bmp");
|
|
|
|
// Assert that they are equal
|
|
REQUIRE(bmp == reference);
|
|
}
|
|
|
|
SECTION("RGBA") {
|
|
// Read an image
|
|
BMP bmp("basea_hachi.bmp");
|
|
|
|
// Crop it
|
|
bmp = bmp.Crop(
|
|
Vector2i(95, 83),
|
|
Vector2i(149, 239)
|
|
);
|
|
|
|
// Read reference image
|
|
const BMP reference("basea_hachi_cropped.bmp");
|
|
|
|
// Assert that they are equal
|
|
REQUIRE(bmp == reference);
|
|
}
|
|
|
|
return;
|
|
}
|
|
|
|
// Tests that cropping with extreme points works (like, 0,0, widht, height)
|
|
TEST_CASE(__FILE__"/ExtremePoints", "[Cropping]")
|
|
{
|
|
SECTION("Crop includes {0,0}") {
|
|
// Read an image
|
|
BMP bmp("base_hachi.bmp");
|
|
|
|
// Crop it
|
|
bmp = bmp.Crop(
|
|
Vector2i(0, 0),
|
|
Vector2i(252, 337)
|
|
);
|
|
|
|
// Read reference image
|
|
const BMP reference("base_hachi_cropped_extreme_topleft.bmp");
|
|
|
|
// Assert that they are equal
|
|
REQUIRE(bmp == reference);
|
|
}
|
|
|
|
SECTION("Crop includes {width, height}") {
|
|
// Read an image
|
|
BMP bmp("base_hachi.bmp");
|
|
|
|
// Crop it
|
|
bmp = bmp.Crop(
|
|
Vector2i(96, 54),
|
|
bmp.GetDimensions() - Vector2i(96, 54) // As far-right as we can get
|
|
);
|
|
|
|
// Read reference image
|
|
const BMP reference("base_hachi_cropped_extreme_bottomright.bmp");
|
|
|
|
// Assert that they are equal
|
|
REQUIRE(bmp == reference);
|
|
}
|
|
|
|
SECTION("Crop includes {0, 0, width, height}") {
|
|
// Read an image
|
|
BMP bmp("base_hachi.bmp");
|
|
|
|
// Crop it (without taking away anything, lol)
|
|
BMP cropped = bmp.Crop(
|
|
Vector2i(0, 0),
|
|
bmp.GetDimensions() // As far-right as we can get
|
|
);
|
|
|
|
// Assert that the cropped image remains the same (as we cropped from 0,0 to width,height)
|
|
REQUIRE(bmp == cropped);
|
|
}
|
|
|
|
return;
|
|
}
|