#include int main(void) { u64 i, v, times, size; List list = { 0 }; size = UN_LIST_STANDARD_CAPACITY; times = 4; { list.alloc = un_allocator_get_temporary(); list.element_size = sizeof(u64); assert(un_list_get(&list, 0) == NULL); for (i = 0; i < size; i++) { v = i * times; assert(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 assert(list.count == (size - 1)); un_list_remove(&list, list.count - 1); assert(list.count == (size - 2)); for (i = 0; i < size; i++) { v = i * times; assert(un_list_append(&list, (void *)(&v))); } assert(list.capacity == (size * 2)); un_list_destroy(&list, true); assert(list.data == NULL); } return 0; }