void test_mtree(){ MTree* tree = mtree_create(4, 4, false, NULL); for (uintptr_t i = 1; i < 10; i++) { mtree_insert(tree, i, (void*)i); } mtree_dump(tree); Document* a[20]; Cursor* c = mtree_cursor(tree); cursor_to_array(c, a, 20); char msg[30]; for (uintptr_t i = 1; i < 10; i++) { sprintf(msg, "a[%lu] == %lu", i - 1, i); sput_fail_unless(a[i - 1] == (Document*)i, msg); } }
static void mtree_dump(IN osm_mtree_node_t * p_mtn) { uint32_t i; if (p_mtn == NULL) return; printf("GUID:0x%016" PRIx64 " max_children:%u\n", cl_ntoh64(p_mtn->p_sw->p_node->node_info.node_guid), p_mtn->max_children); if (p_mtn->child_array != NULL) { for (i = 0; i < p_mtn->max_children; i++) { printf("i=%d\n", i); if ((p_mtn->child_array[i] != NULL) && (p_mtn->child_array[i] != OSM_MTREE_LEAF)) mtree_dump(p_mtn->child_array[i]); } } }