var vows = require(“vows”),

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

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

suite.addBatch({

"keys": {
  topic: load("arrays/keys").expression("d3.keys"),
  "enumerates every defined key": function(keys) {
    assert.deepEqual(keys({a: 1, b: 1}), ["a", "b"]);
  },
  "includes keys defined on prototypes": function(keys) {
    function abc() {
      this.a = 1;
      this.b = 2;
    }
    abc.prototype.c = 3;
    assert.deepEqual(keys(new abc()), ["a", "b", "c"]);
  },
  "includes keys with null or undefined values": function(keys) {
    assert.deepEqual(keys({a: undefined, b: null, c: NaN}), ["a", "b", "c"]);
  }
}

});

suite.export(module);