feat: make list dynamic

This commit is contained in:
2026-01-05 22:11:06 +01:00
parent 1e2150a6a1
commit 3db2055868
5 changed files with 111 additions and 231 deletions

View File

@@ -2,48 +2,49 @@
// Created by tilok on 23.08.2025.
//
#include <assert.h>
#include <string.h>
#include "tstd/list.h"
int test_list_create() {
list* list = list_create();
DEFINE_LIST(int)
DEFINE_LIST_PTR(charptr)
int test_list_int_create() {
list_int* list = list_int_create();
assert(list->capacity == 10);
list_free(list);
list_int_free(list);
return 0;
}
int test_list_add_element() {
list* list = list_create();
list_add_element(list, "Hello");
list_charptr* list = list_charptr_create();
list_charptr_add(list, "Hello");
assert(list->length == 1);
assert(strcmp(list->data[0], "Hello") == 0);
list_free(list);
list_charptr_free(list);
return 0;
}
int test_add_multiple_elements() {
list* list = list_create();
list_charptr* list = list_charptr_create();
for (int i = 0; i < 1000; i++) {
list_add_element(list, "Hello");
list_charptr_add(list, "Hello");
}
assert(list->length == 1000);
assert(list->capacity > 1000);
list_free(list);
list_charptr_free(list);
return 0;
}
int test_delete_element() {
list* list = list_create();
list_add_element(list, "Hello");
list_add_element(list, "World");
list_add_element(list, "Test");
list_delete_element(list, 1);
list_charptr* list = list_charptr_create();
list_charptr_add(list, "Hello");
list_charptr_add(list, "World");
list_charptr_add(list, "Test");
list_charptr_delete(list, 1);
assert(list->length == 2);
assert(strcmp(list->data[1], "Test") == 0);
@@ -52,10 +53,10 @@ int test_delete_element() {
}
int test_list_contains() {
list* list = list_create();
list_add_element(list, "Hello");
list_add_element(list, "World");
list_add_element(list, "Test");
list_charptr* list = list_charptr_create();
list_charptr_add(list, "Hello");
list_charptr_add(list, "World");
list_charptr_add(list, "Test");
assert(list_contains(list, "Hello") == 1);
assert(list_contains(list, "World") == 1);
@@ -68,7 +69,7 @@ int test_list_contains() {
int main() {
int result = 0;
result += test_list_create();
result += test_list_int_create();
result += test_list_add_element();
result += test_add_multiple_elements();
result += test_delete_element();