A
lgorithmique
N
umérique
D
istribuée
Public GIT Repository
projects
/
simgrid.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
resource file of context usage project
[simgrid.git]
/
testsuite
/
xbt
/
heap_bench.c
diff --git
a/testsuite/xbt/heap_bench.c
b/testsuite/xbt/heap_bench.c
index
5f3e1c4
..
b3706d7
100644
(file)
--- a/
testsuite/xbt/heap_bench.c
+++ b/
testsuite/xbt/heap_bench.c
@@
-18,6
+18,8
@@
int compare_double(const void *a, const void *b);
void test_heap_validity(int size);
void test_heap_mean_operation(int size);
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)
{
int compare_double(const void *a, const void *b)
{
@@
-74,6
+76,10
@@
void test_heap_mean_operation(int size)
date = gras_os_time() * 1000000;
for (j = 0; j < MAX_TEST; j++) {
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, 3.0 * val);
val = xbt_heap_maxkey(heap);
xbt_heap_pop(heap);
xbt_heap_push(heap, NULL, 3.0 * val);
@@
-85,6
+91,18
@@
void test_heap_mean_operation(int size)
xbt_heap_free(heap);
}
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;
int main(int argc, char **argv)
{
int size;