X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/59754cd381aabf278305badcfefbe45cd934ef6c..7ac777931e588a2a48708ac16caeb50973f2cdf9:/teshsuite/xbt/heap_bench/heap_bench.c diff --git a/teshsuite/xbt/heap_bench/heap_bench.c b/teshsuite/xbt/heap_bench/heap_bench.c index ce3d7fc0e9..47797d2a34 100644 --- a/teshsuite/xbt/heap_bench/heap_bench.c +++ b/teshsuite/xbt/heap_bench/heap_bench.c @@ -7,10 +7,12 @@ * under the terms of the license (GNU LGPL) which comes with this package. */ #include +#include #include +#include "simgrid/msg.h" #include "xbt/heap.h" -#include "xbt/sysdep.h" /* calloc, printf */ +#include "xbt/sysdep.h" #define MAX_TEST 1000000 @@ -21,9 +23,19 @@ static int compare_double(const void *a, const void *b) if (pa > pb) return 1; - if (pa == pb) - return 0; - return -1; + if (pa < pb) + return -1; + return 0; +} + +static void test_reset_heap(xbt_heap_t * heap, int size) +{ + xbt_heap_free(*heap); + *heap = xbt_heap_new(size, NULL); + + for (int i = 0; i < size; i++) { + xbt_heap_push(*heap, NULL, (10.0 * rand() / (RAND_MAX + 1.0))); + } } static void test_heap_validity(int size) @@ -40,8 +52,7 @@ static void test_heap_validity(int size) qsort(tab, size, sizeof(double), compare_double); for (i = 0; i < size; i++) { - /* printf("%g" " ", xbt_heap_maxkey(heap)); */ - if (xbt_heap_maxkey(heap) != tab[i]) { + if (fabs(xbt_heap_maxkey(heap) - tab[i]) > 1e-9) { fprintf(stderr, "Problem !\n"); exit(1); } @@ -79,20 +90,11 @@ static void test_heap_mean_operation(int size) xbt_heap_free(heap); } -static void test_reset_heap(xbt_heap_t * heap, int size) +int main(int argc, char** argv) { - xbt_heap_free(*heap); - *heap = xbt_heap_new(size, NULL); - - for (int i = 0; i < size; i++) { - xbt_heap_push(*heap, NULL, (10.0 * rand() / (RAND_MAX + 1.0))); - } -} + MSG_init(&argc, argv); -int main(int argc, char **argv) -{ - int size; - for (size = 100; size < 10000; size *= 10) { + for (int size = 100; size < 10000; size *= 10) { test_heap_validity(size); test_heap_mean_operation(size); }