Example #1
0
/**
 * Assign hash_multimap container.
 */
void hash_multimap_assign(hash_multimap_t* phmmap_dest, const hash_multimap_t* cphmmap_src)
{
    assert(phmmap_dest != NULL);
    assert(cphmmap_src != NULL);
    assert(_pair_is_inited(&phmmap_dest->_pair_temp));
    assert(_pair_is_inited(&cphmmap_src->_pair_temp));
    assert(_hash_multimap_same_pair_type_ex(&phmmap_dest->_pair_temp, &cphmmap_src->_pair_temp));

    hash_multimap_clear(phmmap_dest);
    if (!hash_multimap_empty(cphmmap_src)) {
        hash_multimap_insert_range(phmmap_dest, hash_multimap_begin(cphmmap_src), hash_multimap_end(cphmmap_src));
    }
}
Example #2
0
/**
 * Initialize hash_multimap container with hash_multimap.
 */
void hash_multimap_init_copy(hash_multimap_t* phmmap_dest, const hash_multimap_t* cphmmap_src)
{
    assert(phmmap_dest != NULL);
    assert(cphmmap_src != NULL);
    assert(_pair_is_created(&phmmap_dest->_pair_temp));
    assert(_pair_is_inited(&cphmmap_src->_pair_temp));

    hash_multimap_init_ex(phmmap_dest, hash_multimap_bucket_count(cphmmap_src), hash_multimap_hash(cphmmap_src), hash_multimap_key_comp(cphmmap_src));
    phmmap_dest->_bfun_keycompare = cphmmap_src->_bfun_keycompare;
    phmmap_dest->_bfun_valuecompare = cphmmap_src->_bfun_valuecompare;
    phmmap_dest->_pair_temp._bfun_mapkeycompare = cphmmap_src->_pair_temp._bfun_mapkeycompare;
    phmmap_dest->_pair_temp._bfun_mapvaluecompare = cphmmap_src->_pair_temp._bfun_mapvaluecompare;
    assert(_hash_multimap_same_pair_type_ex(&phmmap_dest->_pair_temp, &cphmmap_src->_pair_temp));

    if (!hash_multimap_empty(cphmmap_src)) {
        hash_multimap_insert_range(phmmap_dest, hash_multimap_begin(cphmmap_src), hash_multimap_end(cphmmap_src));
    }
}
    assert_true(it_iter._t_containertype == _HASH_MULTIMAP_CONTAINER);
    assert_true(it_iter._t_iteratortype == _BIDIRECTIONAL_ITERATOR);
}

/*
 * test _hash_multimap_iterator_get_value
 */
UT_CASE_DEFINATION(_hash_multimap_iterator_get_value)
void test__hash_multimap_iterator_get_value__null_corepos(void** state)
{
    hash_multimap_t* pt_hash_multimap = create_hash_multimap(int, int);
    hash_multimap_iterator_t it_iter;
    int elem = 0;
    hash_multimap_init(pt_hash_multimap);

    it_iter = hash_multimap_begin(pt_hash_multimap);

    it_iter._t_pos._t_hashpos._pby_corepos = NULL;
    expect_assert_failure(_hash_multimap_iterator_get_value(it_iter, &elem));

    hash_multimap_destroy(pt_hash_multimap);
}

void test__hash_multimap_iterator_get_value__null_hashtable(void** state)
{
    hash_multimap_t* pt_hash_multimap = create_hash_multimap(int, int);
    hash_multimap_iterator_t it_iter;
    int elem = 0;
    hash_multimap_init(pt_hash_multimap);

    it_iter = hash_multimap_begin(pt_hash_multimap);