/** * 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)); } }
/** * 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);