2 * @fileoverview FILL THIS IN
4 * @author danvk@google.com (Dan Vanderkam)
6 var errorBarsTestCase
= TestCase("error-bars");
8 errorBarsTestCase
.prototype.setUp
= function() {
9 document
.body
.innerHTML
= "<div id='graph'></div>";
12 errorBarsTestCase
._origFunc
= Dygraph
.getContext
;
13 errorBarsTestCase
.prototype.setUp
= function() {
14 document
.body
.innerHTML
= "<div id='graph'></div>";
15 Dygraph
.getContext
= function(canvas
) {
16 return new Proxy(errorBarsTestCase
._origFunc(canvas
));
20 errorBarsTestCase
.prototype.tearDown
= function() {
21 Dygraph
.getContext
= errorBarsTestCase
._origFunc
;
24 errorBarsTestCase
.prototype.testErrorBarsDrawn
= function() {
47 var graph
= document
.getElementById("graph");
48 var g
= new Dygraph(graph
, data
, opts
);
52 var attrs
= {}; // TODO(danvk): fill in
54 for (var i
= 0; i
< data
.length
- 1; i
++) {
56 var xy1
= g
.toDomCoords(data
[i
][0], data
[i
][1][0]);
57 var xy2
= g
.toDomCoords(data
[i
+ 1][0], data
[i
+ 1][1][0]);
58 CanvasAssertions
.assertLineDrawn(htx
, xy1
, xy2
, attrs
);
61 xy1
= g
.toDomCoords(data
[i
][0], data
[i
][1][2]);
62 xy2
= g
.toDomCoords(data
[i
+ 1][0], data
[i
+ 1][1][2]);
63 CanvasAssertions
.assertLineDrawn(htx
, xy1
, xy2
, attrs
);
66 xy1
= g
.toDomCoords(data
[i
][0], data
[i
][1][1]);
67 xy2
= g
.toDomCoords(data
[i
+ 1][0], data
[i
+ 1][1][1]);
68 CanvasAssertions
.assertLineDrawn(htx
, xy1
, xy2
, attrs
);
71 g
.updateOptions({logscale
: true});
73 for (var i
= 0; i
< data
.length
- 1; i
++) {
75 var xy1
= g
.toDomCoords(data
[i
][0], data
[i
][1][0]);
76 var xy2
= g
.toDomCoords(data
[i
+ 1][0], data
[i
+ 1][1][0]);
77 CanvasAssertions
.assertLineDrawn(htx
, xy1
, xy2
, attrs
);
80 xy1
= g
.toDomCoords(data
[i
][0], data
[i
][1][2]);
81 xy2
= g
.toDomCoords(data
[i
+ 1][0], data
[i
+ 1][1][2]);
82 CanvasAssertions
.assertLineDrawn(htx
, xy1
, xy2
, attrs
);
85 xy1
= g
.toDomCoords(data
[i
][0], data
[i
][1][1]);
86 xy2
= g
.toDomCoords(data
[i
+ 1][0], data
[i
+ 1][1][1]);
87 CanvasAssertions
.assertLineDrawn(htx
, xy1
, xy2
, attrs
);
89 CanvasAssertions
.assertBalancedSaveRestore(htx
);
92 errorBarsTestCase
.prototype.testErrorBarsCorrectColors
= function() {
93 // Two constant series with constant error.
95 [0, [100, 50], [200, 50]],
96 [1, [100, 50], [200, 50]]
103 colors
: ['#00ff00', '#0000ff'],
110 valueRange
: [0, 300],
111 labels
: ['X', 'Y1', 'Y2']
113 var graph
= document
.getElementById("graph");
114 var g
= new Dygraph(graph
, data
, opts
);
116 // y-pixels (0=top, 299=bottom)
117 // 0- 48: empty (white)
118 // 49- 98: Y2 error bar
119 // 99: Y2 center line
120 // 100-148: Y2 error bar
121 // 149-198: Y1 error bar
122 // 199: Y1 center line
123 // 200-248: Y1 error bar
124 // 249-299: empty (white)
125 // TODO(danvk): test the edges of these regions.
127 assertEquals([0, 0, 255, 38], Util
.samplePixel(g
.hidden_
, 200, 75));
128 assertEquals([0, 0, 255, 38], Util
.samplePixel(g
.hidden_
, 200, 125));
129 assertEquals([0, 255, 0, 38], Util
.samplePixel(g
.hidden_
, 200, 175));
130 assertEquals([0, 255, 0, 38], Util
.samplePixel(g
.hidden_
, 200, 225));
134 // Regression test for http://code.google.com/p/dygraphs/issues/detail
?id
=392
135 errorBarsTestCase
.prototype.testRollingAveragePreservesNaNs
= function() {
136 var graph
= document
.getElementById("graph");
137 var g
= new Dygraph(graph
,
139 [1, [null, null], [3,1]],
140 [2, [2, 1], [null, null]],
141 [3, [null, null], [5,1]],
142 [4, [4, 0.5], [null, null]],
143 [5, [null, null], [7,1]],
144 [6, [NaN
, NaN
], [null, null]],
145 [8, [8, 1], [null, null]],
146 [10, [10, 1], [null, null]]
149 labels
: ['x', 'A', 'B' ],
150 connectSeparatedPoints
: true,
166 assertEquals(null, in_series
[4][1][0]);
167 assertEquals(null, in_series
[4][1][1]);
168 assertNaN(in_series
[5][1][0]);
169 assertNaN(in_series
[5][1][1]);
171 var out_series
= g
.rollingAverage(in_series
, 1);
172 assertNaN(out_series
[5][1][0]);
173 assertNaN(out_series
[5][1][1]);
174 assertNaN(out_series
[5][1][2]);
175 assertEquals(null, out_series
[4][1][0]);
176 assertEquals(null, out_series
[4][1][1]);
177 assertEquals(null, out_series
[4][1][1]);