Mon, 18 May 2015 19:52:03 +0200
added ucx_avl_remove tests
test/avl_tests.c | file | annotate | diff | comparison | revisions | |
test/avl_tests.h | file | annotate | diff | comparison | revisions | |
test/main.c | file | annotate | diff | comparison | revisions |
1.1 --- a/test/avl_tests.c Mon May 18 19:49:03 2015 +0200 1.2 +++ b/test/avl_tests.c Mon May 18 19:52:03 2015 +0200 1.3 @@ -142,3 +142,69 @@ 1.4 ucx_avl_free(tree4); 1.5 ucx_avl_free(tree5); 1.6 } 1.7 + 1.8 +UCX_TEST(test_ucx_avl_remove) { 1.9 + UcxAVLTree *tree1 = ucx_avl_new(ucx_ptrcmp); 1.10 + UcxAVLTree *tree2 = ucx_avl_new(ucx_ptrcmp); 1.11 + UcxAVLTree *tree3 = ucx_avl_new(ucx_ptrcmp); 1.12 + UcxAVLTree *tree4 = ucx_avl_new(ucx_ptrcmp); 1.13 + 1.14 + char *data1 = (char*)"data1"; 1.15 + char *data2 = (char*)"data2"; 1.16 + char *data3 = (char*)"data3"; 1.17 + 1.18 + UCX_TEST_BEGIN 1.19 + ucx_avl_put(tree1, 2, (char*)data2); 1.20 + ucx_avl_put(tree1, 1, (char*)data1); 1.21 + ucx_avl_put(tree1, 3, (char*)data3); 1.22 + void *val = ucx_avl_remove(tree1, 3); 1.23 + 1.24 + UCX_TEST_ASSERT(check_tree(tree1->root), "check_tree failed (tree1)"); 1.25 + UCX_TEST_ASSERT(val == data3, "wrong return value (tree1)"); 1.26 + UCX_TEST_ASSERT(ucx_avl_get(tree1, 3) == NULL, "value not removed (tree1)"); 1.27 + 1.28 + for(int i=0;i<20;i++) { 1.29 + if(i==10) { 1.30 + ucx_avl_put(tree2, i, data3); 1.31 + } else if(i==15) { 1.32 + ucx_avl_put(tree2, i, data2); 1.33 + } else { 1.34 + ucx_avl_put(tree2, i, data1); 1.35 + } 1.36 + } 1.37 + 1.38 + UCX_TEST_ASSERT( 1.39 + ucx_avl_remove(tree2, 10) == data3, 1.40 + "wrong return value for key: 10 (tree2)"); 1.41 + UCX_TEST_ASSERT(check_tree(tree2->root), "check_tree failed (tree2)"); 1.42 + 1.43 + UCX_TEST_ASSERT( 1.44 + ucx_avl_remove(tree2, 15) == data2, 1.45 + "wrong return value for key: 15 (tree2)"); 1.46 + UCX_TEST_ASSERT(check_tree(tree2->root), "check_tree failed (tree2)"); 1.47 + 1.48 + for(int i=0;i<20;i++) { 1.49 + ucx_avl_remove(tree2, i); 1.50 + UCX_TEST_ASSERT(check_tree(tree2->root), "check_tree failed (tree2)"); 1.51 + } 1.52 + 1.53 + for(int i=0;i<100000;i++) { 1.54 + ucx_avl_put(tree3, i, data1); 1.55 + } 1.56 + for(int i=100000-1;i>=0;i--) { 1.57 + ucx_avl_remove(tree3, i); 1.58 + } 1.59 + UCX_TEST_ASSERT(tree3->root == NULL, "root not NULL (tree3)"); 1.60 + UCX_TEST_ASSERT(check_tree(tree3->root), "check_tree failed (tree3)"); 1.61 + 1.62 + ucx_avl_put(tree4, 1, data1); 1.63 + ucx_avl_remove(tree4, 1); 1.64 + UCX_TEST_ASSERT(check_tree(tree4->root), "check_tree failed (tree4)"); 1.65 + UCX_TEST_ASSERT(tree4->root == NULL, "root not NULL (tree4)"); 1.66 + UCX_TEST_END 1.67 + 1.68 + ucx_avl_free(tree1); 1.69 + ucx_avl_free(tree2); 1.70 + ucx_avl_free(tree3); 1.71 + ucx_avl_free(tree4); 1.72 +}
2.1 --- a/test/avl_tests.h Mon May 18 19:49:03 2015 +0200 2.2 +++ b/test/avl_tests.h Mon May 18 19:52:03 2015 +0200 2.3 @@ -37,6 +37,7 @@ 2.4 #endif 2.5 2.6 UCX_TEST(test_ucx_avl_put); 2.7 +UCX_TEST(test_ucx_avl_remove); 2.8 2.9 #ifdef __cplusplus 2.10 }
3.1 --- a/test/main.c Mon May 18 19:49:03 2015 +0200 3.2 +++ b/test/main.c Mon May 18 19:52:03 2015 +0200 3.3 @@ -221,6 +221,7 @@ 3.4 3.5 /* AVL Tests */ 3.6 ucx_test_register(suite, test_ucx_avl_put); 3.7 + ucx_test_register(suite, test_ucx_avl_remove); 3.8 3.9 ucx_test_run(suite, stdout); 3.10 fflush(stdout);