+
+ // First gap, no data due to NaN contagion.
+ dom = g.toDomCoords(12.1, 0.9);
+ res = g.findStackedPoint(dom[0], dom[1]);
+ assertEquals(3, res.row);
+ assertEquals(undefined, res.seriesName);
+
+ // Second gap, no data due to NaN contagion.
+ dom = g.toDomCoords(15.1, 0.9);
+ res = g.findStackedPoint(dom[0], dom[1]);
+ assertEquals(6, res.row);
+ assertEquals(undefined, res.seriesName);
+
+ // Isolated points should work, finding series b in this case.
+ dom = g.toDomCoords(15.9, 3.1);
+ res = g.findStackedPoint(dom[0], dom[1]);
+ assertEquals(7, res.row);
+ assertEquals('b', res.seriesName);
+};
+
+CallbackTestCase.prototype.testGapHighlight = function() {
+ var dataGap = [
+ [1, null, 3],
+ [2, 2, null],
+ [3, null, 5],
+ [4, 4, null],
+ [5, null, 7],
+ [6, NaN, null],
+ [8, 8, null],
+ [10, 10, null]];
+
+ var h_row;
+ var h_pts;
+
+ var highlightCallback = function(e, x, pts, row) {
+ h_row = row;
+ h_pts = pts;
+ };
+
+ var graph = document.getElementById("graph");
+ var g = new Dygraph(graph, dataGap, {
+ width: 400,
+ height: 300,
+ //stackedGraph: true,
+ connectSeparatedPoints: true,
+ drawPoints: true,
+ labels: ['x', 'A', 'B'],
+ highlightCallback : highlightCallback
+ });
+
+ DygraphOps.dispatchMouseMove(g, 1.1, 10);
+ //point from series B
+ assertEquals(0, h_row);
+ assertEquals(1, h_pts.length);
+ assertEquals(3, h_pts[0].yval);
+ assertEquals('B', h_pts[0].name);
+
+ DygraphOps.dispatchMouseMove(g, 6.1, 10);
+ // A is NaN at x=6
+ assertEquals(1, h_pts.length);
+ assert(isNaN(h_pts[0].yval));
+ assertEquals('A', h_pts[0].name);
+
+ DygraphOps.dispatchMouseMove(g, 8.1, 10);
+ //point from series A
+ assertEquals(6, h_row);
+ assertEquals(1, h_pts.length);
+ assertEquals(8, h_pts[0].yval);
+ assertEquals('A', h_pts[0].name);