Ejemplo n.º 1
0
/**
 * Tests if the two set are equal.
 */
bool_t set_equal(const set_t* cpset_first, const set_t* cpset_second)
{
    assert(cpset_first != NULL);
    assert(cpset_second != NULL);

#ifdef CSTL_SET_AVL_TREE
    return _avl_tree_equal(&cpset_first->_t_tree, &cpset_second->_t_tree);
#else
    return _rb_tree_equal(&cpset_first->_t_tree, &cpset_second->_t_tree);
#endif
}
Ejemplo n.º 2
0
/**
 * Tests if the two map are equal.
 */
bool_t map_equal(const map_t* cpmap_first, const map_t* cpmap_second)
{
    assert(cpmap_first != NULL);
    assert(cpmap_second != NULL);
    assert(_pair_is_inited(&cpmap_first->_pair_temp));
    assert(_pair_is_inited(&cpmap_second->_pair_temp));

    if(cpmap_first->_bfun_keycompare != cpmap_second->_bfun_keycompare)
    {
        return false;
    }
#ifdef CSTL_MAP_AVL_TREE
    return _avl_tree_equal(&cpmap_first->_t_tree, &cpmap_second->_t_tree);
#else
    return _rb_tree_equal(&cpmap_first->_t_tree, &cpmap_second->_t_tree);
#endif
}
Ejemplo n.º 3
0
bool_t multimap_equal(
    const multimap_t* cpt_multimapfirst, const multimap_t* cpt_multimapsecond)
{
    assert(cpt_multimapfirst != NULL && cpt_multimapsecond != NULL);

    /* test pair */
    if(cpt_multimapfirst->_t_pair._t_firsttypesize != 
        cpt_multimapsecond->_t_pair._t_firsttypesize || 
       cpt_multimapfirst->_t_pair._t_secondtypesize != 
        cpt_multimapsecond->_t_pair._t_secondtypesize)
    {
        return false;
    }
    if(strncmp(
        cpt_multimapfirst->_t_pair._sz_firsttypename, 
        cpt_multimapsecond->_t_pair._sz_firsttypename, 
        _ELEM_TYPE_NAME_SIZE) != 0 || 
       strncmp(
        cpt_multimapfirst->_t_pair._sz_secondtypename, 
        cpt_multimapsecond->_t_pair._sz_secondtypename, 
        _ELEM_TYPE_NAME_SIZE) != 0)
    {
        return false;
    }
    if(cpt_multimapfirst->_t_pair._pfun_first_cmp != 
        cpt_multimapsecond->_t_pair._pfun_first_cmp || 
       cpt_multimapfirst->_t_pair._pfun_second_cmp != 
        cpt_multimapsecond->_t_pair._pfun_second_cmp)
    {
        return false;
    }
    /* test tree */
#ifdef CSTL_MULTIMAP_AVL_TREE
    return _avl_tree_equal(
        _GET_MULTIMAP_AVL_TREE(cpt_multimapfirst), 
        _GET_MULTIMAP_AVL_TREE(cpt_multimapsecond));
#else
    return _rb_tree_equal(
        _GET_MULTIMAP_RB_TREE(cpt_multimapfirst), 
        _GET_MULTIMAP_RB_TREE(cpt_multimapsecond));
#endif
}