return (ia == ib ? 0 : (ia<ib ? -1 : 1 ));
}
-static comparator_t* test_comparator(void){
- comparator_t* cmp = (comparator_t*)mem_allocate(sizeof(comparator_t), NULL);
- cmp->env = NULL;
- cmp->cmpfn = &test_compare;
- return cmp;
-}
-
typedef enum {
OK = 0,
OUT_OF_ORDER,
if(node->color != RED && node->color != BLACK) ret = UNKNOWN_COLOR;
else if(node->color == RED && (rbt_node_color(node->left) != BLACK && rbt_node_color(node->right) != BLACK))
ret = RED_WITH_RED_CHILD;
- else if(min_val && tree->comp->cmpfn(tree->comp->env, node->contents, min_val) < 0) ret = OUT_OF_ORDER;
- else if(max_val && tree->comp->cmpfn(tree->comp->env, node->contents, max_val) > 0) ret = OUT_OF_ORDER;
+ else if(min_val && cmp_compare(tree->comp, node->contents, min_val) < 0) ret = OUT_OF_ORDER;
+ else if(max_val && cmp_compare(tree->comp, node->contents, max_val) > 0) ret = OUT_OF_ORDER;
else if(node->left == node || node->right == node) ret = SELF_REFERENCE;
else if(node->left && node->left->parent != node) ret = BAD_PARENT_POINTER;
else if(node->right && node->right->parent != node) ret = BAD_PARENT_POINTER;
// Test the rbt_new function
//-------------------------------------------------------------------------
TEST(Verify_rbt_new_returns_an_empty_red_black_tree){
- rbt_t* tree = rbt_new(test_comparator());
+ rbt_t* tree = rbt_new(cmp_new(NULL,&test_compare));
CHECK(NULL != tree);
CHECK(NULL == tree->root);
CHECK(OK == rbt_check_status(tree));
TEST(Verify_null_and_empty_trees_are_considered_valid){
rbt_t* tree = NULL;
CHECK(OK == rbt_check_status(tree));
- tree = rbt_new(test_comparator());
+ tree = rbt_new(cmp_new(NULL,&test_compare));
CHECK(OK == rbt_check_status(tree));
mem_release(tree);
}
TEST(Verify_tree_is_valid_checks_root_is_always_black_property){
void* box88 = mem_box(88);
- rbt_t* tree = rbt_new(test_comparator());
+ rbt_t* tree = rbt_new(cmp_new(NULL,&test_compare));
rbt_insert(tree, box88);
CHECK(BLACK == tree->root->color);
CHECK(OK == rbt_check_status(tree));
TEST(Verify_tree_is_valid_fails_when_nodes_not_sorted_two_nodes){
void* box42 = mem_box(42);
void* box88 = mem_box(88);
- rbt_t* tree = rbt_new(test_comparator());
+ rbt_t* tree = rbt_new(cmp_new(NULL,&test_compare));
rbt_node_t* node1 = rbt_node_new(box42);
rbt_node_t* node2 = rbt_node_new(box88);
tree->root = node1;
void* box88 = mem_box(88);
void* box25 = mem_box(25);
void* box99 = mem_box(99);
- rbt_t* tree = rbt_new(test_comparator());
+ rbt_t* tree = rbt_new(cmp_new(NULL,&test_compare));
rbt_node_t* node1 = rbt_node_new(box42);
rbt_node_t* node2 = rbt_node_new(box88);
rbt_node_t* node3 = rbt_node_new(box25);
TEST(Verify_tree_is_valid_fails_when_black_nodes_are_unbalanced_two_nodes){
void* box42 = mem_box(42);
void* box88 = mem_box(88);
- rbt_t* tree = rbt_new(test_comparator());
+ rbt_t* tree = rbt_new(cmp_new(NULL,&test_compare));
rbt_node_t* node1 = rbt_node_new(box42);
rbt_node_t* node2 = rbt_node_new(box88);
tree->root = node1;
void* box42 = mem_box(42);
void* box22 = mem_box(22);
void* box88 = mem_box(88);
- rbt_t* tree = rbt_new(test_comparator());
+ rbt_t* tree = rbt_new(cmp_new(NULL,&test_compare));
rbt_node_t* node1 = rbt_node_new(box42);
rbt_node_t* node2 = rbt_node_new(box22);
rbt_node_t* node3 = rbt_node_new(box88);
void* box22 = mem_box(22);
void* box88 = mem_box(88);
void* box33 = mem_box(33);
- rbt_t* tree = rbt_new(test_comparator());
+ rbt_t* tree = rbt_new(cmp_new(NULL,&test_compare));
rbt_node_t* node1 = rbt_node_new(box42);
rbt_node_t* node2 = rbt_node_new(box22);
rbt_node_t* node3 = rbt_node_new(box88);
TEST(Verify_tree_is_valid_fails_when_node_is_unvalid_color){
void* box42 = mem_box(42);
void* box88 = mem_box(88);
- rbt_t* tree = rbt_new(test_comparator());
+ rbt_t* tree = rbt_new(cmp_new(NULL,&test_compare));
rbt_node_t* node1 = rbt_node_new(box42);
rbt_node_t* node2 = rbt_node_new(box88);
tree->root = node1;
TEST(Verify_tree_is_valid_fails_when_root_parent_pointer_is_not_null){
void* box42 = mem_box(42);
void* box88 = mem_box(88);
- rbt_t* tree = rbt_new(test_comparator());
+ rbt_t* tree = rbt_new(cmp_new(NULL,&test_compare));
rbt_node_t* node1 = rbt_node_new(box42);
rbt_node_t* node2 = rbt_node_new(box88);
tree->root = node1;
void* box42 = mem_box(42);
void* box88 = mem_box(88);
void* box99 = mem_box(99);
- rbt_t* tree = rbt_new(test_comparator());
+ rbt_t* tree = rbt_new(cmp_new(NULL,&test_compare));
rbt_node_t* node1 = rbt_node_new(box42);
rbt_node_t* node2 = rbt_node_new(box88);
rbt_node_t* node3 = rbt_node_new(box99);
void* box22 = mem_box(22);
void* box88 = mem_box(88);
void* box33 = mem_box(33);
- rbt_t* tree = rbt_new(test_comparator());
+ rbt_t* tree = rbt_new(cmp_new(NULL,&test_compare));
rbt_node_t* node1 = rbt_node_new(box42);
rbt_node_t* node2 = rbt_node_new(box22);
rbt_node_t* node3 = rbt_node_new(box88);
void* box22 = mem_box(22);
void* box88 = mem_box(88);
void* box33 = mem_box(33);
- rbt_t* tree = rbt_new(test_comparator());
+ rbt_t* tree = rbt_new(cmp_new(NULL,&test_compare));
rbt_node_t* node1 = rbt_node_new(box42);
rbt_node_t* node2 = rbt_node_new(box22);
rbt_node_t* node3 = rbt_node_new(box88);
//-------------------------------------------------------------------------
TEST(Verify_rbt_insert_to_an_empty_list_assigns_root){
void* box42 = mem_box(42);
- rbt_t* tree = rbt_new(test_comparator());
+ rbt_t* tree = rbt_new(cmp_new(NULL,&test_compare));
rbt_node_t* node = rbt_insert(tree, box42);
CHECK(NULL != node);
CHECK(tree->root == node);
TEST(Verify_rbt_insert_node_to_root_left_works){
void* box42 = mem_box(42);
void* box31 = mem_box(31);
- rbt_t* tree = rbt_new(test_comparator());
+ rbt_t* tree = rbt_new(cmp_new(NULL,&test_compare));
rbt_node_t* root = rbt_insert(tree, box42);
rbt_node_t* node1 = rbt_insert(tree, box31);
CHECK(NULL != root);
TEST(Verify_rbt_insert_node_to_root_right_works){
void* box42 = mem_box(42);
void* box64 = mem_box(64);
- rbt_t* tree = rbt_new(test_comparator());
+ rbt_t* tree = rbt_new(cmp_new(NULL,&test_compare));
rbt_node_t* root = rbt_insert(tree, box42);
rbt_node_t* node2 = rbt_insert(tree, box64);
CHECK(NULL != root);
void* box42 = mem_box(42);
void* box31 = mem_box(31);
void* box64 = mem_box(64);
- rbt_t* tree = rbt_new(test_comparator());
+ rbt_t* tree = rbt_new(cmp_new(NULL,&test_compare));
rbt_node_t* root = rbt_insert(tree, box42);
rbt_node_t* node1 = rbt_insert(tree, box31);
rbt_node_t* node2 = rbt_insert(tree, box64);
void* box31 = mem_box(31);
void* box64 = mem_box(64);
void* box15 = mem_box(15);
- rbt_t* tree = rbt_new(test_comparator());
+ rbt_t* tree = rbt_new(cmp_new(NULL,&test_compare));
rbt_node_t* root = rbt_insert(tree, box42);
rbt_node_t* node1 = rbt_insert(tree, box31);
rbt_node_t* node2 = rbt_insert(tree, box64);
void* box42 = mem_box(42);
void* box32 = mem_box(32);
void* box15 = mem_box(15);
- rbt_t* tree = rbt_new(test_comparator());
+ rbt_t* tree = rbt_new(cmp_new(NULL,&test_compare));
rbt_node_t* node1 = rbt_insert(tree, box42);
rbt_node_t* node2 = rbt_insert(tree, box32);
CHECK(node1 == tree->root);
void* box42 = mem_box(42);
void* box53 = mem_box(53);
void* box99 = mem_box(99);
- rbt_t* tree = rbt_new(test_comparator());
+ rbt_t* tree = rbt_new(cmp_new(NULL,&test_compare));
rbt_node_t* node1 = rbt_insert(tree, box42);
rbt_node_t* node2 = rbt_insert(tree, box53);
CHECK(node1 == tree->root);
void* box42 = mem_box(42);
void* box20 = mem_box(20);
void* box33 = mem_box(33);
- rbt_t* tree = rbt_new(test_comparator());
+ rbt_t* tree = rbt_new(cmp_new(NULL,&test_compare));
rbt_node_t* node1 = rbt_insert(tree, box42);
rbt_node_t* node2 = rbt_insert(tree, box20);
CHECK(node1 == tree->root);
void* box42 = mem_box(42);
void* box99 = mem_box(99);
void* box88 = mem_box(88);
- rbt_t* tree = rbt_new(test_comparator());
+ rbt_t* tree = rbt_new(cmp_new(NULL,&test_compare));
rbt_node_t* node1 = rbt_insert(tree, box42);
rbt_node_t* node2 = rbt_insert(tree, box99);
CHECK(node1 == tree->root);
void* box88 = mem_box(88);
void* box15 = mem_box(15);
void* box78 = mem_box(78);
- rbt_t* tree = rbt_new(test_comparator());
+ rbt_t* tree = rbt_new(cmp_new(NULL,&test_compare));
rbt_insert(tree, box42);
rbt_insert(tree, box33);
rbt_insert(tree, box88);
void* box33 = mem_box(33);
void* box88 = mem_box(88);
void* box15 = mem_box(15);
- rbt_t* tree = rbt_new(test_comparator());
+ rbt_t* tree = rbt_new(cmp_new(NULL,&test_compare));
rbt_node_t* node1 = rbt_insert(tree, box42);
rbt_node_t* node2 = rbt_insert(tree, box33);
rbt_node_t* node3 = rbt_insert(tree, box88);
void* box33 = mem_box(33);
void* box88 = mem_box(88);
void* box15 = mem_box(15);
- rbt_t* tree = rbt_new(test_comparator());
+ rbt_t* tree = rbt_new(cmp_new(NULL,&test_compare));
rbt_node_t* node1 = rbt_insert(tree, box42);
rbt_node_t* node2 = rbt_insert(tree, box33);
rbt_node_t* node3 = rbt_insert(tree, box88);
void* box33 = mem_box(33);
void* box88 = mem_box(88);
void* box15 = mem_box(15);
- rbt_t* tree = rbt_new(test_comparator());
+ rbt_t* tree = rbt_new(cmp_new(NULL,&test_compare));
rbt_node_t* node1 = rbt_insert(tree, box42);
rbt_node_t* node2 = rbt_insert(tree, box33);
rbt_node_t* node3 = rbt_insert(tree, box88);
void* box33 = mem_box(33);
void* box88 = mem_box(88);
void* box38 = mem_box(38);
- rbt_t* tree = rbt_new(test_comparator());
+ rbt_t* tree = rbt_new(cmp_new(NULL,&test_compare));
rbt_node_t* node1 = rbt_insert(tree, box42);
rbt_node_t* node2 = rbt_insert(tree, box33);
rbt_node_t* node3 = rbt_insert(tree, box88);
void* box33 = mem_box(33);
void* box88 = mem_box(88);
void* box98 = mem_box(98);
- rbt_t* tree = rbt_new(test_comparator());
+ rbt_t* tree = rbt_new(cmp_new(NULL,&test_compare));
rbt_node_t* node1 = rbt_insert(tree, box42);
rbt_node_t* node2 = rbt_insert(tree, box33);
rbt_node_t* node3 = rbt_insert(tree, box88);
void* box33 = mem_box(33);
void* box88 = mem_box(88);
void* box68 = mem_box(68);
- rbt_t* tree = rbt_new(test_comparator());
+ rbt_t* tree = rbt_new(cmp_new(NULL,&test_compare));
rbt_node_t* node1 = rbt_insert(tree, box42);
rbt_node_t* node2 = rbt_insert(tree, box33);
rbt_node_t* node3 = rbt_insert(tree, box88);
void* box22 = mem_box(22);
void* box88 = mem_box(88);
void* box77 = mem_box(77);
- rbt_t* tree = rbt_new(test_comparator());
+ rbt_t* tree = rbt_new(cmp_new(NULL,&test_compare));
rbt_node_t* node1 = rbt_insert(tree, box42); //root
rbt_node_t* node2 = rbt_insert(tree, box22); //untouched
rbt_node_t* node3 = rbt_insert(tree, box88); //parent
void* box99 = mem_box(99);
void* box42 = mem_box(42);
void* box55 = mem_box(55);
- rbt_t* tree = rbt_new(test_comparator());
+ rbt_t* tree = rbt_new(cmp_new(NULL,&test_compare));
rbt_node_t* node1 = rbt_insert(tree, box88); //root
rbt_node_t* node2 = rbt_insert(tree, box99); //untouched
rbt_node_t* node3 = rbt_insert(tree, box42); //parent
void* box88 = mem_box(88);
void* box77 = mem_box(77);
void* box70 = mem_box(70);
- rbt_t* tree = rbt_new(test_comparator());
+ rbt_t* tree = rbt_new(cmp_new(NULL,&test_compare));
rbt_node_t* node1 = rbt_insert(tree, box42); //root
rbt_node_t* node2 = rbt_insert(tree, box22); //untouched
rbt_node_t* node3 = rbt_insert(tree, box88); //parent
void* box42 = mem_box(42);
void* box55 = mem_box(55);
void* box64 = mem_box(64);
- rbt_t* tree = rbt_new(test_comparator());
+ rbt_t* tree = rbt_new(cmp_new(NULL,&test_compare));
rbt_node_t* node1 = rbt_insert(tree, box88); //root
rbt_node_t* node2 = rbt_insert(tree, box99); //untouched
rbt_node_t* node3 = rbt_insert(tree, box42); //parent
void* box88 = mem_box(88);
void* box70 = mem_box(70);
void* box78 = mem_box(78);
- rbt_t* tree = rbt_new(test_comparator());
+ rbt_t* tree = rbt_new(cmp_new(NULL,&test_compare));
rbt_node_t* node1 = rbt_insert(tree, box42); //root
rbt_node_t* node2 = rbt_insert(tree, box22); //untouched
rbt_node_t* node3 = rbt_insert(tree, box88); //parent
void* box42 = mem_box(42);
void* box55 = mem_box(55);
void* box48 = mem_box(48);
- rbt_t* tree = rbt_new(test_comparator());
+ rbt_t* tree = rbt_new(cmp_new(NULL,&test_compare));
rbt_node_t* node1 = rbt_insert(tree, box88); //root
rbt_node_t* node2 = rbt_insert(tree, box99); //untouched
rbt_node_t* node3 = rbt_insert(tree, box42); //parent
void* box70 = mem_box(70);
void* box78 = mem_box(78);
void* box64 = mem_box(64);
- rbt_t* tree = rbt_new(test_comparator());
+ rbt_t* tree = rbt_new(cmp_new(NULL,&test_compare));
rbt_node_t* node1 = rbt_insert(tree, box42); //root
rbt_node_t* node2 = rbt_insert(tree, box22); //untouched
rbt_node_t* node3 = rbt_insert(tree, box88); //parent
void* box55 = mem_box(55);
void* box48 = mem_box(48);
void* box64 = mem_box(64);
- rbt_t* tree = rbt_new(test_comparator());
+ rbt_t* tree = rbt_new(cmp_new(NULL,&test_compare));
rbt_node_t* node1 = rbt_insert(tree, box88); //root
rbt_node_t* node2 = rbt_insert(tree, box99); //untouched
rbt_node_t* node3 = rbt_insert(tree, box42); //parent
//create tree w/ several nodes
void* box88 = mem_box(88);
void* box42 = mem_box(42);
- rbt_t* tree = rbt_new(test_comparator());
+ rbt_t* tree = rbt_new(cmp_new(NULL,&test_compare));
rbt_node_t* node1 = rbt_insert(tree, box88); //root
rbt_node_t* node2 = rbt_insert(tree, target); //target
rbt_node_t* node3 = rbt_insert(tree, box42); //sibbling
//create tree w/ several nodes
void* box42 = mem_box(42);
void* box88 = mem_box(88);
- rbt_t* tree = rbt_new(test_comparator());
+ rbt_t* tree = rbt_new(cmp_new(NULL,&test_compare));
rbt_node_t* node1 = rbt_insert(tree, box42); //root
rbt_node_t* node2 = rbt_insert(tree, target); //target
rbt_node_t* node3 = rbt_insert(tree, box88); //sibbling
void* box80 = mem_box(80);
void* box60 = mem_box(60);
void* box33 = mem_box(33);
- rbt_t* tree = rbt_new(test_comparator());
+ rbt_t* tree = rbt_new(cmp_new(NULL,&test_compare));
rbt_node_t* node01 = rbt_insert(tree, box42);
rbt_node_t* node02 = rbt_insert(tree, box22);
rbt_node_t* node03 = rbt_insert(tree, box70);
void* box20 = mem_box(20);
void* box16 = mem_box(16);
void* box11 = mem_box(11);
- rbt_t* tree = rbt_new(test_comparator());
+ rbt_t* tree = rbt_new(cmp_new(NULL,&test_compare));
rbt_node_t* node01 = rbt_insert(tree, box42);
rbt_node_t* node02 = rbt_insert(tree, box66);
rbt_node_t* node03 = rbt_insert(tree, box22);
void* box99 = mem_box(99);
void* box75 = mem_box(75);
void* box33 = mem_box(33);
- rbt_t* tree = rbt_new(test_comparator());
+ rbt_t* tree = rbt_new(cmp_new(NULL,&test_compare));
rbt_node_t* node1 = rbt_insert(tree, box42);
rbt_node_t* node2 = rbt_insert(tree, box22);
rbt_node_t* node3 = rbt_insert(tree, box88);
void* box99 = mem_box(99);
void* box33 = mem_box(33);
void* box15 = mem_box(15);
- rbt_t* tree = rbt_new(test_comparator());
+ rbt_t* tree = rbt_new(cmp_new(NULL,&test_compare));
rbt_node_t* node1 = rbt_insert(tree, box42);
rbt_node_t* node2 = rbt_insert(tree, box22);
rbt_node_t* node3 = rbt_insert(tree, box88);
void* box33 = mem_box(33);
void* box20 = mem_box(20);
void* box16 = mem_box(16);
- rbt_t* tree = rbt_new(test_comparator());
+ rbt_t* tree = rbt_new(cmp_new(NULL,&test_compare));
rbt_node_t* node01 = rbt_insert(tree, box42);
rbt_node_t* node02 = rbt_insert(tree, box66);
rbt_node_t* node03 = rbt_insert(tree, box22);
void* box60 = mem_box(60);
void* box33 = mem_box(33);
void* box15 = mem_box(15);
- rbt_t* tree = rbt_new(test_comparator());
+ rbt_t* tree = rbt_new(cmp_new(NULL,&test_compare));
rbt_node_t* node01 = rbt_insert(tree, box42);
rbt_node_t* node02 = rbt_insert(tree, box22);
rbt_node_t* node03 = rbt_insert(tree, box70);
void* box30 = mem_box(30);
void* box89 = mem_box(89);
void* box95 = mem_box(95);
- rbt_t* tree = rbt_new(test_comparator());
+ rbt_t* tree = rbt_new(cmp_new(NULL,&test_compare));
rbt_node_t* node01 = rbt_insert(tree, box42);
rbt_node_t* node02 = rbt_insert(tree, box22);
rbt_node_t* node03 = rbt_insert(tree, box55);
void* box50 = mem_box(50);
void* box17 = mem_box(17);
void* box11 = mem_box(11);
- rbt_t* tree = rbt_new(test_comparator());
+ rbt_t* tree = rbt_new(cmp_new(NULL,&test_compare));
rbt_node_t* node01 = rbt_insert(tree, box42);
rbt_node_t* node02 = rbt_insert(tree, box55);
rbt_node_t* node03 = rbt_insert(tree, box33);
void* box30 = mem_box(30);
void* box50 = mem_box(50);
void* box65 = mem_box(65);
- rbt_t* tree = rbt_new(test_comparator());
+ rbt_t* tree = rbt_new(cmp_new(NULL,&test_compare));
rbt_node_t* node01 = rbt_insert(tree, box42);
rbt_node_t* node02 = rbt_insert(tree, box22);
rbt_node_t* node03 = rbt_insert(tree, box55);
void* box50 = mem_box(50);
void* box37 = mem_box(37);
void* box28 = mem_box(28);
- rbt_t* tree = rbt_new(test_comparator());
+ rbt_t* tree = rbt_new(cmp_new(NULL,&test_compare));
rbt_node_t* node01 = rbt_insert(tree, box42);
rbt_node_t* node02 = rbt_insert(tree, box55);
rbt_node_t* node03 = rbt_insert(tree, box33);
void* box65 = mem_box(65);
void* box89 = mem_box(89);
void* box99 = mem_box(99);
- rbt_t* tree = rbt_new(test_comparator());
+ rbt_t* tree = rbt_new(cmp_new(NULL,&test_compare));
rbt_node_t* node01 = rbt_insert(tree, box42);
rbt_node_t* node02 = rbt_insert(tree, box22);
rbt_node_t* node03 = rbt_insert(tree, box55);
void* box28 = mem_box(28);
void* box17 = mem_box(17);
void* box11 = mem_box(11);
- rbt_t* tree = rbt_new(test_comparator());
+ rbt_t* tree = rbt_new(cmp_new(NULL,&test_compare));
rbt_node_t* node01 = rbt_insert(tree, box42);
rbt_node_t* node02 = rbt_insert(tree, box55);
rbt_node_t* node03 = rbt_insert(tree, box33);
void* box88 = mem_box(88);
void* box42 = mem_box(42);
void* box22 = mem_box(22);
- rbt_t* tree = rbt_new(test_comparator());
+ rbt_t* tree = rbt_new(cmp_new(NULL,&test_compare));
rbt_node_t* node1 = rbt_insert(tree, box88); //root
rbt_node_t* node2 = rbt_insert(tree, target); //target
rbt_node_t* node3 = rbt_insert(tree, box42); //sibbling
void* box42 = mem_box(42);
void* box88 = mem_box(88);
void* box123 = mem_box(123);
- rbt_t* tree = rbt_new(test_comparator());
+ rbt_t* tree = rbt_new(cmp_new(NULL,&test_compare));
rbt_node_t* node1 = rbt_insert(tree, box42); //root
rbt_node_t* node2 = rbt_insert(tree, target); //target
rbt_node_t* node3 = rbt_insert(tree, box88); //sibbling
void* box88 = mem_box(88);
void* box42 = mem_box(42);
void* box55 = mem_box(55);
- rbt_t* tree = rbt_new(test_comparator());
+ rbt_t* tree = rbt_new(cmp_new(NULL,&test_compare));
rbt_node_t* node1 = rbt_insert(tree, box88); //root
rbt_node_t* node2 = rbt_insert(tree, target); //target
rbt_node_t* node3 = rbt_insert(tree, box42); //sibbling
void* box42 = mem_box(42);
void* box88 = mem_box(88);
void* box70 = mem_box(70);
- rbt_t* tree = rbt_new(test_comparator());
+ rbt_t* tree = rbt_new(cmp_new(NULL,&test_compare));
rbt_node_t* node1 = rbt_insert(tree, box42); //root
rbt_node_t* node2 = rbt_insert(tree, target); //target
rbt_node_t* node3 = rbt_insert(tree, box88); //sibbling
void* box42 = mem_box(42);
void* box22 = mem_box(22);
void* box55 = mem_box(55);
- rbt_t* tree = rbt_new(test_comparator());
+ rbt_t* tree = rbt_new(cmp_new(NULL,&test_compare));
rbt_node_t* node1 = rbt_insert(tree, box88); //root
rbt_node_t* node2 = rbt_insert(tree, target); //target
rbt_node_t* node3 = rbt_insert(tree, box42); //sibbling
void* box88 = mem_box(88);
void* box70 = mem_box(70);
void* box123 = mem_box(123);
- rbt_t* tree = rbt_new(test_comparator());
+ rbt_t* tree = rbt_new(cmp_new(NULL,&test_compare));
rbt_node_t* node1 = rbt_insert(tree, box42); //root
rbt_node_t* node2 = rbt_insert(tree, target); //target
rbt_node_t* node3 = rbt_insert(tree, box88); //sibbling
void* box42 = mem_box(42);
void* box22 = mem_box(22);
void* box55 = mem_box(55);
- rbt_t* tree = rbt_new(test_comparator());
+ rbt_t* tree = rbt_new(cmp_new(NULL,&test_compare));
rbt_node_t* node1 = rbt_insert(tree, box88); //root
rbt_node_t* node2 = rbt_insert(tree, target); //target
rbt_node_t* node3 = rbt_insert(tree, box42); //sibbling
void* box88 = mem_box(88);
void* box70 = mem_box(70);
void* box123 = mem_box(123);
- rbt_t* tree = rbt_new(test_comparator());
+ rbt_t* tree = rbt_new(cmp_new(NULL,&test_compare));
rbt_node_t* node1 = rbt_insert(tree, box42); //root
rbt_node_t* node2 = rbt_insert(tree, target); //target
rbt_node_t* node3 = rbt_insert(tree, box88); //sibbling
void* box88 = mem_box(88);
void* box33 = mem_box(33);
void* box15 = mem_box(15);
- rbt_t* tree = rbt_new(test_comparator());
+ rbt_t* tree = rbt_new(cmp_new(NULL,&test_compare));
rbt_insert(tree, box42);
rbt_insert(tree, box88);
rbt_node_t* doomed = rbt_insert(tree, target);
void* box25 = mem_box(25);
void* box55 = mem_box(55);
void* box99 = mem_box(99);
- rbt_t* tree = rbt_new(test_comparator());
+ rbt_t* tree = rbt_new(cmp_new(NULL,&test_compare));
rbt_node_t* doomed = rbt_insert(tree, target);
rbt_insert(tree, box88);
rbt_insert(tree, box22);
TEST(Verify_rbt_delete_root_node_with_single_red_left_child){
void* box88 = mem_box(88);
void* box42 = mem_box(42);
- rbt_t* tree = rbt_new(test_comparator());
+ rbt_t* tree = rbt_new(cmp_new(NULL,&test_compare));
rbt_node_t* node1 = rbt_insert(tree, box88);
rbt_node_t* node2 = rbt_insert(tree, box42);
mem_retain(node1);
TEST(Verify_rbt_delete_root_node_with_single_red_right_child){
void* box42 = mem_box(42);
void* box88 = mem_box(88);
- rbt_t* tree = rbt_new(test_comparator());
+ rbt_t* tree = rbt_new(cmp_new(NULL,&test_compare));
rbt_node_t* node1 = rbt_insert(tree, box42);
rbt_node_t* node2 = rbt_insert(tree, box88);
mem_retain(node1);
TEST(Verify_rbt_delete_root_node_with_no_children){
void* box88 = mem_box(88);
- rbt_t* tree = rbt_new(test_comparator());
+ rbt_t* tree = rbt_new(cmp_new(NULL,&test_compare));
rbt_node_t* node1 = rbt_insert(tree, box88);
mem_retain(node1);
rbt_delete(tree, box88);
void* box25 = mem_box(25);
void* box55 = mem_box(55);
void* box99 = mem_box(99);
- rbt_t* tree = rbt_new(test_comparator());
+ rbt_t* tree = rbt_new(cmp_new(NULL,&test_compare));
rbt_insert(tree, box42);
rbt_insert(tree, box88);
rbt_node_t* doomed = rbt_insert(tree, target);
void* box88 = mem_box(88);
void* box22 = mem_box(22);
void* box33 = mem_box(33);
- rbt_t* tree = rbt_new(test_comparator());
+ rbt_t* tree = rbt_new(cmp_new(NULL,&test_compare));
rbt_node_t* doomed = rbt_insert(tree, target);
rbt_insert(tree, box88);
rbt_insert(tree, box22);
void* box88 = mem_box(88);
void* box36 = mem_box(36);
void* box99 = mem_box(99);
- rbt_t* tree = rbt_new(test_comparator());
+ rbt_t* tree = rbt_new(cmp_new(NULL,&test_compare));
//rbt_t* tree = rbt_new(NULL);
rbt_delete(tree, target);
CHECK(OK == rbt_check_status(tree));