X-Git-Url: https://adrianiainlam.tk/git/?a=blobdiff_plain;ds=sidebyside;f=auto_tests%2Ftests%2Fpathological_cases.js;h=ade714c8a888243dcadb48c24db565925a10c0ae;hb=89fdcedbda6906d90e15d84285c4f6c0b8d96d28;hp=9d24b99b8aee529b630ee459939d23a82746329d;hpb=2c623e51b27d07159302a20161596bb50df4b19c;p=dygraphs.git diff --git a/auto_tests/tests/pathological_cases.js b/auto_tests/tests/pathological_cases.js index 9d24b99..ade714c 100644 --- a/auto_tests/tests/pathological_cases.js +++ b/auto_tests/tests/pathological_cases.js @@ -4,16 +4,16 @@ * * @author dan@dygraphs.com (Dan Vanderkam) */ -var pathologicalCasesTestCase = TestCase("pathological-cases"); +describe("pathological-cases", function() { -pathologicalCasesTestCase.prototype.setUp = function() { +beforeEach(function() { document.body.innerHTML = "
"; -}; +}); -pathologicalCasesTestCase.prototype.tearDown = function() { -}; +afterEach(function() { +}); -pathologicalCasesTestCase.prototype.testZeroPoint = function() { +it('testZeroPoint', function() { var opts = { width: 480, height: 320 @@ -22,9 +22,9 @@ pathologicalCasesTestCase.prototype.testZeroPoint = function() { var graph = document.getElementById("graph"); var g = new Dygraph(graph, data, opts); -}; +}); -pathologicalCasesTestCase.prototype.testOnePoint = function() { +it('testOnePoint', function() { var opts = { width: 480, height: 320 @@ -34,9 +34,89 @@ pathologicalCasesTestCase.prototype.testOnePoint = function() { var graph = document.getElementById("graph"); var g = new Dygraph(graph, data, opts); -}; +}); -pathologicalCasesTestCase.prototype.testNullLegend = function() { +it('testCombinations', function() { + var dataSets = { + empty: [], + onePoint: [[10, 2]], + nanPoint: [[10, NaN]], + nanPoints: [[10, NaN], [20, NaN]], + multiNan1: [[10, NaN, 2], [20, 3, NaN]], + multiNan2: [[10, NaN, 2], [20, NaN, 4]], + multiNan3: [[10, NaN, NaN], [20, 3, 4], [30, NaN, NaN]], + atZero: [[0, 0]], + atZero2: [[0, 0, 0]], + negative: [[-10, -1]], + acrossZero: [[-10, 1], [10, 2]], + normal: [[0,1,9], [10,3,5], [20,2,7], [30,4,3]] + }; + + var baseOpts = { + lines: {}, + stacked: { + stackedGraph: true + } + }; + + var variantOpts = { + none: {}, + avoidMinZero: { + avoidMinZero: true, + includeZero: true + }, + padded: { + includeZero: true, + drawAxesAtZero: true, + xRangePad: 2, + yRangePad: 4 + } + }; + + for (var baseName in baseOpts) { + var base = baseOpts[baseName]; + for (var variantName in variantOpts) { + var variant = variantOpts[variantName]; + + var opts = { + width: 300, + height: 150, + labelsDivWidth: 100, + pointSize: 10 + }; + for (var key in base) { + if (base.hasOwnProperty(key)) opts[key] = base[key]; + } + for (var key in variant) { + if (variant.hasOwnProperty(key)) opts[key] = variant[key]; + } + + var h = document.createElement('h3'); + h.appendChild(document.createTextNode(baseName + ' ' + variantName)); + document.body.appendChild(h); + for (var dataName in dataSets) { + var data = dataSets[dataName]; + + var box = document.createElement('fieldset'); + box.style.display = 'inline-block'; + var legend = document.createElement('legend'); + legend.appendChild(document.createTextNode(dataName)); + box.appendChild(legend); + var gdiv = document.createElement('div'); + gdiv.style.display = 'inline-block'; + box.appendChild(gdiv); + document.body.appendChild(box); + + var cols = data && data[0] ? data[0].length : 0; + opts.labels = ['X', 'A', 'B', 'C'].slice(0, cols); + + var g = new Dygraph(gdiv, data, opts); + } + } + } +}); + +it('testNullLegend', function() { var opts = { width: 480, height: 320, @@ -47,43 +127,37 @@ pathologicalCasesTestCase.prototype.testNullLegend = function() { var graph = document.getElementById("graph"); var g = new Dygraph(graph, data, opts); -}; +}); -pathologicalCasesTestCase.prototype.testNoWidth = function() { - var opts = { - height: 300, - }; +it('testDivAsString', function() { var data = "X,Y\n" + "1,2\n"; - var graph = document.getElementById("graph"); - var g = new Dygraph(graph, data, opts); - assertEquals(480, g.getOption("width")); - assertEquals(300, g.getOption("height")); -}; + var g = new Dygraph('graph', data, {}); +}); -pathologicalCasesTestCase.prototype.testNoHeight = function() { - var opts = { - width: 479, - }; +it('testConstantSeriesNegative', function() { var data = "X,Y\n" + - "1,2\n"; + "1,-1\n" + + "2,-1\n"; - var graph = document.getElementById("graph"); - var g = new Dygraph(graph, data, opts); - assertEquals(479, g.getOption("width")); - assertEquals(320, g.getOption("height")); -}; + var g = new Dygraph('graph', data, {}); + // This check could be loosened to + // g.yAxisRange()[0] < g.yAxisRange()[1] if it breaks in the future. + assert.deepEqual([-1.1, -0.9], g.yAxisRange()); +}); -pathologicalCasesTestCase.prototype.testNoWidthOrHeight = function() { - var opts = { - }; + +it('testConstantSeriesNegativeIncludeZero', function() { var data = "X,Y\n" + - "1,2\n"; + "1,-1\n" + + "2,-1\n"; - var graph = document.getElementById("graph"); - var g = new Dygraph(graph, data, opts); - assertEquals(480, g.getOption("width")); - assertEquals(320, g.getOption("height")); -}; + var g = new Dygraph('graph', data, {includeZero: true}); + // This check could be loosened to + // g.yAxisRange()[0] < g.yAxisRange()[1] if it breaks in the future. + assert.deepEqual([-1.1, 0], g.yAxisRange()); +}); + +});