Beispiel #1
0
static int test_clear(c_pmap thiz)
{
	c_iterator begin, end;
	c_reverse_iterator rbegin, rend;
	c_map_clear(thiz);
	begin = c_map_begin(thiz);
	end = c_map_end(thiz);
	rbegin = c_map_rbegin(thiz);
	rend = c_map_rend(thiz);
	
	if(c_map_size(thiz) == 0)
		printf("ok, size is 0\n");
	else
		printf("error, size is not 0\n");
	
	if(ITER_EQUAL(begin, end))
		printf("ok, begin == end\n");
	else
		printf("error, begin != end\n");
	
	if(ITER_EQUAL(rbegin, rend))
		printf("ok, rbegin == rend\n");
	else
		printf("error, rbegin != rend\n");
	return 0;
}
Beispiel #2
0
static void assert_valid_iter(c_pmap thiz, c_iterator val)
{
	c_iterator end = c_map_end(thiz);
	c_iterator iter = c_map_begin(thiz);
	for(; !ITER_EQUAL(iter, end); ITER_INC(iter))
	{
		if(ITER_EQUAL(iter, val))
			return;
	}
	assert(false);
}
Beispiel #3
0
static int create_with_insert_unique1(c_pmap thiz)
{
	c_iterator iter = c_map_begin(thiz);
	int i = 0;
	for(i = 0; i < sizeof(values) / sizeof(int); ++ i)
	{
		iter = c_map_insert1(thiz, iter, &pairs[i]);
		assert(__c_rb_tree_verify(thiz->_l));
	}
	return 0;
}
Beispiel #4
0
static int test_erase(c_pmap thiz)
{
	c_iterator iter = c_map_begin(thiz);
	c_iterator end = c_map_end(thiz);
	assert(__c_rb_tree_verify(thiz->_l));
	//c_map_erase(thiz, end);  // erasing end results in error
	assert(__c_rb_tree_verify(thiz->_l));
	while(!ITER_EQUAL(iter, end))
	{
		c_iterator to_erase = iter;
		assert_valid_iter(thiz, to_erase);
		c_map_erase(thiz, to_erase);
		assert(__c_rb_tree_verify(thiz->_l));
		
		iter = c_map_begin(thiz);
		end = c_map_end(thiz);
	}
	assert(__c_rb_tree_verify(thiz->_l));
	assert(c_map_empty(thiz));
	return 0;
}
Beispiel #5
0
static int print_map(c_pmap pt)
{
	c_iterator iter = c_map_begin(pt);
	c_iterator end = c_map_end(pt);
	printf("map is:\n");
	for(; !ITER_EQUAL(iter, end); ITER_INC(iter))
	{
		printf("key = %d, value = %d\n",
			*(int*)((c_ppair)ITER_REF(iter))->first,
			*(int*)((c_ppair)ITER_REF(iter))->second);
	}
	return 0;
}
Beispiel #6
0
static Iterator __map_getIterator(Map *map){
	c_iterator iter = c_map_begin(&map->values);
	return iter;
}