void dline_update() { printf("Select a processor (0-7): "); int proc; scanf("%d", &proc); if (proc >7 || proc <0) printf("Wrong processor!\n"); else { dline_t deadline = ask_deadline(); if (dl_time_before(deadline, myheap.nodes[proc].deadline)) printf("deadline too short\n"); else { heap_finish(&myheap, proc, deadline); heap_print(&myheap); if (!heap_check(&myheap)) exit(-1); } } }
static void test_heap(void) { const size_t nums_size = rand() % 3000 + 1; int *nums = malloc(nums_size * sizeof *nums); for (size_t i = 0; i < nums_size; i++) nums[i] = rand(); const size_t heap_size = rand() % 1000 + 1; int *heap_data = malloc(heap_size * sizeof *nums); struct heap heap = VB_HEAP_INIT(heap_data, heap_size); for (size_t i = 0; i < nums_size; i++) heap_push(&heap, nums[i]); heap_finish(&heap); qsort(nums, nums_size, sizeof *nums, intpcmp); for (size_t i = 0; i < heap.size; i++) assert(heap.data[i] == nums[i]); free(nums); free(heap_data); }