Пример #1
0
void test_rf_set_is_subset() {
	rf_Set *emptyset = rf_set_new(0, NULL);

	rf_SetElement *elems1[] = {
		rf_set_element_new_string("a"),
		rf_set_element_new_string("b"),
		rf_set_element_new_string("c"),
	};

	rf_SetElement *elems2[] = {
		rf_set_element_new_string("a"),
		rf_set_element_new_string("b"),
		rf_set_element_new_string("c"),
	};

	rf_Set *set1 = rf_set_new(3, elems1);
	rf_Set *set2 = rf_set_new(3, elems2);

	CU_ASSERT_TRUE(rf_set_is_subset(emptyset, set1));
	CU_ASSERT_TRUE(rf_set_is_subset(set1, set1));
	CU_ASSERT_TRUE(rf_set_is_subset(set1, set2)); //sollte mMn gehen. //kann noch perversiert werden mit untersch. Sortierung.

	rf_SetElement *elems3[] = {
		rf_set_element_new_string("a"),
		rf_set_element_new_string("d"),
	};
	rf_Set *set3 = rf_set_new(2, elems3);

	CU_ASSERT_FALSE(rf_set_is_subset(set1, set3));

	rf_set_free(emptyset);
	rf_set_free(set1);
	rf_set_free(set2);
	rf_set_free(set3);
}
Пример #2
0
static
Value *
builtin_set_is_subset(Scope *args, MemorySpace *memspace) {
	Value *arg[] = {
		get_value_by_name(args, memspace, "0"),
		get_value_by_name(args, memspace, "1"),
	};
	Value *rval = value_new();

	value_set_bool(rval, rf_set_is_subset(arg[0]->as_Set, arg[1]->as_Set));

	return rval;
}