tests/test_tree.c

changeset 918
ec1f2015ec79
parent 916
526ed389c3d2
equal deleted inserted replaced
917:ff8ad2c9e1bd 918:ec1f2015ec79
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);

mercurial