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);
}
Пример #2
0
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);
}