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