#include int main(void) { u64 i, v, times, size; List list = { 0 }; size = UN_LIST_STANDARD_CAPACITY; times = 4; un_init(UN_MB(5)); { list.alloc = un_alloc_temp_get(); 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); assert(list.data == NULL); } return 0; }