Skip to content

Commit ff93b2e

Browse files
committed
extend box
1 parent 543478e commit ff93b2e

File tree

1 file changed

+100
-23
lines changed

1 file changed

+100
-23
lines changed

test/jasmine/performance_tests/box_test.js

Lines changed: 100 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -14,42 +14,119 @@ const samples = Array.from({ length: nSamples }, (_, i) => i);
1414
const nTimes = samples.length - 1;
1515

1616
var tests = [{
17-
n: 1000
17+
n: 1000, mode: 'no points', nTraces: 1
1818
}, {
19-
n: 2000
19+
n: 2000, mode: 'no points', nTraces: 1
2020
}, {
21-
n: 4000
21+
n: 4000, mode: 'no points', nTraces: 1
2222
}, {
23-
n: 8000
23+
n: 8000, mode: 'no points', nTraces: 1
2424
}, {
25-
n: 16000
25+
n: 16000, mode: 'no points', nTraces: 1
2626
}, {
27-
n: 32000
27+
n: 32000, mode: 'no points', nTraces: 1
2828
}, {
29-
n: 64000
29+
n: 64000, mode: 'no points', nTraces: 1
30+
}, {
31+
n: 1000, mode: 'all points', nTraces: 1
32+
}, {
33+
n: 2000, mode: 'all points', nTraces: 1
34+
}, {
35+
n: 4000, mode: 'all points', nTraces: 1
36+
}, {
37+
n: 8000, mode: 'all points', nTraces: 1
38+
}, {
39+
n: 16000, mode: 'all points', nTraces: 1
40+
}, {
41+
n: 32000, mode: 'all points', nTraces: 1
42+
}, {
43+
n: 64000, mode: 'all points', nTraces: 1
44+
}, {
45+
n: 1000, mode: 'no points', nTraces: 10
46+
}, {
47+
n: 2000, mode: 'no points', nTraces: 10
48+
}, {
49+
n: 4000, mode: 'no points', nTraces: 10
50+
}, {
51+
n: 8000, mode: 'no points', nTraces: 10
52+
}, {
53+
n: 16000, mode: 'no points', nTraces: 10
54+
}, {
55+
n: 32000, mode: 'no points', nTraces: 10
56+
}, {
57+
n: 64000, mode: 'no points', nTraces: 10
58+
}, {
59+
n: 1000, mode: 'all points', nTraces: 10
60+
}, {
61+
n: 2000, mode: 'all points', nTraces: 10
62+
}, {
63+
n: 4000, mode: 'all points', nTraces: 10
64+
}, {
65+
n: 8000, mode: 'all points', nTraces: 10
66+
}, {
67+
n: 16000, mode: 'all points', nTraces: 10
68+
}, {
69+
n: 32000, mode: 'all points', nTraces: 10
70+
}, {
71+
n: 64000, mode: 'all points', nTraces: 10
72+
}, {
73+
n: 1000, mode: 'no points', nTraces: 100
74+
}, {
75+
n: 2000, mode: 'no points', nTraces: 100
76+
}, {
77+
n: 4000, mode: 'no points', nTraces: 100
78+
}, {
79+
n: 8000, mode: 'no points', nTraces: 100
80+
}, {
81+
n: 16000, mode: 'no points', nTraces: 100
82+
}, {
83+
n: 32000, mode: 'no points', nTraces: 100
84+
}, {
85+
n: 64000, mode: 'no points', nTraces: 100
86+
}, {
87+
n: 1000, mode: 'all points', nTraces: 100
88+
}, {
89+
n: 2000, mode: 'all points', nTraces: 100
90+
}, {
91+
n: 4000, mode: 'all points', nTraces: 100
92+
}, {
93+
n: 8000, mode: 'all points', nTraces: 100
94+
}, {
95+
n: 16000, mode: 'all points', nTraces: 100
96+
}, {
97+
n: 32000, mode: 'all points', nTraces: 100
98+
}, {
99+
n: 64000, mode: 'all points', nTraces: 100
30100
}];
31101

32102
tests.forEach(function(spec, index) {
33-
describe('Performance test box | size:' + spec.n, function() {
103+
describe('Performance test ' + spec.nTraces + 'box | size:' + spec.n + ' | mode: ' + spec.mode, function() {
34104
'use strict';
35105

36-
var y = Float64Array.from({ length: spec.n }, (_, i) => i * Math.cos(Math.sqrt(i)));
37-
38-
var mock = {
39-
data: [{
40-
type: 'box',
41-
boxpoints: 'all',
42-
y: y
43-
}],
44-
layout: {
45-
width: 900,
46-
height: 400
47-
}
48-
};
49-
50106
var startTime, endTime;
51107

52108
beforeEach(function(done) {
109+
var y = 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: 'box',
115+
boxpoints: spec.mode === 'all points' ? 'all' : false,
116+
y: y.slice(k * nPerTrace, (k + 1) * nPerTrace),
117+
x: Array.from({ length: nPerTrace }, (_, i) => k)
118+
});
119+
}
120+
121+
var mock = {
122+
data: data,
123+
layout: {
124+
showlegend: false,
125+
width: 900,
126+
height: 400
127+
}
128+
};
129+
53130
startTime = performance.now();
54131

55132
// Wait for actual rendering to complete
@@ -77,7 +154,7 @@ tests.forEach(function(spec, index) {
77154
tests[index].raw[t] = delta;
78155

79156
var nodes = d3SelectAll('g.trace.boxes');
80-
expect(nodes.size()).toEqual(1);
157+
expect(nodes.size()).toEqual(spec.nTraces);
81158

82159
if(t === nTimes && index === tests.length - 1) {
83160
writeRawDataAsCSV('box', tests);

0 commit comments

Comments
 (0)