Skip to content

Commit 98252d4

Browse files
committed
add scattergeo tests
1 parent a4aa436 commit 98252d4

File tree

1 file changed

+204
-0
lines changed

1 file changed

+204
-0
lines changed
Lines changed: 204 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,204 @@
1+
var createGraphDiv = require('../assets/create_graph_div');
2+
var delay = require('../assets/delay');
3+
var Plotly = require('../../../lib/core');
4+
var PlotlyScattergeo = require('../../../lib/scattergeo');
5+
var downloadCSV = require('./assets/post_process').downloadCSV;
6+
var nSamples = require('./assets/constants').nSamples;
7+
8+
Plotly.register(PlotlyScattergeo);
9+
10+
var gd = createGraphDiv();
11+
12+
const samples = Array.from({ length: nSamples }, (_, i) => i);
13+
const nTimes = samples.length - 1;
14+
15+
var tests = [{
16+
n: 1000, mode: 'markers', nTraces: 1
17+
}, {
18+
n: 2000, mode: 'markers', nTraces: 1
19+
}, {
20+
n: 4000, mode: 'markers', nTraces: 1
21+
}, {
22+
n: 8000, mode: 'markers', nTraces: 1
23+
}, {
24+
n: 16000, mode: 'markers', nTraces: 1
25+
}, {
26+
n: 32000, mode: 'markers', nTraces: 1
27+
}, {
28+
n: 64000, mode: 'markers', nTraces: 1
29+
}, {
30+
n: 1000, mode: 'lines', nTraces: 1
31+
}, {
32+
n: 2000, mode: 'lines', nTraces: 1
33+
}, {
34+
n: 4000, mode: 'lines', nTraces: 1
35+
}, {
36+
n: 8000, mode: 'lines', nTraces: 1
37+
}, {
38+
n: 16000, mode: 'lines', nTraces: 1
39+
}, {
40+
n: 32000, mode: 'lines', nTraces: 1
41+
}, {
42+
n: 64000, mode: 'lines', nTraces: 1
43+
}, {
44+
n: 1000, mode: 'markers+lines', nTraces: 1
45+
}, {
46+
n: 2000, mode: 'markers+lines', nTraces: 1
47+
}, {
48+
n: 4000, mode: 'markers+lines', nTraces: 1
49+
}, {
50+
n: 8000, mode: 'markers+lines', nTraces: 1
51+
}, {
52+
n: 16000, mode: 'markers+lines', nTraces: 1
53+
}, {
54+
n: 32000, mode: 'markers+lines', nTraces: 1
55+
}, {
56+
n: 64000, mode: 'markers+lines', nTraces: 1
57+
}, {
58+
n: 1000, mode: 'markers', nTraces: 10
59+
}, {
60+
n: 2000, mode: 'markers', nTraces: 10
61+
}, {
62+
n: 4000, mode: 'markers', nTraces: 10
63+
}, {
64+
n: 8000, mode: 'markers', nTraces: 10
65+
}, {
66+
n: 16000, mode: 'markers', nTraces: 10
67+
}, {
68+
n: 32000, mode: 'markers', nTraces: 10
69+
}, {
70+
n: 64000, mode: 'markers', nTraces: 10
71+
}, {
72+
n: 1000, mode: 'lines', nTraces: 10
73+
}, {
74+
n: 2000, mode: 'lines', nTraces: 10
75+
}, {
76+
n: 4000, mode: 'lines', nTraces: 10
77+
}, {
78+
n: 8000, mode: 'lines', nTraces: 10
79+
}, {
80+
n: 16000, mode: 'lines', nTraces: 10
81+
}, {
82+
n: 32000, mode: 'lines', nTraces: 10
83+
}, {
84+
n: 64000, mode: 'lines', nTraces: 10
85+
}, {
86+
n: 1000, mode: 'markers+lines', nTraces: 10
87+
}, {
88+
n: 2000, mode: 'markers+lines', nTraces: 10
89+
}, {
90+
n: 4000, mode: 'markers+lines', nTraces: 10
91+
}, {
92+
n: 8000, mode: 'markers+lines', nTraces: 10
93+
}, {
94+
n: 16000, mode: 'markers+lines', nTraces: 10
95+
}, {
96+
n: 32000, mode: 'markers+lines', nTraces: 10
97+
}, {
98+
n: 64000, mode: 'markers+lines', nTraces: 10
99+
}, {
100+
n: 1000, mode: 'markers', nTraces: 100
101+
}, {
102+
n: 2000, mode: 'markers', nTraces: 100
103+
}, {
104+
n: 4000, mode: 'markers', nTraces: 100
105+
}, {
106+
n: 8000, mode: 'markers', nTraces: 100
107+
}, {
108+
n: 16000, mode: 'markers', nTraces: 100
109+
}, {
110+
n: 32000, mode: 'markers', nTraces: 100
111+
}, {
112+
n: 64000, mode: 'markers', nTraces: 100
113+
}, {
114+
n: 1000, mode: 'lines', nTraces: 100
115+
}, {
116+
n: 2000, mode: 'lines', nTraces: 100
117+
}, {
118+
n: 4000, mode: 'lines', nTraces: 100
119+
}, {
120+
n: 8000, mode: 'lines', nTraces: 100
121+
}, {
122+
n: 16000, mode: 'lines', nTraces: 100
123+
}, {
124+
n: 32000, mode: 'lines', nTraces: 100
125+
}, {
126+
n: 64000, mode: 'lines', nTraces: 100
127+
}, {
128+
n: 1000, mode: 'markers+lines', nTraces: 100
129+
}, {
130+
n: 2000, mode: 'markers+lines', nTraces: 100
131+
}, {
132+
n: 4000, mode: 'markers+lines', nTraces: 100
133+
}, {
134+
n: 8000, mode: 'markers+lines', nTraces: 100
135+
}, {
136+
n: 16000, mode: 'markers+lines', nTraces: 100
137+
}, {
138+
n: 32000, mode: 'markers+lines', nTraces: 100
139+
}, {
140+
n: 64000, mode: 'markers+lines', nTraces: 100
141+
}];
142+
143+
tests.forEach(function(spec, index) {
144+
describe('Performance test ' + spec.nTraces + 'scattergeo | size:' + spec.n + ' | mode: ' + spec.mode, function() {
145+
'use strict';
146+
147+
var startTime, endTime;
148+
149+
beforeEach(function(done) {
150+
var y = Array.from({ length: spec.n }, (_, i) => 0.001 * i * Math.cos(Math.sqrt(i)));
151+
152+
var data = [];
153+
var nPerTrace = Math.floor(spec.n / spec.nTraces);
154+
for(var k = 0; k < spec.nTraces; k++) {
155+
data.push({
156+
type: 'scattergeo',
157+
mode: spec.mode,
158+
lat: y.slice(k * nPerTrace, (k + 1) * nPerTrace),
159+
lon: Array.from({ length: nPerTrace }, (_, i) => -180 + 0.005 * (i + k * nPerTrace))
160+
});
161+
}
162+
163+
var mock = {
164+
data: data,
165+
layout: {
166+
showlegend: false,
167+
width: 900,
168+
height: 400
169+
}
170+
};
171+
172+
startTime = performance.now();
173+
174+
// Wait for actual rendering to complete
175+
requestAnimationFrame(function() {
176+
requestAnimationFrame(function() {
177+
endTime = performance.now();
178+
done();
179+
});
180+
});
181+
182+
Plotly.newPlot(gd, mock);
183+
});
184+
185+
afterEach(function(done) {
186+
delay(100)().then(done);
187+
});
188+
189+
samples.forEach(function(t) {
190+
it('should graph scattergeo traces | turn: ' + t, function() {
191+
var delta = endTime - startTime;
192+
193+
if(t === 0) {
194+
tests[index].raw = [];
195+
}
196+
tests[index].raw[t] = delta;
197+
198+
if(t === nTimes && index === tests.length - 1) {
199+
downloadCSV('scattergeo', tests);
200+
}
201+
});
202+
});
203+
});
204+
});

0 commit comments

Comments
 (0)