toolkit/javascript/d3/test/core/zip-test.js
author Nicolas Sauret <nicolas.sauret@iri.centrepompidou.fr>
Fri, 18 Apr 2014 14:31:58 +0200
changeset 51 79833eaa394a
parent 47 c0b4a8b5a012
permissions -rw-r--r--
set up second level for navigation

require("../env");
require("../../d3");

var vows = require("vows"),
    assert = require("assert");

var suite = vows.describe("d3.zip");

suite.addBatch({
  "zip": {
    topic: function() {
      return d3.zip;
    },
    "transposes a square matrix": function(zip) {
      assert.deepEqual(d3.zip([1, 2], [3, 4]), [[1, 3], [2, 4]]);
    },
    "transposes a non-square matrix": function(zip) {
      assert.deepEqual(d3.zip([1, 2, 3, 4, 5], [2, 4, 6, 8, 10]), [[1, 2], [2, 4], [3, 6], [4, 8], [5, 10]]);
    },
    "transposes a single-row matrix": function(zip) {
      assert.deepEqual(d3.zip([1, 2, 3, 4, 5]), [[1], [2], [3], [4], [5]]);
    },
    "transposes an empty matrix": function(zip) {
      assert.deepEqual(d3.zip(), []);
    },
    "ignores extra elements given an irregular matrix": function(zip) {
      assert.deepEqual(d3.zip([1, 2], [3, 4], [5, 6, 7]), [[1, 3, 5], [2, 4, 6]]);
    }
  }
});

suite.export(module);