Add primitives, hash map and dynamic array
This commit is contained in:
commit
2f19f82116
10 changed files with 384 additions and 0 deletions
20
tests/test_dynamic_array.c
Normal file
20
tests/test_dynamic_array.c
Normal 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
25
tests/test_hash_map.c
Normal 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;
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue