X-Git-Url: https://adrianiainlam.tk/git/?a=blobdiff_plain;f=auto_tests%2Ftests%2Fmissing_points.js;h=a78e0ac7f2ba20f379ceb03c5a38008fbae4ab8c;hb=27fd63fc0ca45c06318bb47dd8c0f6aa074957b8;hp=d8d1a72bf75627c681f60abf20c8d540754deacb;hpb=d8c77f390e5153637b471cc04f0ee4f557f4629e;p=dygraphs.git diff --git a/auto_tests/tests/missing_points.js b/auto_tests/tests/missing_points.js index d8d1a72..a78e0ac 100644 --- a/auto_tests/tests/missing_points.js +++ b/auto_tests/tests/missing_points.js @@ -18,7 +18,7 @@ // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN // THE SOFTWARE. -/** +/** * @fileoverview Test cases for drawing lines with missing points. * * @author konigsberg@google.com (Robert Konigsberg) @@ -85,7 +85,7 @@ MissingPointsTestCase.prototype.testSeparatedPointsDontDraw_expanded_connected = var num_lines = 0; assertEquals(3, CanvasAssertions.numLinesDrawn(htx, '#0000ff')); - CanvasAssertions.assertConsecutiveLinesDrawn(htx, + CanvasAssertions.assertConsecutiveLinesDrawn(htx, [[56, 275], [161, 212], [370, 87], [475, 25]], { strokeStyle: '#0000ff' }); }; @@ -114,12 +114,12 @@ MissingPointsTestCase.prototype.testConnectSeparatedPoints = function() { var htx = g.hidden_ctx_; assertEquals(2, CanvasAssertions.numLinesDrawn(htx, '#0000ff')); - CanvasAssertions.assertConsecutiveLinesDrawn(htx, + CanvasAssertions.assertConsecutiveLinesDrawn(htx, [[56, 225], [223, 25], [391, 125]], { strokeStyle: '#0000ff' }); assertEquals(2, CanvasAssertions.numLinesDrawn(htx, '#ff0000')); - CanvasAssertions.assertConsecutiveLinesDrawn(htx, + CanvasAssertions.assertConsecutiveLinesDrawn(htx, [[140, 275], [307, 125], [475, 225]], { strokeStyle: '#ff0000' }); }; @@ -155,12 +155,12 @@ MissingPointsTestCase.prototype.testConnectSeparatedPointsWithNan = function() { // Blue's lines are consecutive, however. assertEquals(2, CanvasAssertions.numLinesDrawn(htx, '#0000ff')); - CanvasAssertions.assertConsecutiveLinesDrawn(htx, + CanvasAssertions.assertConsecutiveLinesDrawn(htx, [[56, 244], [149, 181], [242, 118]], { strokeStyle: '#0000ff' }); }; -/* These lines contain awesome powa! +/* These lines contain awesome powa! var lines = CanvasAssertions.getLinesDrawn(htx, {strokeStyle: "#0000ff"}); for (var idx = 0; idx < lines.length; idx++) { var line = lines[idx]; @@ -188,15 +188,15 @@ MissingPointsTestCase.prototype.testErrorBarsWithMissingPoints = function() { var htx = g.hidden_ctx_; - assertEquals(8, CanvasAssertions.numLinesDrawn(htx, '#ff0000')); + assertEquals(2, CanvasAssertions.numLinesDrawn(htx, '#ff0000')); var p0 = g.toDomCoords(data[0][0], data[0][1][0]); var p1 = g.toDomCoords(data[1][0], data[1][1][0]); var p2 = g.toDomCoords(data[3][0], data[3][1][0]); var p3 = g.toDomCoords(data[4][0], data[4][1][0]); - CanvasAssertions.assertConsecutiveLinesDrawn(htx, + CanvasAssertions.assertConsecutiveLinesDrawn(htx, [p0, p1], { strokeStyle: '#ff0000' }); - CanvasAssertions.assertConsecutiveLinesDrawn(htx, + CanvasAssertions.assertConsecutiveLinesDrawn(htx, [p2, p3], { strokeStyle: '#ff0000' }); }; @@ -221,13 +221,13 @@ MissingPointsTestCase.prototype.testErrorBarsWithMissingPointsConnected = functi ); var htx = g.hidden_ctx_; - - assertEquals(8, CanvasAssertions.numLinesDrawn(htx, '#ff0000')); + + assertEquals(2, CanvasAssertions.numLinesDrawn(htx, '#ff0000')); var p1 = g.toDomCoords(data[1][0], data[1][1][0]); var p2 = g.toDomCoords(data[3][0], data[3][1][0]); var p3 = g.toDomCoords(data[5][0], data[5][1][0]); - CanvasAssertions.assertConsecutiveLinesDrawn(htx, + CanvasAssertions.assertConsecutiveLinesDrawn(htx, [p1, p2, p3], { strokeStyle: '#ff0000' }); }; @@ -239,6 +239,12 @@ MissingPointsTestCase.prototype.testCustomBarsWithMissingPoints = function() { [4, [4,5,6]], [5, [3,4,5]], [6, [null,null,null]], + [7, [2,3,4]], + [8, [1,2,3]], + [9, NaN], + [10, [2,3,4]], + [11, [3,4,5]], + [12, [NaN,NaN,NaN]] ]; var g = new Dygraph( document.getElementById("graph"), @@ -251,16 +257,23 @@ MissingPointsTestCase.prototype.testCustomBarsWithMissingPoints = function() { var htx = g.hidden_ctx_; - assertEquals(8, CanvasAssertions.numLinesDrawn(htx, '#ff0000')); + assertEquals(4, CanvasAssertions.numLinesDrawn(htx, '#ff0000')); var p0 = g.toDomCoords(data[0][0], data[0][1][1]); var p1 = g.toDomCoords(data[1][0], data[1][1][1]); - var p2 = g.toDomCoords(data[3][0], data[3][1][1]); - var p3 = g.toDomCoords(data[4][0], data[4][1][1]); - CanvasAssertions.assertConsecutiveLinesDrawn(htx, - [p0, p1], { strokeStyle: '#ff0000' }); - CanvasAssertions.assertConsecutiveLinesDrawn(htx, - [p2, p3], { strokeStyle: '#ff0000' }); + CanvasAssertions.assertLineDrawn(htx, p0, p1, { strokeStyle: '#ff0000' }); + + p0 = g.toDomCoords(data[3][0], data[3][1][1]); + p1 = g.toDomCoords(data[4][0], data[4][1][1]); + CanvasAssertions.assertLineDrawn(htx, p0, p1, { strokeStyle: '#ff0000' }); + + p0 = g.toDomCoords(data[6][0], data[6][1][1]); + p1 = g.toDomCoords(data[7][0], data[7][1][1]); + CanvasAssertions.assertLineDrawn(htx, p0, p1, { strokeStyle: '#ff0000' });; + + p0 = g.toDomCoords(data[9][0], data[9][1][1]); + p1 = g.toDomCoords(data[10][0], data[10][1][1]); + CanvasAssertions.assertLineDrawn(htx, p0, p1, { strokeStyle: '#ff0000' }); }; MissingPointsTestCase.prototype.testCustomBarsWithMissingPointsConnected = function() { @@ -284,13 +297,74 @@ MissingPointsTestCase.prototype.testCustomBarsWithMissingPointsConnected = funct ); var htx = g.hidden_ctx_; - - assertEquals(8, CanvasAssertions.numLinesDrawn(htx, '#ff0000')); + + assertEquals(2, CanvasAssertions.numLinesDrawn(htx, '#ff0000')); var p1 = g.toDomCoords(data[1][0], data[1][1][1]); var p2 = g.toDomCoords(data[3][0], data[3][1][1]); var p3 = g.toDomCoords(data[5][0], data[5][1][1]); - CanvasAssertions.assertConsecutiveLinesDrawn(htx, + CanvasAssertions.assertConsecutiveLinesDrawn(htx, [p1, p2, p3], { strokeStyle: '#ff0000' }); }; + +MissingPointsTestCase.prototype.testLeftBoundaryWithMisingPoints = function() { + var data = [ + [1, null, 3], + [2, 1, null], + [3, 0, 5], + [4, 2, 1], + [5, 4, null], + [6, 3, 2] + ]; + var g = new Dygraph( + document.getElementById("graph"), + data, + { + connectSeparatedPoints: true, + drawPoints: true, + colors: ['red','blue'] + } + ); + g.updateOptions({ dateWindow : [ 2.5, 4.5 ] }); + assertEquals(1, g.getLeftBoundary_(0)); + assertEquals(0, g.getLeftBoundary_(1)); + + var domX = g.toDomXCoord(1.9); + var closestRow = g.findClosestRow(domX); + assertEquals(1, closestRow); + + g.setSelection(closestRow); + assertEquals(1, g.selPoints_.length); + assertEquals(1, g.selPoints_[0].yval); + + g.setSelection(3); + assertEquals(2, g.selPoints_.length); + assertEquals(g.selPoints_[0].xval, g.selPoints_[1].xval); + assertEquals(2, g.selPoints_[0].yval); + assertEquals(1, g.selPoints_[1].yval); +}; + +// Regression test for issue #411 +MissingPointsTestCase.prototype.testEmptySeries = function() { + var graphDiv = document.getElementById("graph"); + var g = new Dygraph( + graphDiv, + "Time,Empty Series,Series 1,Series 2\n" + + "1381134460,,0,100\n" + + "1381134461,,1,99\n" + + "1381134462,,2,98\n" + + "1381134463,,3,97\n" + + "1381134464,,4,96\n" + + "1381134465,,5,95\n" + + "1381134466,,6,94\n" + + "1381134467,,7,93\n" + + "1381134468,,8,92\n" + + "1381134469,,9,91\n", { + visibility: [true, false, true], + dateWindow: [1381134465, 1381134467] + }); + + g.setSelection(6); + assertEquals("1381134466: Series 2: 94", Util.getLegend(graphDiv)); +};