fix tests and contains cmp version

This commit is contained in:
2025-12-14 15:48:16 +01:00
parent 526b49e518
commit 4906ae7001
2 changed files with 23 additions and 23 deletions
+2 -2
View File
@@ -203,8 +203,8 @@ bool dyn_array_contains_eq_func(void *this, uint8_t *value, dyn_array_eq_fn eq);
#define arr_contains_cmp(THIS, EQ_FN, ...)\ #define arr_contains_cmp(THIS, EQ_FN, ...)\
(\ (\
STATIC_ASSERT(sizeof(*(THIS)) == sizeof(*(__VA_ARGS__))),\ STATIC_ASSERT(sizeof(*(THIS)) == sizeof(*(&__VA_ARGS__))),\
dyn_array_contains_eq_func((THIS), (uint8_t*)(__VA_ARGS__), (EQ_FN))\ dyn_array_contains_eq_func((THIS), (uint8_t*)(&__VA_ARGS__), (EQ_FN))\
) )
// Comparison function for sorting: returns -1 if a < b, 0 if a == b, 1 if a > b // Comparison function for sorting: returns -1 if a < b, 0 if a == b, 1 if a > b
+21 -21
View File
@@ -57,12 +57,12 @@ Test(dynamic_arrays, contains) {
with_borrow(alloc) { with_borrow(alloc) {
int *numbers = make_arr(int, alloc); int *numbers = make_arr(int, alloc);
arr_append(numbers, 20); arr_append(numbers, 20);
cr_expect(arr_contains(numbers, &(int){20})); cr_expect(arr_contains(numbers, (int){20}));
arr_reset(numbers); arr_reset(numbers);
for ( size_t y = 0; y < 1000; y++ ) { for ( size_t y = 0; y < 1000; y++ ) {
for ( size_t i = 0; i < 100; i++ ) { for ( size_t i = 0; i < 100; i++ ) {
if (!arr_contains(numbers, &(int){i})) { if (!arr_contains(numbers, (int){i})) {
arr_append(numbers, i); arr_append(numbers, i);
} }
} }
@@ -80,9 +80,9 @@ Test(dynamic_arrays, contains_found) {
arr_append(arr, 20); arr_append(arr, 20);
arr_append(arr, 30); arr_append(arr, 30);
cr_assert(arr_contains(arr, &(int){10})); cr_assert(arr_contains(arr, (int){10}));
cr_assert(arr_contains(arr, &(int){20})); cr_assert(arr_contains(arr, (int){20}));
cr_assert(arr_contains(arr, &(int){30})); cr_assert(arr_contains(arr, (int){30}));
} }
} }
@@ -93,9 +93,9 @@ Test(dynamic_arrays, contains_not_found) {
arr_append(arr, 20); arr_append(arr, 20);
arr_append(arr, 30); arr_append(arr, 30);
cr_assert_not(arr_contains(arr, &(int){5})); cr_assert_not(arr_contains(arr, (int){5}));
cr_assert_not(arr_contains(arr, &(int){15})); cr_assert_not(arr_contains(arr, (int){15}));
cr_assert_not(arr_contains(arr, &(int){99})); cr_assert_not(arr_contains(arr, (int){99}));
} }
} }
@@ -103,7 +103,7 @@ Test(dynamic_arrays, contains_empty) {
with_borrow(alloc) { with_borrow(alloc) {
int *arr = make_arr(int, alloc, .initial_capacity = 5); int *arr = make_arr(int, alloc, .initial_capacity = 5);
cr_assert_not(arr_contains(arr, &(int){10})); cr_assert_not(arr_contains(arr, (int){10}));
} }
} }
@@ -115,9 +115,9 @@ Test(dynamic_arrays, contains_cmp_found) {
arr_append(arr, 20); arr_append(arr, 20);
arr_append(arr, 30); arr_append(arr, 30);
cr_assert(arr_contains_cmp(arr, int_eq, &(int){10})); cr_assert(arr_contains_cmp(arr, int_eq, (int){10}));
cr_assert(arr_contains_cmp(arr, int_eq, &(int){20})); cr_assert(arr_contains_cmp(arr, int_eq, (int){20}));
cr_assert(arr_contains_cmp(arr, int_eq, &(int){30})); cr_assert(arr_contains_cmp(arr, int_eq, (int){30}));
} }
} }
@@ -128,9 +128,9 @@ Test(dynamic_arrays, contains_cmp_not_found) {
arr_append(arr, 20); arr_append(arr, 20);
arr_append(arr, 30); arr_append(arr, 30);
cr_assert_not(arr_contains_cmp(arr, int_eq, &(int){5})); cr_assert_not(arr_contains_cmp(arr, int_eq, (int){5}));
cr_assert_not(arr_contains_cmp(arr, int_eq, &(int){15})); cr_assert_not(arr_contains_cmp(arr, int_eq, (int){15}));
cr_assert_not(arr_contains_cmp(arr, int_eq, &(int){99})); cr_assert_not(arr_contains_cmp(arr, int_eq, (int){99}));
} }
} }
@@ -138,7 +138,7 @@ Test(dynamic_arrays, contains_cmp_empty) {
with_borrow(alloc) { with_borrow(alloc) {
int *arr = make_arr(int, alloc, .initial_capacity = 5); int *arr = make_arr(int, alloc, .initial_capacity = 5);
cr_assert_not(arr_contains_cmp(arr, int_eq, &(int){10})); cr_assert_not(arr_contains_cmp(arr, int_eq, (int){10}));
} }
} }
@@ -164,13 +164,13 @@ Test(dynamic_arrays, contains_cmp_key_value_map) {
arr_append(map, ((kv_pair_t){.key = 10, .value = "ten"})); arr_append(map, ((kv_pair_t){.key = 10, .value = "ten"}));
// Check if keys exist // Check if keys exist
cr_assert(arr_contains_cmp(map, kv_eq_by_key, &(kv_pair_t){.key = 1})); cr_assert(arr_contains_cmp(map, kv_eq_by_key, (kv_pair_t){.key = 1}));
cr_assert(arr_contains_cmp(map, kv_eq_by_key, &(kv_pair_t){.key = 5})); cr_assert(arr_contains_cmp(map, kv_eq_by_key, (kv_pair_t){.key = 5}));
cr_assert(arr_contains_cmp(map, kv_eq_by_key, &(kv_pair_t){.key = 10})); cr_assert(arr_contains_cmp(map, kv_eq_by_key, (kv_pair_t){.key = 10}));
// Check for non-existent keys // Check for non-existent keys
cr_assert_not(arr_contains_cmp(map, kv_eq_by_key, &(kv_pair_t){.key = 2})); cr_assert_not(arr_contains_cmp(map, kv_eq_by_key, (kv_pair_t){.key = 2}));
cr_assert_not(arr_contains_cmp(map, kv_eq_by_key, &(kv_pair_t){.key = 99})); cr_assert_not(arr_contains_cmp(map, kv_eq_by_key, (kv_pair_t){.key = 99}));
} }
} }