Mercurial > molko
annotate tests/test-tileset.c @ 502:ab2816f9551c
ui: start reworking on styles
While here, demonstrates how we can use a custom style on a button.
author | David Demelier <markand@malikania.fr> |
---|---|
date | Wed, 01 Mar 2023 10:34:12 +0100 |
parents | 3ff1fe64d0cd |
children | ffd972a3d084 |
rev | line source |
---|---|
215
64f24b482722
rpg: implement tilesets separately, closes #2515 @4h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
1 /* |
64f24b482722
rpg: implement tilesets separately, closes #2515 @4h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
2 * test-tileset.c -- test tileset loader |
64f24b482722
rpg: implement tilesets separately, closes #2515 @4h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
3 * |
445
773a082f0b91
misc: update copyright years
David Demelier <markand@malikania.fr>
parents:
434
diff
changeset
|
4 * Copyright (c) 2020-2023 David Demelier <markand@malikania.fr> |
215
64f24b482722
rpg: implement tilesets separately, closes #2515 @4h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
5 * |
64f24b482722
rpg: implement tilesets separately, closes #2515 @4h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
6 * Permission to use, copy, modify, and/or distribute this software for any |
64f24b482722
rpg: implement tilesets separately, closes #2515 @4h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
7 * purpose with or without fee is hereby granted, provided that the above |
64f24b482722
rpg: implement tilesets separately, closes #2515 @4h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
8 * copyright notice and this permission notice appear in all copies. |
64f24b482722
rpg: implement tilesets separately, closes #2515 @4h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
9 * |
64f24b482722
rpg: implement tilesets separately, closes #2515 @4h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
10 * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES |
64f24b482722
rpg: implement tilesets separately, closes #2515 @4h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
11 * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF |
64f24b482722
rpg: implement tilesets separately, closes #2515 @4h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
12 * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR |
64f24b482722
rpg: implement tilesets separately, closes #2515 @4h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
13 * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES |
64f24b482722
rpg: implement tilesets separately, closes #2515 @4h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
14 * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN |
64f24b482722
rpg: implement tilesets separately, closes #2515 @4h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
15 * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF |
64f24b482722
rpg: implement tilesets separately, closes #2515 @4h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
16 * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. |
64f24b482722
rpg: implement tilesets separately, closes #2515 @4h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
17 */ |
64f24b482722
rpg: implement tilesets separately, closes #2515 @4h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
18 |
431
8f59201dc76b
core: cleanup hierarchy
David Demelier <markand@malikania.fr>
parents:
422
diff
changeset
|
19 #include <mlk/core/core.h> |
8f59201dc76b
core: cleanup hierarchy
David Demelier <markand@malikania.fr>
parents:
422
diff
changeset
|
20 #include <mlk/core/window.h> |
215
64f24b482722
rpg: implement tilesets separately, closes #2515 @4h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
21 |
434
4e78f045e8c0
rpg: cleanup hierarchy
David Demelier <markand@malikania.fr>
parents:
431
diff
changeset
|
22 #include <mlk/rpg/tileset-file.h> |
4e78f045e8c0
rpg: cleanup hierarchy
David Demelier <markand@malikania.fr>
parents:
431
diff
changeset
|
23 #include <mlk/rpg/tileset.h> |
215
64f24b482722
rpg: implement tilesets separately, closes #2515 @4h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
24 |
410
1bf7d6669f0a
tests: switch to libdt
David Demelier <markand@malikania.fr>
parents:
408
diff
changeset
|
25 #include <dt.h> |
407
e6f972e04519
tests: don't use automatic feature
David Demelier <markand@malikania.fr>
parents:
378
diff
changeset
|
26 |
410
1bf7d6669f0a
tests: switch to libdt
David Demelier <markand@malikania.fr>
parents:
408
diff
changeset
|
27 static void |
1bf7d6669f0a
tests: switch to libdt
David Demelier <markand@malikania.fr>
parents:
408
diff
changeset
|
28 test_basics_sample(void) |
215
64f24b482722
rpg: implement tilesets separately, closes #2515 @4h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
29 { |
64f24b482722
rpg: implement tilesets separately, closes #2515 @4h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
30 struct tileset_file loader = {0}; |
64f24b482722
rpg: implement tilesets separately, closes #2515 @4h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
31 struct tileset tileset; |
64f24b482722
rpg: implement tilesets separately, closes #2515 @4h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
32 |
410
1bf7d6669f0a
tests: switch to libdt
David Demelier <markand@malikania.fr>
parents:
408
diff
changeset
|
33 DT_EQ_INT(tileset_file_open(&loader, &tileset, DIRECTORY "/maps/sample-tileset.tileset"), 0); |
1bf7d6669f0a
tests: switch to libdt
David Demelier <markand@malikania.fr>
parents:
408
diff
changeset
|
34 DT_EQ_UINT(tileset.sprite->cellw, 64U); |
1bf7d6669f0a
tests: switch to libdt
David Demelier <markand@malikania.fr>
parents:
408
diff
changeset
|
35 DT_EQ_UINT(tileset.sprite->cellh, 32U); |
215
64f24b482722
rpg: implement tilesets separately, closes #2515 @4h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
36 |
410
1bf7d6669f0a
tests: switch to libdt
David Demelier <markand@malikania.fr>
parents:
408
diff
changeset
|
37 DT_EQ_UINT(tileset.tiledefsz, 4U); |
215
64f24b482722
rpg: implement tilesets separately, closes #2515 @4h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
38 |
410
1bf7d6669f0a
tests: switch to libdt
David Demelier <markand@malikania.fr>
parents:
408
diff
changeset
|
39 DT_EQ_UINT(tileset.tiledefs[0].id, 129); |
1bf7d6669f0a
tests: switch to libdt
David Demelier <markand@malikania.fr>
parents:
408
diff
changeset
|
40 DT_EQ_UINT(tileset.tiledefs[0].x, 8); |
1bf7d6669f0a
tests: switch to libdt
David Demelier <markand@malikania.fr>
parents:
408
diff
changeset
|
41 DT_EQ_UINT(tileset.tiledefs[0].y, 0); |
1bf7d6669f0a
tests: switch to libdt
David Demelier <markand@malikania.fr>
parents:
408
diff
changeset
|
42 DT_EQ_UINT(tileset.tiledefs[0].w, 56); |
1bf7d6669f0a
tests: switch to libdt
David Demelier <markand@malikania.fr>
parents:
408
diff
changeset
|
43 DT_EQ_UINT(tileset.tiledefs[0].h, 40); |
215
64f24b482722
rpg: implement tilesets separately, closes #2515 @4h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
44 |
410
1bf7d6669f0a
tests: switch to libdt
David Demelier <markand@malikania.fr>
parents:
408
diff
changeset
|
45 DT_EQ_UINT(tileset.tiledefs[1].id, 130); |
1bf7d6669f0a
tests: switch to libdt
David Demelier <markand@malikania.fr>
parents:
408
diff
changeset
|
46 DT_EQ_UINT(tileset.tiledefs[1].x, 0); |
1bf7d6669f0a
tests: switch to libdt
David Demelier <markand@malikania.fr>
parents:
408
diff
changeset
|
47 DT_EQ_UINT(tileset.tiledefs[1].y, 0); |
1bf7d6669f0a
tests: switch to libdt
David Demelier <markand@malikania.fr>
parents:
408
diff
changeset
|
48 DT_EQ_UINT(tileset.tiledefs[1].w, 62); |
1bf7d6669f0a
tests: switch to libdt
David Demelier <markand@malikania.fr>
parents:
408
diff
changeset
|
49 DT_EQ_UINT(tileset.tiledefs[1].h, 40); |
215
64f24b482722
rpg: implement tilesets separately, closes #2515 @4h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
50 |
410
1bf7d6669f0a
tests: switch to libdt
David Demelier <markand@malikania.fr>
parents:
408
diff
changeset
|
51 DT_EQ_UINT(tileset.tiledefs[2].id, 132); |
1bf7d6669f0a
tests: switch to libdt
David Demelier <markand@malikania.fr>
parents:
408
diff
changeset
|
52 DT_EQ_UINT(tileset.tiledefs[2].x, 0); |
1bf7d6669f0a
tests: switch to libdt
David Demelier <markand@malikania.fr>
parents:
408
diff
changeset
|
53 DT_EQ_UINT(tileset.tiledefs[2].y, 0); |
1bf7d6669f0a
tests: switch to libdt
David Demelier <markand@malikania.fr>
parents:
408
diff
changeset
|
54 DT_EQ_UINT(tileset.tiledefs[2].w, 64); |
1bf7d6669f0a
tests: switch to libdt
David Demelier <markand@malikania.fr>
parents:
408
diff
changeset
|
55 DT_EQ_UINT(tileset.tiledefs[2].h, 40); |
215
64f24b482722
rpg: implement tilesets separately, closes #2515 @4h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
56 |
410
1bf7d6669f0a
tests: switch to libdt
David Demelier <markand@malikania.fr>
parents:
408
diff
changeset
|
57 DT_EQ_UINT(tileset.tiledefs[3].id, 133); |
1bf7d6669f0a
tests: switch to libdt
David Demelier <markand@malikania.fr>
parents:
408
diff
changeset
|
58 DT_EQ_UINT(tileset.tiledefs[3].x, 0); |
1bf7d6669f0a
tests: switch to libdt
David Demelier <markand@malikania.fr>
parents:
408
diff
changeset
|
59 DT_EQ_UINT(tileset.tiledefs[3].y, 0); |
1bf7d6669f0a
tests: switch to libdt
David Demelier <markand@malikania.fr>
parents:
408
diff
changeset
|
60 DT_EQ_UINT(tileset.tiledefs[3].w, 58); |
1bf7d6669f0a
tests: switch to libdt
David Demelier <markand@malikania.fr>
parents:
408
diff
changeset
|
61 DT_EQ_UINT(tileset.tiledefs[3].h, 40); |
215
64f24b482722
rpg: implement tilesets separately, closes #2515 @4h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
62 |
64f24b482722
rpg: implement tilesets separately, closes #2515 @4h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
63 tileset_file_finish(&loader); |
64f24b482722
rpg: implement tilesets separately, closes #2515 @4h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
64 } |
64f24b482722
rpg: implement tilesets separately, closes #2515 @4h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
65 |
410
1bf7d6669f0a
tests: switch to libdt
David Demelier <markand@malikania.fr>
parents:
408
diff
changeset
|
66 static void |
1bf7d6669f0a
tests: switch to libdt
David Demelier <markand@malikania.fr>
parents:
408
diff
changeset
|
67 test_error_tilewidth(void) |
215
64f24b482722
rpg: implement tilesets separately, closes #2515 @4h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
68 { |
64f24b482722
rpg: implement tilesets separately, closes #2515 @4h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
69 struct tileset_file loader = {0}; |
64f24b482722
rpg: implement tilesets separately, closes #2515 @4h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
70 struct tileset tileset = {0}; |
64f24b482722
rpg: implement tilesets separately, closes #2515 @4h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
71 |
410
1bf7d6669f0a
tests: switch to libdt
David Demelier <markand@malikania.fr>
parents:
408
diff
changeset
|
72 DT_EQ_INT(tileset_file_open(&loader, &tileset, DIRECTORY "/maps/error-tilewidth.tileset"), -1); |
215
64f24b482722
rpg: implement tilesets separately, closes #2515 @4h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
73 } |
64f24b482722
rpg: implement tilesets separately, closes #2515 @4h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
74 |
410
1bf7d6669f0a
tests: switch to libdt
David Demelier <markand@malikania.fr>
parents:
408
diff
changeset
|
75 static void |
1bf7d6669f0a
tests: switch to libdt
David Demelier <markand@malikania.fr>
parents:
408
diff
changeset
|
76 test_error_tileheight(void) |
215
64f24b482722
rpg: implement tilesets separately, closes #2515 @4h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
77 { |
336
f5a5bbb77122
tests: switch to rexo
David Demelier <markand@malikania.fr>
parents:
314
diff
changeset
|
78 struct tileset_file loader = {0}; |
f5a5bbb77122
tests: switch to rexo
David Demelier <markand@malikania.fr>
parents:
314
diff
changeset
|
79 struct tileset tileset = {0}; |
f5a5bbb77122
tests: switch to rexo
David Demelier <markand@malikania.fr>
parents:
314
diff
changeset
|
80 |
410
1bf7d6669f0a
tests: switch to libdt
David Demelier <markand@malikania.fr>
parents:
408
diff
changeset
|
81 DT_EQ_INT(tileset_file_open(&loader, &tileset, DIRECTORY "/maps/error-tileheight.tileset"), -1); |
215
64f24b482722
rpg: implement tilesets separately, closes #2515 @4h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
82 } |
64f24b482722
rpg: implement tilesets separately, closes #2515 @4h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
83 |
410
1bf7d6669f0a
tests: switch to libdt
David Demelier <markand@malikania.fr>
parents:
408
diff
changeset
|
84 static void |
1bf7d6669f0a
tests: switch to libdt
David Demelier <markand@malikania.fr>
parents:
408
diff
changeset
|
85 test_error_image(void) |
1bf7d6669f0a
tests: switch to libdt
David Demelier <markand@malikania.fr>
parents:
408
diff
changeset
|
86 { |
1bf7d6669f0a
tests: switch to libdt
David Demelier <markand@malikania.fr>
parents:
408
diff
changeset
|
87 struct tileset_file loader = {0}; |
1bf7d6669f0a
tests: switch to libdt
David Demelier <markand@malikania.fr>
parents:
408
diff
changeset
|
88 struct tileset tileset = {0}; |
1bf7d6669f0a
tests: switch to libdt
David Demelier <markand@malikania.fr>
parents:
408
diff
changeset
|
89 |
1bf7d6669f0a
tests: switch to libdt
David Demelier <markand@malikania.fr>
parents:
408
diff
changeset
|
90 DT_EQ_INT(tileset_file_open(&loader, &tileset, DIRECTORY "/maps/error-image.tileset"), -1); |
1bf7d6669f0a
tests: switch to libdt
David Demelier <markand@malikania.fr>
parents:
408
diff
changeset
|
91 } |
407
e6f972e04519
tests: don't use automatic feature
David Demelier <markand@malikania.fr>
parents:
378
diff
changeset
|
92 |
215
64f24b482722
rpg: implement tilesets separately, closes #2515 @4h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
93 int |
422
b0579ae033ed
core: use err.h in (action|drawable)-stack
David Demelier <markand@malikania.fr>
parents:
410
diff
changeset
|
94 main(void) |
215
64f24b482722
rpg: implement tilesets separately, closes #2515 @4h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
95 { |
485
3ff1fe64d0cd
core: window -> mlk_window
David Demelier <markand@malikania.fr>
parents:
462
diff
changeset
|
96 if (mlk_core_init("fr.malikania", "test") < 0 || mlk_window_open("test-tileset", 100, 100) < 0) |
336
f5a5bbb77122
tests: switch to rexo
David Demelier <markand@malikania.fr>
parents:
314
diff
changeset
|
97 return 1; |
215
64f24b482722
rpg: implement tilesets separately, closes #2515 @4h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
98 |
410
1bf7d6669f0a
tests: switch to libdt
David Demelier <markand@malikania.fr>
parents:
408
diff
changeset
|
99 DT_RUN(test_basics_sample); |
1bf7d6669f0a
tests: switch to libdt
David Demelier <markand@malikania.fr>
parents:
408
diff
changeset
|
100 DT_RUN(test_error_tilewidth); |
1bf7d6669f0a
tests: switch to libdt
David Demelier <markand@malikania.fr>
parents:
408
diff
changeset
|
101 DT_RUN(test_error_tileheight); |
1bf7d6669f0a
tests: switch to libdt
David Demelier <markand@malikania.fr>
parents:
408
diff
changeset
|
102 DT_RUN(test_error_image); |
1bf7d6669f0a
tests: switch to libdt
David Demelier <markand@malikania.fr>
parents:
408
diff
changeset
|
103 DT_SUMMARY(); |
215
64f24b482722
rpg: implement tilesets separately, closes #2515 @4h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
104 } |