@@ -14,41 +14,119 @@ const samples = Array.from({ length: nSamples }, (_, i) => i);
14
14
const nTimes = samples . length - 1 ;
15
15
16
16
var tests = [ {
17
- n : 1000
17
+ n : 1000 , mode : 'group' , nTraces : 1
18
18
} , {
19
- n : 2000
19
+ n : 2000 , mode : 'group' , nTraces : 1
20
20
} , {
21
- n : 4000
21
+ n : 4000 , mode : 'group' , nTraces : 1
22
22
} , {
23
- n : 8000
23
+ n : 8000 , mode : 'group' , nTraces : 1
24
24
} , {
25
- n : 16000
25
+ n : 16000 , mode : 'group' , nTraces : 1
26
26
} , {
27
- n : 32000
27
+ n : 32000 , mode : 'group' , nTraces : 1
28
28
} , {
29
- n : 64000
29
+ n : 64000 , mode : 'group' , nTraces : 1
30
+ } , {
31
+ n : 1000 , mode : 'stack' , nTraces : 1
32
+ } , {
33
+ n : 2000 , mode : 'stack' , nTraces : 1
34
+ } , {
35
+ n : 4000 , mode : 'stack' , nTraces : 1
36
+ } , {
37
+ n : 8000 , mode : 'stack' , nTraces : 1
38
+ } , {
39
+ n : 16000 , mode : 'stack' , nTraces : 1
40
+ } , {
41
+ n : 32000 , mode : 'stack' , nTraces : 1
42
+ } , {
43
+ n : 64000 , mode : 'stack' , nTraces : 1
44
+ } , {
45
+ n : 1000 , mode : 'group' , nTraces : 10
46
+ } , {
47
+ n : 2000 , mode : 'group' , nTraces : 10
48
+ } , {
49
+ n : 4000 , mode : 'group' , nTraces : 10
50
+ } , {
51
+ n : 8000 , mode : 'group' , nTraces : 10
52
+ } , {
53
+ n : 16000 , mode : 'group' , nTraces : 10
54
+ } , {
55
+ n : 32000 , mode : 'group' , nTraces : 10
56
+ } , {
57
+ n : 64000 , mode : 'group' , nTraces : 10
58
+ } , {
59
+ n : 1000 , mode : 'stack' , nTraces : 10
60
+ } , {
61
+ n : 2000 , mode : 'stack' , nTraces : 10
62
+ } , {
63
+ n : 4000 , mode : 'stack' , nTraces : 10
64
+ } , {
65
+ n : 8000 , mode : 'stack' , nTraces : 10
66
+ } , {
67
+ n : 16000 , mode : 'stack' , nTraces : 10
68
+ } , {
69
+ n : 32000 , mode : 'stack' , nTraces : 10
70
+ } , {
71
+ n : 64000 , mode : 'stack' , nTraces : 10
72
+ } , {
73
+ n : 1000 , mode : 'group' , nTraces : 100
74
+ } , {
75
+ n : 2000 , mode : 'group' , nTraces : 100
76
+ } , {
77
+ n : 4000 , mode : 'group' , nTraces : 100
78
+ } , {
79
+ n : 8000 , mode : 'group' , nTraces : 100
80
+ } , {
81
+ n : 16000 , mode : 'group' , nTraces : 100
82
+ } , {
83
+ n : 32000 , mode : 'group' , nTraces : 100
84
+ } , {
85
+ n : 64000 , mode : 'group' , nTraces : 100
86
+ } , {
87
+ n : 1000 , mode : 'stack' , nTraces : 100
88
+ } , {
89
+ n : 2000 , mode : 'stack' , nTraces : 100
90
+ } , {
91
+ n : 4000 , mode : 'stack' , nTraces : 100
92
+ } , {
93
+ n : 8000 , mode : 'stack' , nTraces : 100
94
+ } , {
95
+ n : 16000 , mode : 'stack' , nTraces : 100
96
+ } , {
97
+ n : 32000 , mode : 'stack' , nTraces : 100
98
+ } , {
99
+ n : 64000 , mode : 'stack' , nTraces : 100
30
100
} ] ;
31
101
32
102
tests . forEach ( function ( spec , index ) {
33
- describe ( 'Performance test histogram | size:' + spec . n , function ( ) {
103
+ describe ( 'Performance test ' + spec . nTraces + ' histogram | size:' + spec . n + ' | mode: ' + spec . mode , function ( ) {
34
104
'use strict' ;
35
105
36
- var x = Float64Array . from ( { length : spec . n } , ( _ , i ) => i * Math . cos ( Math . sqrt ( i ) ) ) ;
106
+ var startTime , endTime ;
37
107
38
- var mock = {
39
- data : [ {
40
- type : 'histogram' ,
41
- x : x
42
- } ] ,
43
- layout : {
44
- width : 900 ,
45
- height : 400
108
+ beforeEach ( function ( done ) {
109
+ var z = Array . from ( { length : spec . n } , ( _ , i ) => i * Math . cos ( Math . sqrt ( i ) ) ) ;
110
+ var data = [ ] ;
111
+ var nPerTrace = Math . floor ( spec . n / spec . nTraces ) ;
112
+ for ( var k = 0 ; k < spec . nTraces ; k ++ ) {
113
+ data . push ( {
114
+ type : 'histogram' ,
115
+ x : z . slice ( k * nPerTrace , ( k + 1 ) * nPerTrace ) ,
116
+ y : Array . from ( { length : nPerTrace } , ( _ , i ) => i )
117
+ } ) ;
46
118
}
47
- } ;
48
119
49
- var startTime , endTime ;
120
+ var mock = {
121
+ data : data ,
122
+ layout : {
123
+ barmode : spec . mode ,
124
+ showlegend : false ,
125
+ width : 900 ,
126
+ height : 400
127
+ }
128
+ } ;
50
129
51
- beforeEach ( function ( done ) {
52
130
startTime = performance . now ( ) ;
53
131
54
132
// Wait for actual rendering to complete
@@ -76,7 +154,7 @@ tests.forEach(function(spec, index) {
76
154
tests [ index ] . raw [ t ] = delta ;
77
155
78
156
var nodes = d3SelectAll ( 'g.trace.bars' ) ;
79
- expect ( nodes . size ( ) ) . toEqual ( 1 ) ;
157
+ expect ( nodes . size ( ) ) . toEqual ( spec . nTraces ) ;
80
158
81
159
if ( t === nTimes && index === tests . length - 1 ) {
82
160
writeRawDataAsCSV ( 'histogram' , tests ) ;
0 commit comments