From: Mike D. Lowis Date: Tue, 14 Apr 2015 17:09:34 +0000 (-0400) Subject: Completed test coverage for splaytrees X-Git-Url: https://git.mdlowis.com/?a=commitdiff_plain;h=682d3c485b6d3284b3e66fb916df3ac8cd9b6f22;p=archive%2Fatc.git Completed test coverage for splaytrees --- diff --git a/tests/test_splaytree.c b/tests/test_splaytree.c index ad0bd1b..055a0fe 100644 --- a/tests/test_splaytree.c +++ b/tests/test_splaytree.c @@ -167,6 +167,24 @@ TEST_SUITE(SplayTree) { splaytree_destroy(tree); } + TEST(Verify_Lookup_will_stop_at_the_next_lowest_value_if_value_is_not_present_in_the_left_subtree) + { + splaytree_t* tree = splaytree_create((del_fn_t)del_int, (cmp_fn_t)cmp_int); + tree->root = node(42, node(38, node(36, NULL, NULL), node(40, NULL, NULL)), NULL); + CHECK(NULL == splaytree_lookup(tree, 41)); + CHECK((void*)40 == tree->root->value); + splaytree_destroy(tree); + } + + TEST(Verify_Lookup_will_stop_at_the_next_lowest_value_if_value_is_not_present_in_the_right_subtree) + { + splaytree_t* tree = splaytree_create((del_fn_t)del_int, (cmp_fn_t)cmp_int); + tree->root = node(42, NULL, node(46, node(44, NULL, NULL), node(48, NULL, NULL))); + CHECK(NULL == splaytree_lookup(tree, 43)); + CHECK((void*)44 == tree->root->value); + splaytree_destroy(tree); + } + /* Verify: splaytree_delete *************************************************************************/ TEST(Verify_Delete_will_delete_the_item_at_the_root) @@ -241,4 +259,12 @@ TEST_SUITE(SplayTree) { CHECK(NULL == splaytree_delete(tree, 42)); splaytree_destroy(tree); } + + TEST(Verify_Delete_should_do_nothing_when_item_not_found) + { + splaytree_t* tree = splaytree_create((del_fn_t)del_int, (cmp_fn_t)cmp_int); + splaytree_insert(tree, 41, (void*)41); + CHECK(NULL == splaytree_delete(tree, 42)); + splaytree_destroy(tree); + } }