Mercurial > molko
annotate tests/test-map.c @ 145:7f1af54bb35a
core: rework label alignment, closes #2494 @1h
Now labels can be positioned on a bounding box with much more convenient
possibilities.
author | David Demelier <markand@malikania.fr> |
---|---|
date | Wed, 14 Oct 2020 18:11:38 +0200 |
parents | 197374e9f0b2 |
children | c577c15df07f |
rev | line source |
---|---|
42
22a09a5ee476
core: add better map check and unit tests
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
1 /* |
22a09a5ee476
core: add better map check and unit tests
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
2 * test-map.c -- test map routines |
22a09a5ee476
core: add better map check and unit tests
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
3 * |
22a09a5ee476
core: add better map check and unit tests
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
4 * Copyright (c) 2020 David Demelier <markand@malikania.fr> |
22a09a5ee476
core: add better map check and unit tests
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
5 * |
22a09a5ee476
core: add better map check and unit tests
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
6 * Permission to use, copy, modify, and/or distribute this software for any |
22a09a5ee476
core: add better map check and unit tests
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
7 * purpose with or without fee is hereby granted, provided that the above |
22a09a5ee476
core: add better map check and unit tests
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
8 * copyright notice and this permission notice appear in all copies. |
22a09a5ee476
core: add better map check and unit tests
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
9 * |
22a09a5ee476
core: add better map check and unit tests
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
10 * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES |
22a09a5ee476
core: add better map check and unit tests
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
11 * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF |
22a09a5ee476
core: add better map check and unit tests
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
12 * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR |
22a09a5ee476
core: add better map check and unit tests
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
13 * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES |
22a09a5ee476
core: add better map check and unit tests
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
14 * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN |
22a09a5ee476
core: add better map check and unit tests
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
15 * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF |
22a09a5ee476
core: add better map check and unit tests
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
16 * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. |
22a09a5ee476
core: add better map check and unit tests
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
17 */ |
22a09a5ee476
core: add better map check and unit tests
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
18 |
124
7b84764741b6
core: allows loading maps from memory, closes #2489
David Demelier <markand@malikania.fr>
parents:
98
diff
changeset
|
19 #define GREATEST_USE_ABBREVS 0 |
42
22a09a5ee476
core: add better map check and unit tests
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
20 #include <greatest.h> |
22a09a5ee476
core: add better map check and unit tests
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
21 |
124
7b84764741b6
core: allows loading maps from memory, closes #2489
David Demelier <markand@malikania.fr>
parents:
98
diff
changeset
|
22 #include <core/error.h> |
7b84764741b6
core: allows loading maps from memory, closes #2489
David Demelier <markand@malikania.fr>
parents:
98
diff
changeset
|
23 #include <core/map.h> |
7b84764741b6
core: allows loading maps from memory, closes #2489
David Demelier <markand@malikania.fr>
parents:
98
diff
changeset
|
24 #include <core/panic.h> |
7b84764741b6
core: allows loading maps from memory, closes #2489
David Demelier <markand@malikania.fr>
parents:
98
diff
changeset
|
25 #include <core/sys.h> |
7b84764741b6
core: allows loading maps from memory, closes #2489
David Demelier <markand@malikania.fr>
parents:
98
diff
changeset
|
26 #include <core/window.h> |
42
22a09a5ee476
core: add better map check and unit tests
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
27 |
124
7b84764741b6
core: allows loading maps from memory, closes #2489
David Demelier <markand@malikania.fr>
parents:
98
diff
changeset
|
28 #include <assets/maps/sample-map.h> |
7b84764741b6
core: allows loading maps from memory, closes #2489
David Demelier <markand@malikania.fr>
parents:
98
diff
changeset
|
29 #include <assets/maps/error-title.h> |
7b84764741b6
core: allows loading maps from memory, closes #2489
David Demelier <markand@malikania.fr>
parents:
98
diff
changeset
|
30 #include <assets/maps/error-width.h> |
7b84764741b6
core: allows loading maps from memory, closes #2489
David Demelier <markand@malikania.fr>
parents:
98
diff
changeset
|
31 #include <assets/maps/error-height.h> |
7b84764741b6
core: allows loading maps from memory, closes #2489
David Demelier <markand@malikania.fr>
parents:
98
diff
changeset
|
32 #include <assets/maps/error-tilewidth.h> |
7b84764741b6
core: allows loading maps from memory, closes #2489
David Demelier <markand@malikania.fr>
parents:
98
diff
changeset
|
33 #include <assets/maps/error-tileheight.h> |
7b84764741b6
core: allows loading maps from memory, closes #2489
David Demelier <markand@malikania.fr>
parents:
98
diff
changeset
|
34 |
7b84764741b6
core: allows loading maps from memory, closes #2489
David Demelier <markand@malikania.fr>
parents:
98
diff
changeset
|
35 GREATEST_TEST |
7b84764741b6
core: allows loading maps from memory, closes #2489
David Demelier <markand@malikania.fr>
parents:
98
diff
changeset
|
36 test_sample(void) |
42
22a09a5ee476
core: add better map check and unit tests
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
37 { |
98
c7e993455985
map: split the map structure into two definitions
David Demelier <markand@malikania.fr>
parents:
97
diff
changeset
|
38 struct map_data map; |
42
22a09a5ee476
core: add better map check and unit tests
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
39 |
134
197374e9f0b2
cmake: prefix assets with their directory
David Demelier <markand@malikania.fr>
parents:
124
diff
changeset
|
40 GREATEST_ASSERT(map_data_openmem(&map, maps_sample_map, sizeof (maps_sample_map))); |
124
7b84764741b6
core: allows loading maps from memory, closes #2489
David Demelier <markand@malikania.fr>
parents:
98
diff
changeset
|
41 GREATEST_ASSERT_STR_EQ("This is a test map", map.title); |
7b84764741b6
core: allows loading maps from memory, closes #2489
David Demelier <markand@malikania.fr>
parents:
98
diff
changeset
|
42 GREATEST_ASSERT_EQ(2, map.w); |
7b84764741b6
core: allows loading maps from memory, closes #2489
David Demelier <markand@malikania.fr>
parents:
98
diff
changeset
|
43 GREATEST_ASSERT_EQ(2, map.h); |
7b84764741b6
core: allows loading maps from memory, closes #2489
David Demelier <markand@malikania.fr>
parents:
98
diff
changeset
|
44 GREATEST_ASSERT_EQ(32, map.tile_w); |
7b84764741b6
core: allows loading maps from memory, closes #2489
David Demelier <markand@malikania.fr>
parents:
98
diff
changeset
|
45 GREATEST_ASSERT_EQ(16, map.tile_h); |
7b84764741b6
core: allows loading maps from memory, closes #2489
David Demelier <markand@malikania.fr>
parents:
98
diff
changeset
|
46 GREATEST_ASSERT_EQ(0, map.layers[0].tiles[0]); |
7b84764741b6
core: allows loading maps from memory, closes #2489
David Demelier <markand@malikania.fr>
parents:
98
diff
changeset
|
47 GREATEST_ASSERT_EQ(1, map.layers[0].tiles[1]); |
7b84764741b6
core: allows loading maps from memory, closes #2489
David Demelier <markand@malikania.fr>
parents:
98
diff
changeset
|
48 GREATEST_ASSERT_EQ(2, map.layers[0].tiles[2]); |
7b84764741b6
core: allows loading maps from memory, closes #2489
David Demelier <markand@malikania.fr>
parents:
98
diff
changeset
|
49 GREATEST_ASSERT_EQ(3, map.layers[0].tiles[3]); |
7b84764741b6
core: allows loading maps from memory, closes #2489
David Demelier <markand@malikania.fr>
parents:
98
diff
changeset
|
50 GREATEST_ASSERT_EQ(4, map.layers[1].tiles[0]); |
7b84764741b6
core: allows loading maps from memory, closes #2489
David Demelier <markand@malikania.fr>
parents:
98
diff
changeset
|
51 GREATEST_ASSERT_EQ(5, map.layers[1].tiles[1]); |
7b84764741b6
core: allows loading maps from memory, closes #2489
David Demelier <markand@malikania.fr>
parents:
98
diff
changeset
|
52 GREATEST_ASSERT_EQ(6, map.layers[1].tiles[2]); |
7b84764741b6
core: allows loading maps from memory, closes #2489
David Demelier <markand@malikania.fr>
parents:
98
diff
changeset
|
53 GREATEST_ASSERT_EQ(7, map.layers[1].tiles[3]); |
7b84764741b6
core: allows loading maps from memory, closes #2489
David Demelier <markand@malikania.fr>
parents:
98
diff
changeset
|
54 GREATEST_PASS(); |
42
22a09a5ee476
core: add better map check and unit tests
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
55 } |
22a09a5ee476
core: add better map check and unit tests
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
56 |
124
7b84764741b6
core: allows loading maps from memory, closes #2489
David Demelier <markand@malikania.fr>
parents:
98
diff
changeset
|
57 GREATEST_TEST |
7b84764741b6
core: allows loading maps from memory, closes #2489
David Demelier <markand@malikania.fr>
parents:
98
diff
changeset
|
58 test_error_title(void) |
42
22a09a5ee476
core: add better map check and unit tests
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
59 { |
98
c7e993455985
map: split the map structure into two definitions
David Demelier <markand@malikania.fr>
parents:
97
diff
changeset
|
60 struct map_data map; |
42
22a09a5ee476
core: add better map check and unit tests
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
61 |
134
197374e9f0b2
cmake: prefix assets with their directory
David Demelier <markand@malikania.fr>
parents:
124
diff
changeset
|
62 GREATEST_ASSERT(!map_data_openmem(&map, maps_error_title, sizeof (maps_error_title))); |
124
7b84764741b6
core: allows loading maps from memory, closes #2489
David Demelier <markand@malikania.fr>
parents:
98
diff
changeset
|
63 GREATEST_PASS(); |
42
22a09a5ee476
core: add better map check and unit tests
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
64 } |
22a09a5ee476
core: add better map check and unit tests
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
65 |
124
7b84764741b6
core: allows loading maps from memory, closes #2489
David Demelier <markand@malikania.fr>
parents:
98
diff
changeset
|
66 GREATEST_TEST |
7b84764741b6
core: allows loading maps from memory, closes #2489
David Demelier <markand@malikania.fr>
parents:
98
diff
changeset
|
67 test_error_width(void) |
42
22a09a5ee476
core: add better map check and unit tests
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
68 { |
98
c7e993455985
map: split the map structure into two definitions
David Demelier <markand@malikania.fr>
parents:
97
diff
changeset
|
69 struct map_data map; |
42
22a09a5ee476
core: add better map check and unit tests
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
70 |
134
197374e9f0b2
cmake: prefix assets with their directory
David Demelier <markand@malikania.fr>
parents:
124
diff
changeset
|
71 GREATEST_ASSERT(!map_data_openmem(&map, maps_error_width, sizeof (maps_error_width))); |
124
7b84764741b6
core: allows loading maps from memory, closes #2489
David Demelier <markand@malikania.fr>
parents:
98
diff
changeset
|
72 GREATEST_PASS(); |
42
22a09a5ee476
core: add better map check and unit tests
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
73 } |
22a09a5ee476
core: add better map check and unit tests
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
74 |
124
7b84764741b6
core: allows loading maps from memory, closes #2489
David Demelier <markand@malikania.fr>
parents:
98
diff
changeset
|
75 GREATEST_TEST |
7b84764741b6
core: allows loading maps from memory, closes #2489
David Demelier <markand@malikania.fr>
parents:
98
diff
changeset
|
76 test_error_height(void) |
42
22a09a5ee476
core: add better map check and unit tests
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
77 { |
98
c7e993455985
map: split the map structure into two definitions
David Demelier <markand@malikania.fr>
parents:
97
diff
changeset
|
78 struct map_data map; |
42
22a09a5ee476
core: add better map check and unit tests
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
79 |
134
197374e9f0b2
cmake: prefix assets with their directory
David Demelier <markand@malikania.fr>
parents:
124
diff
changeset
|
80 GREATEST_ASSERT(!map_data_openmem(&map, maps_error_height, sizeof (maps_error_height))); |
124
7b84764741b6
core: allows loading maps from memory, closes #2489
David Demelier <markand@malikania.fr>
parents:
98
diff
changeset
|
81 GREATEST_PASS(); |
42
22a09a5ee476
core: add better map check and unit tests
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
82 } |
22a09a5ee476
core: add better map check and unit tests
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
83 |
124
7b84764741b6
core: allows loading maps from memory, closes #2489
David Demelier <markand@malikania.fr>
parents:
98
diff
changeset
|
84 GREATEST_TEST |
7b84764741b6
core: allows loading maps from memory, closes #2489
David Demelier <markand@malikania.fr>
parents:
98
diff
changeset
|
85 test_error_tilewidth(void) |
42
22a09a5ee476
core: add better map check and unit tests
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
86 { |
98
c7e993455985
map: split the map structure into two definitions
David Demelier <markand@malikania.fr>
parents:
97
diff
changeset
|
87 struct map_data map; |
42
22a09a5ee476
core: add better map check and unit tests
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
88 |
134
197374e9f0b2
cmake: prefix assets with their directory
David Demelier <markand@malikania.fr>
parents:
124
diff
changeset
|
89 GREATEST_ASSERT(!map_data_openmem(&map, maps_error_tilewidth, sizeof (maps_error_tilewidth))); |
124
7b84764741b6
core: allows loading maps from memory, closes #2489
David Demelier <markand@malikania.fr>
parents:
98
diff
changeset
|
90 GREATEST_PASS(); |
7b84764741b6
core: allows loading maps from memory, closes #2489
David Demelier <markand@malikania.fr>
parents:
98
diff
changeset
|
91 } |
7b84764741b6
core: allows loading maps from memory, closes #2489
David Demelier <markand@malikania.fr>
parents:
98
diff
changeset
|
92 |
7b84764741b6
core: allows loading maps from memory, closes #2489
David Demelier <markand@malikania.fr>
parents:
98
diff
changeset
|
93 GREATEST_TEST |
7b84764741b6
core: allows loading maps from memory, closes #2489
David Demelier <markand@malikania.fr>
parents:
98
diff
changeset
|
94 test_error_tileheight(void) |
7b84764741b6
core: allows loading maps from memory, closes #2489
David Demelier <markand@malikania.fr>
parents:
98
diff
changeset
|
95 { |
7b84764741b6
core: allows loading maps from memory, closes #2489
David Demelier <markand@malikania.fr>
parents:
98
diff
changeset
|
96 struct map_data map; |
7b84764741b6
core: allows loading maps from memory, closes #2489
David Demelier <markand@malikania.fr>
parents:
98
diff
changeset
|
97 |
134
197374e9f0b2
cmake: prefix assets with their directory
David Demelier <markand@malikania.fr>
parents:
124
diff
changeset
|
98 GREATEST_ASSERT(!map_data_openmem(&map, maps_error_tileheight, sizeof (maps_error_tileheight))); |
124
7b84764741b6
core: allows loading maps from memory, closes #2489
David Demelier <markand@malikania.fr>
parents:
98
diff
changeset
|
99 GREATEST_PASS(); |
42
22a09a5ee476
core: add better map check and unit tests
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
100 } |
22a09a5ee476
core: add better map check and unit tests
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
101 |
124
7b84764741b6
core: allows loading maps from memory, closes #2489
David Demelier <markand@malikania.fr>
parents:
98
diff
changeset
|
102 GREATEST_SUITE(basics) |
42
22a09a5ee476
core: add better map check and unit tests
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
103 { |
124
7b84764741b6
core: allows loading maps from memory, closes #2489
David Demelier <markand@malikania.fr>
parents:
98
diff
changeset
|
104 GREATEST_RUN_TEST(test_sample); |
42
22a09a5ee476
core: add better map check and unit tests
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
105 } |
22a09a5ee476
core: add better map check and unit tests
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
106 |
124
7b84764741b6
core: allows loading maps from memory, closes #2489
David Demelier <markand@malikania.fr>
parents:
98
diff
changeset
|
107 GREATEST_SUITE(errors) |
42
22a09a5ee476
core: add better map check and unit tests
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
108 { |
124
7b84764741b6
core: allows loading maps from memory, closes #2489
David Demelier <markand@malikania.fr>
parents:
98
diff
changeset
|
109 GREATEST_RUN_TEST(test_error_title); |
7b84764741b6
core: allows loading maps from memory, closes #2489
David Demelier <markand@malikania.fr>
parents:
98
diff
changeset
|
110 GREATEST_RUN_TEST(test_error_width); |
7b84764741b6
core: allows loading maps from memory, closes #2489
David Demelier <markand@malikania.fr>
parents:
98
diff
changeset
|
111 GREATEST_RUN_TEST(test_error_height); |
7b84764741b6
core: allows loading maps from memory, closes #2489
David Demelier <markand@malikania.fr>
parents:
98
diff
changeset
|
112 GREATEST_RUN_TEST(test_error_tilewidth); |
7b84764741b6
core: allows loading maps from memory, closes #2489
David Demelier <markand@malikania.fr>
parents:
98
diff
changeset
|
113 GREATEST_RUN_TEST(test_error_tileheight); |
42
22a09a5ee476
core: add better map check and unit tests
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
114 } |
22a09a5ee476
core: add better map check and unit tests
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
115 |
22a09a5ee476
core: add better map check and unit tests
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
116 GREATEST_MAIN_DEFS(); |
22a09a5ee476
core: add better map check and unit tests
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
117 |
22a09a5ee476
core: add better map check and unit tests
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
118 int |
22a09a5ee476
core: add better map check and unit tests
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
119 main(int argc, char **argv) |
22a09a5ee476
core: add better map check and unit tests
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
120 { |
22a09a5ee476
core: add better map check and unit tests
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
121 GREATEST_MAIN_BEGIN(); |
124
7b84764741b6
core: allows loading maps from memory, closes #2489
David Demelier <markand@malikania.fr>
parents:
98
diff
changeset
|
122 GREATEST_RUN_SUITE(basics); |
7b84764741b6
core: allows loading maps from memory, closes #2489
David Demelier <markand@malikania.fr>
parents:
98
diff
changeset
|
123 GREATEST_RUN_SUITE(errors); |
42
22a09a5ee476
core: add better map check and unit tests
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
124 GREATEST_MAIN_END(); |
22a09a5ee476
core: add better map check and unit tests
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
125 |
22a09a5ee476
core: add better map check and unit tests
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
126 return 0; |
22a09a5ee476
core: add better map check and unit tests
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
127 } |