Skip to content

Commit 112abc1

Browse files
committed
Add tests for sfView
1 parent b0b4d25 commit 112abc1

File tree

2 files changed

+158
-0
lines changed

2 files changed

+158
-0
lines changed

test/CMakeLists.txt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -53,6 +53,7 @@ add_executable(test-csfml-graphics
5353
Graphics/StencilMode.test.cpp
5454
Graphics/Transform.test.cpp
5555
Graphics/VertexArray.test.cpp
56+
Graphics/View.test.cpp
5657
)
5758
target_link_libraries(test-csfml-graphics PRIVATE csfml-graphics Catch2::Catch2WithMain SFML::Graphics)
5859
set_target_warnings(test-csfml-graphics)

test/Graphics/View.test.cpp

Lines changed: 157 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,157 @@
1+
#include <CSFML/Graphics/View.h>
2+
3+
#include <catch2/catch_test_macros.hpp>
4+
5+
TEST_CASE("[Graphics] sfView")
6+
{
7+
SECTION("sfView_create")
8+
{
9+
const sfView* view = sfView_create();
10+
const sfVector2f center = sfView_getCenter(view);
11+
CHECK(center.x == 500);
12+
CHECK(center.y == 500);
13+
const sfVector2f size = sfView_getSize(view);
14+
CHECK(size.x == 1000);
15+
CHECK(size.y == 1000);
16+
CHECK(sfView_getRotation(view) == 0);
17+
const sfFloatRect viewport = sfView_getViewport(view);
18+
CHECK(viewport.position.x == 0);
19+
CHECK(viewport.position.y == 0);
20+
CHECK(viewport.size.x == 1);
21+
CHECK(viewport.size.y == 1);
22+
const sfFloatRect scissor = sfView_getScissor(view);
23+
CHECK(scissor.position.x == 0);
24+
CHECK(scissor.position.y == 0);
25+
CHECK(scissor.size.x == 1);
26+
CHECK(scissor.size.y == 1);
27+
sfView_destroy(view);
28+
}
29+
30+
SECTION("sfView_createFromRect")
31+
{
32+
const sfView* view = sfView_createFromRect({{50, 100}, {240, 360}});
33+
const sfVector2f center = sfView_getCenter(view);
34+
CHECK(center.x == 170);
35+
CHECK(center.y == 280);
36+
const sfVector2f size = sfView_getSize(view);
37+
CHECK(size.x == 240);
38+
CHECK(size.y == 360);
39+
CHECK(sfView_getRotation(view) == 0);
40+
const sfFloatRect viewport = sfView_getViewport(view);
41+
CHECK(viewport.position.x == 0);
42+
CHECK(viewport.position.y == 0);
43+
CHECK(viewport.size.x == 1);
44+
CHECK(viewport.size.y == 1);
45+
const sfFloatRect scissor = sfView_getScissor(view);
46+
CHECK(scissor.position.x == 0);
47+
CHECK(scissor.position.y == 0);
48+
CHECK(scissor.size.x == 1);
49+
CHECK(scissor.size.y == 1);
50+
sfView_destroy(view);
51+
}
52+
53+
SECTION("sfView_copy")
54+
{
55+
sfView* view1 = sfView_createFromRect({{50, 100}, {240, 360}});
56+
sfView_setViewport(view1, {{25, 40}, {100, 200}});
57+
sfView_setScissor(view1, {{0.75f, 0.25f}, {0, 0.5f}});
58+
const sfView* view2 = sfView_copy(view1);
59+
const sfVector2f center = sfView_getCenter(view2);
60+
CHECK(center.x == 170);
61+
CHECK(center.y == 280);
62+
const sfVector2f size = sfView_getSize(view2);
63+
CHECK(size.x == 240);
64+
CHECK(size.y == 360);
65+
CHECK(sfView_getRotation(view2) == 0);
66+
const sfFloatRect viewport = sfView_getViewport(view2);
67+
CHECK(viewport.position.x == 25);
68+
CHECK(viewport.position.y == 40);
69+
CHECK(viewport.size.x == 100);
70+
CHECK(viewport.size.y == 200);
71+
const sfFloatRect scissor = sfView_getScissor(view2);
72+
CHECK(scissor.position.x == 0.75f);
73+
CHECK(scissor.position.y == 0.25f);
74+
CHECK(scissor.size.x == 0);
75+
CHECK(scissor.size.y == 0.5f);
76+
sfView_destroy(view2);
77+
sfView_destroy(view1);
78+
}
79+
80+
SECTION("sfView_setCenter")
81+
{
82+
sfView* view = sfView_create();
83+
sfView_setCenter(view, {400, 600});
84+
const sfVector2f center = sfView_getCenter(view);
85+
CHECK(center.x == 400);
86+
CHECK(center.y == 600);
87+
sfView_destroy(view);
88+
}
89+
90+
SECTION("sfView_setSize")
91+
{
92+
sfView* view = sfView_create();
93+
sfView_setSize(view, {150, 350});
94+
const sfVector2f size = sfView_getSize(view);
95+
CHECK(size.x == 150);
96+
CHECK(size.y == 350);
97+
sfView_destroy(view);
98+
}
99+
100+
SECTION("sfView_setRotation")
101+
{
102+
sfView* view = sfView_create();
103+
sfView_setRotation(view, 45);
104+
CHECK(sfView_getRotation(view) == 45);
105+
sfView_destroy(view);
106+
}
107+
108+
SECTION("sfView_setViewport")
109+
{
110+
sfView* view = sfView_create();
111+
sfView_setViewport(view, {{25, 40}, {100, 200}});
112+
const sfFloatRect viewport = sfView_getViewport(view);
113+
CHECK(viewport.position.x == 25);
114+
CHECK(viewport.position.y == 40);
115+
CHECK(viewport.size.x == 100);
116+
CHECK(viewport.size.y == 200);
117+
sfView_destroy(view);
118+
}
119+
120+
SECTION("sfView_setScissor")
121+
{
122+
sfView* view = sfView_create();
123+
sfView_setScissor(view, {{0.75f, 0.25f}, {0, 0.5f}});
124+
const sfFloatRect scissor = sfView_getScissor(view);
125+
CHECK(scissor.position.x == 0.75f);
126+
CHECK(scissor.position.y == 0.25f);
127+
CHECK(scissor.size.x == 0);
128+
CHECK(scissor.size.y == 0.5f);
129+
sfView_destroy(view);
130+
}
131+
132+
SECTION("sfView_move, sfView_rotate, sfView_zoom")
133+
{
134+
sfView* view = sfView_create();
135+
sfView_move(view, {15, 35});
136+
sfView_rotate(view, 180);
137+
sfView_zoom(view, 2);
138+
const sfVector2f center = sfView_getCenter(view);
139+
CHECK(center.x == 515);
140+
CHECK(center.y == 535);
141+
const sfVector2f size = sfView_getSize(view);
142+
CHECK(size.x == 2000);
143+
CHECK(size.y == 2000);
144+
CHECK(sfView_getRotation(view) == 180);
145+
const sfFloatRect viewport = sfView_getViewport(view);
146+
CHECK(viewport.position.x == 0);
147+
CHECK(viewport.position.y == 0);
148+
CHECK(viewport.size.x == 1);
149+
CHECK(viewport.size.y == 1);
150+
const sfFloatRect scissor = sfView_getScissor(view);
151+
CHECK(scissor.position.x == 0);
152+
CHECK(scissor.position.y == 0);
153+
CHECK(scissor.size.x == 1);
154+
CHECK(scissor.size.y == 1);
155+
sfView_destroy(view);
156+
}
157+
}

0 commit comments

Comments
 (0)