Example #1
0
static int test_less()
{
	c_bool rt;
	c_map ta, tb;

	c_map_create(&ta, int_comparer);
	c_map_create(&tb, int_comparer);

	
	create_with_insert_equal(&ta);
	create_with_insert_equal(&tb);
	printf("*ta is :\n");
	print_map(&ta);
	printf("*tb is :\n");
	print_map(&tb);
	rt = c_map_less(&ta, &tb, pair_comparer);
	if(rt)
		printf("is less\n");
	else
		printf("is not less\n");

	c_map_clear(&ta);
	c_map_clear(&tb);
	create_with_insert_unique(&ta);
	create_with_insert_equal(&tb);
	printf("*ta is :\n");
	print_map(&ta);
	printf("*tb is :\n");
	print_map(&tb);
	rt = c_map_less(&ta, &tb, pair_comparer);
	if(rt)
		printf("is less\n");
	else 
		printf("is not less\n");

	c_map_clear(&ta);
	c_map_clear(&tb);
	create_with_insert_equal(&ta);
	create_with_insert_unique(&tb);
	printf("*ta is :\n");
	print_map(&ta);
	printf("*tb is :\n");
	print_map(&tb);
	rt = c_map_less(&ta, &tb, pair_comparer);

	if(rt)
		printf("is less\n");
	else 
		printf("is not less\n");

	return 0;
}
Example #2
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;
}
Example #3
0
static int test_equal()
{
	c_bool rt;
	c_map ta, tb;

	c_map_create(&ta, int_comparer);
	c_map_create(&tb, int_comparer);

	
	create_with_insert_equal(&ta);
	create_with_insert_equal(&tb);
	rt = c_map_equal(&ta, &tb, pair_comparer);
	if(rt)
		printf("is equal\n");
	else
		printf("is not equal\n");

	c_map_clear(&ta);
	c_map_clear(&tb);
	create_with_insert_unique(&ta);
	create_with_insert_equal(&tb);
	rt = c_map_equal(&ta, &tb, pair_comparer);

	if(rt)
		printf("is equal\n");
	else 
		printf("is not equal\n");

	c_map_clear(&ta);
	c_map_clear(&tb);
	create_with_insert_equal(&ta);
	create_with_insert_unique(&tb);
	rt = c_map_equal(&ta, &tb, pair_comparer);
	if(rt)
		printf("is equal\n");
	else 
		printf("is not equal\n");

	return 0;
}
Example #4
0
static int test_size_empty(c_pmap thiz)
{
	int i = 0;
	printf("max size is %d\n", c_map_max_size(thiz));
	printf("size is %d\n", c_map_size(thiz));
	printf("is empty? %s\n", c_map_empty(thiz) ? "yes" : "no");
	
	for(; i < sizeof(values) / sizeof(int); ++ i)
	{
		printf("now insert %d\n", i + 1);
		c_map_insert(thiz, &pairs[i]);
		printf("size is %d\n", c_map_size(thiz));
		printf("is empty? %s\n", c_map_empty(thiz) ? "yes" : "no");
	}
	printf("now clear\n");
	c_map_clear(thiz);
	printf("size is %d\n", c_map_size(thiz));
	printf("is empty? %s\n", c_map_empty(thiz) ? "yes" : "no");

	return 0;
}
Example #5
0
int t_map()
{
	c_map map;

	c_map_create(&map, int_comparer);

	
	assert(__c_rb_tree_verify(map._l));
	printf("0. test create with insert unique\n");
	create_with_insert_unique(&map);
	print_map(&map);
	rprint_map(&map);
	assert(__c_rb_tree_verify(map._l));

	printf("\n\n1. test clear\n");
	test_clear(&map);
	assert(__c_rb_tree_verify(map._l));

	printf("\n\n2. test size and empty\n");
	test_size_empty(&map);
	assert(__c_rb_tree_verify(map._l));

	printf("\n\n3. test create with insert equal\n");
	c_map_clear(&map);
	create_with_insert_equal(&map);
	print_map(&map);
	rprint_map(&map);
	assert(__c_rb_tree_verify(map._l));

	printf("\n\n4. test swap\n");
	create_with_insert_unique(&map);
	test_swap(&map);
	assert(__c_rb_tree_verify(map._l));

	printf("\n\n5. test create with insert unique1\n");
	create_with_insert_unique1(&map);
	print_map(&map);
	rprint_map(&map);
	assert(__c_rb_tree_verify(map._l));

	printf("\n\n6. test create with insert equal1\n");
	c_map_clear(&map);
	create_with_insert_equal1(&map);
	print_map(&map);
	rprint_map(&map);
	assert(__c_rb_tree_verify(map._l));

	printf("\n\n7. test create with insert unique2\n");
	c_map_clear(&map);
	create_with_insert_unique2(&map);
	print_map(&map);
	rprint_map(&map);
	assert(__c_rb_tree_verify(map._l));

	printf("\n\n8. test create with insert equal2\n");
	c_map_clear(&map);
	create_with_insert_equal2(&map);
	print_map(&map);
	rprint_map(&map);
	assert(__c_rb_tree_verify(map._l));
	
	printf("\n\n9. test erase\n");
	c_map_clear(&map);
	create_with_insert_unique(&map);
	test_erase(&map);
	create_with_insert_unique(&map);	
	test_reverse_erase(&map);	
	print_map(&map);
	assert(__c_rb_tree_verify(map._l));

	printf("\n\n10. test find and erase\n");
	c_map_clear(&map);
	printf("* test_find_erase:\n");
	create_with_insert_unique(&map);
	print_map(&map);	
	test_find_erase(&map);
	print_map(&map);	
	printf("* test_reverse_find_erase:\n");
	create_with_insert_unique(&map);
	print_map(&map);	
	test_reverse_find_erase(&map);
	print_map(&map);	
	assert(__c_rb_tree_verify(map._l));

	printf("\n\n11. test count:\n"); // 'lower_bound' 'upper_bound' 'equal_range' used	
	create_with_insert_unique(&map);
	test_count(&map);

	printf("\n\n12. test less:\n");
	test_less();

	printf("\n\n13. test equal:\n");
	test_equal();

	printf("\n\n14. test at:\n");
	test_at();
	
	c_map_destroy(&map);
	printf("\n\nfinish testing map!\n");
	return 0;
}
Example #6
0
static void __map_clear(Map *map){
	c_map_clear(&map->values);
	map->entries->clear(map->entries);
}