2022-03-05 20:22:36 +01:00
|
|
|
#include <Bmp.h>
|
|
|
|
#include <stdexcept>
|
|
|
|
#include "Catch2.h"
|
|
|
|
|
|
|
|
using namespace Leonetienne::BmpPP;
|
2022-03-06 12:08:26 +01:00
|
|
|
using namespace Eule;
|
2022-03-05 20:22:36 +01:00
|
|
|
|
2022-03-06 14:16:02 +01:00
|
|
|
// Tests that get information or modifying on an uninitialized image results in a runtime error
|
2022-03-05 20:22:36 +01:00
|
|
|
TEST_CASE(__FILE__"/RuntimeErrorOnUninitialized", "[Uninitialized]")
|
|
|
|
{
|
|
|
|
// Create uninitialized image
|
|
|
|
BMP bmp;
|
|
|
|
|
|
|
|
REQUIRE_THROWS_AS(
|
|
|
|
bmp.GetPixel({50, 60})
|
|
|
|
, std::runtime_error
|
|
|
|
);
|
|
|
|
|
|
|
|
REQUIRE_THROWS_AS(
|
|
|
|
bmp.SetPixel({50, 60}, 1,2,3,4)
|
|
|
|
, std::runtime_error
|
|
|
|
);
|
|
|
|
|
|
|
|
REQUIRE_THROWS_AS(
|
|
|
|
bmp.data()
|
|
|
|
, std::runtime_error
|
|
|
|
);
|
|
|
|
|
|
|
|
REQUIRE_THROWS_AS(
|
|
|
|
bmp.GetDimensions()
|
|
|
|
, std::runtime_error
|
|
|
|
);
|
|
|
|
|
|
|
|
REQUIRE_THROWS_AS(
|
|
|
|
bmp.GetColormode()
|
|
|
|
, std::runtime_error
|
|
|
|
);
|
|
|
|
|
|
|
|
REQUIRE_THROWS_AS(
|
2022-03-06 12:45:09 +01:00
|
|
|
bmp.GetNumChannels()
|
2022-03-05 20:22:36 +01:00
|
|
|
, std::runtime_error
|
|
|
|
);
|
|
|
|
|
|
|
|
REQUIRE_THROWS_AS(
|
|
|
|
bmp.GetPixelbufferSize()
|
|
|
|
, std::runtime_error
|
|
|
|
);
|
|
|
|
|
2022-03-06 14:16:02 +01:00
|
|
|
REQUIRE_THROWS_AS(
|
|
|
|
bmp.GetPixelbuffer()
|
|
|
|
, std::runtime_error
|
|
|
|
);
|
|
|
|
|
|
|
|
REQUIRE_THROWS_AS(
|
|
|
|
bmp.MirrorHorizontally()
|
|
|
|
, std::runtime_error
|
|
|
|
);
|
|
|
|
|
|
|
|
REQUIRE_THROWS_AS(
|
|
|
|
bmp.MirrorVertically()
|
|
|
|
, std::runtime_error
|
|
|
|
);
|
|
|
|
|
|
|
|
REQUIRE_THROWS_AS(
|
|
|
|
bmp.MirrorVertically()
|
|
|
|
, std::runtime_error
|
|
|
|
);
|
|
|
|
|
|
|
|
REQUIRE_THROWS_AS(
|
|
|
|
bmp.SwapChannels(0, 1)
|
|
|
|
, std::runtime_error
|
|
|
|
);
|
|
|
|
|
|
|
|
REQUIRE_THROWS_AS(
|
|
|
|
bmp.FillChannel(0, 0xFF)
|
|
|
|
, std::runtime_error
|
|
|
|
);
|
|
|
|
|
2022-03-05 20:22:36 +01:00
|
|
|
REQUIRE_THROWS_AS(
|
|
|
|
bmp.Write("foo.bmp")
|
|
|
|
, std::runtime_error
|
|
|
|
);
|
|
|
|
|
|
|
|
return;
|
|
|
|
}
|
|
|
|
|
|
|
|
// Tests that an uninitialized image reports to be uninitialized
|
|
|
|
TEST_CASE(__FILE__"/UninitializedImageIsUninitialized", "[Uninitialized]")
|
|
|
|
{
|
|
|
|
BMP bmp;
|
|
|
|
REQUIRE_FALSE(bmp.IsInitialized());
|
|
|
|
|
|
|
|
return;
|
|
|
|
}
|
|
|
|
|
|
|
|
// Tests that an image constructed via dimensions is initialized
|
|
|
|
TEST_CASE(__FILE__"/ConstructedByDimensionsIsInitialized", "[Uninitialized]")
|
|
|
|
{
|
2022-03-06 12:08:26 +01:00
|
|
|
BMP bmp(Vector2i(800, 600));
|
2022-03-05 20:22:36 +01:00
|
|
|
REQUIRE(bmp.IsInitialized());
|
|
|
|
|
|
|
|
return;
|
|
|
|
}
|