/** exported function implementation section **/ void test_avl_tree(void) { avl_tree_t t_tree = _create_avl_tree(sizeof(int), "int"); avl_tree_t t_tree2 = _create_avl_tree(sizeof(int), "int"); int n_value = 900; _avl_tree_init(&t_tree, NULL, NULL); _avl_tree_insert_equal(&t_tree, &n_value); printf("avl tree1 - size:%u, max_size:%u, empty:%d\n", _avl_tree_size(&t_tree), _avl_tree_max_size(&t_tree), _avl_tree_empty(&t_tree)); /*_avl_tree_init_copy_range(*/ /*&t_tree2, _avl_tree_begin(&t_tree), _avl_tree_begin(&t_tree));*/ /*printf("avl tree2 - size:%u, max_size:%u, empty:%d\n",*/ /*_avl_tree_size(&t_tree2), _avl_tree_max_size(&t_tree2), _avl_tree_empty(&t_tree2));*/ _avl_tree_init_copy_range_cmp( &t_tree2, _avl_tree_begin(&t_tree), _avl_tree_begin(&t_tree), NULL); printf("avl tree2 - size:%u, max_size:%u, empty:%d\n", _avl_tree_size(&t_tree2), _avl_tree_max_size(&t_tree2), _avl_tree_empty(&t_tree2)); _avl_tree_insert_equal_range( &t_tree2, _avl_tree_begin(&t_tree), _avl_tree_begin(&t_tree)); printf("avl tree2 - size:%u, max_size:%u, empty:%d\n", _avl_tree_size(&t_tree2), _avl_tree_max_size(&t_tree2), _avl_tree_empty(&t_tree2)); _avl_tree_insert_unique_range( &t_tree2, _avl_tree_end(&t_tree), _avl_tree_end(&t_tree)); printf("avl tree2 - size:%u, max_size:%u, empty:%d\n", _avl_tree_size(&t_tree2), _avl_tree_max_size(&t_tree2), _avl_tree_empty(&t_tree2)); _avl_tree_erase_range(&t_tree2, _avl_tree_begin(&t_tree2), _avl_tree_begin(&t_tree2)); printf("avl tree2 - size:%u, max_size:%u, empty:%d\n", _avl_tree_size(&t_tree2), _avl_tree_max_size(&t_tree2), _avl_tree_empty(&t_tree2)); _avl_tree_destroy(&t_tree); _avl_tree_destroy(&t_tree2); }
/* multimap private function */ multimap_t _create_multimap( size_t t_keytypesize, const char* s_keytypename, size_t t_valuetypesize, const char* s_valuetypename) { multimap_t t_newmultimap; char ac_multimaptypename[_ELEM_TYPE_NAME_SIZE+1]; assert(t_keytypesize > 0 && t_valuetypesize > 0); assert(s_keytypename != NULL && s_valuetypename != NULL); /* create pair */ t_newmultimap._t_pair = _create_pair( t_keytypesize, s_keytypename, t_valuetypesize, s_valuetypename); /* create tree */ memset(ac_multimaptypename, '\0', _ELEM_TYPE_NAME_SIZE+1); strncpy(ac_multimaptypename, _MULTIMAP_IDENTIFY, _ELEM_TYPE_NAME_SIZE); strcat(ac_multimaptypename, _MULTIMAP_LEFT_BRACKET); strcat(ac_multimaptypename, t_newmultimap._t_pair._sz_firsttypename); strcat(ac_multimaptypename, _MULTIMAP_COMMA); strcat(ac_multimaptypename, t_newmultimap._t_pair._sz_secondtypename); strcat(ac_multimaptypename, _MULTIMAP_RIGHT_BRACKET); #ifdef CSTL_MULTIMAP_AVL_TREE *_GET_MULTIMAP_AVL_TREE(&t_newmultimap) = _create_avl_tree(sizeof(pair_t), ac_multimaptypename); #else *_GET_MULTIMAP_RB_TREE(&t_newmultimap) = _create_rb_tree(sizeof(pair_t), ac_multimaptypename); #endif return t_newmultimap; }
/** * Create set container. */ set_t* _create_set(const char* s_typename) { #ifdef CSTL_SET_AVL_TREE return (set_t*)_create_avl_tree(s_typename); #else return (set_t*)_create_rb_tree(s_typename); #endif }
void test__avl_tree_destroy_auxiliary__non_created(void** state) { _avl_tree_t* pt_avl_tree = _create_avl_tree("int"); pt_avl_tree->_t_avlroot._un_height = 9; expect_assert_failure(_avl_tree_destroy_auxiliary(pt_avl_tree)); pt_avl_tree->_t_avlroot._un_height = 0; _avl_tree_destroy(pt_avl_tree); }
void test__avl_tree_destroy_auxiliary__empty(void** state) { _avl_tree_t* pt_avl_tree = _create_avl_tree("int"); _avl_tree_init(pt_avl_tree, NULL); _avl_tree_destroy_auxiliary(pt_avl_tree); assert_true(pt_avl_tree->_t_avlroot._pt_parent == NULL); assert_true(pt_avl_tree->_t_avlroot._pt_left == &pt_avl_tree->_t_avlroot); assert_true(pt_avl_tree->_t_avlroot._pt_right == &pt_avl_tree->_t_avlroot); assert_true(pt_avl_tree->_t_nodecount == 0); assert_true(pt_avl_tree->_t_compare == NULL); free(pt_avl_tree); }