@@ -38,13 +38,32 @@ rawResults.forEach(({ adapter, client, results }) => {
38
38
if ( ! testSuites [ suite ] . includes ( t ) ) testSuites [ suite ] . push ( t ) ;
39
39
40
40
if ( ! resultsByAdapter [ adapter ] [ suite ] ) resultsByAdapter [ adapter ] [ suite ] = { } ;
41
- if ( ! resultsByAdapter [ adapter ] [ suite ] [ t ] ) resultsByAdapter [ adapter ] [ suite ] [ t ] = { numIterations :0 , min :Number . MAX_VALUE } ;
41
+ if ( ! resultsByAdapter [ adapter ] [ suite ] [ t ] ) resultsByAdapter [ adapter ] [ suite ] [ t ] = { numIterations :0 , min :Number . MAX_VALUE , median : - 1 , all : [ ] } ;
42
42
43
+ resultsByAdapter [ adapter ] [ suite ] [ t ] . all . push ( median ) ;
43
44
resultsByAdapter [ adapter ] [ suite ] [ t ] . min = Math . min ( resultsByAdapter [ adapter ] [ suite ] [ t ] . min , median ) ;
44
45
resultsByAdapter [ adapter ] [ suite ] [ t ] . numIterations ++ ;
45
46
} ) ;
46
47
} ) ;
47
48
49
+ Object . values ( resultsByAdapter ) . forEach ( adapterRes => {
50
+ Object . values ( adapterRes ) . forEach ( suite => {
51
+ console . log ( 'suite:' , JSON . stringify ( suite , null , 2 ) ) ;
52
+ Object . values ( suite ) . forEach ( test => {
53
+ console . log ( 'test:' , JSON . stringify ( test , null , 2 ) ) ;
54
+ test . all . sort ( ) ;
55
+ const len = test . all . length ;
56
+ const mid = Math . floor ( len / 2 ) ;
57
+ console . log ( { len, mid } ) ;
58
+ if ( len % 2 ) {
59
+ test . median = test . all [ mid ] ;
60
+ } else {
61
+ test . median = ( test . all [ mid ] + test . all [ mid - 1 ] ) / 2 ;
62
+ }
63
+ } ) ;
64
+ } ) ;
65
+ } ) ;
66
+
48
67
if ( adapters . length < 2 ) {
49
68
console . log ( '!!! At least 2 different adapters are required to make comparisons!' ) ;
50
69
process . exit ( 1 ) ;
@@ -56,4 +75,4 @@ const sortedResults = adapters.map(adapter => ({
56
75
adapter, results :resultsByAdapter [ adapter ]
57
76
} ) ) ;
58
77
59
- printComparisonReport ( { useStat :'min ' } , ...sortedResults ) ;
78
+ printComparisonReport ( { useStat :'median ' } , ...sortedResults ) ;
0 commit comments