summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authormo khan <mo.khan@gmail.com>2020-08-28 13:50:18 -0600
committermo khan <mo.khan@gmail.com>2020-08-28 13:50:18 -0600
commit39859c6ee1c0a3340e308a5346facae970f8df43 (patch)
treec840a5cf09883cbd17578dcd42ec03039997e377
parent64d34f33575b0bd3c54e9d5c0ad8eef45cd26287 (diff)
Add more test cases
-rw-r--r--src/03/avl_tree_test.c28
1 files changed, 28 insertions, 0 deletions
diff --git a/src/03/avl_tree_test.c b/src/03/avl_tree_test.c
index 662b27b..c2e0b3f 100644
--- a/src/03/avl_tree_test.c
+++ b/src/03/avl_tree_test.c
@@ -276,6 +276,32 @@ Ensure(delete_handles_right_left) {
assert_that(tree->right->right->value, is_equal_to(30));
}
+Ensure(delete_handles_a_complicated_and_large_tree) {
+ int items[] = { 44, 17, 62, 10, 32, 50, 78, 21, 48, 54, 72, 88, 45, 49, 52, 56, 81, 92 };
+ unsigned int length = sizeof(items)/sizeof(items[0]);
+ AVLTree *tree = NULL;
+
+ for (int i = 0; i < length; i++)
+ tree = avl_tree_insert(tree, items[i]);
+
+ tree = avl_tree_delete(tree, 32);
+
+ assert_that(tree->value, is_equal_to(62));
+}
+
+Ensure(delete_handles_a_complicated_and_small_tree) {
+ int items[] = { 9, 1, 10, 0, 5, 11, -1, 2, 6 };
+ unsigned int length = sizeof(items)/sizeof(items[0]);
+ AVLTree *tree = NULL;
+
+ for (int i = 0; i < length; i++)
+ tree = avl_tree_insert(tree, items[i]);
+
+ tree = avl_tree_delete(tree, 10);
+
+ assert_that(tree->value, is_equal_to(1));
+}
+
TestSuite *avl_tree_tests() {
TestSuite *x = create_test_suite();
add_test(x, initialize_returns_new_tree);
@@ -294,6 +320,8 @@ TestSuite *avl_tree_tests() {
add_test(x, delete_handles_left_right_case);
add_test(x, delete_handles_right_right_case);
add_test(x, delete_handles_right_left);
+ add_test(x, delete_handles_a_complicated_and_large_tree);
+ add_test(x, delete_handles_a_complicated_and_small_tree);
return x;
}