From: cherierm Date: Fri, 6 Oct 2006 09:54:46 +0000 (+0000) Subject: grades overrun in test_heap_mean_operation() test funtion, adds test_reset_heap... X-Git-Tag: v3.3~2496 X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/commitdiff_plain/c102403bfd59375027b5865880814bd2257531c0 grades overrun in test_heap_mean_operation() test funtion, adds test_reset_heap to oblige the heap to arrange his elements. git-svn-id: svn+ssh://scm.gforge.inria.fr/svn/simgrid/simgrid/trunk@2863 48e7efb5-ca39-0410-a469-dd3cf9ba447f --- diff --git a/testsuite/xbt/heap_bench.c b/testsuite/xbt/heap_bench.c index b02a0f04e1..b3706d7fac 100644 --- a/testsuite/xbt/heap_bench.c +++ b/testsuite/xbt/heap_bench.c @@ -14,11 +14,12 @@ #include "gras/virtu.h" /* time manipulation in bench */ #define MAX_TEST 1000000 -#define MAX_VAL 6.01238343545777E+307 int compare_double(const void *a, const void *b); void test_heap_validity(int size); void test_heap_mean_operation(int size); +void test_reset_heap(xbt_heap_t heap,int size); + int compare_double(const void *a, const void *b) { @@ -75,9 +76,13 @@ void test_heap_mean_operation(int size) date = gras_os_time() * 1000000; for (j = 0; j < MAX_TEST; j++) { + + if(!(j%size) && j) + test_reset_heap(heap,size); + val = xbt_heap_maxkey(heap); xbt_heap_pop(heap); - xbt_heap_push(heap, NULL, (val > (MAX_VAL/3.0)) ? (10.0 * rand() / (RAND_MAX + 1.0)) :(3.0 * val)); + xbt_heap_push(heap, NULL, 3.0 * val); } date = gras_os_time() * 1000000 - date; printf("Mean access time for a %d size heap : %g\n", size, @@ -86,6 +91,18 @@ void test_heap_mean_operation(int size) xbt_heap_free(heap); } +void test_reset_heap(xbt_heap_t heap,int size) +{ + int i; + xbt_heap_free(heap); + heap = xbt_heap_new(size, NULL); + + for (i = 0; i < size; i++){ + xbt_heap_push(heap, NULL, (10.0 * rand() / (RAND_MAX + 1.0))); + } + +} + int main(int argc, char **argv) { int size;