Skip to content

Commit 624dbad

Browse files
committed
add node envelope tests
1 parent 6090689 commit 624dbad

1 file changed

Lines changed: 100 additions & 1 deletion

File tree

rstar-capi/tests/test.c

Lines changed: 100 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -142,7 +142,19 @@ bool test_nodes(void) {
142142
rtree_free(tree);
143143
return false;
144144
}
145-
struct RTreeNodeH **children = NULL;
145+
146+
double root_min[2];
147+
double root_max[2];
148+
rtree_node_envelope(root, root_min, root_max);
149+
if (root_min[0] != 0.0 || root_min[1] != 0.0 || root_max[0] != 3.0 || root_max[1] != 3.0) {
150+
fprintf(stderr, "Expected root envelope to be [0, 0], [3, 3], got [%f, %f], [%f, %f]\n",
151+
root_min[0], root_min[1], root_max[0], root_max[1]);
152+
rtree_node_free(root);
153+
rtree_free(tree);
154+
return false;
155+
}
156+
157+
RTreeNodeH **children = NULL;
146158
size_t nchildren = 0;
147159
rtree_node_children(root, &children, &nchildren);
148160
if (nchildren != 2) {
@@ -153,6 +165,41 @@ bool test_nodes(void) {
153165
return false;
154166
}
155167

168+
double child1_min[2];
169+
double child1_max[2];
170+
rtree_node_envelope(children[0], child1_min, child1_max);
171+
if (child1_min[0] != 0.0 || child1_min[1] != 0.0 || child1_max[0] != 2.0 || child1_max[1] != 2.0) {
172+
fprintf(stderr, "Expected child1 envelope to be [0, 0], [2, 2], got [%f, %f], [%f, %f]\n",
173+
child1_min[0], child1_min[1], child1_max[0], child1_max[1]);
174+
rtree_node_children_free(children, nchildren);
175+
rtree_node_free(root);
176+
rtree_free(tree);
177+
return false;
178+
}
179+
double child2_min[2];
180+
double child2_max[2];
181+
rtree_node_envelope(children[1], child2_min, child2_max);
182+
if (child2_min[0] != 1.0 || child2_min[1] != 1.0 || child2_max[0] != 3.0 || child2_max[1] != 3.0) {
183+
fprintf(stderr, "Expected child2 envelope to be [1, 1], [3, 3], got [%f, %f], [%f, %f]\n",
184+
child2_min[0], child2_min[1], child2_max[0], child2_max[1]);
185+
rtree_node_children_free(children, nchildren);
186+
rtree_node_free(root);
187+
rtree_free(tree);
188+
return false;
189+
}
190+
191+
RTreeNodeH **child1children = NULL;
192+
size_t nchild1children = 0;
193+
rtree_node_children(children[0], &child1children, &nchild1children);
194+
if (nchild1children != 0) {
195+
fprintf(stderr, "Expected child1 to have 0 children, got %zu\n", nchild1children);
196+
rtree_node_children_free(child1children, nchild1children);
197+
rtree_node_children_free(children, nchildren);
198+
rtree_node_free(root);
199+
rtree_free(tree);
200+
return false;
201+
}
202+
156203
rtree_node_children_free(children, nchildren);
157204
rtree_node_free(root);
158205
rtree_free(tree);
@@ -267,6 +314,18 @@ bool test_rtree_node_1d(void) {
267314
rtree_free(tree);
268315
return false;
269316
}
317+
318+
double root_min[1];
319+
double root_max[1];
320+
rtree_node_envelope(root, root_min, root_max);
321+
if (root_min[0] != -2.0 || root_max[0] != 2.0) {
322+
fprintf(stderr, "Expected root envelope to be [-2], [2], got [%f], [%f]\n",
323+
root_min[0], root_max[0]);
324+
rtree_node_free(root);
325+
rtree_free(tree);
326+
return false;
327+
}
328+
270329
struct RTreeNodeH **children = NULL;
271330
size_t nchildren = 0;
272331
rtree_node_children(root, &children, &nchildren);
@@ -277,6 +336,46 @@ bool test_rtree_node_1d(void) {
277336
rtree_free(tree);
278337
return false;
279338
}
339+
340+
double child1_min[1];
341+
double child1_max[1];
342+
rtree_node_envelope(children[0], child1_min, child1_max);
343+
if (child1_min[0] != -2.0 || child1_max[0] != -1.0) {
344+
fprintf(stderr, "Expected child1 envelope to be [-2], [-1], got [%f], [%f]\n",
345+
child1_min[0], child1_max[0]);
346+
rtree_node_children_free(children, nchildren);
347+
rtree_node_free(root);
348+
rtree_free(tree);
349+
return false;
350+
}
351+
352+
double child2_min[1];
353+
double child2_max[1];
354+
rtree_node_envelope(children[1], child2_min, child2_max);
355+
if (child2_min[0] != 0.5 || child2_max[0] != 2.0) {
356+
fprintf(stderr, "Expected child2 envelope to be [0.5], [2], got [%f], [%f]\n",
357+
child2_min[0], child2_max[0]);
358+
rtree_node_children_free(children, nchildren);
359+
rtree_node_free(root);
360+
rtree_free(tree);
361+
return false;
362+
}
363+
364+
RTreeNodeH **child1children = NULL;
365+
size_t nchild1children = 0;
366+
rtree_node_children(children[0], &child1children, &nchild1children);
367+
if (nchild1children != 0) {
368+
fprintf(stderr, "Expected child1 to have 0 children, got %zu\n", nchild1children);
369+
rtree_node_children_free(child1children, nchild1children);
370+
rtree_node_children_free(children, nchildren);
371+
rtree_node_free(root);
372+
rtree_free(tree);
373+
return false;
374+
}
375+
376+
rtree_node_children_free(children, nchildren);
377+
rtree_node_free(root);
378+
rtree_free(tree);
280379
return true;
281380
}
282381

0 commit comments

Comments
 (0)