#include "c-libs/dyn-arr.h" #include Test(darr, basic_usage) { int *darr = NULL; darr_init(darr, 2); cr_assert(darr_size(darr) == 0, "Dynamic array size is 0 after init"); cr_assert(darr_cap(darr) == 2, "Dynamic array capacity is 2 after init"); darr_push(darr, 10); darr_push(darr, 20); cr_assert(darr[0] == 10); cr_assert(darr[1] == 20); cr_assert(darr_size(darr) == 2, "Dynamic array size is 2 after push"); cr_assert(darr_cap(darr) == 2, "Dynamic array capacity is 2 after push"); darr_push(darr, 30); darr_push(darr, 40); darr_push(darr, 50); cr_assert(darr_size(darr) == 5, "Dynamic array size is 5 after grow push"); cr_assert(darr_cap(darr) == 6, "Dynamic array capacity is 6 after grow push"); darr_free(darr); } Test(darr, clone_array) { int *darr = NULL; darr_init(darr, 5); darr[0] = 1; darr[1] = 10; darr[2] = 100; darr[3] = 1000; darr[4] = 10000; int *darr2 = darr_clone(darr); cr_assert(darr_size(darr) == darr_size(darr2)); cr_assert(darr_cap(darr) == darr_cap(darr2)); for (int i = 0; i < darr_size(darr); i++) { cr_assert(darr[i] == darr2[i]); } darr_free(darr); darr_free(darr2); }