Fix flaky testCustomBarsWithNegativeValuesInLogScale. DygraphLayout._calcYNormal...
authorPaul Holden <paul.holden@gmail.com>
Fri, 27 Sep 2013 07:35:38 +0000 (08:35 +0100)
committerPaul Holden <paul.holden@gmail.com>
Fri, 27 Sep 2013 07:47:25 +0000 (08:47 +0100)
dygraph-canvas.js
dygraph-layout.js

index cba4f44..47d3e26 100644 (file)
@@ -334,6 +334,9 @@ DygraphCanvasRenderer._drawSeries = function(e,
       point = arr[i];
     }
 
+    // FIXME: The 'canvasy != canvasy' test here catches NaN values but the test
+    // doesn't catch Infinity values. Could change this to
+    // !isFinite(point.canvasy), but I assume it avoids isNaN for performance?
     if (point.canvasy === null || point.canvasy != point.canvasy) {
       if (stepPlot && prevCanvasX !== null) {
         // Draw a horizontal line to the start of the missing data
index 56fdc3b..c1c2bc4 100644 (file)
@@ -213,7 +213,8 @@ DygraphLayout.prototype._evaluateLimits = function() {
 
 DygraphLayout._calcYNormal = function(axis, value, logscale) {
   if (logscale) {
-    return 1.0 - ((Dygraph.log10(value) - Dygraph.log10(axis.minyval)) * axis.ylogscale);
+    var x = 1.0 - ((Dygraph.log10(value) - Dygraph.log10(axis.minyval)) * axis.ylogscale);
+    return isFinite(x) ? x : NaN;
   } else {
     return 1.0 - ((value - axis.minyval) * axis.yscale);
   }