END_TEST START_TEST(test_priority_queue_initialization){ priority_queue_t* pq; priority_queue_initialize(&pq,int_constructor,int_destructor,int_comparator); ck_assert(pq->size == 0); ck_assert(pq->data == NULL); ck_assert(pq->capacity == 0); ck_assert(priority_queue_empty(pq)); ck_assert(priority_queue_size(pq)==0); priority_queue_delete(&pq); }
void level_delete(level *my_level) { for(int i = 0; i < my_level->num_m; i++) hash_set_delete(my_level->sets[i]); free(my_level->sets); for(int i = 0; i < my_level->num_m; i++) priority_queue_delete(my_level->queues[i]); free(my_level->queues); free(my_level); }
END_TEST START_TEST(test_priority_queue_crud){ priority_queue_t* pq; int* v = callocx(N,sizeof(int)); priority_queue_initialize(&pq,int_constructor,int_destructor,int_comparator); int i; for(i=0;i<N;i++){ v[i] = rand(); priority_queue_push(pq,&v[i]); } qsort(v,N,sizeof(int),int_comparator); ck_assert(priority_queue_size(pq)==N); for(i=0; !priority_queue_empty(pq); i++){ ck_assert(*(int*) priority_queue_front(pq) == v[i]); priority_queue_pop(pq); } free(v); priority_queue_delete(&pq); }