aboutsummaryrefslogtreecommitdiff
path: root/tests/un/lists.c
diff options
context:
space:
mode:
authorbonmas14 <bonmas14@gmail.com>2025-08-03 19:24:03 +0000
committerbonmas14 <bonmas14@gmail.com>2025-08-03 19:24:03 +0000
commit471b539bdbf658ff7924b7500f89fd237df8be9b (patch)
treea6a0b1d8a7a37ebe288cd7e1accf9b16dee203aa /tests/un/lists.c
parenta4d37d76512c293b12aab1f77961f96d572557b7 (diff)
downloadungrateful-471b539bdbf658ff7924b7500f89fd237df8be9b.tar.gz
ungrateful-471b539bdbf658ff7924b7500f89fd237df8be9b.zip
Reordering of stuff + plans
Diffstat (limited to 'tests/un/lists.c')
-rw-r--r--tests/un/lists.c50
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);
+ }
+}
+