47 lines
1.2 KiB
C
47 lines
1.2 KiB
C
#include "c-libs/dyn-arr.h"
|
|
#include <criterion/criterion.h>
|
|
|
|
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);
|
|
}
|