annotate tests/test-map.c @ 97:58133933ea17

window: expose some data to avoid functions
author David Demelier <markand@malikania.fr>
date Mon, 30 Mar 2020 20:10:00 +0200
parents 04011a942e3b
children c7e993455985
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
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
22a09a5ee476 core: add better map check and unit tests
David Demelier <markand@malikania.fr>
parents:
diff changeset
19 #include <greatest.h>
22a09a5ee476 core: add better map check and unit tests
David Demelier <markand@malikania.fr>
parents:
diff changeset
20
22a09a5ee476 core: add better map check and unit tests
David Demelier <markand@malikania.fr>
parents:
diff changeset
21 #include <error.h>
22a09a5ee476 core: add better map check and unit tests
David Demelier <markand@malikania.fr>
parents:
diff changeset
22 #include <map.h>
96
04011a942e3b painter: simplify API
David Demelier <markand@malikania.fr>
parents: 95
diff changeset
23 #include <panic.h>
42
22a09a5ee476 core: add better map check and unit tests
David Demelier <markand@malikania.fr>
parents:
diff changeset
24 #include <sys.h>
22a09a5ee476 core: add better map check and unit tests
David Demelier <markand@malikania.fr>
parents:
diff changeset
25 #include <window.h>
22a09a5ee476 core: add better map check and unit tests
David Demelier <markand@malikania.fr>
parents:
diff changeset
26
22a09a5ee476 core: add better map check and unit tests
David Demelier <markand@malikania.fr>
parents:
diff changeset
27 static void
22a09a5ee476 core: add better map check and unit tests
David Demelier <markand@malikania.fr>
parents:
diff changeset
28 setup(void *data)
22a09a5ee476 core: add better map check and unit tests
David Demelier <markand@malikania.fr>
parents:
diff changeset
29 {
22a09a5ee476 core: add better map check and unit tests
David Demelier <markand@malikania.fr>
parents:
diff changeset
30 (void)data;
22a09a5ee476 core: add better map check and unit tests
David Demelier <markand@malikania.fr>
parents:
diff changeset
31
22a09a5ee476 core: add better map check and unit tests
David Demelier <markand@malikania.fr>
parents:
diff changeset
32 if (!sys_init())
95
e82eca4f8606 core: simplify error/panic routines
David Demelier <markand@malikania.fr>
parents: 42
diff changeset
33 panic();
42
22a09a5ee476 core: add better map check and unit tests
David Demelier <markand@malikania.fr>
parents:
diff changeset
34 if (!window_init("Test map", 100, 100))
95
e82eca4f8606 core: simplify error/panic routines
David Demelier <markand@malikania.fr>
parents: 42
diff changeset
35 panic();
42
22a09a5ee476 core: add better map check and unit tests
David Demelier <markand@malikania.fr>
parents:
diff changeset
36 }
22a09a5ee476 core: add better map check and unit tests
David Demelier <markand@malikania.fr>
parents:
diff changeset
37
22a09a5ee476 core: add better map check and unit tests
David Demelier <markand@malikania.fr>
parents:
diff changeset
38 static void
22a09a5ee476 core: add better map check and unit tests
David Demelier <markand@malikania.fr>
parents:
diff changeset
39 teardown(void *data)
22a09a5ee476 core: add better map check and unit tests
David Demelier <markand@malikania.fr>
parents:
diff changeset
40 {
22a09a5ee476 core: add better map check and unit tests
David Demelier <markand@malikania.fr>
parents:
diff changeset
41 (void)data;
22a09a5ee476 core: add better map check and unit tests
David Demelier <markand@malikania.fr>
parents:
diff changeset
42
97
58133933ea17 window: expose some data to avoid functions
David Demelier <markand@malikania.fr>
parents: 96
diff changeset
43 window_finish();
58133933ea17 window: expose some data to avoid functions
David Demelier <markand@malikania.fr>
parents: 96
diff changeset
44 sys_finish();
42
22a09a5ee476 core: add better map check and unit tests
David Demelier <markand@malikania.fr>
parents:
diff changeset
45 }
22a09a5ee476 core: add better map check and unit tests
David Demelier <markand@malikania.fr>
parents:
diff changeset
46
22a09a5ee476 core: add better map check and unit tests
David Demelier <markand@malikania.fr>
parents:
diff changeset
47 TEST
22a09a5ee476 core: add better map check and unit tests
David Demelier <markand@malikania.fr>
parents:
diff changeset
48 sample(void)
22a09a5ee476 core: add better map check and unit tests
David Demelier <markand@malikania.fr>
parents:
diff changeset
49 {
22a09a5ee476 core: add better map check and unit tests
David Demelier <markand@malikania.fr>
parents:
diff changeset
50 struct map map;
22a09a5ee476 core: add better map check and unit tests
David Demelier <markand@malikania.fr>
parents:
diff changeset
51
22a09a5ee476 core: add better map check and unit tests
David Demelier <markand@malikania.fr>
parents:
diff changeset
52 ASSERT(map_open(&map, sys_datapath("maps/sample-map.map")));
22a09a5ee476 core: add better map check and unit tests
David Demelier <markand@malikania.fr>
parents:
diff changeset
53 ASSERT_STR_EQ("This is a test map", map.title);
22a09a5ee476 core: add better map check and unit tests
David Demelier <markand@malikania.fr>
parents:
diff changeset
54 ASSERT_EQ(2, map.width);
22a09a5ee476 core: add better map check and unit tests
David Demelier <markand@malikania.fr>
parents:
diff changeset
55 ASSERT_EQ(2, map.height);
22a09a5ee476 core: add better map check and unit tests
David Demelier <markand@malikania.fr>
parents:
diff changeset
56 ASSERT_EQ(32, map.tilewidth);
22a09a5ee476 core: add better map check and unit tests
David Demelier <markand@malikania.fr>
parents:
diff changeset
57 ASSERT_EQ(16, map.tileheight);
22a09a5ee476 core: add better map check and unit tests
David Demelier <markand@malikania.fr>
parents:
diff changeset
58 ASSERT_EQ(0, map.layers[0].tiles[0]);
22a09a5ee476 core: add better map check and unit tests
David Demelier <markand@malikania.fr>
parents:
diff changeset
59 ASSERT_EQ(1, map.layers[0].tiles[1]);
22a09a5ee476 core: add better map check and unit tests
David Demelier <markand@malikania.fr>
parents:
diff changeset
60 ASSERT_EQ(2, map.layers[0].tiles[2]);
22a09a5ee476 core: add better map check and unit tests
David Demelier <markand@malikania.fr>
parents:
diff changeset
61 ASSERT_EQ(3, map.layers[0].tiles[3]);
22a09a5ee476 core: add better map check and unit tests
David Demelier <markand@malikania.fr>
parents:
diff changeset
62 ASSERT_EQ(4, map.layers[1].tiles[0]);
22a09a5ee476 core: add better map check and unit tests
David Demelier <markand@malikania.fr>
parents:
diff changeset
63 ASSERT_EQ(5, map.layers[1].tiles[1]);
22a09a5ee476 core: add better map check and unit tests
David Demelier <markand@malikania.fr>
parents:
diff changeset
64 ASSERT_EQ(6, map.layers[1].tiles[2]);
22a09a5ee476 core: add better map check and unit tests
David Demelier <markand@malikania.fr>
parents:
diff changeset
65 ASSERT_EQ(7, map.layers[1].tiles[3]);
22a09a5ee476 core: add better map check and unit tests
David Demelier <markand@malikania.fr>
parents:
diff changeset
66 PASS();
22a09a5ee476 core: add better map check and unit tests
David Demelier <markand@malikania.fr>
parents:
diff changeset
67 }
22a09a5ee476 core: add better map check and unit tests
David Demelier <markand@malikania.fr>
parents:
diff changeset
68
22a09a5ee476 core: add better map check and unit tests
David Demelier <markand@malikania.fr>
parents:
diff changeset
69 TEST
22a09a5ee476 core: add better map check and unit tests
David Demelier <markand@malikania.fr>
parents:
diff changeset
70 error_title(void)
22a09a5ee476 core: add better map check and unit tests
David Demelier <markand@malikania.fr>
parents:
diff changeset
71 {
22a09a5ee476 core: add better map check and unit tests
David Demelier <markand@malikania.fr>
parents:
diff changeset
72 struct map map;
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 ASSERT(!map_open(&map, sys_datapath("maps/error-title.map")));
22a09a5ee476 core: add better map check and unit tests
David Demelier <markand@malikania.fr>
parents:
diff changeset
75 PASS();
22a09a5ee476 core: add better map check and unit tests
David Demelier <markand@malikania.fr>
parents:
diff changeset
76 }
22a09a5ee476 core: add better map check and unit tests
David Demelier <markand@malikania.fr>
parents:
diff changeset
77
22a09a5ee476 core: add better map check and unit tests
David Demelier <markand@malikania.fr>
parents:
diff changeset
78 TEST
22a09a5ee476 core: add better map check and unit tests
David Demelier <markand@malikania.fr>
parents:
diff changeset
79 error_width(void)
22a09a5ee476 core: add better map check and unit tests
David Demelier <markand@malikania.fr>
parents:
diff changeset
80 {
22a09a5ee476 core: add better map check and unit tests
David Demelier <markand@malikania.fr>
parents:
diff changeset
81 struct map map;
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 ASSERT(!map_open(&map, sys_datapath("maps/error-width.map")));
22a09a5ee476 core: add better map check and unit tests
David Demelier <markand@malikania.fr>
parents:
diff changeset
84 PASS();
22a09a5ee476 core: add better map check and unit tests
David Demelier <markand@malikania.fr>
parents:
diff changeset
85 }
22a09a5ee476 core: add better map check and unit tests
David Demelier <markand@malikania.fr>
parents:
diff changeset
86
22a09a5ee476 core: add better map check and unit tests
David Demelier <markand@malikania.fr>
parents:
diff changeset
87 TEST
22a09a5ee476 core: add better map check and unit tests
David Demelier <markand@malikania.fr>
parents:
diff changeset
88 error_height(void)
22a09a5ee476 core: add better map check and unit tests
David Demelier <markand@malikania.fr>
parents:
diff changeset
89 {
22a09a5ee476 core: add better map check and unit tests
David Demelier <markand@malikania.fr>
parents:
diff changeset
90 struct map map;
22a09a5ee476 core: add better map check and unit tests
David Demelier <markand@malikania.fr>
parents:
diff changeset
91
22a09a5ee476 core: add better map check and unit tests
David Demelier <markand@malikania.fr>
parents:
diff changeset
92 ASSERT(!map_open(&map, sys_datapath("maps/error-height.map")));
22a09a5ee476 core: add better map check and unit tests
David Demelier <markand@malikania.fr>
parents:
diff changeset
93 PASS();
22a09a5ee476 core: add better map check and unit tests
David Demelier <markand@malikania.fr>
parents:
diff changeset
94 }
22a09a5ee476 core: add better map check and unit tests
David Demelier <markand@malikania.fr>
parents:
diff changeset
95
22a09a5ee476 core: add better map check and unit tests
David Demelier <markand@malikania.fr>
parents:
diff changeset
96 TEST
22a09a5ee476 core: add better map check and unit tests
David Demelier <markand@malikania.fr>
parents:
diff changeset
97 error_tilewidth(void)
22a09a5ee476 core: add better map check and unit tests
David Demelier <markand@malikania.fr>
parents:
diff changeset
98 {
22a09a5ee476 core: add better map check and unit tests
David Demelier <markand@malikania.fr>
parents:
diff changeset
99 struct map map;
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 ASSERT(!map_open(&map, sys_datapath("maps/error-tilewidth.map")));
22a09a5ee476 core: add better map check and unit tests
David Demelier <markand@malikania.fr>
parents:
diff changeset
102 PASS();
22a09a5ee476 core: add better map check and unit tests
David Demelier <markand@malikania.fr>
parents:
diff changeset
103 }
22a09a5ee476 core: add better map check and unit tests
David Demelier <markand@malikania.fr>
parents:
diff changeset
104
22a09a5ee476 core: add better map check and unit tests
David Demelier <markand@malikania.fr>
parents:
diff changeset
105 TEST
22a09a5ee476 core: add better map check and unit tests
David Demelier <markand@malikania.fr>
parents:
diff changeset
106 error_tileheight(void)
22a09a5ee476 core: add better map check and unit tests
David Demelier <markand@malikania.fr>
parents:
diff changeset
107 {
22a09a5ee476 core: add better map check and unit tests
David Demelier <markand@malikania.fr>
parents:
diff changeset
108 struct map map;
22a09a5ee476 core: add better map check and unit tests
David Demelier <markand@malikania.fr>
parents:
diff changeset
109
22a09a5ee476 core: add better map check and unit tests
David Demelier <markand@malikania.fr>
parents:
diff changeset
110 ASSERT(!map_open(&map, sys_datapath("maps/error-tileheight.map")));
22a09a5ee476 core: add better map check and unit tests
David Demelier <markand@malikania.fr>
parents:
diff changeset
111 PASS();
22a09a5ee476 core: add better map check and unit tests
David Demelier <markand@malikania.fr>
parents:
diff changeset
112 }
22a09a5ee476 core: add better map check and unit tests
David Demelier <markand@malikania.fr>
parents:
diff changeset
113
22a09a5ee476 core: add better map check and unit tests
David Demelier <markand@malikania.fr>
parents:
diff changeset
114 SUITE(basics)
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 SET_SETUP(setup, NULL);
22a09a5ee476 core: add better map check and unit tests
David Demelier <markand@malikania.fr>
parents:
diff changeset
117 SET_TEARDOWN(teardown, NULL);
22a09a5ee476 core: add better map check and unit tests
David Demelier <markand@malikania.fr>
parents:
diff changeset
118 RUN_TEST(sample);
22a09a5ee476 core: add better map check and unit tests
David Demelier <markand@malikania.fr>
parents:
diff changeset
119 }
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 SUITE(errors)
22a09a5ee476 core: add better map check and unit tests
David Demelier <markand@malikania.fr>
parents:
diff changeset
122 {
22a09a5ee476 core: add better map check and unit tests
David Demelier <markand@malikania.fr>
parents:
diff changeset
123 SET_SETUP(setup, NULL);
22a09a5ee476 core: add better map check and unit tests
David Demelier <markand@malikania.fr>
parents:
diff changeset
124 SET_TEARDOWN(teardown, NULL);
22a09a5ee476 core: add better map check and unit tests
David Demelier <markand@malikania.fr>
parents:
diff changeset
125 RUN_TEST(error_title);
22a09a5ee476 core: add better map check and unit tests
David Demelier <markand@malikania.fr>
parents:
diff changeset
126 RUN_TEST(error_width);
22a09a5ee476 core: add better map check and unit tests
David Demelier <markand@malikania.fr>
parents:
diff changeset
127 RUN_TEST(error_height);
22a09a5ee476 core: add better map check and unit tests
David Demelier <markand@malikania.fr>
parents:
diff changeset
128 RUN_TEST(error_tilewidth);
22a09a5ee476 core: add better map check and unit tests
David Demelier <markand@malikania.fr>
parents:
diff changeset
129 RUN_TEST(error_tileheight);
22a09a5ee476 core: add better map check and unit tests
David Demelier <markand@malikania.fr>
parents:
diff changeset
130 }
22a09a5ee476 core: add better map check and unit tests
David Demelier <markand@malikania.fr>
parents:
diff changeset
131
22a09a5ee476 core: add better map check and unit tests
David Demelier <markand@malikania.fr>
parents:
diff changeset
132 GREATEST_MAIN_DEFS();
22a09a5ee476 core: add better map check and unit tests
David Demelier <markand@malikania.fr>
parents:
diff changeset
133
22a09a5ee476 core: add better map check and unit tests
David Demelier <markand@malikania.fr>
parents:
diff changeset
134 int
22a09a5ee476 core: add better map check and unit tests
David Demelier <markand@malikania.fr>
parents:
diff changeset
135 main(int argc, char **argv)
22a09a5ee476 core: add better map check and unit tests
David Demelier <markand@malikania.fr>
parents:
diff changeset
136 {
22a09a5ee476 core: add better map check and unit tests
David Demelier <markand@malikania.fr>
parents:
diff changeset
137 GREATEST_MAIN_BEGIN();
22a09a5ee476 core: add better map check and unit tests
David Demelier <markand@malikania.fr>
parents:
diff changeset
138 RUN_SUITE(basics);
22a09a5ee476 core: add better map check and unit tests
David Demelier <markand@malikania.fr>
parents:
diff changeset
139 RUN_SUITE(errors);
22a09a5ee476 core: add better map check and unit tests
David Demelier <markand@malikania.fr>
parents:
diff changeset
140 GREATEST_MAIN_END();
22a09a5ee476 core: add better map check and unit tests
David Demelier <markand@malikania.fr>
parents:
diff changeset
141
22a09a5ee476 core: add better map check and unit tests
David Demelier <markand@malikania.fr>
parents:
diff changeset
142 return 0;
22a09a5ee476 core: add better map check and unit tests
David Demelier <markand@malikania.fr>
parents:
diff changeset
143 }