示例#1
0
/**
 * Destroy avl tree.
 */
void _avl_tree_destroy(_avl_tree_t* pt_avl_tree)
{
    assert(pt_avl_tree != NULL);
    assert(_avl_tree_is_inited(pt_avl_tree) || _avl_tree_is_created(pt_avl_tree));

    _avl_tree_destroy_auxiliary(pt_avl_tree);
    free(pt_avl_tree);
}
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);
}
示例#3
0
/**
 * Destroy set container auxiliary function.
 */
void _set_destroy_auxiliary(set_t* pset_set)
{
    assert(pset_set != NULL);

#ifdef CSTL_SET_AVL_TREE
    _avl_tree_destroy_auxiliary(&pset_set->_t_tree);
#else
    _rb_tree_destroy_auxiliary(&pset_set->_t_tree);
#endif
}
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);
}
示例#5
0
/**
 * Destroy map container auxiliary function.
 */
void _map_destroy_auxiliary(map_t* pmap_map)
{
    assert(pmap_map != NULL);

    _pair_destroy_auxiliary(&pmap_map->_pair_temp);
#ifdef CSTL_MAP_AVL_TREE
    _avl_tree_destroy_auxiliary(&pmap_map->_t_tree);
#else
    _rb_tree_destroy_auxiliary(&pmap_map->_t_tree);
#endif

    pmap_map->_bfun_keycompare = NULL;
    pmap_map->_bfun_valuecompare = NULL;
}
void test__avl_tree_destroy_auxiliary__null_avl_tree(void** state)
{
    expect_assert_failure(_avl_tree_destroy_auxiliary(NULL));
}