+ b: { axis: "y2" }
+ }
+ });
+
+ // labelsKMB doesn't apply to the x axis. This value should be different.
+ // BUG : https://code.google.com/p/dygraphs/issues/detail?id=488
+ assert.deepEqual(["1000","2000","3000"], Util.getXLabels());
+ assert.deepEqual(["0","500","1000","1500","2000"], Util.getYLabels(1));
+ assert.deepEqual(["0","500","1K","1.5K","2K"], Util.getYLabels(2));
+});
+
+/*
+ * This test shows that you can override labelsKMG2 on the axis level.
+ */
+it('testLabelsKMBG2IPerAxis', function() {
+ var g = new Dygraph(
+ document.getElementById("graph"),
+ "x,a,b\n" +
+ "1000,0,2000\n" +
+ "2000,500,1500\n" +
+ "3000,1000,1000\n" +
+ "4000,2000,0\n", {
+ labelsKMG2: false,
+ axes: {
+ y2: { labelsKMG2: true },
+ x: { labelsKMG2: true, pixelsPerLabel: 60 }
+ },
+ series: {
+ b: { axis: "y2" }
+ }
+ });
+
+ // It is weird that labelsKMG2 does something on the x axis but KMB does not.
+ // Plus I can't be sure they're doing the same thing as they're done in different
+ // bits of code.
+ // BUG : https://code.google.com/p/dygraphs/issues/detail?id=488
+ assert.deepEqual(["1024","2048","3072"], Util.getXLabels());
+ assert.deepEqual(["0","500","1000","1500","2000"], Util.getYLabels(1));
+ assert.deepEqual(["0","500","1000","1.46k","1.95k"], Util.getYLabels(2));
+});
+
+/**
+ * This test shows you can override sigFigs on the axis level.
+ */
+it('testSigFigsPerAxis', function() {
+ var g = new Dygraph(
+ document.getElementById("graph"),
+ "x,a,b\n" +
+ "1000,0,2000\n" +
+ "2000,500,1500\n" +
+ "3000,1000,1000\n" +
+ "4000,2000,0\n", {
+ sigFigs: 2,
+ axes: {
+ y2: { sigFigs: 6 },
+ x: { sigFigs: 8 }
+ },
+ series: {
+ b: { axis: "y2" }
+ }
+
+ });
+ // sigFigs doesn't apply to the x axis. This value should be different.
+ // BUG : https://code.google.com/p/dygraphs/issues/detail?id=488
+ assert.deepEqual(["1000","2000","3000"], Util.getXLabels());
+ assert.deepEqual(["0.0","5.0e+2","1.0e+3","1.5e+3","2.0e+3"], Util.getYLabels(1));
+ assert.deepEqual(["0.00000","500.000","1000.00","1500.00","2000.00"], Util.getYLabels(2));
+});
+
+/**
+ * This test shows you can override digitsAfterDecimal on the axis level.
+ */
+it('testDigitsAfterDecimalPerAxis', function() {
+ var g = new Dygraph(
+ document.getElementById("graph"),
+ "x,a,b\n" +
+ "0.006,0.001,0.008\n" +
+ "0.007,0.002,0.007\n" +
+ "0.008,0.003,0.006\n" +
+ "0.009,0.004,0.005\n", {
+ digitsAfterDecimal: 1,
+ series: {
+ b: { axis: "y2" }
+ }
+
+ });
+
+ g.updateOptions({ axes: { y: { digitsAfterDecimal: 3 }}});
+ assert.deepEqual(["0.001","0.002","0.002","0.003","0.003","0.004","0.004"], Util.getYLabels(1));
+ g.updateOptions({ axes: { y: { digitsAfterDecimal: 4 }}});
+ assert.deepEqual(["0.001","0.0015","0.002","0.0025","0.003","0.0035","0.004"], Util.getYLabels(1));
+ g.updateOptions({ axes: { y: { digitsAfterDecimal: 5 }}});
+ assert.deepEqual(["0.001","0.0015","0.002","0.0025","0.003","0.0035","0.004"], Util.getYLabels(1));
+ g.updateOptions({ axes: { y: { digitsAfterDecimal: null }}});
+ assert.deepEqual(["1e-3","2e-3","2e-3","3e-3","3e-3","4e-3","4e-3"], Util.getYLabels(1));
+
+ g.updateOptions({ axes: { y2: { digitsAfterDecimal: 3 }}});
+ assert.deepEqual(["0.005","0.006","0.006","0.007","0.007","0.008","0.008"], Util.getYLabels(2));
+ g.updateOptions({ axes: { y2: { digitsAfterDecimal: 4 }}});
+ assert.deepEqual(["0.005","0.0055","0.006","0.0065","0.007","0.0075","0.008"], Util.getYLabels(2));
+ g.updateOptions({ axes: { y2: { digitsAfterDecimal: 5 }}});
+ assert.deepEqual(["0.005","0.0055","0.006","0.0065","0.007","0.0075","0.008"], Util.getYLabels(2));
+ g.updateOptions({ axes: { y2: { digitsAfterDecimal: null }}});
+ assert.deepEqual(["5e-3","6e-3","6e-3","7e-3","7e-3","7e-3","8e-3"], Util.getYLabels(2));
+
+
+ // digitsAfterDecimal is ignored for the x-axis.
+ // BUG : https://code.google.com/p/dygraphs/issues/detail?id=488
+ g.updateOptions({ axes: { x: { digitsAfterDecimal: 3 }}});
+ assert.deepEqual(["0.006","0.007","0.008"], Util.getXLabels());
+ g.updateOptions({ axes: { x: { digitsAfterDecimal: 4 }}});
+ assert.deepEqual(["0.006","0.007","0.008"], Util.getXLabels());
+ g.updateOptions({ axes: { x: { digitsAfterDecimal: 5 }}});
+ assert.deepEqual(["0.006","0.007","0.008"], Util.getXLabels());
+ g.updateOptions({ axes: { x: { digitsAfterDecimal: null }}});
+ assert.deepEqual(["0.006","0.007","0.008"], Util.getXLabels());
+});
+
+/**
+ * This test shows you can override digitsAfterDecimal on the axis level.
+ */
+it('testMaxNumberWidthPerAxis', function() {
+ var g = new Dygraph(
+ document.getElementById("graph"),
+ "x,a,b\n" +
+ "12401,12601,12804\n" +
+ "12402,12602,12803\n" +
+ "12403,12603,12802\n" +
+ "12404,12604,12801\n", {
+ maxNumberWidth: 1,
+ series: {
+ b: { axis: "y2" }