diff -r 5ed7f634f046 -r a018f5916d3b tests/test_tree.c --- a/tests/test_tree.c Thu Oct 03 15:38:05 2024 +0200 +++ b/tests/test_tree.c Thu Oct 03 15:42:35 2024 +0200 @@ -1609,6 +1609,21 @@ } } +CX_TEST(test_tree_high_subtree_depth) { + tree_node root = {0}, child1 = {0}, child2 = {0}, child3 = {0}; + cx_tree_link(&root, &child1, tree_node_layout); + cx_tree_link(&root, &child2, tree_node_layout); + cx_tree_link(&child1, &child3, tree_node_layout); + CxTree *tree = cxTreeCreateWrapped(&root, tree_node_layout); + CX_TEST_DO { + CX_TEST_ASSERT(cxTreeSubtreeDepth(tree, &root) == 3); + CX_TEST_ASSERT(cxTreeSubtreeDepth(tree, &child1) == 2); + CX_TEST_ASSERT(cxTreeSubtreeDepth(tree, &child2) == 1); + CX_TEST_ASSERT(cxTreeSubtreeDepth(tree, &child3) == 1); + } + cxTreeDestroy(tree); +} + CxTestSuite *cx_test_suite_tree_low_level(void) { CxTestSuite *suite = cx_test_suite_new("tree (low level)"); @@ -1651,6 +1666,7 @@ cx_test_register(suite, test_tree_high_create); cx_test_register(suite, test_tree_high_create_simple); cx_test_register(suite, test_tree_high_create_wrapped); + cx_test_register(suite, test_tree_high_subtree_depth); return suite; }