Remove legacy options:
[dygraphs.git] / auto_tests / tests / error_bars.js
index 5144363..2bcee2f 100644 (file)
@@ -25,10 +25,16 @@ errorBarsTestCase.prototype.testErrorBarsDrawn = function() {
   var opts = {
     width: 480,
     height: 320,
-    drawXGrid: false,
-    drawYGrid: false,
-    drawXAxis: false,
-    drawYAxis: false,
+    axes : {
+      x : {
+        drawGrid: false,
+        drawAxis: false,
+      },
+      y : {
+        drawGrid: false,
+        drawAxis: false,
+      }
+    },
     customBars: true,
     errorBars: true
   };
@@ -86,6 +92,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);
 };
 
@@ -101,10 +108,16 @@ errorBarsTestCase.prototype.testErrorBarsCorrectColors = function() {
     sigma: 1.0,
     fillAlpha: 0.15,
     colors: ['#00ff00', '#0000ff'],
-    drawXGrid: false,
-    drawYGrid: false,
-    drawXAxis: false,
-    drawYAxis: false,
+    axes : {
+      x : {
+        drawGrid: false,
+        drawAxis: false,
+      },
+      y : {
+        drawGrid: false,
+        drawAxis: false,
+      }
+    },
     width: 400,
     height: 300,
     valueRange: [0, 300],
@@ -124,22 +137,50 @@ errorBarsTestCase.prototype.testErrorBarsCorrectColors = function() {
   // 249-299: empty (white)
   // TODO(danvk): test the edges of these regions.
 
-  var ctx = g.hidden_.getContext("2d");  // bypass Proxy
-  var imageData = ctx.getImageData(0, 0, 400, 300);
-
-  assertEquals(400, imageData.width);
-  assertEquals(300, imageData.height);
+  assertEquals([0, 0, 255, 38], Util.samplePixel(g.hidden_, 200, 75));
+  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));
+};
 
-  // returns an (r, g, b, alpha) tuple for the pixel.
-  // values are in [0, 255].
-  var getPixel = function(imageData, x, y) {
-    var i = 4 * (x + imageData.width * y);
-    var d = imageData.data;
-    return [d[i], d[i+1], d[i+2], d[i+3]];
-  };
 
-  assertEquals([0, 0, 255, 38], getPixel(imageData, 200, 75));
-  assertEquals([0, 0, 255, 38], getPixel(imageData, 200, 125));
-  assertEquals([0, 255, 0, 38], getPixel(imageData, 200, 175));
-  assertEquals([0, 255, 0, 38], getPixel(imageData, 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]);
+};