Branch Coverage

XS.xs
Criterion Covered Total %
branch 84 94 89.3


line true false branch
56 95 68 if (arr->max_size > 0) {
66 59 110 for (i = 0; i < arr->count; ++i) {
75 95 22 if (arr->max_size == 0) {
79 2 20 else if (arr->count == arr->max_size) {
103 68 20 for (i = 0; i < count; ++i) {
116 52 16 if (node->values != NULL) {
121 64 16 for (i = 0; i < CHILDREN_PER_NODE; ++i) {
131 76 57 if (node->values == NULL) {
133 202 31 for (i = 0; i < CHILDREN_PER_NODE; ++i) {
134 45 157 if (node->children[i].has_objects) return;
139 76 12 if (node->parent != NULL) {
156 53 5 if (!hv_exists_ent(root->backref, value, 0)) {
161 5 0 list = (DynArr*) SvIV(HeVAL(hv_fetch_ent(root->backref, value, 0, 0)));
176 52 16 if (last) {
193 624 196 return (xmin <= node->xmax && xmax >= node->xmin)
194 820 194 && (ymin <= node->ymax && ymax >= node->ymin);
518 106 && (ymin <= node->ymax && ymax >= node->ymin);
410 108 && (ymin <= node->ymax && ymax >= node->ymin);
201 14 25 : x > node->xmax
203 3 22 : x
208 14 25 : y > node->ymax
210 3 22 : y
231 588 20 if (!node->has_objects || !is_within_node(node, param)) return;
318 270 if (!node->has_objects || !is_within_node(node, param)) return;
235 134 136 if (node->values != NULL) {
236 150 134 for (i = 0; i < node->values->count; ++i) {
243 544 136 for (i = 0; i < CHILDREN_PER_NODE; ++i) {
251 304 161 if (!is_within_node(node, param)) return;
254 58 103 if (node->values != NULL) {
260 412 103 for (i = 0; i < CHILDREN_PER_NODE; ++i) {
280 125 0 return (QuadTreeRootNode*) SvIV(get_hash_key(params, "ROOT"));
291 52 7 while ((value = hv_iternextsv(root->backref, &key, &retlen)) != NULL) {
292 52 0 DynArr *list = (DynArr*) SvIV(value);
293 57 52 for (i = 0; i < list->count; ++i) {
320 0 4 node_add_level(root->node,
0 4 node_add_level(root->node,
0 4 node_add_level(root->node,
362 48 5 if (items > 5) {
364 48 0 param.dimensions[3] = SvNV(ST(5));
386 61 3 if (items > 4) {
388 60 1 param.dimensions[3] = SvNV(ST(4));
404 1 0 if (hv_exists_ent(root->backref, object, 0)) {
405 1 0 DynArr* list = (DynArr*) SvIV(HeVAL(hv_fetch_ent(root->backref, object, 0, 0)));
408 1 1 for (i = 0; i < list->count; ++i) {
412 2 1 for(j = 0; j < node->values->count; ++j) {
414 1 1 if (!sv_eq(fetched, object)) {
421 0 1 if (new_list->count == 0) clear_has_objects(node);