Merge pull request #674 from danvk/module
[dygraphs.git] / auto_tests / tests / range_tests.js
index bdb87de..ff1018e 100644 (file)
  *
  * @author konigsberg@google.com (Robert Konigsberg)
  */
+
+import Dygraph from '../../src/dygraph';
+
+import DygraphOps from './DygraphOps';
+import {assertDeepCloseTo} from './custom_asserts';
+
 var ZERO_TO_FIFTY = [[ 10, 0 ] , [ 20, 50 ]];
 var ZERO_TO_FIFTY_STEPS = (function() {
   var a = [];
@@ -42,19 +48,18 @@ var FIVE_TO_ONE_THOUSAND = [
 
 describe("range-tests", function() {
 
-beforeEach(function() {
-  document.body.innerHTML = "<div id='graph'></div>";
-});
+cleanupAfterEach();
 
 var createGraph = function(opts, data, expectRangeX, expectRangeY) {
   if (data === undefined) data = ZERO_TO_FIFTY_STEPS;
   if (expectRangeX === undefined) expectRangeX = [10, 20];
   if (expectRangeY === undefined) expectRangeY = [0, 55];
-  var graph = document.getElementById("graph");
-  var g = new Dygraph(graph, data, opts);
+  if (!opts) opts = {};
+  opts['labels'] = ['X', 'Y'];
+  var g = new Dygraph('graph', data, opts);
 
-  assert.equalsDelta(expectRangeX, g.xAxisRange(), 0.01);
-  assert.equalsDelta(expectRangeY, g.yAxisRange(0), 0.01);
+  assertDeepCloseTo(expectRangeX, g.xAxisRange(), 0.01);
+  assertDeepCloseTo(expectRangeY, g.yAxisRange(0), 0.01);
 
   return g;
 };
@@ -123,16 +128,16 @@ var zoom = function(g, xRange, yRange) {
   DygraphOps.dispatchMouseMove(g, xRange[1], yRange[0]); // this is really necessary.
   DygraphOps.dispatchMouseUp(g, xRange[1], yRange[0]);
 
-  assert.equalsDelta(xRange, g.xAxisRange(), 0.2);
-  // assert.equalsDelta(originalYRange, g.yAxisRange(0), 0.2); // Not true, it's something in the middle.
+  assertDeepCloseTo(xRange, g.xAxisRange(), 0.2);
+  // assert.closeTo(originalYRange, g.yAxisRange(0), 0.2); // Not true, it's something in the middle.
 
   var midX = (xRange[1] - xRange[0]) / 2;
   DygraphOps.dispatchMouseDown(g, midX, yRange[0]);
   DygraphOps.dispatchMouseMove(g, midX, yRange[1]); // this is really necessary.
   DygraphOps.dispatchMouseUp(g, midX, yRange[1]);
 
-  assert.equalsDelta(xRange, g.xAxisRange(), 0.2);
-  assert.equalsDelta(yRange, g.yAxisRange(0), 0.2);
+  assertDeepCloseTo(xRange, g.xAxisRange(), 0.2);
+  assertDeepCloseTo(yRange, g.yAxisRange(0), 0.2);
 }
 
 
@@ -144,13 +149,13 @@ it('testEmptyUpdateOptions_doesntUnzoom', function() {
   var g = createGraph();
   zoom(g, [ 11, 18 ], [ 35, 40 ]);
 
-  assert.equalsDelta([11, 18], g.xAxisRange(), 0.1);
-  assert.equalsDelta([35, 40], g.yAxisRange(0), 0.2);
+  assertDeepCloseTo([11, 18], g.xAxisRange(), 0.1);
+  assertDeepCloseTo([35, 40], g.yAxisRange(0), 0.2);
 
   g.updateOptions({});
 
-  assert.equalsDelta([11, 18], g.xAxisRange(), 0.1);
-  assert.equalsDelta([35, 40], g.yAxisRange(0), 0.2);
+  assertDeepCloseTo([11, 18], g.xAxisRange(), 0.1);
+  assertDeepCloseTo([35, 40], g.yAxisRange(0), 0.2);
 });
 
 /**
@@ -172,7 +177,10 @@ it('testRestoreOriginalRanges_viaUpdateOptions', function() {
  * Verify that log scale axis range is properly specified.
  */
 it('testLogScaleExcludesZero', function() {
-  var g = new Dygraph("graph", FIVE_TO_ONE_THOUSAND, { logscale : true });
+  var g = new Dygraph("graph", FIVE_TO_ONE_THOUSAND, {
+    logscale: true,
+    labels: ['X', 'Y']
+  });
   assert.deepEqual([10, 1099], g.yAxisRange(0));
  
   g.updateOptions({ logscale : false });
@@ -183,7 +191,10 @@ it('testLogScaleExcludesZero', function() {
  * Verify that includeZero range is properly specified.
  */
 it('testIncludeZeroIncludesZero', function() {
-  var g = new Dygraph("graph", [[0, 500], [500, 1000]], { includeZero : true });
+  var g = new Dygraph("graph", [[0, 500], [500, 1000]], {
+    includeZero: true,
+    labels: ['X', 'Y']
+  });
   assert.deepEqual([0, 1100], g.yAxisRange(0));
  
   g.updateOptions({ includeZero : false });
@@ -233,9 +244,12 @@ it('testIncludeZeroPerAxis', function() {
  * Verify that very large Y ranges don't break things.
  */ 
 it('testHugeRange', function() {
-  var g = new Dygraph("graph", [[0, -1e120], [1, 1e230]], { includeZero : true });
-  assert.equalsDelta(1, -1e229 / g.yAxisRange(0)[0], 0.001);
-  assert.equalsDelta(1, 1.1e230 / g.yAxisRange(0)[1], 0.001);
+  var g = new Dygraph("graph", [[0, -1e120], [1, 1e230]], {
+    includeZero: true,
+    labels: ['X', 'Y']
+  });
+  assert.closeTo(1, -1e229 / g.yAxisRange(0)[0], 0.001);
+  assert.closeTo(1, 1.1e230 / g.yAxisRange(0)[1], 0.001);
 });
 
 /**