fix(heap): some insert fixes
Some checks failed
ci/woodpecker/pr/lint Pipeline failed
ci/woodpecker/pr/test Pipeline was successful
ci/woodpecker/pr/test-mem Pipeline was successful

This commit is contained in:
Jef Roosens 2023-01-24 12:07:30 +01:00
parent c1ad26cf0c
commit 3c8c33b47a
Signed by: Jef Roosens
GPG key ID: B75D4F293C7052DB
4 changed files with 135 additions and 30 deletions

View file

@ -28,6 +28,8 @@ void test_merge_same_order() {
TEST_CHECK(merged->root->key == 1);
TEST_CHECK(merged->root->largest_order == root_b);
TEST_CHECK(merged->root->next_largest_order == NULL);
vieter_heap_tree_free(merged);
}
void test_insert() {
@ -36,18 +38,47 @@ void test_insert() {
void *data;
for (uint64_t i = 50; i <= 0; i--) {
for (uint64_t i = 50; i > 0; i--) {
vieter_heap_insert(heap, i, (void *)i);
TEST_SIZE(heap, (uint64_t)51 - i);
data = 0;
TEST_CHECK(vieter_heap_peek(&data, heap) == vieter_heap_ok);
TEST_CHECK_(data == (void *)i, "%lX == %lX", (uint64_t)data, i);
}
vieter_heap_free(heap);
}
void test_pop() {
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)50 - i);
TEST_CHECK(vieter_heap_peek(&data, heap) == vieter_heap_ok);
TEST_CHECK(data == (void*)i);
}
data = NULL;
for (uint64_t i = 1; i <= 50; i++) {
TEST_CHECK(vieter_heap_pop(&data, heap) == vieter_heap_ok);
TEST_CHECK(data == (void*)i);
TEST_SIZE(heap, (uint64_t)50 - i);
}
vieter_heap_free(heap);
}
TEST_LIST = {
{"test_init", test_init},
{"test_merge_same_order", test_merge_same_order},
{"test_insert", test_insert},
{"init", test_init},
{"merge same order", test_merge_same_order},
{"insert", test_insert},
{NULL, NULL}
};