Skip to content

Commit 33620b7

Browse files
committed
revisit tests
1 parent ef345ef commit 33620b7

File tree

11 files changed

+129
-34
lines changed

11 files changed

+129
-34
lines changed
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
'use strict';
2+
3+
module.exports = {
4+
nSamples: 1
5+
};

test/jasmine/performance_tests/assets/post_process.js

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,14 @@
11
exports.writeRawDataAsCSV = function(traceName, allTests) {
2-
var str = 'chart type,data points,run id,rendering time(ms)\n';
2+
var str = 'number of traces,chart type,data points,run id,rendering time(ms)\n';
33
for(var k = 0; k < allTests.length; k++) {
44
var test = allTests[k];
55

66
for(var i = 0; i < test.raw.length; i++) {
7-
str += traceName + ',' + test.n + ',' + i + ',' + test.raw[i] + '\n';
7+
str +=
8+
(test.nTraces || 1) + ',' +
9+
(traceName + (test.mode ? '_' + test.mode : '')) + ',' +
10+
test.n + ',' + i + ',' +
11+
test.raw[i] + '\n';
812
}
913
}
1014

test/jasmine/performance_tests/bar_test.js

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,12 +4,13 @@ var d3SelectAll = require('../../strict-d3').selectAll;
44
var Plotly = require('../../../lib/core');
55
var PlotlyBar = require('../../../lib/bar');
66
var writeRawDataAsCSV = require('./assets/post_process').writeRawDataAsCSV;
7+
var nSamples = require('./assets/constants').nSamples;
78

89
Plotly.register(PlotlyBar);
910

1011
var gd = createGraphDiv();
1112

12-
const samples = Array.from({ length: 9 }, (_, i) => i);
13+
const samples = Array.from({ length: nSamples }, (_, i) => i);
1314
const nTimes = samples.length - 1;
1415

1516
var tests = [{

test/jasmine/performance_tests/box_test.js

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,12 +4,13 @@ var d3SelectAll = require('../../strict-d3').selectAll;
44
var Plotly = require('../../../lib/core');
55
var PlotlyBox = require('../../../lib/box');
66
var writeRawDataAsCSV = require('./assets/post_process').writeRawDataAsCSV;
7+
var nSamples = require('./assets/constants').nSamples;
78

89
Plotly.register(PlotlyBox);
910

1011
var gd = createGraphDiv();
1112

12-
const samples = Array.from({ length: 9 }, (_, i) => i);
13+
const samples = Array.from({ length: nSamples }, (_, i) => i);
1314
const nTimes = samples.length - 1;
1415

1516
var tests = [{

test/jasmine/performance_tests/contour_test.js

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,12 +4,13 @@ var d3SelectAll = require('../../strict-d3').selectAll;
44
var Plotly = require('../../../lib/core');
55
var PlotlyContour = require('../../../lib/contour');
66
var writeRawDataAsCSV = require('./assets/post_process').writeRawDataAsCSV;
7+
var nSamples = require('./assets/constants').nSamples;
78

89
Plotly.register(PlotlyContour);
910

1011
var gd = createGraphDiv();
1112

12-
const samples = Array.from({ length: 9 }, (_, i) => i);
13+
const samples = Array.from({ length: nSamples }, (_, i) => i);
1314
const nTimes = samples.length - 1;
1415

1516
var tests = [{

test/jasmine/performance_tests/heatmap_test.js

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,12 +4,13 @@ var d3SelectAll = require('../../strict-d3').selectAll;
44
var Plotly = require('../../../lib/core');
55
var PlotlyHeatmap = require('../../../lib/heatmap');
66
var writeRawDataAsCSV = require('./assets/post_process').writeRawDataAsCSV;
7+
var nSamples = require('./assets/constants').nSamples;
78

89
Plotly.register(PlotlyHeatmap);
910

1011
var gd = createGraphDiv();
1112

12-
const samples = Array.from({ length: 9 }, (_, i) => i);
13+
const samples = Array.from({ length: nSamples }, (_, i) => i);
1314
const nTimes = samples.length - 1;
1415

1516
var tests = [{

test/jasmine/performance_tests/histogram_test.js

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,12 +4,13 @@ var d3SelectAll = require('../../strict-d3').selectAll;
44
var Plotly = require('../../../lib/core');
55
var PlotlyHistogram = require('../../../lib/histogram');
66
var writeRawDataAsCSV = require('./assets/post_process').writeRawDataAsCSV;
7+
var nSamples = require('./assets/constants').nSamples;
78

89
Plotly.register(PlotlyHistogram);
910

1011
var gd = createGraphDiv();
1112

12-
const samples = Array.from({ length: 9 }, (_, i) => i);
13+
const samples = Array.from({ length: nSamples }, (_, i) => i);
1314
const nTimes = samples.length - 1;
1415

1516
var tests = [{

test/jasmine/performance_tests/image_test.js

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,12 +4,13 @@ var d3SelectAll = require('../../strict-d3').selectAll;
44
var Plotly = require('../../../lib/core');
55
var PlotlyImage = require('../../../lib/image');
66
var writeRawDataAsCSV = require('./assets/post_process').writeRawDataAsCSV;
7+
var nSamples = require('./assets/constants').nSamples;
78

89
Plotly.register(PlotlyImage);
910

1011
var gd = createGraphDiv();
1112

12-
const samples = Array.from({ length: 9 }, (_, i) => i);
13+
const samples = Array.from({ length: nSamples }, (_, i) => i);
1314
const nTimes = samples.length - 1;
1415

1516
var tests = [{
@@ -32,7 +33,7 @@ tests.forEach(function(spec, index) {
3233
describe('Performance test image | size:' + spec.nx + 'X' + spec.ny, function() {
3334
'use strict';
3435

35-
const samples = Array.from({ length: 9 }, (_, i) => i);
36+
const samples = Array.from({ length: nSamples }, (_, i) => i);
3637
const nTimes = samples.length - 1;
3738

3839
var A = spec.nx;

test/jasmine/performance_tests/scatter_test.js

Lines changed: 101 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -3,49 +3,127 @@ var delay = require('../assets/delay');
33
var d3SelectAll = require('../../strict-d3').selectAll;
44
var Plotly = require('../../../lib/core');
55
var writeRawDataAsCSV = require('./assets/post_process').writeRawDataAsCSV;
6+
var nSamples = require('./assets/constants').nSamples;
67

78
var gd = createGraphDiv();
89

9-
const samples = Array.from({ length: 9 }, (_, i) => i);
10+
const samples = Array.from({ length: nSamples }, (_, i) => i);
1011
const nTimes = samples.length - 1;
1112

1213
var tests = [{
13-
n: 1000
14+
n: 1000, mode: 'markers', nTraces: 1
1415
}, {
15-
n: 2000
16+
n: 2000, mode: 'markers', nTraces: 1
1617
}, {
17-
n: 4000
18+
n: 4000, mode: 'markers', nTraces: 1
1819
}, {
19-
n: 8000
20+
n: 8000, mode: 'markers', nTraces: 1
2021
}, {
21-
n: 16000
22+
n: 16000, mode: 'markers', nTraces: 1
2223
}, {
23-
n: 32000
24+
n: 32000, mode: 'markers', nTraces: 1
2425
}, {
25-
n: 64000
26+
n: 64000, mode: 'markers', nTraces: 1
27+
}, {
28+
n: 1000, mode: 'lines', nTraces: 1
29+
}, {
30+
n: 2000, mode: 'lines', nTraces: 1
31+
}, {
32+
n: 4000, mode: 'lines', nTraces: 1
33+
}, {
34+
n: 8000, mode: 'lines', nTraces: 1
35+
}, {
36+
n: 16000, mode: 'lines', nTraces: 1
37+
}, {
38+
n: 32000, mode: 'lines', nTraces: 1
39+
}, {
40+
n: 64000, mode: 'lines', nTraces: 1
41+
}, {
42+
n: 1000, mode: 'markers', nTraces: 10
43+
}, {
44+
n: 2000, mode: 'markers', nTraces: 10
45+
}, {
46+
n: 4000, mode: 'markers', nTraces: 10
47+
}, {
48+
n: 8000, mode: 'markers', nTraces: 10
49+
}, {
50+
n: 16000, mode: 'markers', nTraces: 10
51+
}, {
52+
n: 32000, mode: 'markers', nTraces: 10
53+
}, {
54+
n: 64000, mode: 'markers', nTraces: 10
55+
}, {
56+
n: 1000, mode: 'lines', nTraces: 10
57+
}, {
58+
n: 2000, mode: 'lines', nTraces: 10
59+
}, {
60+
n: 4000, mode: 'lines', nTraces: 10
61+
}, {
62+
n: 8000, mode: 'lines', nTraces: 10
63+
}, {
64+
n: 16000, mode: 'lines', nTraces: 10
65+
}, {
66+
n: 32000, mode: 'lines', nTraces: 10
67+
}, {
68+
n: 64000, mode: 'lines', nTraces: 10
69+
}, {
70+
n: 1000, mode: 'markers', nTraces: 100
71+
}, {
72+
n: 2000, mode: 'markers', nTraces: 100
73+
}, {
74+
n: 4000, mode: 'markers', nTraces: 100
75+
}, {
76+
n: 8000, mode: 'markers', nTraces: 100
77+
}, {
78+
n: 16000, mode: 'markers', nTraces: 100
79+
}, {
80+
n: 32000, mode: 'markers', nTraces: 100
81+
}, {
82+
n: 64000, mode: 'markers', nTraces: 100
83+
}, {
84+
n: 1000, mode: 'lines', nTraces: 100
85+
}, {
86+
n: 2000, mode: 'lines', nTraces: 100
87+
}, {
88+
n: 4000, mode: 'lines', nTraces: 100
89+
}, {
90+
n: 8000, mode: 'lines', nTraces: 100
91+
}, {
92+
n: 16000, mode: 'lines', nTraces: 100
93+
}, {
94+
n: 32000, mode: 'lines', nTraces: 100
95+
}, {
96+
n: 64000, mode: 'lines', nTraces: 100
2697
}];
2798

2899
tests.forEach(function(spec, index) {
29-
describe('Performance test scatter | size:' + spec.n, function() {
100+
describe('Performance test ' + spec.nTraces + 'scatter | size:' + spec.n + ' | mode: ' + spec.mode, function() {
30101
'use strict';
31102

32-
var y = Float64Array.from({ length: spec.n }, (_, i) => i * Math.cos(Math.sqrt(i)));
103+
var startTime, endTime;
33104

34-
var mock = {
35-
data: [{
36-
type: 'scatter',
37-
mode: 'markers',
38-
y: y
39-
}],
40-
layout: {
41-
width: 900,
42-
height: 400
105+
beforeEach(function(done) {
106+
var y = Array.from({ length: spec.n }, (_, i) => i * Math.cos(Math.sqrt(i)));
107+
var data = [];
108+
var nPerTrace = Math.floor(spec.n / spec.nTraces);
109+
for(var k = 0; k < spec.nTraces; k++) {
110+
data.push({
111+
type: 'scatter',
112+
mode: spec.mode,
113+
y: y.slice(k * nPerTrace, (k + 1) * nPerTrace),
114+
x: Array.from({ length: nPerTrace }, (_, i) => i + k * nPerTrace)
115+
});
43116
}
44-
};
45117

46-
var startTime, endTime;
118+
var mock = {
119+
data: data,
120+
layout: {
121+
showlegend: false,
122+
width: 900,
123+
height: 400
124+
}
125+
};
47126

48-
beforeEach(function(done) {
49127
startTime = performance.now();
50128

51129
// Wait for actual rendering to complete
@@ -73,7 +151,7 @@ tests.forEach(function(spec, index) {
73151
tests[index].raw[t] = delta;
74152

75153
var nodes = d3SelectAll('g.trace.scatter');
76-
expect(nodes.size()).toEqual(1);
154+
expect(nodes.size()).toEqual(spec.nTraces);
77155

78156
if(t === nTimes && index === tests.length - 1) {
79157
writeRawDataAsCSV('scatter', tests);

test/jasmine/performance_tests/scattergl_test.js

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,12 +3,13 @@ var delay = require('../assets/delay');
33
var Plotly = require('../../../lib/core');
44
var PlotlyScattergl = require('../../../lib/scattergl');
55
var writeRawDataAsCSV = require('./assets/post_process').writeRawDataAsCSV;
6+
var nSamples = require('./assets/constants').nSamples;
67

78
Plotly.register(PlotlyScattergl);
89

910
var gd = createGraphDiv();
1011

11-
const samples = Array.from({ length: 9 }, (_, i) => i);
12+
const samples = Array.from({ length: nSamples }, (_, i) => i);
1213
const nTimes = samples.length - 1;
1314

1415
var tests = [{

test/jasmine/performance_tests/violin_test.js

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,12 +4,13 @@ var d3SelectAll = require('../../strict-d3').selectAll;
44
var Plotly = require('../../../lib/core');
55
var PlotlyViolin = require('../../../lib/violin');
66
var writeRawDataAsCSV = require('./assets/post_process').writeRawDataAsCSV;
7+
var nSamples = require('./assets/constants').nSamples;
78

89
Plotly.register(PlotlyViolin);
910

1011
var gd = createGraphDiv();
1112

12-
const samples = Array.from({ length: 9 }, (_, i) => i);
13+
const samples = Array.from({ length: nSamples }, (_, i) => i);
1314
const nTimes = samples.length - 1;
1415

1516
var tests = [{

0 commit comments

Comments
 (0)