diff --git a/test/CMakeLists.txt b/test/CMakeLists.txt index 474fc27..7c1d1e1 100644 --- a/test/CMakeLists.txt +++ b/test/CMakeLists.txt @@ -49,6 +49,7 @@ add_executable(test-csfml-graphics Graphics/Color.test.cpp Graphics/CoordinateType.test.cpp Graphics/Rect.test.cpp + Graphics/StencilMode.test.cpp ) target_link_libraries(test-csfml-graphics PRIVATE csfml-graphics Catch2::Catch2WithMain SFML::Graphics) set_target_warnings(test-csfml-graphics) diff --git a/test/Graphics/StencilMode.test.cpp b/test/Graphics/StencilMode.test.cpp new file mode 100644 index 0000000..72b2cf6 --- /dev/null +++ b/test/Graphics/StencilMode.test.cpp @@ -0,0 +1,55 @@ +#include + +#include + +#include + +TEST_CASE("[Graphics] sfStencilMode") +{ + SECTION("sfStencilComparison") + { + STATIC_CHECK(sfStencilComparisonNever == static_cast(sf::StencilComparison::Never)); + STATIC_CHECK(sfStencilComparisonLess == static_cast(sf::StencilComparison::Less)); + STATIC_CHECK(sfStencilComparisonLessEqual == static_cast(sf::StencilComparison::LessEqual)); + STATIC_CHECK(sfStencilComparisonGreater == static_cast(sf::StencilComparison::Greater)); + STATIC_CHECK(sfStencilComparisonGreaterEqual == static_cast(sf::StencilComparison::GreaterEqual)); + STATIC_CHECK(sfStencilComparisonEqual == static_cast(sf::StencilComparison::Equal)); + STATIC_CHECK(sfStencilComparisonNotEqual == static_cast(sf::StencilComparison::NotEqual)); + STATIC_CHECK(sfStencilComparisonAlways == static_cast(sf::StencilComparison::Always)); + } + + SECTION("sfStencilUpdateOperation") + { + STATIC_CHECK(sfStencilUpdateOperationKeep == static_cast(sf::StencilUpdateOperation::Keep)); + STATIC_CHECK(sfStencilUpdateOperationZero == static_cast(sf::StencilUpdateOperation::Zero)); + STATIC_CHECK(sfStencilUpdateOperationReplace == static_cast(sf::StencilUpdateOperation::Replace)); + STATIC_CHECK(sfStencilUpdateOperationIncrement == static_cast(sf::StencilUpdateOperation::Increment)); + STATIC_CHECK(sfStencilUpdateOperationDecrement == static_cast(sf::StencilUpdateOperation::Decrement)); + STATIC_CHECK(sfStencilUpdateOperationInvert == static_cast(sf::StencilUpdateOperation::Invert)); + } + + SECTION("sfStencilValue") + { + constexpr sfStencilValue stencilValue{}; + STATIC_CHECK(stencilValue.value == 0); + } + + SECTION("sfStencilMode") + { + constexpr sfStencilMode stencilMode{}; + STATIC_CHECK(stencilMode.stencilComparison == sfStencilComparisonNever); + STATIC_CHECK(stencilMode.stencilUpdateOperation == sfStencilUpdateOperationKeep); + STATIC_CHECK(stencilMode.stencilReference.value == 0); + STATIC_CHECK(stencilMode.stencilMask.value == 0); + STATIC_CHECK(!stencilMode.stencilOnly); + } + + SECTION("sfStencilMode_default") + { + CHECK(sfStencilMode_default.stencilComparison == sfStencilComparisonAlways); + CHECK(sfStencilMode_default.stencilUpdateOperation == sfStencilUpdateOperationKeep); + CHECK(sfStencilMode_default.stencilReference.value == 0); + CHECK(sfStencilMode_default.stencilMask.value == ~0u); + CHECK(!sfStencilMode_default.stencilOnly); + } +}