1673 cxTreeDestroy(empty); |
1673 cxTreeDestroy(empty); |
1674 } |
1674 } |
1675 cxTreeDestroy(tree); |
1675 cxTreeDestroy(tree); |
1676 } |
1676 } |
1677 |
1677 |
|
1678 CX_TEST(test_tree_high_set_parent) { |
|
1679 tree_node root = {0}, child1 = {0}, child2 = {0}, child3 = {0}; |
|
1680 CxTree *tree = cxTreeCreateWrapped(cxDefaultAllocator, &root, tree_node_layout); |
|
1681 CX_TEST_DO { |
|
1682 cxTreeSetParent(tree, &root, &child1); |
|
1683 cxTreeSetParent(tree, &root, &child2); |
|
1684 cxTreeSetParent(tree, &child1, &child3); |
|
1685 CX_TEST_ASSERT(cxTreeDepth(tree) == 3); |
|
1686 CX_TEST_ASSERT(cxTreeSubtreeDepth(tree, &root) == 3); |
|
1687 CX_TEST_ASSERT(cxTreeSubtreeDepth(tree, &child1) == 2); |
|
1688 CX_TEST_ASSERT(cxTreeSubtreeDepth(tree, &child2) == 1); |
|
1689 CX_TEST_ASSERT(cxTreeSubtreeDepth(tree, &child3) == 1); |
|
1690 |
|
1691 cxTreeSetParent(tree, &child2, &child3); |
|
1692 CX_TEST_ASSERT(cxTreeSubtreeDepth(tree, &root) == 3); |
|
1693 CX_TEST_ASSERT(cxTreeSubtreeDepth(tree, &child1) == 1); |
|
1694 CX_TEST_ASSERT(cxTreeSubtreeDepth(tree, &child2) == 2); |
|
1695 CX_TEST_ASSERT(cxTreeSubtreeDepth(tree, &child3) == 1); |
|
1696 |
|
1697 CxTree *empty = cxTreeCreate( |
|
1698 cxDefaultAllocator, |
|
1699 tree_node_file_create_hl, |
|
1700 tree_node_file_search, |
|
1701 tree_node_file_search_data, |
|
1702 tree_node_file_layout |
|
1703 ); |
|
1704 CX_TEST_ASSERT(cxTreeDepth(empty) == 0); |
|
1705 cxTreeDestroy(empty); |
|
1706 } |
|
1707 cxTreeDestroy(tree); |
|
1708 } |
|
1709 |
1678 CX_TEST(test_tree_high_insert_one) { |
1710 CX_TEST(test_tree_high_insert_one) { |
1679 CxTestingAllocator talloc; |
1711 CxTestingAllocator talloc; |
1680 cx_testing_allocator_init(&talloc); |
1712 cx_testing_allocator_init(&talloc); |
1681 CxAllocator *alloc = &talloc.base; |
1713 CxAllocator *alloc = &talloc.base; |
1682 |
1714 |
2030 |
2062 |
2031 cx_test_register(suite, test_tree_high_create); |
2063 cx_test_register(suite, test_tree_high_create); |
2032 cx_test_register(suite, test_tree_high_create_simple); |
2064 cx_test_register(suite, test_tree_high_create_simple); |
2033 cx_test_register(suite, test_tree_high_create_wrapped); |
2065 cx_test_register(suite, test_tree_high_create_wrapped); |
2034 cx_test_register(suite, test_tree_high_tree_depth); |
2066 cx_test_register(suite, test_tree_high_tree_depth); |
|
2067 cx_test_register(suite, test_tree_high_set_parent); |
2035 cx_test_register(suite, test_tree_high_insert_one); |
2068 cx_test_register(suite, test_tree_high_insert_one); |
2036 cx_test_register(suite, test_tree_high_insert_many); |
2069 cx_test_register(suite, test_tree_high_insert_many); |
2037 cx_test_register(suite, test_tree_high_add_find_remove_nodes); |
2070 cx_test_register(suite, test_tree_high_add_find_remove_nodes); |
2038 cx_test_register(suite, test_tree_high_add_find_destroy_nodes); |
2071 cx_test_register(suite, test_tree_high_add_find_destroy_nodes); |
2039 cx_test_register(suite, test_tree_high_remove_or_destroy_root); |
2072 cx_test_register(suite, test_tree_high_remove_or_destroy_root); |