summaryrefslogtreecommitdiff
path: root/src/03/rb_tree_test.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/03/rb_tree_test.c')
-rw-r--r--src/03/rb_tree_test.c22
1 files changed, 22 insertions, 0 deletions
diff --git a/src/03/rb_tree_test.c b/src/03/rb_tree_test.c
index 3fca748..4bb2d7e 100644
--- a/src/03/rb_tree_test.c
+++ b/src/03/rb_tree_test.c
@@ -277,6 +277,24 @@ Ensure(is_valid_return_true) {
assert_that(rb_tree_is_valid(tree), is_equal_to(true));
}
+Ensure(height_returns_one) {
+ assert_that(rb_tree_height(NULL), is_equal_to(1));
+}
+
+Ensure(height_returns_three_when_left_subtree_is_present) {
+ RBTree *tree = rb_tree_initialize(10);
+ tree = rb_tree_insert(tree, 5);
+
+ assert_that(rb_tree_height(tree), is_equal_to(3));
+}
+
+Ensure(height_returns_three_when_right_subtree_is_present) {
+ RBTree *tree = rb_tree_initialize(10);
+ tree = rb_tree_insert(tree, 15);
+
+ assert_that(rb_tree_height(tree), is_equal_to(3));
+}
+
TestSuite *rb_tree_tests() {
TestSuite *x = create_test_suite();
@@ -305,5 +323,9 @@ TestSuite *rb_tree_tests() {
add_test(x, is_valid_returns_false_when_red_node_has_red_child);
add_test(x, is_valid_returns_false_when_each_path_to_leaves_does_not_contain_the_same_number_of_black_nodes);
add_test(x, is_valid_return_true);
+
+ add_test(x, height_returns_one);
+ add_test(x, height_returns_three_when_left_subtree_is_present);
+ add_test(x, height_returns_three_when_right_subtree_is_present);
return x;
}