X-Git-Url: https://adrianiainlam.tk/git/?a=blobdiff_plain;f=auto_tests%2Ftests%2Frolling_average.js;h=4b68da20057ab90397f9355ebf0c83cfcaaf2d81;hb=ce31caf22475e3e1fd6d9fea192d61ff4fcd7fac;hp=c0af8f94c365d556a678d9e907dad68ec71c6933;hpb=20bb4e9d1e3da5bedaee7584a9e91aefd9e3a6d4;p=dygraphs.git diff --git a/auto_tests/tests/rolling_average.js b/auto_tests/tests/rolling_average.js index c0af8f9..4b68da2 100644 --- a/auto_tests/tests/rolling_average.js +++ b/auto_tests/tests/rolling_average.js @@ -3,16 +3,16 @@ * * @author danvk@google.com (Dan Vanderkam) */ -var rollingAverageTestCase = TestCase("rolling-average"); -rollingAverageTestCase.prototype.setUp = function() { - document.body.innerHTML = "
"; -}; +import Dygraph from '../../src/dygraph'; -rollingAverageTestCase.prototype.tearDown = function() { -}; +import Util from './Util'; + +describe("rolling-average", function() { -rollingAverageTestCase.prototype.testRollingAverage = function() { +cleanupAfterEach(); + +it('testRollingAverage', function() { var opts = { width: 480, height: 320, @@ -29,35 +29,35 @@ rollingAverageTestCase.prototype.testRollingAverage = function() { var graph = document.getElementById("graph"); var g = new Dygraph(graph, data, opts); - 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.setSelection(0); assert.equal("0: Y: 0", Util.getLegend()); + g.setSelection(1); assert.equal("1: Y: 1", Util.getLegend()); + g.setSelection(2); assert.equal("2: Y: 2", Util.getLegend()); + g.setSelection(3); assert.equal("3: Y: 3", Util.getLegend()); + assert.equal(1, g.rollPeriod()); g.updateOptions({rollPeriod: 2}); - 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.setSelection(0); assert.equal("0: Y: 0", Util.getLegend()); + g.setSelection(1); assert.equal("1: Y: 0.5", Util.getLegend()); + g.setSelection(2); assert.equal("2: Y: 1.5", Util.getLegend()); + g.setSelection(3); assert.equal("3: Y: 2.5", Util.getLegend()); + assert.equal(2, g.rollPeriod()); g.updateOptions({rollPeriod: 3}); - 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.setSelection(0); assert.equal("0: Y: 0", Util.getLegend()); + g.setSelection(1); assert.equal("1: Y: 0.5", Util.getLegend()); + g.setSelection(2); assert.equal("2: Y: 1", Util.getLegend()); + g.setSelection(3); assert.equal("3: Y: 2", Util.getLegend()); + assert.equal(3, g.rollPeriod()); g.updateOptions({rollPeriod: 4}); - 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()); -}; - -rollingAverageTestCase.prototype.testRollBoxDoesntDisapper = function() { + g.setSelection(0); assert.equal("0: Y: 0", Util.getLegend()); + g.setSelection(1); assert.equal("1: Y: 0.5", Util.getLegend()); + g.setSelection(2); assert.equal("2: Y: 1", Util.getLegend()); + g.setSelection(3); assert.equal("3: Y: 1.5", Util.getLegend()); + assert.equal(4, g.rollPeriod()); +}); + +it('testRollBoxDoesntDisapper', function() { var opts = { showRoller: true }; @@ -72,31 +72,167 @@ rollingAverageTestCase.prototype.testRollBoxDoesntDisapper = function() { var g = new Dygraph(graph, data, opts); var roll_box = graph.getElementsByTagName("input"); - assertEquals(1, roll_box.length); - assertEquals("1", roll_box[0].value); + assert.equal(1, roll_box.length); + assert.equal("1", roll_box[0].value); graph.style.width = "500px"; g.resize(); - assertEquals(1, roll_box.length); - assertEquals("1", roll_box[0].value); -}; + assert.equal(1, roll_box.length); + assert.equal("1", roll_box[0].value); +}); // Regression test for http://code.google.com/p/dygraphs/issues/detail?id=426 -rollingAverageTestCase.prototype.testRollShortFractions = function() { +it('testRollShortFractions', function() { + var opts = { + customBars: true, + labels: ['x', 'A', 'B'] + }; + 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); + + assert.deepEqual(rolled1[0], rolled2[0]); +}); + +it('testRollCustomBars', function() { var opts = { customBars: true, + rollPeriod: 2, labels: ['x', 'A'] }; - var data1 = [ [1, [1, 10, 20]] ]; - var data2 = [ [1, [1, 10, 20]], - [2, [1, 20, 30]], + 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, data1, opts); + var g = new Dygraph(graph, data, opts); + var rolled = getRolledData(g, data, 1, 2); + assert.deepEqual([1, 10, [1, 20]], rolled[0]); + assert.deepEqual([2, 15, [1, 25]], rolled[1]); + assert.deepEqual([3, 25, [1, 35]], rolled[2]); + assert.deepEqual([4, 35, [1, 45]], rolled[3]); +}); + +it('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 rolled1 = g.rollingAverage(data1, 1); - var rolled2 = g.rollingAverage(data2, 1); + var graph = document.getElementById("graph"); + var g = new Dygraph(graph, data, opts); + var rolled = getRolledData(g, data, 1, 2); + assert.deepEqual([1, 10, [8, 12]], rolled[0]); + + // variance = sqrt( pow(error) * rollPeriod) + var variance = Math.sqrt(2); + for (var i=1;i