-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathlast-test.js
More file actions
42 lines (38 loc) · 1.42 KB
/
Copy pathlast-test.js
File metadata and controls
42 lines (38 loc) · 1.42 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
require("../env");
require("../../d3");
var vows = require("vows"),
assert = require("assert");
var suite = vows.describe("d3.last");
suite.addBatch({
"last": {
topic: function() {
return d3.last;
},
"compares using natural order by default": function(last) {
assert.strictEqual(last([1, 0]), 1);
assert.strictEqual(last(["1", 0]), "1");
assert.strictEqual(last(["2", "10"]), "2");
assert.strictEqual(last(["2", NaN, "10"]), "2");
assert.strictEqual(last([2, NaN, 10]), 10);
},
"compares using optional comparator": function(last) {
var i = 0, aa, bb, o = new Object();
assert.strictEqual(last([1, o], function(a, b) { aa = a; bb = b; return ++i; }), 1);
assert.strictEqual(aa, 1);
assert.strictEqual(bb, o);
assert.strictEqual(last([1, 0], d3.descending), 0);
assert.strictEqual(last(["1", 0], d3.descending), 0);
assert.strictEqual(last(["2", "10"], d3.descending), "10");
assert.strictEqual(last(["2", NaN, "10"], d3.descending), "10");
assert.strictEqual(last([2, NaN, 10], d3.descending), 2);
},
"returns the last of equal values": function(last) {
var a = new Object(), b = new Object(), c = new Object();
assert.strictEqual(last([a, b, c], function() { return 0; }), c);
},
"returns undefined for an empty array": function(last) {
assert.isUndefined(last([]));
}
}
});
suite.export(module);