It is now possible to create uninitialized images
This commit is contained in:
@@ -20,4 +20,5 @@ add_executable(Test
|
||||
|
||||
BmpHeader.cpp
|
||||
ReInitialize.cpp
|
||||
Uninitialized.cpp
|
||||
)
|
||||
|
@@ -30,3 +30,17 @@ TEST_CASE(__FILE__"/ReInitialize", "[ReInitialize]")
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
// Tests that re-initializing images results in initialized images
|
||||
TEST_CASE(__FILE__"/ReInitializingWillInitialize", "[ReInitialize]")
|
||||
{
|
||||
// Create uninitialized image
|
||||
BMP bmp;
|
||||
REQUIRE_FALSE(bmp.IsInitialized());
|
||||
|
||||
// Now re-initialize it
|
||||
bmp.ReInitialize({800, 600});
|
||||
REQUIRE(bmp.IsInitialized());
|
||||
|
||||
return;
|
||||
}
|
||||
|
72
Test/Uninitialized.cpp
Normal file
72
Test/Uninitialized.cpp
Normal file
@@ -0,0 +1,72 @@
|
||||
#include <Bmp.h>
|
||||
#include <stdexcept>
|
||||
#include "Catch2.h"
|
||||
|
||||
using namespace Leonetienne::BmpPP;
|
||||
|
||||
// Tests that trying to interrogate any getter/Write() on an uninitialized image results in a runtime error
|
||||
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(
|
||||
bmp.GetNumColorChannels()
|
||||
, std::runtime_error
|
||||
);
|
||||
|
||||
REQUIRE_THROWS_AS(
|
||||
bmp.GetPixelbufferSize()
|
||||
, std::runtime_error
|
||||
);
|
||||
|
||||
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]")
|
||||
{
|
||||
BMP bmp({800, 600});
|
||||
REQUIRE(bmp.IsInitialized());
|
||||
|
||||
return;
|
||||
}
|
Reference in New Issue
Block a user