var vows = require(“vows”),

load = require("../load"),
assert = require("../assert");

var suite = vows.describe(“d3.entries”);

suite.addBatch({

"entries": {
  topic: load("arrays/entries").expression("d3.entries"),
  "enumerates every entry": function(entries) {
    assert.deepEqual(entries({a: 1, b: 2}), [
      {key: "a", value: 1},
      {key: "b", value: 2}
    ]);
  },
  "includes entries defined on prototypes": function(entries) {
    function abc() {
      this.a = 1;
      this.b = 2;
    }
    abc.prototype.c = 3;
    assert.deepEqual(entries(new abc()), [
      {key: "a", value: 1},
      {key: "b", value: 2},
      {key: "c", value: 3}
    ]);
  },
  "includes null or undefined values": function(entries) {
    var v = entries({a: undefined, b: null, c: NaN});
    assert.equal(v.length, 3);
    assert.deepEqual(v[0], {key: "a", value: undefined});
    assert.deepEqual(v[1], {key: "b", value: null});
    assert.equal(v[2].key, "c");
    assert.isNaN(v[2].value);
  }
}

});

suite.export(module);