Add primitives, hash map and dynamic array

This commit is contained in:
Hugo Mårdbrink 2025-04-17 09:53:37 +02:00
commit 2f19f82116
10 changed files with 384 additions and 0 deletions

View file

@ -0,0 +1,20 @@
#include <htd/primitives/primitives.h>
#include <htd/data_structure/dynamic_array.h>
#include <assert.h>
int main() {
DynamicArray i32_array;
dynarr_init(&i32_array, sizeof(i32));
for (i32 i = 0; i < 100; i++) {
dynarr_push(&i32_array, &i);
}
assert(i32_array.len == 100);
for (i32 i = 0; i < 100; i++) {
assert(*(i32*)dynarr_at(&i32_array, i) == i);
}
dynarr_free(&i32_array);
}

25
tests/test_hash_map.c Normal file
View file

@ -0,0 +1,25 @@
#include <htd/primitives/primitives.h>
#include <htd/data_structure/hash_map.h>
#include <assert.h>
int main() {
HashMap i32_i64_hmap;
hmap_init(&i32_i64_hmap, sizeof(i32), sizeof(i64));
for (i32 i = 0; i < 100; i++) {
i64 v = (i64)i * 2;
hmap_put(&i32_i64_hmap, &i, &v);
}
for (i32 i = 0; i < 100; i++) {
i64 expected_value = (i64)i * 2;
i64* retrieved_value = (i64*)hmap_get(&i32_i64_hmap, &i);
assert(retrieved_value != NULL && *retrieved_value == expected_value);
}
hmap_free(&i32_i64_hmap);
return 0;
}