Skip to content

Commit ed185c8

Browse files
committed
Add tests for sfStencilMode
1 parent ab1a1a2 commit ed185c8

File tree

2 files changed

+56
-0
lines changed

2 files changed

+56
-0
lines changed

test/CMakeLists.txt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -49,6 +49,7 @@ add_executable(test-csfml-graphics
4949
Graphics/Color.test.cpp
5050
Graphics/CoordinateType.test.cpp
5151
Graphics/Rect.test.cpp
52+
Graphics/StencilMode.test.cpp
5253
)
5354
target_link_libraries(test-csfml-graphics PRIVATE csfml-graphics Catch2::Catch2WithMain SFML::Graphics)
5455
set_target_warnings(test-csfml-graphics)

test/Graphics/StencilMode.test.cpp

Lines changed: 55 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,55 @@
1+
#include <CSFML/Graphics/StencilMode.h>
2+
3+
#include <SFML/Graphics/StencilMode.hpp>
4+
5+
#include <catch2/catch_test_macros.hpp>
6+
7+
TEST_CASE("[Graphics] sfStencilMode")
8+
{
9+
SECTION("sfStencilComparison")
10+
{
11+
STATIC_CHECK(sfStencilComparisonNever == static_cast<int>(sf::StencilComparison::Never));
12+
STATIC_CHECK(sfStencilComparisonLess == static_cast<int>(sf::StencilComparison::Less));
13+
STATIC_CHECK(sfStencilComparisonLessEqual == static_cast<int>(sf::StencilComparison::LessEqual));
14+
STATIC_CHECK(sfStencilComparisonGreater == static_cast<int>(sf::StencilComparison::Greater));
15+
STATIC_CHECK(sfStencilComparisonGreaterEqual == static_cast<int>(sf::StencilComparison::GreaterEqual));
16+
STATIC_CHECK(sfStencilComparisonEqual == static_cast<int>(sf::StencilComparison::Equal));
17+
STATIC_CHECK(sfStencilComparisonNotEqual == static_cast<int>(sf::StencilComparison::NotEqual));
18+
STATIC_CHECK(sfStencilComparisonAlways == static_cast<int>(sf::StencilComparison::Always));
19+
}
20+
21+
SECTION("sfStencilUpdateOperation")
22+
{
23+
STATIC_CHECK(sfStencilUpdateOperationKeep == static_cast<int>(sf::StencilUpdateOperation::Keep));
24+
STATIC_CHECK(sfStencilUpdateOperationZero == static_cast<int>(sf::StencilUpdateOperation::Zero));
25+
STATIC_CHECK(sfStencilUpdateOperationReplace == static_cast<int>(sf::StencilUpdateOperation::Replace));
26+
STATIC_CHECK(sfStencilUpdateOperationIncrement == static_cast<int>(sf::StencilUpdateOperation::Increment));
27+
STATIC_CHECK(sfStencilUpdateOperationDecrement == static_cast<int>(sf::StencilUpdateOperation::Decrement));
28+
STATIC_CHECK(sfStencilUpdateOperationInvert == static_cast<int>(sf::StencilUpdateOperation::Invert));
29+
}
30+
31+
SECTION("sfStencilValue")
32+
{
33+
constexpr sfStencilValue stencilValue{};
34+
STATIC_CHECK(stencilValue.value == 0);
35+
}
36+
37+
SECTION("sfStencilMode")
38+
{
39+
constexpr sfStencilMode stencilMode{};
40+
STATIC_CHECK(stencilMode.stencilComparison == sfStencilComparisonNever);
41+
STATIC_CHECK(stencilMode.stencilUpdateOperation == sfStencilUpdateOperationKeep);
42+
STATIC_CHECK(stencilMode.stencilReference.value == 0);
43+
STATIC_CHECK(stencilMode.stencilMask.value == 0);
44+
STATIC_CHECK(!stencilMode.stencilOnly);
45+
}
46+
47+
SECTION("sfStencilMode_default")
48+
{
49+
CHECK(sfStencilMode_default.stencilComparison == sfStencilComparisonAlways);
50+
CHECK(sfStencilMode_default.stencilUpdateOperation == sfStencilUpdateOperationKeep);
51+
CHECK(sfStencilMode_default.stencilReference.value == 0);
52+
CHECK(sfStencilMode_default.stencilMask.value == ~0u);
53+
CHECK(!sfStencilMode_default.stencilOnly);
54+
}
55+
}

0 commit comments

Comments
 (0)