void wi_test_set_mutation(void) { wi_mutable_set_t *set1, *set2; set1 = wi_set_init_with_capacity_and_callbacks(wi_mutable_set_alloc(), 0, true, wi_set_null_callbacks); WI_TEST_ASSERT_EQUALS(wi_set_count(set1), 0U, ""); WI_TEST_ASSERT_EQUALS(wi_set_count_for_data(set1, WI_STR("foo")), 0U, ""); WI_TEST_ASSERT_EQUALS(wi_set_count_for_data(set1, WI_STR("bar")), 0U, ""); wi_mutable_set_add_data(set1, WI_STR("foo")); wi_mutable_set_add_data(set1, WI_STR("bar")); WI_TEST_ASSERT_EQUALS(wi_set_count(set1), 2U, ""); WI_TEST_ASSERT_EQUALS(wi_set_count_for_data(set1, WI_STR("foo")), 1U, ""); WI_TEST_ASSERT_EQUALS(wi_set_count_for_data(set1, WI_STR("bar")), 1U, ""); wi_mutable_set_add_data(set1, WI_STR("foo")); wi_mutable_set_add_data(set1, WI_STR("bar")); WI_TEST_ASSERT_EQUALS(wi_set_count(set1), 2U, ""); WI_TEST_ASSERT_EQUALS(wi_set_count_for_data(set1, WI_STR("foo")), 2U, ""); WI_TEST_ASSERT_EQUALS(wi_set_count_for_data(set1, WI_STR("bar")), 2U, ""); wi_mutable_set_remove_data(set1, WI_STR("foo")); wi_mutable_set_remove_data(set1, WI_STR("bar")); WI_TEST_ASSERT_EQUALS(wi_set_count(set1), 2U, ""); WI_TEST_ASSERT_EQUALS(wi_set_count_for_data(set1, WI_STR("foo")), 1U, ""); WI_TEST_ASSERT_EQUALS(wi_set_count_for_data(set1, WI_STR("bar")), 1U, ""); wi_mutable_set_remove_data(set1, WI_STR("foo")); wi_mutable_set_remove_data(set1, WI_STR("bar")); WI_TEST_ASSERT_EQUALS(wi_set_count(set1), 0U, ""); wi_mutable_set_add_data(set1, WI_STR("foo")); wi_mutable_set_add_data(set1, WI_STR("bar")); set2 = wi_mutable_copy(set1); wi_mutable_set_add_data(set2, WI_STR("baz")); wi_mutable_set_set_set(set1, set2); WI_TEST_ASSERT_EQUAL_INSTANCES(set1, set2, ""); wi_mutable_set_remove_all_data(set1); WI_TEST_ASSERT_EQUALS(wi_set_count(set1), 0U, ""); wi_mutable_set_add_data_from_array(set1, wi_array_with_data(WI_STR("foo"), WI_STR("bar"), NULL)); WI_TEST_ASSERT_EQUALS(wi_set_count(set1), 2U, ""); WI_TEST_ASSERT_EQUALS(wi_set_count_for_data(set1, WI_STR("foo")), 1U, ""); WI_TEST_ASSERT_EQUALS(wi_set_count_for_data(set1, WI_STR("bar")), 1U, ""); }
void wi_test_set(void) { wi_set_t *set; set = wi_set_init(wi_set_alloc()); WI_TEST_ASSERT_NOT_NULL(set, ""); wi_set_add_data(set, WI_STR("foo")); WI_TEST_ASSERT_TRUE(wi_set_contains_data(set, WI_STR("foo")), ""); WI_TEST_ASSERT_FALSE(wi_set_contains_data(set, WI_STR("bar")), ""); WI_TEST_ASSERT_EQUALS(wi_set_count_for_data(set, WI_STR("foo")), 1U, ""); wi_release(set); set = wi_set_init_with_capacity(wi_set_alloc(), 0, true); WI_TEST_ASSERT_NOT_NULL(set, ""); wi_set_add_data(set, WI_STR("foo")); wi_set_add_data(set, WI_STR("foo")); WI_TEST_ASSERT_TRUE(wi_set_contains_data(set, WI_STR("foo")), ""); WI_TEST_ASSERT_FALSE(wi_set_contains_data(set, WI_STR("bar")), ""); WI_TEST_ASSERT_EQUALS(wi_set_count_for_data(set, WI_STR("foo")), 2U, ""); wi_set_remove_data(set, WI_STR("foo")); WI_TEST_ASSERT_TRUE(wi_set_contains_data(set, WI_STR("foo")), ""); WI_TEST_ASSERT_EQUALS(wi_set_count_for_data(set, WI_STR("foo")), 1U, ""); wi_set_remove_data(set, WI_STR("foo")); WI_TEST_ASSERT_FALSE(wi_set_contains_data(set, WI_STR("foo")), ""); WI_TEST_ASSERT_EQUALS(wi_set_count_for_data(set, WI_STR("foo")), 0U, ""); wi_release(set); }