1
1
mirror of https://github.com/theoludwig/libcproject.git synced 2025-05-21 23:21:15 +02:00

feat: add array_list data structure

fixes #2
This commit is contained in:
Divlo
2023-01-07 19:27:16 +01:00
parent 821c27c6a9
commit 886038a0ac
6 changed files with 115 additions and 0 deletions

42
test/array_list_test.c Normal file
View File

@ -0,0 +1,42 @@
#include "array_list_test.h"
#include <assert.h>
#include <stdint.h>
#include <stdio.h>
#include <stdlib.h>
#include "libcproject.h"
void array_list_test() {
struct array_list *list = array_list_initialization();
assert(list->size == 0);
array_list_add(list, (void *)'a');
array_list_add(list, (void *)'b');
array_list_add(list, (void *)'c');
array_list_add(list, (void *)'d');
array_list_add(list, (void *)'e');
array_list_add(list, (void *)'f');
assert(list->size == 6);
assert(array_list_get(list, 0) == (void *)'a');
assert(array_list_get(list, 1) == (void *)'b');
assert(array_list_get(list, 2) == (void *)'c');
assert(array_list_get(list, 3) == (void *)'d');
assert(array_list_get(list, 4) == (void *)'e');
assert(array_list_get(list, 5) == (void *)'f');
array_list_add(list, (void *)'a');
assert(array_list_get(list, 6) == (void *)'a');
assert(list->size == 7);
array_list_remove(list, 6);
assert(list->size == 6);
assert(array_list_get(list, 6) == NULL);
for (size_t index = 0; index < 100; index++) {
array_list_add(list, (void *)index);
}
assert(list->size == 106);
assert(array_list_get(list, 100) == (void *)94);
assert(array_list_get(list, 101) == (void *)95);
array_list_remove(list, 100);
assert(list->size == 105);
assert(array_list_get(list, 100) == (void *)95);
}

6
test/array_list_test.h Normal file
View File

@ -0,0 +1,6 @@
#ifndef __ARRAY_LIST_TEST__
#define __ARRAY_LIST_TEST__
void array_list_test();
#endif

View File

@ -1,6 +1,7 @@
#include <stdio.h>
#include <stdlib.h>
#include "array_list_test.h"
#include "character_test.h"
#include "convert_test.h"
#include "dictionary_test.h"
@ -11,6 +12,7 @@
#include "string_test.h"
int main() {
array_list_test();
character_test();
convert_test();
dictionary_test();