Skip to content

Commit bb8a261

Browse files
committed
Add tests for sfColor
1 parent b3e6e23 commit bb8a261

File tree

2 files changed

+230
-0
lines changed

2 files changed

+230
-0
lines changed

test/CMakeLists.txt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -46,6 +46,7 @@ catch_discover_tests(test-csfml-window)
4646

4747
add_executable(test-csfml-graphics
4848
Graphics/BlendMode.test.cpp
49+
Graphics/Color.test.cpp
4950
Graphics/Rect.test.cpp
5051
)
5152
target_link_libraries(test-csfml-graphics PRIVATE csfml-graphics Catch2::Catch2WithMain SFML::Graphics)

test/Graphics/Color.test.cpp

Lines changed: 229 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,229 @@
1+
#include <CSFML/Graphics/Color.h>
2+
3+
#include <catch2/catch_test_macros.hpp>
4+
5+
TEST_CASE("[Graphics] sfColor")
6+
{
7+
SECTION("Construction")
8+
{
9+
constexpr sfColor color{};
10+
STATIC_CHECK(color.r == 0);
11+
STATIC_CHECK(color.g == 0);
12+
STATIC_CHECK(color.b == 0);
13+
STATIC_CHECK(color.a == 0);
14+
}
15+
16+
SECTION("Constants")
17+
{
18+
SECTION("sfBlack")
19+
{
20+
CHECK(sfBlack.r == 0);
21+
CHECK(sfBlack.g == 0);
22+
CHECK(sfBlack.b == 0);
23+
CHECK(sfBlack.a == 255);
24+
}
25+
26+
SECTION("sfWhite")
27+
{
28+
CHECK(sfWhite.r == 255);
29+
CHECK(sfWhite.g == 255);
30+
CHECK(sfWhite.b == 255);
31+
CHECK(sfWhite.a == 255);
32+
}
33+
34+
SECTION("sfRed")
35+
{
36+
CHECK(sfRed.r == 255);
37+
CHECK(sfRed.g == 0);
38+
CHECK(sfRed.b == 0);
39+
CHECK(sfRed.a == 255);
40+
}
41+
42+
SECTION("sfGreen")
43+
{
44+
CHECK(sfGreen.r == 0);
45+
CHECK(sfGreen.g == 255);
46+
CHECK(sfGreen.b == 0);
47+
CHECK(sfGreen.a == 255);
48+
}
49+
50+
SECTION("sfBlue")
51+
{
52+
CHECK(sfBlue.r == 0);
53+
CHECK(sfBlue.g == 0);
54+
CHECK(sfBlue.b == 255);
55+
CHECK(sfBlue.a == 255);
56+
}
57+
58+
SECTION("sfYellow")
59+
{
60+
CHECK(sfYellow.r == 255);
61+
CHECK(sfYellow.g == 255);
62+
CHECK(sfYellow.b == 0);
63+
CHECK(sfYellow.a == 255);
64+
}
65+
66+
SECTION("sfMagenta")
67+
{
68+
CHECK(sfMagenta.r == 255);
69+
CHECK(sfMagenta.g == 0);
70+
CHECK(sfMagenta.b == 255);
71+
CHECK(sfMagenta.a == 255);
72+
}
73+
74+
SECTION("sfCyan")
75+
{
76+
CHECK(sfCyan.r == 0);
77+
CHECK(sfCyan.g == 255);
78+
CHECK(sfCyan.b == 255);
79+
CHECK(sfCyan.a == 255);
80+
}
81+
82+
SECTION("sfTransparent")
83+
{
84+
CHECK(sfTransparent.r == 0);
85+
CHECK(sfTransparent.g == 0);
86+
CHECK(sfTransparent.b == 0);
87+
CHECK(sfTransparent.a == 0);
88+
}
89+
}
90+
91+
SECTION("sfColor_fromRGB")
92+
{
93+
const sfColor color = sfColor_fromRGB(1, 2, 3);
94+
CHECK(color.r == 1);
95+
CHECK(color.g == 2);
96+
CHECK(color.b == 3);
97+
CHECK(color.a == 255);
98+
}
99+
100+
SECTION("sfColor_fromRGBA")
101+
{
102+
const sfColor color = sfColor_fromRGBA(4, 5, 6, 7);
103+
CHECK(color.r == 4);
104+
CHECK(color.g == 5);
105+
CHECK(color.b == 6);
106+
CHECK(color.a == 7);
107+
}
108+
109+
SECTION("sfColor_fromInteger")
110+
{
111+
sfColor color = sfColor_fromInteger(0);
112+
CHECK(color.r == 0);
113+
CHECK(color.g == 0);
114+
CHECK(color.b == 0);
115+
CHECK(color.a == 0);
116+
117+
color = sfColor_fromInteger(1'000);
118+
CHECK(color.r == 0);
119+
CHECK(color.g == 0);
120+
CHECK(color.b == 3);
121+
CHECK(color.a == 232);
122+
123+
color = sfColor_fromInteger(1'000'000);
124+
CHECK(color.r == 0);
125+
CHECK(color.g == 15);
126+
CHECK(color.b == 66);
127+
CHECK(color.a == 64);
128+
129+
color = sfColor_fromInteger(1'000'000'000);
130+
CHECK(color.r == 59);
131+
CHECK(color.g == 154);
132+
CHECK(color.b == 202);
133+
CHECK(color.a == 0);
134+
135+
color = sfColor_fromInteger(std::numeric_limits<std::uint32_t>::max());
136+
CHECK(color.r == 255);
137+
CHECK(color.g == 255);
138+
CHECK(color.b == 255);
139+
CHECK(color.a == 255);
140+
}
141+
142+
SECTION("sfColor_toInteger")
143+
{
144+
CHECK(sfColor_toInteger(sfBlack) == 255);
145+
CHECK(sfColor_toInteger(sfWhite) == 4'294'967'295);
146+
CHECK(sfColor_toInteger(sfRed) == 4'278'190'335);
147+
CHECK(sfColor_toInteger(sfGreen) == 16'711'935);
148+
CHECK(sfColor_toInteger(sfBlue) == 65'535);
149+
CHECK(sfColor_toInteger(sfYellow) == 4'294'902'015);
150+
CHECK(sfColor_toInteger(sfMagenta) == 4'278'255'615);
151+
CHECK(sfColor_toInteger(sfYellow) == 4'294'902'015);
152+
CHECK(sfColor_toInteger(sfTransparent) == 0);
153+
}
154+
155+
SECTION("sfColor_add")
156+
{
157+
sfColor color = sfColor_add({}, {});
158+
CHECK(color.r == 0);
159+
CHECK(color.g == 0);
160+
CHECK(color.b == 0);
161+
CHECK(color.a == 0);
162+
163+
color = sfColor_add({1, 2, 3, 4}, {5, 6, 7, 8});
164+
CHECK(color.r == 6);
165+
CHECK(color.g == 8);
166+
CHECK(color.b == 10);
167+
CHECK(color.a == 12);
168+
169+
color = sfColor_add({10, 20, 30, 40}, {200, 210, 220, 230});
170+
CHECK(color.r == 210);
171+
CHECK(color.g == 230);
172+
CHECK(color.b == 250);
173+
CHECK(color.a == 255);
174+
175+
color = sfColor_add({255, 255, 255, 255}, {255, 255, 255, 25});
176+
CHECK(color.r == 255);
177+
CHECK(color.g == 255);
178+
CHECK(color.b == 255);
179+
CHECK(color.a == 255);
180+
}
181+
182+
SECTION("sfColor_subtract")
183+
{
184+
sfColor color = sfColor_subtract({}, {});
185+
CHECK(color.r == 0);
186+
CHECK(color.g == 0);
187+
CHECK(color.b == 0);
188+
CHECK(color.a == 0);
189+
190+
color = sfColor_subtract({}, {10, 20, 30, 40});
191+
CHECK(color.r == 0);
192+
CHECK(color.g == 0);
193+
CHECK(color.b == 0);
194+
CHECK(color.a == 0);
195+
196+
color = sfColor_subtract({100, 90, 80, 70}, {30, 40, 50, 60});
197+
CHECK(color.r == 70);
198+
CHECK(color.g == 50);
199+
CHECK(color.b == 30);
200+
CHECK(color.a == 10);
201+
}
202+
203+
SECTION("sfColor_modulate")
204+
{
205+
sfColor color = sfColor_modulate({}, {});
206+
CHECK(color.r == 0);
207+
CHECK(color.g == 0);
208+
CHECK(color.b == 0);
209+
CHECK(color.a == 0);
210+
211+
color = sfColor_modulate({}, {1, 2, 3, 4});
212+
CHECK(color.r == 0);
213+
CHECK(color.g == 0);
214+
CHECK(color.b == 0);
215+
CHECK(color.a == 0);
216+
217+
color = sfColor_modulate({5, 6, 7, 8}, {1, 2, 3, 4});
218+
CHECK(color.r == 0);
219+
CHECK(color.g == 0);
220+
CHECK(color.b == 0);
221+
CHECK(color.a == 0);
222+
223+
color = sfColor_modulate({128, 196, 216, 255}, {0, 128, 255, 128});
224+
CHECK(color.r == 0);
225+
CHECK(color.g == 98);
226+
CHECK(color.b == 216);
227+
CHECK(color.a == 128);
228+
}
229+
}

0 commit comments

Comments
 (0)