UNPKG

dcos-dygraphs

Version:

dygraphs is a fast, flexible open source JavaScript charting library.

193 lines (167 loc) 4.64 kB
/** * @fileoverview Tests for per-series options. * * @author danvk@google.com (Dan Vanderkam) */ import Dygraph from '../../src/dygraph'; import PixelSampler from './PixelSampler'; describe("per-series", function() { cleanupAfterEach(); it('testPerSeriesFill', function() { var opts = { width: 480, height: 320, axes : { x : { drawGrid: false, drawAxis: false, }, y : { drawGrid: false, drawAxis: false, } }, series: { Y: { fillGraph: true }, }, colors: [ '#FF0000', '#0000FF' ], fillAlpha: 0.15 }; var data = "X,Y,Z\n" + "1,0,0\n" + "2,0,1\n" + "3,0,1\n" + "4,0,0\n" + "5,0,0\n" + "6,1,0\n" + "7,1,0\n" + "8,0,0\n" ; var graph = document.getElementById("graph"); var g = new Dygraph(graph, data, opts); var sampler = new PixelSampler(g); // Inside of the "Z" bump -- no fill. assert.deepEqual([0,0,0,0], sampler.colorAtCoordinate(2.5, 0.5)); // Inside of the "Y" bump -- filled in. assert.deepEqual([255,0,0,38], sampler.colorAtCoordinate(6.5, 0.5)); }); it('testPerSeriesAlpha', function() { var opts = { width: 480, height: 320, axes : { x : { drawGrid: false, drawAxis: false, }, y : { drawGrid: false, drawAxis: false, } }, series: { Y: { fillGraph: true, fillAlpha: 0.25 }, Z: { fillGraph: true, fillAlpha: 0.75 } }, colors: [ '#FF0000', '#0000FF' ] }; var data = "X,Y,Z\n" + "1,0,0\n" + "2,0,1\n" + "3,0,1\n" + "4,0,0\n" + "5,0,0\n" + "6,1,0\n" + "7,1,0\n" + "8,0,0\n" ; var graph = document.getElementById("graph"); var g = new Dygraph(graph, data, opts); var sampler = new PixelSampler(g); // Inside of the "Y" bump -- 5% alpha. assert.deepEqual([255,0,0,63], sampler.colorAtCoordinate(6.5, 0.5)); // Inside of the "Z" bump -- 95% alpha. assert.deepEqual([0,0,255,191], sampler.colorAtCoordinate(2.5, 0.5)); }); it('testNewStyleSeries', function() { var opts = { pointSize : 5, series : { Y: { pointSize : 4 } }, }; var graph = document.getElementById("graph"); var data = "X,Y,Z\n1,0,0\n"; var g = new Dygraph(graph, data, opts); assert.equal(5, g.getOption("pointSize")); assert.equal(4, g.getOption("pointSize", "Y")); assert.equal(5, g.getOption("pointSize", "Z")); }); // TODO(konigsberg): move to multiple_axes.js it('testAxisInNewSeries', function() { var opts = { series : { D : { axis : 'y2' }, C : { axis : 1 }, B : { axis : 0 }, E : { axis : 'y' } } }; var graph = document.getElementById("graph"); var data = "X,A,B,C,D,E\n0,1,2,3,4,5\n"; var g = new Dygraph(graph, data, opts); assert.deepEqual(["A", "B", "E"], g.attributes_.seriesForAxis(0)); assert.deepEqual(["C", "D"], g.attributes_.seriesForAxis(1)); }); // TODO(konigsberg): move to multiple_axes.js it('testAxisInNewSeries_withAxes', function() { var opts = { series : { D : { axis : 'y2' }, C : { axis : 1 }, B : { axis : 0 }, E : { axis : 'y' } }, axes : { y : { pointSize : 7 }, y2 : { pointSize : 6 } } }; var graph = document.getElementById("graph"); var data = "X,A,B,C,D,E\n0,1,2,3,4,5\n"; var g = new Dygraph(graph, data, opts); assert.deepEqual(["A", "B", "E"], g.attributes_.seriesForAxis(0)); assert.deepEqual(["C", "D"], g.attributes_.seriesForAxis(1)); assert.equal(1.5, g.getOption("pointSize")); assert.equal(7, g.getOption("pointSize", "A")); assert.equal(7, g.getOption("pointSize", "B")); assert.equal(6, g.getOption("pointSize", "C")); assert.equal(6, g.getOption("pointSize", "D")); assert.equal(7, g.getOption("pointSize", "E")); }); // TODO(konigsberg): move to multiple_axes.js it('testOldAxisSpecInNewSeriesThrows', function() { var opts = { series : { D : { axis : {} }, }, }; var graph = document.getElementById("graph"); var data = "X,A,B,C,D,E\n0,1,2,3,4,5\n"; var threw = false; try { new Dygraph(graph, data, opts); } catch(e) { threw = true; } assert.isTrue(threw); }); it('testColorOption', function() { var graph = document.getElementById("graph"); var data = "X,A,B,C\n0,1,2,3\n"; var g = new Dygraph(graph, data, {}); assert.deepEqual(['rgb(64,128,0)', 'rgb(64,0,128)', 'rgb(0,128,128)'], g.getColors()); g.updateOptions({series : { B : { color : 'purple' }}}); assert.deepEqual(['rgb(64,128,0)', 'purple', 'rgb(0,128,128)'], g.getColors()); }); });