Skip to content

Commit f6949a5

Browse files
committed
Add tests for sfTransform
1 parent ed185c8 commit f6949a5

File tree

2 files changed

+129
-0
lines changed

2 files changed

+129
-0
lines changed

test/CMakeLists.txt

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

test/Graphics/Transform.test.cpp

Lines changed: 128 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,128 @@
1+
#include <CSFML/Graphics/Transform.h>
2+
3+
#include <catch2/catch_test_macros.hpp>
4+
5+
#include <array>
6+
7+
TEST_CASE("[Graphics] sfTransform")
8+
{
9+
SECTION("Construction")
10+
{
11+
constexpr sfTransform transform{};
12+
STATIC_CHECK(std::size(transform.matrix) == 9);
13+
for (const auto element : transform.matrix)
14+
CHECK(element == 0);
15+
}
16+
17+
SECTION("sfTransform_Identity")
18+
{
19+
CHECK(sfTransform_Identity.matrix[0] == 1);
20+
CHECK(sfTransform_Identity.matrix[1] == 0);
21+
CHECK(sfTransform_Identity.matrix[2] == 0);
22+
CHECK(sfTransform_Identity.matrix[3] == 0);
23+
CHECK(sfTransform_Identity.matrix[4] == 1);
24+
CHECK(sfTransform_Identity.matrix[5] == 0);
25+
CHECK(sfTransform_Identity.matrix[6] == 0);
26+
CHECK(sfTransform_Identity.matrix[7] == 0);
27+
CHECK(sfTransform_Identity.matrix[8] == 1);
28+
}
29+
30+
SECTION("sfTransform_fromMatrix")
31+
{
32+
const auto transform = sfTransform_fromMatrix(1, 2, 3, 4, 5, 6, 7, 8, 9);
33+
CHECK(transform.matrix[0] == 1);
34+
CHECK(transform.matrix[1] == 2);
35+
CHECK(transform.matrix[2] == 3);
36+
CHECK(transform.matrix[3] == 4);
37+
CHECK(transform.matrix[4] == 5);
38+
CHECK(transform.matrix[5] == 6);
39+
CHECK(transform.matrix[6] == 7);
40+
CHECK(transform.matrix[7] == 8);
41+
CHECK(transform.matrix[8] == 9);
42+
}
43+
44+
SECTION("sfTransform_getMatrix")
45+
{
46+
const auto transform = sfTransform_fromMatrix(1, 2, 3, 4, 5, 6, 7, 8, 9);
47+
std::array<float, 16> matrix{};
48+
matrix.fill(std::numeric_limits<float>::signaling_NaN());
49+
sfTransform_getMatrix(&transform, matrix.data());
50+
CHECK(matrix[0] == 1);
51+
CHECK(matrix[1] == 4);
52+
CHECK(matrix[2] == 0);
53+
CHECK(matrix[3] == 7);
54+
CHECK(matrix[4] == 2);
55+
CHECK(matrix[5] == 5);
56+
CHECK(matrix[6] == 0);
57+
CHECK(matrix[7] == 8);
58+
CHECK(matrix[8] == 0);
59+
CHECK(matrix[9] == 0);
60+
CHECK(matrix[10] == 1);
61+
CHECK(matrix[11] == 0);
62+
CHECK(matrix[12] == 3);
63+
CHECK(matrix[13] == 6);
64+
CHECK(matrix[14] == 0);
65+
CHECK(matrix[15] == 9);
66+
}
67+
68+
SECTION("sfTransform_getInverse")
69+
{
70+
SECTION("Identity")
71+
{
72+
const auto inverse = sfTransform_getInverse(&sfTransform_Identity);
73+
for (std::size_t i = 0; i < std::size(inverse.matrix); ++i)
74+
CHECK(inverse.matrix[0] == sfTransform_Identity.matrix[0]);
75+
}
76+
77+
SECTION("Non-identity")
78+
{
79+
const auto transform = sfTransform_fromMatrix(1, 2, 3, 4, 5, 4, 3, 2, 1);
80+
const auto inverse = sfTransform_getInverse(&transform);
81+
CHECK(inverse.matrix[0] == 0.375f);
82+
CHECK(inverse.matrix[1] == -0.5f);
83+
CHECK(inverse.matrix[2] == 0.875f);
84+
CHECK(inverse.matrix[3] == -1);
85+
CHECK(inverse.matrix[4] == 1);
86+
CHECK(inverse.matrix[5] == -1);
87+
CHECK(inverse.matrix[6] == 0.875f);
88+
CHECK(inverse.matrix[7] == -0.5f);
89+
CHECK(inverse.matrix[8] == 0.375f);
90+
}
91+
}
92+
93+
SECTION("sfTransform_transformPoint")
94+
{
95+
}
96+
97+
SECTION("sfTransform_transformRect")
98+
{
99+
}
100+
101+
SECTION("sfTransform_combine")
102+
{
103+
}
104+
105+
SECTION("sfTransform_translate")
106+
{
107+
}
108+
109+
SECTION("sfTransform_rotate")
110+
{
111+
}
112+
113+
SECTION("sfTransform_rotateWithCenter")
114+
{
115+
}
116+
117+
SECTION("sfTransform_scale")
118+
{
119+
}
120+
121+
SECTION("sfTransform_scaleWithCenter")
122+
{
123+
}
124+
125+
SECTION("sfTransform_equal")
126+
{
127+
}
128+
}

0 commit comments

Comments
 (0)