void pqueue_destroy(pqueue_t *pq) { pqueue_drop_items(pq, binheap_count(pq->heap)); binheap_destroy(pq->heap); MUTEX_DESTROY(pq->lock); free(pq); }
int main(int argc, char *argv[]) { struct binheap uut; binheap_init(&uut, cmp, sizeof(int), 0, realloc); assert(binheap_isempty(&uut)); binheap_destroy(&uut); return 0; }
int main(int argc, char **argv) { ut_init(basename(argv[0])); ut_testing("binheap_create(binheap_keys_callbacks_int32(), BINHEAP_MODE_MAX)"); binheap_t *bh = binheap_create(binheap_keys_callbacks_int32_t(), BINHEAP_MODE_MAX); if (bh) ut_success(); else ut_failure("Can't create a new binomial heap"); ut_testing("binheap_insert(0..99)"); int i; for (i = 0; i < 100; i++) { binheap_insert(bh, &i, sizeof(i), NULL); } ut_validate_int(binheap_count(bh), 100); ut_testing("binheap_maximum() == 99"); int *max = NULL; binheap_maximum(bh, (void **)&max, NULL, NULL); ut_validate_int(*max, 99); ut_testing("binheap_minimum() == 0"); int *min = NULL; binheap_minimum(bh, (void **)&min, NULL, NULL); ut_validate_int(*min, 0); ut_testing("binheap_increase_minimum(bh, 1)"); binheap_increase_minimum(bh, 1); binheap_minimum(bh, (void **)&min, NULL, NULL); ut_validate_int(*min, 1); ut_testing("binheap_increase_maximum(bh, 1)"); binheap_increase_maximum(bh, 1); binheap_maximum(bh, (void **)&max, NULL, NULL); ut_validate_int(*max, 100); binheap_destroy(bh); ut_summary(); return ut_failed; }