|
1 require("../env"); |
|
2 require("../../d3"); |
|
3 require("../../d3.time"); |
|
4 |
|
5 var vows = require("vows"), |
|
6 assert = require("assert"); |
|
7 |
|
8 var suite = vows.describe("d3.time.years"); |
|
9 |
|
10 suite.addBatch({ |
|
11 "years": { |
|
12 topic: function() { |
|
13 return d3.time.years; |
|
14 }, |
|
15 "returns years": function(range) { |
|
16 assert.deepEqual(range(local(2010, 0, 1), local(2013, 0, 1)), [ |
|
17 local(2010, 0, 1), |
|
18 local(2011, 0, 1), |
|
19 local(2012, 0, 1) |
|
20 ]); |
|
21 }, |
|
22 "has an inclusive lower bound": function(range) { |
|
23 assert.deepEqual(range(local(2010, 0, 1), local(2013, 0, 1))[0], local(2010, 0, 1)); |
|
24 }, |
|
25 "has an exclusive upper bound": function(range) { |
|
26 assert.deepEqual(range(local(2010, 0, 1), local(2013, 0, 1))[2], local(2012, 0, 1)); |
|
27 }, |
|
28 "can skip years": function(range) { |
|
29 assert.deepEqual(range(local(2009, 0, 1), local(2029, 0, 1), 5), [ |
|
30 local(2010, 0, 1), |
|
31 local(2015, 0, 1), |
|
32 local(2020, 0, 1), |
|
33 local(2025, 0, 1) |
|
34 ]); |
|
35 }, |
|
36 "UTC": { |
|
37 topic: function(range) { |
|
38 return range.utc; |
|
39 }, |
|
40 "returns years": function(range) { |
|
41 assert.deepEqual(range(utc(2010, 0, 1), utc(2013, 0, 1)), [ |
|
42 utc(2010, 0, 1), |
|
43 utc(2011, 0, 1), |
|
44 utc(2012, 0, 1) |
|
45 ]); |
|
46 }, |
|
47 "has an inclusive lower bound": function(range) { |
|
48 assert.deepEqual(range(utc(2010, 0, 1), utc(2013, 0, 1))[0], utc(2010, 0, 1)); |
|
49 }, |
|
50 "has an exclusive upper bound": function(range) { |
|
51 assert.deepEqual(range(utc(2010, 0, 1), utc(2013, 0, 1))[2], utc(2012, 0, 1)); |
|
52 }, |
|
53 "can skip years": function(range) { |
|
54 assert.deepEqual(range(utc(2009, 0, 1), utc(2029, 0, 1), 5), [ |
|
55 utc(2010, 0, 1), |
|
56 utc(2015, 0, 1), |
|
57 utc(2020, 0, 1), |
|
58 utc(2025, 0, 1) |
|
59 ]); |
|
60 } |
|
61 } |
|
62 } |
|
63 }); |
|
64 |
|
65 function local(year, month, day, hours, minutes, seconds) { |
|
66 return new Date(year, month, day, hours || 0, minutes || 0, seconds || 0); |
|
67 } |
|
68 |
|
69 function utc(year, month, day, hours, minutes, seconds) { |
|
70 return new Date(Date.UTC(year, month, day, hours || 0, minutes || 0, seconds || 0)); |
|
71 } |
|
72 |
|
73 suite.export(module); |