diff options
author | bonmas14 <bonmas14@gmail.com> | 2025-08-03 19:24:03 +0000 |
---|---|---|
committer | bonmas14 <bonmas14@gmail.com> | 2025-08-03 19:24:03 +0000 |
commit | 471b539bdbf658ff7924b7500f89fd237df8be9b (patch) | |
tree | a6a0b1d8a7a37ebe288cd7e1accf9b16dee203aa /tests/un/lists.c | |
parent | a4d37d76512c293b12aab1f77961f96d572557b7 (diff) | |
download | ungrateful-471b539bdbf658ff7924b7500f89fd237df8be9b.tar.gz ungrateful-471b539bdbf658ff7924b7500f89fd237df8be9b.zip |
Reordering of stuff + plans
Diffstat (limited to 'tests/un/lists.c')
-rw-r--r-- | tests/un/lists.c | 50 |
1 files changed, 50 insertions, 0 deletions
diff --git a/tests/un/lists.c b/tests/un/lists.c new file mode 100644 index 0000000..a8627ac --- /dev/null +++ b/tests/un/lists.c @@ -0,0 +1,50 @@ +#include <ungrateful.h> + +int main(void) { + u64 i, v, times, size; + List list; + Allocator alloc; + + size = 16; + times = 4; + + { + alloc = un_allocator_get_standard(); + list = un_list_create(size, sizeof(u64), alloc); + + assert(un_list_get(&list, 0) == NULL); + + for (i = 0; i < size; i++) { + v = i * times; + + un_list_append(&list, (void *)(&v)); + } + + assert(*(u64*)un_list_get(&list, size - 1) == ((size - 1) * times)); + + for (i = 0; i < size; i++) { + v = *(u64*)un_list_get(&list, i); + assert(v == i * times); + } + + un_list_remove(&list, 0); + assert(*(u64*)un_list_get(&list, 0) == times); + + un_list_remove(&list, list.count); // will be ignored + un_list_remove(&list, list.count - 1); + + assert(list.count == (size - 2)); + + for (i = 0; i < size; i++) { + v = i * times; + un_list_append(&list, (void *)(&v)); + } + + assert(list.capacity == (size * 2)); + + un_list_destroy(&list); + + assert(list.data == NULL); + } +} + |