GCC Code Coverage Report


Directory: ./
File: submodules/ECS/tests/library/ECS/world_entity_tests.c
Date: 2023-09-29 04:53:15
Exec Total Coverage
Lines: 0 109 0.0%
Branches: 0 276 0.0%

Line Branch Exec Source
1 /*
2 * Filename: /workspaces/our_rpg/tests/library/ECS/world_entity_tests.c
3 * Path: /workspaces/our_rpg/tests/library/ECS
4 * Created Date: Sunday, January 15th 2023, 3:59:16 pm
5 * Author: osvegn
6 *
7 * Copyright (c) 2023 our_rpg
8 */
9
10 #include <criterion/criterion.h>
11 #include "world.h"
12 #include "world_entity.h"
13
14 ✗ Test(test, test)
15 {
16 ✗ cr_assert_eq(1, 1);
17 }
18
19 ✗ Test(world_world_add_entity, world_world_add_entity)
20 {
21 world_t world;
22 entity_t entity;
23
24 ✗ entity.id = 0;
25 ✗ vector_constructor(&world.entity_list, sizeof(int), 0);
26 ✗ cr_assert_eq(world_add_entity(&world, &entity), 0);
27 ✗ cr_assert_eq(world.entity_list.size(&world.entity_list), 1);
28 }
29
30 ✗ Test(world_world_add_entity, world_world_add_entity_failure)
31 {
32 world_t world;
33 entity_t entity;
34
35 ✗ entity.id = 0;
36 ✗ vector_constructor(&world.entity_list, sizeof(int), 0);
37 ✗ cr_assert_eq(world_add_entity(&world, &entity), 0);
38 ✗ cr_assert_eq(world_add_entity(&world, &entity), -1);
39 ✗ cr_assert_eq(world.entity_list.size(&world.entity_list), 1);
40 }
41
42 ✗ Test(world_world_add_entity, world_world_add_entity_success_with_two_elements)
43 {
44 world_t world;
45 entity_t entity;
46
47 ✗ entity.id = 0;
48 ✗ vector_constructor(&world.entity_list, sizeof(int), 0);
49 ✗ cr_assert_eq(world_add_entity(&world, &entity), 0);
50 ✗ entity.id = 1;
51 ✗ cr_assert_eq(world_add_entity(&world, &entity), 0);
52 ✗ cr_assert_eq(world.entity_list.size(&world.entity_list), 2);
53 }
54
55 ✗ Test(world_world_add_entity, world_world_remove_entity)
56 {
57 world_t world;
58 entity_t entity;
59
60 ✗ entity.id = 0;
61 ✗ vector_constructor(&world.entity_list, sizeof(int), 0);
62 ✗ cr_assert_eq(world_add_entity(&world, &entity), 0);
63 ✗ entity.id = 1;
64 ✗ cr_assert_eq(world_add_entity(&world, &entity), 0);
65 ✗ cr_assert_eq(world_remove_entity(&world, &entity), 0);
66 ✗ cr_assert_eq(world.entity_list.size(&world.entity_list), 1);
67 }
68
69 ✗ Test(world_world_add_entity, world_world_remove_entity_failure)
70 {
71 world_t world;
72 entity_t entity;
73
74 ✗ entity.id = 0;
75 ✗ vector_constructor(&world.entity_list, sizeof(int), 0);
76 ✗ cr_assert_eq(world_add_entity(&world, &entity), 0);
77 ✗ entity.id = 1;
78 ✗ cr_assert_eq(world_add_entity(&world, &entity), 0);
79 ✗ cr_assert_eq(world_remove_entity(&world, &entity), 0);
80 ✗ cr_assert_eq(world_remove_entity(&world, &entity), -1);
81 ✗ cr_assert_eq(world.entity_list.size(&world.entity_list), 1);
82 }
83
84 ✗ Test(world_world_contains_entity, world_world_contains_entity_success)
85 {
86 world_t world;
87 entity_t entity;
88
89 ✗ entity.id = 0;
90 ✗ world_constructor(&world, stdout);
91 ✗ world_add_entity(&world, &entity);
92 ✗ cr_assert_eq(world_contains_entity(&world, &entity), true);
93 }
94
95 ✗ Test(world_world_contains_entity, world_world_contains_entity_failure)
96 {
97 world_t world;
98 entity_t entity;
99
100 ✗ entity.id = 0;
101 ✗ world_constructor(&world, stdout);
102 ✗ cr_assert_eq(world_contains_entity(&world, &entity), false);
103 }
104
105 ✗ Test(world_world_join_entities, world_world_join_entities_1)
106 {
107 world_t world;
108 entity_t entity;
109 vector_t vector;
110 ✗ component_t component = {.type=1, .data=0};
111
112 ✗ world_constructor(&world, stdout);
113 ✗ entity_constructor(&entity);
114 ✗ entity_add_component(&entity, &component);
115 ✗ world_add_entity(&world, &entity);
116 ✗ cr_assert_eq(world_join_entities(&world, &vector, 1, 1), 1);
117 }
118
119 ✗ Test(world_world_join_entities, world_world_join_entities_2)
120 {
121 world_t world;
122 vector_t vector;
123
124 ✗ world_constructor(&world, stdout);
125 ✗ cr_assert_eq(world_join_entities(&world, &vector, 0), -1);
126 }
127
128 ✗ Test(world_world_join_entities, world_world_join_entities_3)
129 {
130 world_t world;
131 vector_t vector;
132 entity_t entity;
133 int expected_value = 2;
134 ✗ component_t component = {.type=1, .data=0};
135
136 ✗ world_constructor(&world, stdout);
137 ✗ entity_constructor(&entity);
138 ✗ entity_add_component(&entity, &component);
139 ✗ world_add_entity(&world, &entity);
140 ✗ entity_constructor(&entity);
141 ✗ entity_add_component(&entity, &component);
142 ✗ world_add_entity(&world, &entity);
143 ✗ cr_assert_eq(world_join_entities(&world, &vector, 1, 1), expected_value);
144 }
145
146 ✗ Test(world_world_join_entities, world_world_join_entities_4)
147 {
148 world_t world;
149 vector_t vector;
150 entity_t entity;
151 ✗ component_t component = {.type=1, .data=0};
152
153 ✗ world_constructor(&world, stdout);
154 ✗ entity_constructor(&entity);
155 ✗ entity_add_component(&entity, &component);
156 ✗ world_add_entity(&world, &entity);
157 ✗ entity_constructor(&entity);
158 ✗ component.type = 2;
159 ✗ entity_add_component(&entity, &component);
160 ✗ world_add_entity(&world, &entity);
161 ✗ cr_assert_eq(world_join_entities(&world, &vector, 2, 1, 2), 0);
162 }
163
164 ✗ Test(world_world_join_entities, world_world_join_entities_5)
165 {
166 world_t world;
167 vector_t vector;
168 entity_t entity;
169 ✗ component_t component = {.type=1, .data=0};
170
171 ✗ world_constructor(&world, stdout);
172 ✗ entity_constructor(&entity);
173 ✗ entity_add_component(&entity, &component);
174 ✗ component.type = 2;
175 ✗ entity_add_component(&entity, &component);
176 ✗ world_add_entity(&world, &entity);
177 ✗ cr_assert_eq(world_join_entities(&world, &vector, 2, 1, 2), 1);
178 }
179
180 ✗ Test(world_world_join_entities, world_world_join_entities_6)
181 {
182 world_t world;
183 vector_t vector;
184 entity_t entity;
185 vector_t *components;
186 ✗ component_t component = {.type=1, .data=0};
187
188 ✗ world_constructor(&world, stdout);
189 ✗ entity_constructor(&entity);
190 ✗ entity_add_component(&entity, &component);
191 ✗ world_add_entity(&world, &entity);
192 ✗ world_join_entities(&world, &vector, 1, 1);
193 ✗ components = &(*(entity_t **)vector.at(&vector, 0))->components;
194 ✗ ((component_t *)components->at(components, 0))->data = (void *)1;
195 ✗ cr_assert_eq(((component_t *)entity.components.at(&entity.components, 0))->data, 1);
196 }
197
198 ✗ Test(world_world_join_entities, world_world_join_entities_7)
199 {
200 world_t world;
201 vector_t vector;
202 entity_t entity;
203 vector_t *components;
204 ✗ component_t component = {.type=1, .data=0};
205
206 ✗ world_constructor(&world, stdout);
207 ✗ entity_constructor(&entity);
208 ✗ entity_add_component(&entity, &component);
209 ✗ world_add_entity(&world, &entity);
210 ✗ world_join_entities(&world, &vector, 1, 1);
211 ✗ component.type = 2;
212 ✗ entity_add_component(*(entity_t **)vector.at(&vector, 0), &component);
213 ✗ entity_t *ptr = world_get_entity_by_id(&world, 0);
214 ✗ cr_assert_eq(ptr->components.size(&ptr->components), 2);
215 ✗ components = &(*(entity_t **)vector.at(&vector, 0))->components;
216 ✗ cr_assert_eq(components->size(components), 2);
217 }
218