+ titleHeight: 25,
+ labels: ['X', 'Y']
+ }
+
+ var graph = document.getElementById("graph");
+ var g = new Dygraph(graph, [ [0,0], [100,100] ], opts);
+
+ assert.deepEqual([0, 100], g.toDataCoords(100, 25));
+ assert.deepEqual([0, 0], g.toDataCoords(100, 425));
+ assert.deepEqual([100, 100], g.toDataCoords(500, 25));
+ assert.deepEqual([100, 0], g.toDataCoords(500, 425));
+
+ checkForInverses(g);
+});
+
+it('testYAxisLabelWidth', function() {
+ var opts = {
+ axes: { y: { axisLabelWidth: 100 } },
+ axisTickSize: 0,
+ rightGap: 0,
+ valueRange: [0, 100],
+ dateWindow: [0, 100],
+ width: 500,
+ height: 500,
+ labels: ['X', 'Y']
+ }
+
+ var graph = document.getElementById("graph");
+ var g = new Dygraph(graph, [ [0,0], [100,100] ], opts);
+
+ assert.deepEqual([100, 0], g.toDomCoords(0, 100));
+ assert.deepEqual([500, 486], g.toDomCoords(100, 0));
+
+ g.updateOptions({
+ axes: { y: { axisLabelWidth: 50 }},
+ });
+ assert.deepEqual([50, 0], g.toDomCoords(0, 100));
+ assert.deepEqual([500, 486], g.toDomCoords(100, 0));
+});
+
+it('testAxisTickSize', function() {
+ var opts = {
+ axes: { y: { axisLabelWidth: 100 } },
+ axisTickSize: 0,
+ rightGap: 0,
+ valueRange: [0, 100],
+ dateWindow: [0, 100],
+ width: 500,
+ height: 500,
+ labels: ['X', 'Y']
+ }
+
+ var graph = document.getElementById("graph");
+ var g = new Dygraph(graph, [ [0,0], [100,100] ], opts);
+
+ assert.deepEqual([100, 0], g.toDomCoords(0, 100));
+ assert.deepEqual([500, 486], g.toDomCoords(100, 0));
+
+ g.updateOptions({ axisTickSize : 50 });
+ assert.deepEqual([200, 0], g.toDomCoords(0, 100));
+ assert.deepEqual([500, 386], g.toDomCoords(100, 0));
+});
+
+it('testChartLogarithmic_YAxis', function() {
+ var opts = {
+ rightGap: 0,
+ valueRange: [1, 4],
+ dateWindow: [0, 10],
+ width: 400,
+ height: 400,
+ colors: ['#ff0000'],
+ axes: {
+ x: {
+ drawGrid: false,
+ drawAxis: false
+ },
+ y: {
+ drawGrid: false,
+ drawAxis: false,
+ logscale: true
+ }
+ },
+ labels: ['X', 'Y']
+ }
+
+ var graph = document.getElementById("graph");
+ var g = new Dygraph(graph, [ [1,1], [4,4] ], opts);
+
+ var epsilon = 1e-8;
+ assertDeepCloseTo([0, 4], g.toDataCoords(0, 0), epsilon);
+ assertDeepCloseTo([0, 1], g.toDataCoords(0, 400), epsilon);
+ assertDeepCloseTo([10, 4], g.toDataCoords(400, 0), epsilon);
+ assertDeepCloseTo([10, 1], g.toDataCoords(400, 400), epsilon);
+ assertDeepCloseTo([10, 2], g.toDataCoords(400, 200), epsilon);
+
+ assert.deepEqual([0, 0], g.toDomCoords(0, 4));
+ assert.deepEqual([0, 400], g.toDomCoords(0, 1));
+ assert.deepEqual([400, 0], g.toDomCoords(10, 4));
+ assert.deepEqual([400, 400], g.toDomCoords(10, 1));
+ assert.deepEqual([400, 200], g.toDomCoords(10, 2));
+
+ // Verify that the margins are adjusted appropriately for yRangePad.
+ g.updateOptions({yRangePad: 40});
+ assertDeepCloseTo([0, 4], g.toDataCoords(0, 40), epsilon);
+ assertDeepCloseTo([0, 1], g.toDataCoords(0, 360), epsilon);
+ assertDeepCloseTo([10, 4], g.toDataCoords(400, 40), epsilon);
+ assertDeepCloseTo([10, 1], g.toDataCoords(400, 360), epsilon);
+ assertDeepCloseTo([10, 2], g.toDataCoords(400, 200), epsilon);
+
+ assertDeepCloseTo([0, 40], g.toDomCoords(0, 4), epsilon);
+ assertDeepCloseTo([0, 360], g.toDomCoords(0, 1), epsilon);
+ assertDeepCloseTo([400, 40], g.toDomCoords(10, 4), epsilon);
+ assertDeepCloseTo([400, 360], g.toDomCoords(10, 1), epsilon);
+ assertDeepCloseTo([400, 200], g.toDomCoords(10, 2), epsilon);
+});
+
+it('testChartLogarithmic_XAxis', function() {
+ var opts = {
+ rightGap: 0,
+ valueRange: [1, 1000],
+ dateWindow: [1, 1000],
+ width: 400,
+ height: 400,
+ colors: ['#ff0000'],
+ axes: {
+ x: {
+ drawGrid: false,
+ drawAxis: false,
+ logscale: true
+ },
+ y: {
+ drawGrid: false,
+ drawAxis: false
+ }
+ },
+ labels: ['X', 'Y']