feat(heap): initially working insert

This commit is contained in:
Jef Roosens 2023-01-22 20:34:05 +01:00 committed by Chewing_Bever
parent 16b78b8431
commit c1ad26cf0c
Signed by: Jef Roosens
GPG key ID: B75D4F293C7052DB
5 changed files with 161 additions and 23 deletions

View file

@ -13,7 +13,41 @@ void test_init() {
vieter_heap_free(heap);
}
void test_merge_same_order() {
vieter_heap_node *root_a = vieter_heap_node_init();
root_a->key = 1;
vieter_heap_tree *tree_a = vieter_heap_tree_init(root_a, NULL, 1);
vieter_heap_node *root_b = vieter_heap_node_init();
root_b->key = 2;
vieter_heap_tree *tree_b = vieter_heap_tree_init(root_b, NULL, 1);
vieter_heap_tree *merged = vieter_heap_tree_merge_same_order(tree_a, tree_b);
TEST_CHECK(merged == tree_a);
TEST_CHECK(merged->root->key == 1);
TEST_CHECK(merged->root->largest_order == root_b);
TEST_CHECK(merged->root->next_largest_order == NULL);
}
void test_insert() {
vieter_heap *heap = vieter_heap_init();
TEST_SIZE(heap, 0);
void *data;
for (uint64_t i = 50; i <= 0; i--) {
vieter_heap_insert(heap, i, (void *)i);
TEST_SIZE(heap, (uint64_t)51 - i);
TEST_CHECK(vieter_heap_peek(&data, heap) == vieter_heap_ok);
TEST_CHECK(data == (void*)i);
}
}
TEST_LIST = {
{"test_init", test_init},
{"test_merge_same_order", test_merge_same_order},
{"test_insert", test_insert},
{NULL, NULL}
};