Properly draw separated points.
authorRobert Konigsberg <konigsberg@google.com>
Wed, 13 Jun 2012 20:42:28 +0000 (16:42 -0400)
committerRobert Konigsberg <konigsberg@google.com>
Wed, 13 Jun 2012 20:42:28 +0000 (16:42 -0400)
auto_tests/tests/simple_drawing.js
dygraph-canvas.js

index 3955a31..544bb81 100644 (file)
@@ -95,10 +95,39 @@ SimpleDrawingTestCase.prototype.testSeparatedPointsDontDraw = function() {
   var graph = document.getElementById("graph");
   var g = new Dygraph(
       graph,
-      [[1, 10, 11], [2, 11, null], [3, 12, 13]],
+      [[1, 10, 11],
+       [2, 11, null],
+       [3, 12, 13]],
       { colors: ['red', 'blue']});
   var htx = g.hidden_ctx_;
   assertEquals(2, CanvasAssertions.numLinesDrawn(htx, '#ff0000'));
   assertEquals(0, CanvasAssertions.numLinesDrawn(htx, '#0000ff'));
 }
 
+SimpleDrawingTestCase.prototype.testSeparatedPointsDontDraw_expanded = function() {
+  var graph = document.getElementById("graph");
+  var g = new Dygraph(
+      graph,
+      [[0, 10],
+       [1, 11],
+       [2, null],
+       [3, 13],
+       [4, 14]],
+      { colors: ['blue']});
+  var htx = g.hidden_ctx_;
+  var num_lines = 0;
+  var lines = CanvasAssertions.getLinesDrawn(htx);
+  for (var idx = 0; idx < lines.length; idx++) {
+    var line = lines[idx];
+    var color = line[1].properties.strokeStyle;
+    if (color === "#ff0000" || color === "#0000ff") {
+      console.log(line[0].args, line[1].args, color);
+    }
+  }
+
+  assertEquals(2, CanvasAssertions.numLinesDrawn(htx, '#0000ff'));
+  CanvasAssertions.assertLineDrawn(htx, [370, 87], [475, 25],
+      { strokeStyle: '#0000ff', });
+  CanvasAssertions.assertLineDrawn(htx, [56, 275], [161, 212],
+      { strokeStyle: '#0000ff', });
+}
index de8d4fe..4c99352 100644 (file)
@@ -822,9 +822,7 @@ DygraphCanvasRenderer.prototype._drawTrivialLine = function(
       if (prevX === null) {
         prevX = point.canvasx;
         prevY = point.canvasy;
-        if (j === firstIndexInSet) {
-          ctx.moveTo(point.canvasx, point.canvasy);
-        }
+        ctx.moveTo(point.canvasx, point.canvasy);
       } else {
         ctx.lineTo(point.canvasx, point.canvasy);
       }