Mercurial > molko
annotate tests/test-tileset.c @ 371:8ac282bd5935
js: add action bindings
author | David Demelier <markand@malikania.fr> |
---|---|
date | Mon, 25 Oct 2021 12:43:09 +0200 |
parents | 06badab52877 |
children | 460c78706989 |
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 * |
314 | 4 * Copyright (c) 2020-2021 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 |
336
f5a5bbb77122
tests: switch to rexo
David Demelier <markand@malikania.fr>
parents:
314
diff
changeset
|
19 #include <rexo.h> |
215
64f24b482722
rpg: implement tilesets separately, closes #2515 @4h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
20 |
64f24b482722
rpg: implement tilesets separately, closes #2515 @4h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
21 #include <core/core.h> |
64f24b482722
rpg: implement tilesets separately, closes #2515 @4h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
22 #include <core/window.h> |
64f24b482722
rpg: implement tilesets separately, closes #2515 @4h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
23 |
64f24b482722
rpg: implement tilesets separately, closes #2515 @4h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
24 #include <rpg/tileset-file.h> |
64f24b482722
rpg: implement tilesets separately, closes #2515 @4h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
25 #include <rpg/tileset.h> |
64f24b482722
rpg: implement tilesets separately, closes #2515 @4h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
26 |
336
f5a5bbb77122
tests: switch to rexo
David Demelier <markand@malikania.fr>
parents:
314
diff
changeset
|
27 RX_TEST_CASE(test, basics_sample) |
215
64f24b482722
rpg: implement tilesets separately, closes #2515 @4h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
28 { |
64f24b482722
rpg: implement tilesets separately, closes #2515 @4h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
29 struct tileset_file loader = {0}; |
64f24b482722
rpg: implement tilesets separately, closes #2515 @4h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
30 struct tileset tileset; |
64f24b482722
rpg: implement tilesets separately, closes #2515 @4h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
31 |
365
06badab52877
tests: fix test-tileset
David Demelier <markand@malikania.fr>
parents:
336
diff
changeset
|
32 RX_REQUIRE(tileset_file_open(&loader, &tileset, DIRECTORY "/maps/sample-tileset.tileset") == 0); |
336
f5a5bbb77122
tests: switch to rexo
David Demelier <markand@malikania.fr>
parents:
314
diff
changeset
|
33 RX_UINT_REQUIRE_EQUAL(tileset.sprite->cellw, 64U); |
f5a5bbb77122
tests: switch to rexo
David Demelier <markand@malikania.fr>
parents:
314
diff
changeset
|
34 RX_UINT_REQUIRE_EQUAL(tileset.sprite->cellh, 32U); |
215
64f24b482722
rpg: implement tilesets separately, closes #2515 @4h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
35 |
336
f5a5bbb77122
tests: switch to rexo
David Demelier <markand@malikania.fr>
parents:
314
diff
changeset
|
36 RX_UINT_REQUIRE_EQUAL(tileset.tiledefsz, 4U); |
215
64f24b482722
rpg: implement tilesets separately, closes #2515 @4h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
37 |
336
f5a5bbb77122
tests: switch to rexo
David Demelier <markand@malikania.fr>
parents:
314
diff
changeset
|
38 RX_UINT_REQUIRE_EQUAL(tileset.tiledefs[0].id, 129); |
f5a5bbb77122
tests: switch to rexo
David Demelier <markand@malikania.fr>
parents:
314
diff
changeset
|
39 RX_UINT_REQUIRE_EQUAL(tileset.tiledefs[0].x, 8); |
f5a5bbb77122
tests: switch to rexo
David Demelier <markand@malikania.fr>
parents:
314
diff
changeset
|
40 RX_UINT_REQUIRE_EQUAL(tileset.tiledefs[0].y, 0); |
f5a5bbb77122
tests: switch to rexo
David Demelier <markand@malikania.fr>
parents:
314
diff
changeset
|
41 RX_UINT_REQUIRE_EQUAL(tileset.tiledefs[0].w, 56); |
f5a5bbb77122
tests: switch to rexo
David Demelier <markand@malikania.fr>
parents:
314
diff
changeset
|
42 RX_UINT_REQUIRE_EQUAL(tileset.tiledefs[0].h, 40); |
215
64f24b482722
rpg: implement tilesets separately, closes #2515 @4h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
43 |
336
f5a5bbb77122
tests: switch to rexo
David Demelier <markand@malikania.fr>
parents:
314
diff
changeset
|
44 RX_UINT_REQUIRE_EQUAL(tileset.tiledefs[1].id, 130); |
f5a5bbb77122
tests: switch to rexo
David Demelier <markand@malikania.fr>
parents:
314
diff
changeset
|
45 RX_UINT_REQUIRE_EQUAL(tileset.tiledefs[1].x, 0); |
f5a5bbb77122
tests: switch to rexo
David Demelier <markand@malikania.fr>
parents:
314
diff
changeset
|
46 RX_UINT_REQUIRE_EQUAL(tileset.tiledefs[1].y, 0); |
f5a5bbb77122
tests: switch to rexo
David Demelier <markand@malikania.fr>
parents:
314
diff
changeset
|
47 RX_UINT_REQUIRE_EQUAL(tileset.tiledefs[1].w, 62); |
f5a5bbb77122
tests: switch to rexo
David Demelier <markand@malikania.fr>
parents:
314
diff
changeset
|
48 RX_UINT_REQUIRE_EQUAL(tileset.tiledefs[1].h, 40); |
215
64f24b482722
rpg: implement tilesets separately, closes #2515 @4h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
49 |
336
f5a5bbb77122
tests: switch to rexo
David Demelier <markand@malikania.fr>
parents:
314
diff
changeset
|
50 RX_UINT_REQUIRE_EQUAL(tileset.tiledefs[2].id, 132); |
f5a5bbb77122
tests: switch to rexo
David Demelier <markand@malikania.fr>
parents:
314
diff
changeset
|
51 RX_UINT_REQUIRE_EQUAL(tileset.tiledefs[2].x, 0); |
f5a5bbb77122
tests: switch to rexo
David Demelier <markand@malikania.fr>
parents:
314
diff
changeset
|
52 RX_UINT_REQUIRE_EQUAL(tileset.tiledefs[2].y, 0); |
f5a5bbb77122
tests: switch to rexo
David Demelier <markand@malikania.fr>
parents:
314
diff
changeset
|
53 RX_UINT_REQUIRE_EQUAL(tileset.tiledefs[2].w, 64); |
f5a5bbb77122
tests: switch to rexo
David Demelier <markand@malikania.fr>
parents:
314
diff
changeset
|
54 RX_UINT_REQUIRE_EQUAL(tileset.tiledefs[2].h, 40); |
215
64f24b482722
rpg: implement tilesets separately, closes #2515 @4h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
55 |
336
f5a5bbb77122
tests: switch to rexo
David Demelier <markand@malikania.fr>
parents:
314
diff
changeset
|
56 RX_UINT_REQUIRE_EQUAL(tileset.tiledefs[3].id, 133); |
f5a5bbb77122
tests: switch to rexo
David Demelier <markand@malikania.fr>
parents:
314
diff
changeset
|
57 RX_UINT_REQUIRE_EQUAL(tileset.tiledefs[3].x, 0); |
f5a5bbb77122
tests: switch to rexo
David Demelier <markand@malikania.fr>
parents:
314
diff
changeset
|
58 RX_UINT_REQUIRE_EQUAL(tileset.tiledefs[3].y, 0); |
f5a5bbb77122
tests: switch to rexo
David Demelier <markand@malikania.fr>
parents:
314
diff
changeset
|
59 RX_UINT_REQUIRE_EQUAL(tileset.tiledefs[3].w, 58); |
f5a5bbb77122
tests: switch to rexo
David Demelier <markand@malikania.fr>
parents:
314
diff
changeset
|
60 RX_UINT_REQUIRE_EQUAL(tileset.tiledefs[3].h, 40); |
215
64f24b482722
rpg: implement tilesets separately, closes #2515 @4h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
61 |
64f24b482722
rpg: implement tilesets separately, closes #2515 @4h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
62 tileset_file_finish(&loader); |
64f24b482722
rpg: implement tilesets separately, closes #2515 @4h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
63 } |
64f24b482722
rpg: implement tilesets separately, closes #2515 @4h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
64 |
336
f5a5bbb77122
tests: switch to rexo
David Demelier <markand@malikania.fr>
parents:
314
diff
changeset
|
65 RX_TEST_CASE(test, error_tilewidth) |
215
64f24b482722
rpg: implement tilesets separately, closes #2515 @4h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
66 { |
64f24b482722
rpg: implement tilesets separately, closes #2515 @4h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
67 struct tileset_file loader = {0}; |
64f24b482722
rpg: implement tilesets separately, closes #2515 @4h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
68 struct tileset tileset = {0}; |
64f24b482722
rpg: implement tilesets separately, closes #2515 @4h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
69 |
365
06badab52877
tests: fix test-tileset
David Demelier <markand@malikania.fr>
parents:
336
diff
changeset
|
70 RX_INT_REQUIRE_EQUAL(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
|
71 } |
64f24b482722
rpg: implement tilesets separately, closes #2515 @4h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
72 |
336
f5a5bbb77122
tests: switch to rexo
David Demelier <markand@malikania.fr>
parents:
314
diff
changeset
|
73 RX_TEST_CASE(test, error_tileheight) |
215
64f24b482722
rpg: implement tilesets separately, closes #2515 @4h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
74 { |
64f24b482722
rpg: implement tilesets separately, closes #2515 @4h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
75 struct tileset_file loader = {0}; |
64f24b482722
rpg: implement tilesets separately, closes #2515 @4h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
76 struct tileset tileset = {0}; |
64f24b482722
rpg: implement tilesets separately, closes #2515 @4h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
77 |
365
06badab52877
tests: fix test-tileset
David Demelier <markand@malikania.fr>
parents:
336
diff
changeset
|
78 RX_INT_REQUIRE_EQUAL(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
|
79 } |
64f24b482722
rpg: implement tilesets separately, closes #2515 @4h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
80 |
336
f5a5bbb77122
tests: switch to rexo
David Demelier <markand@malikania.fr>
parents:
314
diff
changeset
|
81 RX_TEST_CASE(test, error_image) |
215
64f24b482722
rpg: implement tilesets separately, closes #2515 @4h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
82 { |
336
f5a5bbb77122
tests: switch to rexo
David Demelier <markand@malikania.fr>
parents:
314
diff
changeset
|
83 struct tileset_file loader = {0}; |
f5a5bbb77122
tests: switch to rexo
David Demelier <markand@malikania.fr>
parents:
314
diff
changeset
|
84 struct tileset tileset = {0}; |
f5a5bbb77122
tests: switch to rexo
David Demelier <markand@malikania.fr>
parents:
314
diff
changeset
|
85 |
365
06badab52877
tests: fix test-tileset
David Demelier <markand@malikania.fr>
parents:
336
diff
changeset
|
86 RX_INT_REQUIRE_EQUAL(tileset_file_open(&loader, &tileset, DIRECTORY "/maps/error-image.tileset"), -1); |
215
64f24b482722
rpg: implement tilesets separately, closes #2515 @4h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
87 } |
64f24b482722
rpg: implement tilesets separately, closes #2515 @4h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
88 |
64f24b482722
rpg: implement tilesets separately, closes #2515 @4h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
89 int |
64f24b482722
rpg: implement tilesets separately, closes #2515 @4h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
90 main(int argc, char **argv) |
64f24b482722
rpg: implement tilesets separately, closes #2515 @4h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
91 { |
365
06badab52877
tests: fix test-tileset
David Demelier <markand@malikania.fr>
parents:
336
diff
changeset
|
92 if (core_init("fr.malikania", "test") < 0 || window_open("test-tileset", 100, 100) < 0) |
336
f5a5bbb77122
tests: switch to rexo
David Demelier <markand@malikania.fr>
parents:
314
diff
changeset
|
93 return 1; |
215
64f24b482722
rpg: implement tilesets separately, closes #2515 @4h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
94 |
336
f5a5bbb77122
tests: switch to rexo
David Demelier <markand@malikania.fr>
parents:
314
diff
changeset
|
95 return rx_main(0, NULL, argc, (const char **)argv) == RX_SUCCESS ? 0 : 1; |
215
64f24b482722
rpg: implement tilesets separately, closes #2515 @4h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
96 } |