| | |
| | |
| | |
| | |
| |
|
| | #include "util/heap.h" |
| | #include "test_macros.h" |
| |
|
| | #include <stdio.h> |
| | #include <stdlib.h> |
| | #include <string.h> |
| |
|
| | int |
| | main(int argc, char *argv[]) |
| | { |
| | heap_t *heap; |
| | int i; |
| |
|
| | (void)argc; |
| | (void)argv; |
| | heap = heap_new(); |
| | for (i = 0; i < 25; ++i) |
| | heap_insert(heap, (void *)(long)i, i); |
| | for (i = 0; i < 25; ++i) { |
| | int32 val; |
| | void *data; |
| | TEST_EQUAL(1, heap_pop(heap, &data, &val)); |
| | TEST_EQUAL(val, i); |
| | TEST_EQUAL((int)(long)data, i); |
| | TEST_EQUAL(heap_size(heap), (size_t)25 - i - 1); |
| | } |
| | for (i = 0; i < 25; ++i) |
| | heap_insert(heap, (void *)(long)i, i); |
| | TEST_EQUAL(0, heap_remove(heap, (void *)(long)10)); |
| | TEST_EQUAL(-1, heap_remove(heap, (void *)(long)10)); |
| | TEST_EQUAL(heap_size(heap), 24); |
| | TEST_EQUAL(0, heap_remove(heap, (void *)(long)15)); |
| | TEST_EQUAL(0, heap_remove(heap, (void *)(long)9)); |
| | TEST_EQUAL(0, heap_remove(heap, (void *)(long)0)); |
| | TEST_EQUAL(heap_size(heap), 21); |
| | return 0; |
| | } |
| |
|