6 #define MAX_TEST 1000000
13 gettimeofday(&start, NULL);
15 return (start.tv_sec * 1000000 + start.tv_usec);
18 int compare_xbt_heap_float_t (const void *a, const void *b);
19 void test_heap_validity(int size);
20 void test_heap_mean_operation(int size);
22 int compare_xbt_heap_float_t (const void *a, const void *b)
24 xbt_heap_float_t pa, pb;
26 pa=* ((xbt_heap_float_t *)a);
27 pb=* ((xbt_heap_float_t *)b);
34 void test_heap_validity(int size)
36 xbt_heap_t heap = xbt_heap_new(size,NULL);
37 xbt_heap_float_t *tab = calloc(size,sizeof(xbt_heap_float_t));
40 for(i=0; i<size; i++) {
41 tab[i] = (10.0*rand()/(RAND_MAX+1.0));
42 xbt_heap_push(heap, NULL, tab[i]);
45 qsort(tab, size, sizeof(xbt_heap_float_t), compare_xbt_heap_float_t);
47 for(i=0; i<size; i++) {
48 /* printf(XBT_HEAP_FLOAT_T " ", xbt_heap_maxkey(heap)); */
49 if(xbt_heap_maxkey(heap)!= tab[i]) {
50 fprintf(stderr,"Problem !\n");
57 printf("Validity test complete!\n");
60 void test_heap_mean_operation(int size)
62 xbt_heap_t heap = xbt_heap_new(size,NULL);
69 xbt_heap_push(heap, NULL, (10.0*rand()/(RAND_MAX+1.0)));
70 date = us_time()-date;
71 printf("Creation time %d size heap : %g\n", size, 0.0+date);
74 for(j=0; j<MAX_TEST; j++) {
75 val=xbt_heap_maxkey(heap);
77 xbt_heap_push(heap, NULL, 3.0*val);
79 date = us_time()-date;
80 printf("Mean access time for a %d size heap : %g\n", size, date*1.0/(MAX_TEST+0.0));
85 int main(int argc, char **argv)
88 for(size = 100; size < 10000; size*=10) {
89 test_heap_validity(size);
90 test_heap_mean_operation(size);