feat: add dyn-arr
This commit is contained in:
46
test/main.c
Normal file
46
test/main.c
Normal file
@@ -0,0 +1,46 @@
|
||||
#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);
|
||||
}
|
||||
Reference in New Issue
Block a user