tests/test_tree.c

changeset 903
a018f5916d3b
parent 902
5ed7f634f046
child 904
cdc49211d87f
--- 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;
 }

mercurial