Make connectSeparatedPoints a per-series option. Add automated test and visual test.
[dygraphs.git] / auto_tests / tests / error_bars.js
index e57898b..1c3894c 100644 (file)
@@ -86,6 +86,7 @@ errorBarsTestCase.prototype.testErrorBarsDrawn = function() {
     xy2 = g.toDomCoords(data[i + 1][0], data[i + 1][1][1]);
     CanvasAssertions.assertLineDrawn(htx, xy1, xy2, attrs);
   }
+  g.destroy(); // Restore balanced saves and restores.
   CanvasAssertions.assertBalancedSaveRestore(htx);
 };
 
@@ -128,4 +129,46 @@ errorBarsTestCase.prototype.testErrorBarsCorrectColors = function() {
   assertEquals([0, 0, 255, 38], Util.samplePixel(g.hidden_, 200, 125));
   assertEquals([0, 255, 0, 38], Util.samplePixel(g.hidden_, 200, 175));
   assertEquals([0, 255, 0, 38], Util.samplePixel(g.hidden_, 200, 225));
-}
+};
+
+
+// Regression test for http://code.google.com/p/dygraphs/issues/detail?id=392
+errorBarsTestCase.prototype.testRollingAveragePreservesNaNs = function() {
+  var graph = document.getElementById("graph");
+  var data = 
+    [
+      [1, [null, null], [3,1]],
+      [2, [2, 1], [null, null]],
+      [3, [null, null], [5,1]],
+      [4, [4, 0.5], [null, null]],
+      [5, [null, null], [7,1]],
+      [6, [NaN, NaN], [null, null]],
+      [8, [8, 1], [null, null]],
+      [10, [10, 1], [null, null]]
+    ];
+  var g = new Dygraph(graph, data,
+        {
+          labels: ['x', 'A', 'B' ],
+          connectSeparatedPoints: true,
+          drawPoints: true,
+          errorBars: true
+        }
+      );
+
+  var in_series = g.dataHandler_.extractSeries(data, 1, g.attributes_);
+
+  assertEquals(null, in_series[4][1]);
+  assertEquals(null, in_series[4][2][0]);
+  assertEquals(null, in_series[4][2][1]);
+  assertNaN(in_series[5][1]);
+  assertNaN(in_series[5][2][0]);
+  assertNaN(in_series[5][2][1]);
+
+  var out_series = g.dataHandler_.rollingAverage(in_series, 1, g.attributes_);
+  assertNaN(out_series[5][1]);
+  assertNaN(out_series[5][2][0]);
+  assertNaN(out_series[5][2][1]);
+  assertEquals(null, out_series[4][1]);
+  assertEquals(null, out_series[4][2][0]);
+  assertEquals(null, out_series[4][2][1]);
+};