X-Git-Url: https://adrianiainlam.tk/git/?a=blobdiff_plain;f=auto_tests%2Ftests%2Frolling_average.js;h=86b3e3c9d43d3dd69a7ae77be757c4c1a7e9fa19;hb=fcf37b294f0f83b799c756017cab8ee0ceeb9a3e;hp=2dd157f6204d71fe1cde577fd38796b423b6ca9d;hpb=77b5e09d8097138dfd4871db7a1240c787b916af;p=dygraphs.git diff --git a/auto_tests/tests/rolling_average.js b/auto_tests/tests/rolling_average.js index 2dd157f..86b3e3c 100644 --- a/auto_tests/tests/rolling_average.js +++ b/auto_tests/tests/rolling_average.js @@ -12,10 +12,6 @@ rollingAverageTestCase.prototype.setUp = function() { rollingAverageTestCase.prototype.tearDown = function() { }; -rollingAverageTestCase.prototype.getLegend = function() { - return document.getElementsByClassName("dygraph-legend")[0].textContent; -}; - rollingAverageTestCase.prototype.testRollingAverage = function() { var opts = { width: 480, @@ -33,31 +29,31 @@ rollingAverageTestCase.prototype.testRollingAverage = function() { var graph = document.getElementById("graph"); var g = new Dygraph(graph, data, opts); - g.setSelection(0); assertEquals("0: Y:0", this.getLegend()); - g.setSelection(1); assertEquals("1: Y:1", this.getLegend()); - g.setSelection(2); assertEquals("2: Y:2", this.getLegend()); - g.setSelection(3); assertEquals("3: Y:3", this.getLegend()); + g.setSelection(0); assertEquals("0: Y: 0", Util.getLegend()); + g.setSelection(1); assertEquals("1: Y: 1", Util.getLegend()); + g.setSelection(2); assertEquals("2: Y: 2", Util.getLegend()); + g.setSelection(3); assertEquals("3: Y: 3", Util.getLegend()); assertEquals(1, g.rollPeriod()); g.updateOptions({rollPeriod: 2}); - g.setSelection(0); assertEquals("0: Y:0", this.getLegend()); - g.setSelection(1); assertEquals("1: Y:0.5", this.getLegend()); - g.setSelection(2); assertEquals("2: Y:1.5", this.getLegend()); - g.setSelection(3); assertEquals("3: Y:2.5", this.getLegend()); + g.setSelection(0); assertEquals("0: Y: 0", Util.getLegend()); + g.setSelection(1); assertEquals("1: Y: 0.5", Util.getLegend()); + g.setSelection(2); assertEquals("2: Y: 1.5", Util.getLegend()); + g.setSelection(3); assertEquals("3: Y: 2.5", Util.getLegend()); assertEquals(2, g.rollPeriod()); g.updateOptions({rollPeriod: 3}); - g.setSelection(0); assertEquals("0: Y:0", this.getLegend()); - g.setSelection(1); assertEquals("1: Y:0.5", this.getLegend()); - g.setSelection(2); assertEquals("2: Y:1", this.getLegend()); - g.setSelection(3); assertEquals("3: Y:2", this.getLegend()); + g.setSelection(0); assertEquals("0: Y: 0", Util.getLegend()); + g.setSelection(1); assertEquals("1: Y: 0.5", Util.getLegend()); + g.setSelection(2); assertEquals("2: Y: 1", Util.getLegend()); + g.setSelection(3); assertEquals("3: Y: 2", Util.getLegend()); assertEquals(3, g.rollPeriod()); g.updateOptions({rollPeriod: 4}); - g.setSelection(0); assertEquals("0: Y:0", this.getLegend()); - g.setSelection(1); assertEquals("1: Y:0.5", this.getLegend()); - g.setSelection(2); assertEquals("2: Y:1", this.getLegend()); - g.setSelection(3); assertEquals("3: Y:1.5", this.getLegend()); + g.setSelection(0); assertEquals("0: Y: 0", Util.getLegend()); + g.setSelection(1); assertEquals("1: Y: 0.5", Util.getLegend()); + g.setSelection(2); assertEquals("2: Y: 1", Util.getLegend()); + g.setSelection(3); assertEquals("3: Y: 1.5", Util.getLegend()); assertEquals(4, g.rollPeriod()); }; @@ -85,3 +81,156 @@ rollingAverageTestCase.prototype.testRollBoxDoesntDisapper = function() { assertEquals("1", roll_box[0].value); }; +// Regression test for http://code.google.com/p/dygraphs/issues/detail?id=426 +rollingAverageTestCase.prototype.testRollShortFractions = function() { + var opts = { + customBars: true, + labels: ['x', 'A'] + }; + var data1 = [ [1, 10, [1, 20]] ]; + var data2 = [ [1, 10, [1, 20]], + [2, 20, [1, 30]], + ]; + + var graph = document.getElementById("graph"); + var g = new Dygraph(graph, data2, opts); + + var rolled1 = g.dataHandler_.rollingAverage(data1, 1, g); + var rolled2 = g.dataHandler_.rollingAverage(data2, 1, g); + + assertEquals(rolled1[0], rolled2[0]); +}; + +rollingAverageTestCase.prototype.testRollCustomBars = function() { + var opts = { + customBars: true, + rollPeriod: 2, + labels: ['x', 'A'] + }; + var data = [ [1, [1, 10, 20]], + [2, [1, 20, 30]], + [3, [1, 30, 40]], + [4, [1, 40, 50]] + ]; + + var graph = document.getElementById("graph"); + var g = new Dygraph(graph, data, opts); + var rolled = this.getRolledData(g, data, 1, 2); + assertEquals([1, 10, [1, 20]], rolled[0]); + assertEquals([2, 15, [1, 25]], rolled[1]); + assertEquals([3, 25, [1, 35]], rolled[2]); + assertEquals([4, 35, [1, 45]], rolled[3]); +}; + +rollingAverageTestCase.prototype.testRollErrorBars = function() { + var opts = { + errorBars: true, + rollPeriod: 2, + labels: ['x', 'A'] + }; + var data = [ [1, [10, 1]], + [2, [20, 1]], + [3, [30, 1]], + [4, [40, 1]] + ]; + + var graph = document.getElementById("graph"); + var g = new Dygraph(graph, data, opts); + var rolled = this.getRolledData(g, data, 1, 2); + assertEquals([1, 10, [8, 12]], rolled[0]); + + // variance = sqrt( pow(error) * rollPeriod) + var variance = Math.sqrt(2); + for (var i=1;i