annotate tests/test-tileset.c @ 365:06badab52877

tests: fix test-tileset
author David Demelier <markand@malikania.fr>
date Sun, 24 Oct 2021 12:59:02 +0200
parents f5a5bbb77122
children 460c78706989
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
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
d01e83210ca2 misc: update years
David Demelier <markand@malikania.fr>
parents: 298
diff changeset
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 }