Merge pull request #674 from danvk/module
[dygraphs.git] / auto_tests / tests / utils_test.js
index 5bd7f8d..6d96e26 100644 (file)
@@ -4,59 +4,61 @@
  * @author danvdk@gmail.com (Dan Vanderkam)
  */
 
-var UtilsTestCase = TestCase("utils-tests");
+import * as utils from '../../src/dygraph-utils';
 
-UtilsTestCase.prototype.testUpdate = function() {
+describe("utils-tests", function() {
+
+it('testUpdate', function() {
   var a = {
     a: 1,
     b: [1, 2, 3],
     c: { x: 1, y: 2},
     d: { f: 10, g: 20}
   };
-  assertEquals(1, a['a']);
-  assertEquals([1, 2, 3], a['b']);
-  assertEquals({x: 1, y: 2}, a['c']);
-  assertEquals({f: 10, g: 20}, a['d']);
+  assert.equal(1, a['a']);
+  assert.deepEqual([1, 2, 3], a['b']);
+  assert.deepEqual({x: 1, y: 2}, a['c']);
+  assert.deepEqual({f: 10, g: 20}, a['d']);
 
-  Dygraph.update(a, { c: { x: 2 } });
-  assertEquals({x: 2}, a['c']);
+  utils.update(a, { c: { x: 2 } });
+  assert.deepEqual({x: 2}, a['c']);
 
-  Dygraph.update(a, { d: null });
-  assertEquals(null, a['d']);
+  utils.update(a, { d: null });
+  assert.equal(null, a['d']);
 
-  Dygraph.update(a, { a: 10, b: [1, 2] });
-  assertEquals(10, a['a']);
-  assertEquals([1, 2], a['b']);
-  assertEquals({x: 2}, a['c']);
-  assertEquals(null, a['d']);
-};
+  utils.update(a, { a: 10, b: [1, 2] });
+  assert.equal(10, a['a']);
+  assert.deepEqual([1, 2], a['b']);
+  assert.deepEqual({x: 2}, a['c']);
+  assert.equal(null, a['d']);
+});
 
-UtilsTestCase.prototype.testUpdateDeep = function() {
+it('testUpdateDeep', function() {
   var a = {
     a: 1,
     b: [1, 2, 3],
     c: { x: 1, y: 2},
     d: { f: 10, g: 20}
   };
-  assertEquals(1, a['a']);
-  assertEquals([1, 2, 3], a['b']);
-  assertEquals({x: 1, y: 2}, a['c']);
-  assertEquals({f: 10, g: 20}, a['d']);
+  assert.equal(1, a['a']);
+  assert.deepEqual([1, 2, 3], a['b']);
+  assert.deepEqual({x: 1, y: 2}, a['c']);
+  assert.deepEqual({f: 10, g: 20}, a['d']);
 
-  Dygraph.updateDeep(a, { c: { x: 2 } });
-  assertEquals({x: 2, y: 2}, a['c']);
+  utils.updateDeep(a, { c: { x: 2 } });
+  assert.deepEqual({x: 2, y: 2}, a['c']);
 
-  Dygraph.updateDeep(a, { d: null });
-  assertEquals(null, a['d']);
+  utils.updateDeep(a, { d: null });
+  assert.equal(null, a['d']);
 
-  Dygraph.updateDeep(a, { a: 10, b: [1, 2] });
-  assertEquals(10, a['a']);
-  assertEquals([1, 2], a['b']);
-  assertEquals({x: 2, y: 2}, a['c']);
-  assertEquals(null, a['d']);
-};
+  utils.updateDeep(a, { a: 10, b: [1, 2] });
+  assert.equal(10, a['a']);
+  assert.deepEqual([1, 2], a['b']);
+  assert.deepEqual({x: 2, y: 2}, a['c']);
+  assert.equal(null, a['d']);
+});
 
-UtilsTestCase.prototype.testUpdateDeepDecoupled = function() {
+it('testUpdateDeepDecoupled', function() {
   var a = {
     a: 1,
     b: [1, 2, 3],
@@ -64,137 +66,141 @@ UtilsTestCase.prototype.testUpdateDeepDecoupled = function() {
   };
 
   var b = {};
-  Dygraph.updateDeep(b, a);
+  utils.updateDeep(b, a);
 
   b.a = 2;
-  assertEquals(1, a.a);
+  assert.equal(1, a.a);
 
   b.b[0] = 2;
-  assertEquals(1, a.b[0]);
+  assert.equal(1, a.b[0]);
 
   b.c.x = "new value";
-  assertEquals("original", a.c.x);
-};
+  assert.equal("original", a.c.x);
+});
 
 
-UtilsTestCase.prototype.testIterator_nopredicate = function() {
+it('testIterator_nopredicate', function() {
   var array = ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h'];
-  var iter = Dygraph.createIterator(array, 1, 4);
-  assertTrue(iter.hasNext);
-  assertEquals('b', iter.peek);
-  assertEquals('b', iter.next());
-  assertTrue(iter.hasNext);
+  var iter = utils.createIterator(array, 1, 4);
+  assert.isTrue(iter.hasNext);
+  assert.equal('b', iter.peek);
+  assert.equal('b', iter.next());
+  assert.isTrue(iter.hasNext);
 
-  assertEquals('c', iter.peek);
-  assertEquals('c', iter.next());
+  assert.equal('c', iter.peek);
+  assert.equal('c', iter.next());
 
-  assertTrue(iter.hasNext);
-  assertEquals('d', iter.next());
+  assert.isTrue(iter.hasNext);
+  assert.equal('d', iter.next());
 
-  assertTrue(iter.hasNext);
-  assertEquals('e', iter.next());
+  assert.isTrue(iter.hasNext);
+  assert.equal('e', iter.next());
 
-  assertFalse(iter.hasNext);
-};
+  assert.isFalse(iter.hasNext);
+});
 
-UtilsTestCase.prototype.testIterator_predicate = function() {
+it('testIterator_predicate', function() {
   var array = ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h'];
-  var iter = Dygraph.createIterator(array, 1, 4,
+  var iter = utils.createIterator(array, 1, 4,
       function(array, idx) { return array[idx] !== 'd' });
-  assertTrue(iter.hasNext);
-  assertEquals('b', iter.peek);
-  assertEquals('b', iter.next());
-  assertTrue(iter.hasNext);
+  assert.isTrue(iter.hasNext);
+  assert.equal('b', iter.peek);
+  assert.equal('b', iter.next());
+  assert.isTrue(iter.hasNext);
 
-  assertEquals('c', iter.peek);
-  assertEquals('c', iter.next());
+  assert.equal('c', iter.peek);
+  assert.equal('c', iter.next());
 
-  assertTrue(iter.hasNext);
-  assertEquals('e', iter.next());
+  assert.isTrue(iter.hasNext);
+  assert.equal('e', iter.next());
 
-  assertFalse(iter.hasNext);
-}
+  assert.isFalse(iter.hasNext);
+});
 
-UtilsTestCase.prototype.testIterator_empty = function() {
+it('testIterator_empty', function() {
   var array = [];
-  var iter = Dygraph.createIterator([], 0, 0);
-  assertFalse(iter.hasNext);
-};
+  var iter = utils.createIterator([], 0, 0);
+  assert.isFalse(iter.hasNext);
+});
 
-UtilsTestCase.prototype.testIterator_outOfRange = function() {
+it('testIterator_outOfRange', function() {
   var array = ['a', 'b', 'c'];
-  var iter = Dygraph.createIterator(array, 1, 4,
+  var iter = utils.createIterator(array, 1, 4,
       function(array, idx) { return array[idx] !== 'd' });
-  assertTrue(iter.hasNext);
-  assertEquals('b', iter.peek);
-  assertEquals('b', iter.next());
-  assertTrue(iter.hasNext);
+  assert.isTrue(iter.hasNext);
+  assert.equal('b', iter.peek);
+  assert.equal('b', iter.next());
+  assert.isTrue(iter.hasNext);
 
-  assertEquals('c', iter.peek);
-  assertEquals('c', iter.next());
+  assert.equal('c', iter.peek);
+  assert.equal('c', iter.next());
 
-  assertFalse(iter.hasNext);
-};
+  assert.isFalse(iter.hasNext);
+});
 
 // Makes sure full array is tested, and that the predicate isn't called
 // with invalid boundaries.
-UtilsTestCase.prototype.testIterator_whole_array = function() {
+it('testIterator_whole_array', function() {
   var array = ['a', 'b', 'c'];
-  var iter = Dygraph.createIterator(array, 0, array.length,
+  var iter = utils.createIterator(array, 0, array.length,
       function(array, idx) {
         if (idx < 0 || idx >= array.length) {
           throw "err";
         } else {
           return true;
-        };
+        }
       });
-  assertTrue(iter.hasNext);
-  assertEquals('a', iter.next());
-  assertTrue(iter.hasNext);
-  assertEquals('b', iter.next());
-  assertTrue(iter.hasNext);
-  assertEquals('c', iter.next());
-  assertFalse(iter.hasNext);
-  assertNull(iter.next());
-};
-
-UtilsTestCase.prototype.testIterator_no_args = function() {
+  assert.isTrue(iter.hasNext);
+  assert.equal('a', iter.next());
+  assert.isTrue(iter.hasNext);
+  assert.equal('b', iter.next());
+  assert.isTrue(iter.hasNext);
+  assert.equal('c', iter.next());
+  assert.isFalse(iter.hasNext);
+  assert.isNull(iter.next());
+});
+
+it('testIterator_no_args', function() {
   var array = ['a', 'b', 'c'];
-  var iter = Dygraph.createIterator(array);
-  assertTrue(iter.hasNext);
-  assertEquals('a', iter.next());
-  assertTrue(iter.hasNext);
-  assertEquals('b', iter.next());
-  assertTrue(iter.hasNext);
-  assertEquals('c', iter.next());
-  assertFalse(iter.hasNext);
-  assertNull(iter.next());
-};
-
-UtilsTestCase.prototype.testToRGB = function() {
-  assertEquals({r: 255, g: 200, b: 150}, Dygraph.toRGB_('rgb(255,200,150)'));
-  assertEquals({r: 255, g: 200, b: 150}, Dygraph.toRGB_('#FFC896'));
-  assertEquals({r: 255, g: 0, b: 0}, Dygraph.toRGB_('red'));
-};
-
-UtilsTestCase.prototype.testIsPixelChangingOptionList = function() {
-  var isPx = Dygraph.isPixelChangingOptionList;
-  assertTrue(isPx([], { axes: { y: { digitsAfterDecimal: 3 }}}));
-  assertFalse(isPx([], { axes: { y: { axisLineColor: 'blue' }}}));
-};
+  var iter = utils.createIterator(array);
+  assert.isTrue(iter.hasNext);
+  assert.equal('a', iter.next());
+  assert.isTrue(iter.hasNext);
+  assert.equal('b', iter.next());
+  assert.isTrue(iter.hasNext);
+  assert.equal('c', iter.next());
+  assert.isFalse(iter.hasNext);
+  assert.isNull(iter.next());
+});
+
+it('testToRGB', function() {
+  assert.deepEqual({r: 255, g: 200, b: 150}, utils.toRGB_('rgb(255,200,150)'));
+  assert.deepEqual({r: 255, g: 200, b: 150}, utils.toRGB_('#FFC896'));
+  assert.deepEqual({r: 255, g: 0, b: 0}, utils.toRGB_('red'));
+  assert.deepEqual({r: 255, g: 200, b: 150, a: 0.6},
+                   utils.toRGB_('rgba(255, 200, 150, 0.6)'));
+});
+
+it('testIsPixelChangingOptionList', function() {
+  var isPx = utils.isPixelChangingOptionList;
+  assert.isTrue(isPx([], { axes: { y: { digitsAfterDecimal: 3 }}}));
+  assert.isFalse(isPx([], { axes: { y: { axisLineColor: 'blue' }}}));
+});
 
 /*
-UtilsTestCase.prototype.testDateSet = function() {
+it('testDateSet', function() {
   var base = new Date(1383455100000);
   var d = new Date(base);
 
   // A one hour shift -- this is surprising behavior!
   d.setMilliseconds(10);
-  assertEquals(3600010, d.getTime() - base.getTime());
+  assert.equal(3600010, d.getTime() - base.getTime());
 
   // setDateSameTZ compensates for this surprise.
   d = new Date(base);
   Dygraph.setDateSameTZ(d, {ms: 10});
-  assertEquals(10, d.getTime() - base.getTime());
-};
+  assert.equal(10, d.getTime() - base.getTime());
+});
 */
+
+});