-
-
Notifications
You must be signed in to change notification settings - Fork 1.9k
/
Copy pathscatterpolar_test.js
118 lines (102 loc) · 3.23 KB
/
scatterpolar_test.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
var Plotly = require('@lib');
var Lib = require('@src/lib');
var ScatterPolar = require('@src/traces/scatterpolar');
var createGraphDiv = require('../assets/create_graph_div');
var destroyGraphDiv = require('../assets/destroy_graph_div');
var fail = require('../assets/fail_test');
var mouseEvent = require('../assets/mouse_event');
var customAssertions = require('../assets/custom_assertions');
var assertHoverLabelContent = customAssertions.assertHoverLabelContent;
describe('Test scatterpolar trace defaults:', function() {
var traceOut;
function _supply(traceIn, layout) {
traceOut = {};
ScatterPolar.supplyDefaults(traceIn, traceOut, '#444', layout || {});
}
it('should truncate *r* when longer than *theta*', function() {
_supply({
r: [1, 2, 3, 4, 5],
theta: [1, 2, 3]
});
expect(traceOut.r).toEqual([1, 2, 3]);
expect(traceOut.theta).toEqual([1, 2, 3]);
});
it('should truncate *theta* when longer than *r*', function() {
_supply({
r: [1, 2, 3],
theta: [1, 2, 3, 4, 5]
});
expect(traceOut.r).toEqual([1, 2, 3]);
expect(traceOut.theta).toEqual([1, 2, 3]);
});
});
describe('Test scatterpolar hover:', function() {
var gd;
afterEach(destroyGraphDiv);
function run(specs) {
gd = createGraphDiv();
var fig = Lib.extendDeep(
{width: 700, height: 500},
specs.mock || require('@mocks/polar_scatter.json')
);
if(specs.patch) {
fig = specs.patch(fig);
}
var pos = specs.pos || [200, 200];
return Plotly.plot(gd, fig).then(function() {
mouseEvent('mousemove', pos[0], pos[1]);
assertHoverLabelContent(specs);
});
}
[{
desc: 'base',
nums: 'r: 4.022892\nθ: 128.342°',
name: 'Trial 3'
}, {
desc: '(no labels - out of sector)',
patch: function(fig) {
fig.layout.polar.sector = [15, 75];
return fig;
},
pos: [144, 350],
nums: '',
name: ''
}, {
desc: 'on a `thetaunit: radians` polar subplot',
patch: function(fig) {
fig.layout.polar.angularaxis.thetaunit = 'radians';
return fig;
},
nums: 'r: 4.022892\nθ: 2.239991',
name: 'Trial 3'
}, {
desc: 'on work on log radial axis',
patch: function(fig) {
fig.layout.polar.radialaxis.type = 'log';
return fig;
},
nums: 'r: 1.108937\nθ: 115.4969°',
name: 'Trial 3'
}, {
desc: 'on fills',
mock: require('@mocks/polar_fills.json'),
pos: [300, 230],
nums: 'trace 2',
name: ''
}, {
desc: 'on category axes',
mock: require('@mocks/polar_categories.json'),
patch: function(fig) {
fig.data.forEach(function(t) { t.fill = 'none'; });
return fig;
},
pos: [465, 90],
nums: 'r: 4\nθ: d',
name: 'angular cate...'
}]
.forEach(function(specs) {
it('should generate correct hover labels ' + specs.desc, function(done) {
run(specs).catch(fail).then(done);
});
});
});