149 ucx_array_at_int(a4, 3) = 8; |
149 ucx_array_at_int(a4, 3) = 8; |
150 ucx_array_at_int(a4, 4) = 15; |
150 ucx_array_at_int(a4, 4) = 15; |
151 |
151 |
152 UCX_TEST_BEGIN |
152 UCX_TEST_BEGIN |
153 |
153 |
154 UCX_TEST_ASSERT(ucx_array_equals(a1, a2, ucx_cmp_int, NULL) == 0, "failed"); |
154 UCX_TEST_ASSERT(ucx_array_equals(a1, a2, ucx_cmp_int, NULL), "failed"); |
155 UCX_TEST_ASSERT(ucx_array_equals(a1, a4, ucx_cmp_int, NULL) > 0, "failed"); |
155 UCX_TEST_ASSERT(!ucx_array_equals(a1, a4, ucx_cmp_int, NULL), "failed"); |
156 UCX_TEST_ASSERT(ucx_array_equals(a4, a1, ucx_cmp_int, NULL) < 0, "failed"); |
156 UCX_TEST_ASSERT(!ucx_array_equals(a4, a1, ucx_cmp_int, NULL), "failed"); |
157 UCX_TEST_ASSERT(ucx_array_equals(a1, a3, ucx_cmp_int, NULL) < 0, |
157 UCX_TEST_ASSERT(!ucx_array_equals(a1, a3, ucx_cmp_int, NULL), |
158 "comparing arrays of different element size failed"); |
158 "comparing arrays of different element size shall fail"); |
159 UCX_TEST_ASSERT(ucx_array_equals(a3, a1, ucx_cmp_int, NULL) > 0, |
159 UCX_TEST_ASSERT(!ucx_array_equals(a3, a1, ucx_cmp_int, NULL), |
160 "comparing arrays of different element size failed"); |
160 "comparing arrays of different element size shall fail"); |
161 |
161 |
162 UCX_TEST_ASSERT(ucx_array_equals(a1, a2, NULL, NULL) == 0, |
162 UCX_TEST_ASSERT(ucx_array_equals(a1, a2, NULL, NULL), |
163 "compare using memcmp() failed"); |
163 "compare using memcmp() failed"); |
164 UCX_TEST_ASSERT(ucx_array_equals(a1, a4, NULL, NULL) > 0, |
164 UCX_TEST_ASSERT(!ucx_array_equals(a1, a4, NULL, NULL), |
165 "compare using memcmp() failed"); |
|
166 UCX_TEST_ASSERT(ucx_array_equals(a4, a1, NULL, NULL) < 0, |
|
167 "compare using memcmp() failed"); |
165 "compare using memcmp() failed"); |
168 |
166 |
169 UCX_TEST_END |
167 UCX_TEST_END |
170 ucx_array_free(&a1); |
168 ucx_array_free(&a1); |
171 ucx_array_free(&a2); |
169 ucx_array_free(&a2); |
335 |
333 |
336 UcxArray copy = ucx_array_clone(array); |
334 UcxArray copy = ucx_array_clone(array); |
337 UCX_TEST_BEGIN |
335 UCX_TEST_BEGIN |
338 |
336 |
339 UCX_TEST_ASSERT(array.data != copy.data, "no true copy"); |
337 UCX_TEST_ASSERT(array.data != copy.data, "no true copy"); |
340 UCX_TEST_ASSERT(ucx_array_equals(array, copy, ucx_cmp_int, NULL), "failed"); |
|
341 UCX_TEST_ASSERT(array.size == copy.size, "size mismatch"); |
338 UCX_TEST_ASSERT(array.size == copy.size, "size mismatch"); |
342 UCX_TEST_ASSERT(array.capacity == copy.capacity, "capacity mismatch"); |
339 UCX_TEST_ASSERT(array.capacity == copy.capacity, "capacity mismatch"); |
343 UCX_TEST_ASSERT(array.elemsize == copy.elemsize, "element size mismatch"); |
340 UCX_TEST_ASSERT(array.elemsize == copy.elemsize, "element size mismatch"); |
344 UCX_TEST_ASSERT(array.allocator == copy.allocator, "allocator mismatch"); |
341 UCX_TEST_ASSERT(array.allocator == copy.allocator, "allocator mismatch"); |
|
342 UCX_TEST_ASSERT(ucx_array_equals(array, copy, ucx_cmp_int, NULL), "failed"); |
345 |
343 |
346 UCX_TEST_END |
344 UCX_TEST_END |
347 |
345 |
348 ucx_array_free(&array); |
346 ucx_array_free(&array); |
349 ucx_array_free(©); |
347 ucx_array_free(©); |
367 ucx_array_at_int(expected, 4) = 47; |
365 ucx_array_at_int(expected, 4) = 47; |
368 |
366 |
369 |
367 |
370 UCX_TEST_BEGIN |
368 UCX_TEST_BEGIN |
371 void* original_ptr = array.data; |
369 void* original_ptr = array.data; |
372 UCX_TEST_ASSERT(!ucx_array_sort(array, ucx_cmp_int, NULL), "failed"); |
370 ucx_array_sort(array, ucx_cmp_int, NULL); |
373 UCX_TEST_ASSERT(!ucx_array_equals(array, expected, NULL, NULL), "failed"); |
371 UCX_TEST_ASSERT(ucx_array_equals(array, expected, NULL, NULL), "failed"); |
374 UCX_TEST_ASSERT(array.size == 5, "size corrupted"); |
372 UCX_TEST_ASSERT(array.size == 5, "size corrupted"); |
375 UCX_TEST_ASSERT(array.data == original_ptr, "shall not reallocate"); |
373 UCX_TEST_ASSERT(array.data == original_ptr, "shall not reallocate"); |
|
374 |
|
375 ucx_array_reserve(&array, 32); |
|
376 ucx_array_reserve(&expected, 32); |
|
377 array.size = expected.size = 32; |
|
378 for (size_t i = 0 ; i < 32 ; i++) { |
|
379 ucx_array_at_int(array, i) = ((i%2==0)?-1:1) * ((int) i); |
|
380 ucx_array_at_int(expected, i) = (-30+2*i) - (i > 15 ? 1 : 0); |
|
381 } |
|
382 |
|
383 ucx_array_sort(array, ucx_cmp_int, NULL); |
|
384 UCX_TEST_ASSERT(ucx_array_equals(array, expected, NULL, NULL), |
|
385 "failed for bigger arrays"); |
376 UCX_TEST_END |
386 UCX_TEST_END |
377 |
387 |
378 ucx_array_free(&expected); |
388 ucx_array_free(&expected); |
379 ucx_array_free(&array); |
389 ucx_array_free(&array); |
380 } |
390 } |