void add_contains_test() { run_container_t* B = run_container_create(); assert_non_null(B); int expected_card = 0; for (size_t x = 0; x < 1 << 16; x += 3) { assert_true(run_container_add(B, x)); assert_true(run_container_contains(B, x)); assert_int_equal(run_container_cardinality(B), ++expected_card); assert_true(run_container_cardinality(B) <= B->capacity); } for (size_t x = 0; x < 1 << 16; x++) { assert_int_equal(run_container_contains(B, x), (x / 3 * 3 == x)); } assert_int_equal(run_container_cardinality(B), (1 << 16) / 3 + 1); for (size_t x = 0; x < 1 << 16; x += 3) { assert_true(run_container_contains(B, x)); assert_true(run_container_remove(B, x)); assert_int_equal(run_container_cardinality(B), --expected_card); assert_false(run_container_contains(B, x)); } assert_int_equal(run_container_cardinality(B), 0); for (int x = 65535; x >= 0; x -= 3) { assert_true(run_container_add(B, x)); assert_true(run_container_contains(B, x)); assert_int_equal(run_container_cardinality(B), ++expected_card); assert_true(run_container_cardinality(B) <= B->capacity); } assert_int_equal(run_container_cardinality(B), (1 << 16) / 3 + 1); for (size_t x = 0; x < 1 << 16; x++) { assert_int_equal(run_container_contains(B, x), (x / 3 * 3 == x)); } for (size_t x = 0; x < 1 << 16; x += 3) { assert_true(run_container_contains(B, x)); assert_true(run_container_remove(B, x)); assert_int_equal(run_container_cardinality(B), --expected_card); assert_false(run_container_contains(B, x)); } run_container_free(B); }
int remove_test(run_container_t* B) { int x; for (x = 0; x < (1 << 16); x += 3) { run_container_remove(B, (uint16_t)x); } return 0; }