3
var vows = require("vows"),
4
assert = require("assert"),
5
time = require("./time"),
9
var suite = vows.describe("d3.time.week");
16
"defaults to floor": function(interval) {
17
assert.strictEqual(interval, interval.floor);
20
topic: function(interval) {
21
return interval.floor;
23
"returns sundays": function(floor) {
24
assert.deepEqual(floor(local(2010, 11, 31, 23, 59, 59)), local(2010, 11, 26));
25
assert.deepEqual(floor(local(2011, 00, 01, 00, 00, 00)), local(2010, 11, 26));
26
assert.deepEqual(floor(local(2011, 00, 01, 00, 00, 01)), local(2010, 11, 26));
27
assert.deepEqual(floor(local(2011, 00, 01, 23, 59, 59)), local(2010, 11, 26));
28
assert.deepEqual(floor(local(2011, 00, 02, 00, 00, 00)), local(2011, 00, 02));
29
assert.deepEqual(floor(local(2011, 00, 02, 00, 00, 01)), local(2011, 00, 02));
31
"observes the start of daylight savings time": function(floor) {
32
assert.deepEqual(floor(local(2011, 02, 13, 01)), local(2011, 02, 13));
34
"observes the end of the daylight savings time": function(floor) {
35
assert.deepEqual(floor(local(2011, 10, 06, 01)), local(2011, 10, 06));
39
topic: function(interval) {
42
"returns sundays": function(ceil) {
43
assert.deepEqual(ceil(local(2010, 11, 31, 23, 59, 59)), local(2011, 00, 02));
44
assert.deepEqual(ceil(local(2011, 00, 01, 00, 00, 00)), local(2011, 00, 02));
45
assert.deepEqual(ceil(local(2011, 00, 01, 00, 00, 01)), local(2011, 00, 02));
46
assert.deepEqual(ceil(local(2011, 00, 01, 23, 59, 59)), local(2011, 00, 02));
47
assert.deepEqual(ceil(local(2011, 00, 02, 00, 00, 00)), local(2011, 00, 02));
48
assert.deepEqual(ceil(local(2011, 00, 02, 00, 00, 01)), local(2011, 00, 09));
50
"observes the start of daylight savings time": function(ceil) {
51
assert.deepEqual(ceil(local(2011, 02, 13, 01)), local(2011, 02, 20));
53
"observes the end of the daylight savings time": function(ceil) {
54
assert.deepEqual(ceil(local(2011, 10, 06, 01)), local(2011, 10, 13));
58
topic: function(interval) {
59
return interval.offset;
61
"does not modify the passed-in date": function(offset) {
62
var date = local(2010, 11, 31, 23, 59, 59, 999);
64
assert.deepEqual(date, local(2010, 11, 31, 23, 59, 59, 999));
66
"does not round the passed-in-date": function(offset) {
67
assert.deepEqual(offset(local(2010, 11, 31, 23, 59, 59, 999), +1), local(2011, 00, 07, 23, 59, 59, 999));
68
assert.deepEqual(offset(local(2010, 11, 31, 23, 59, 59, 456), -2), local(2010, 11, 17, 23, 59, 59, 456));
70
"allows negative offsets": function(offset) {
71
assert.deepEqual(offset(local(2010, 11, 01), -1), local(2010, 10, 24));
72
assert.deepEqual(offset(local(2011, 00, 01), -2), local(2010, 11, 18));
73
assert.deepEqual(offset(local(2011, 00, 01), -1), local(2010, 11, 25));
75
"allows positive offsets": function(offset) {
76
assert.deepEqual(offset(local(2010, 10, 24), +1), local(2010, 11, 01));
77
assert.deepEqual(offset(local(2010, 11, 18), +2), local(2011, 00, 01));
78
assert.deepEqual(offset(local(2010, 11, 25), +1), local(2011, 00, 01));
80
"allows zero offset": function(offset) {
81
assert.deepEqual(offset(local(2010, 11, 31, 23, 59, 59, 999), 0), local(2010, 11, 31, 23, 59, 59, 999));
82
assert.deepEqual(offset(local(2010, 11, 31, 23, 59, 58, 000), 0), local(2010, 11, 31, 23, 59, 58, 000));
86
topic: function(interval) {
89
"defaults to floor": function(interval) {
90
assert.strictEqual(interval, interval.floor);
93
topic: function(interval) {
94
return interval.floor;
96
"returns sundays": function(floor) {
97
assert.deepEqual(floor(utc(2010, 11, 31, 23, 59, 59)), utc(2010, 11, 26));
98
assert.deepEqual(floor(utc(2011, 00, 01, 00, 00, 00)), utc(2010, 11, 26));
99
assert.deepEqual(floor(utc(2011, 00, 01, 00, 00, 01)), utc(2010, 11, 26));
100
assert.deepEqual(floor(utc(2011, 00, 01, 23, 59, 59)), utc(2010, 11, 26));
101
assert.deepEqual(floor(utc(2011, 00, 02, 00, 00, 00)), utc(2011, 00, 02));
102
assert.deepEqual(floor(utc(2011, 00, 02, 00, 00, 01)), utc(2011, 00, 02));
104
"does not observe the start of daylight savings time": function(floor) {
105
assert.deepEqual(floor(utc(2011, 02, 13, 01)), utc(2011, 02, 13));
107
"does not observe the end of the daylight savings time": function(floor) {
108
assert.deepEqual(floor(utc(2011, 10, 06, 01)), utc(2011, 10, 06));
112
topic: function(interval) {
113
return interval.ceil;
115
"returns sundays": function(ceil) {
116
assert.deepEqual(ceil(utc(2010, 11, 31, 23, 59, 59)), utc(2011, 00, 02));
117
assert.deepEqual(ceil(utc(2011, 00, 01, 00, 00, 00)), utc(2011, 00, 02));
118
assert.deepEqual(ceil(utc(2011, 00, 01, 00, 00, 01)), utc(2011, 00, 02));
119
assert.deepEqual(ceil(utc(2011, 00, 01, 23, 59, 59)), utc(2011, 00, 02));
120
assert.deepEqual(ceil(utc(2011, 00, 02, 00, 00, 00)), utc(2011, 00, 02));
121
assert.deepEqual(ceil(utc(2011, 00, 02, 00, 00, 01)), utc(2011, 00, 09));
123
"does not observe the start of daylight savings time": function(ceil) {
124
assert.deepEqual(ceil(utc(2011, 02, 13, 01)), utc(2011, 02, 20));
126
"does not observe the end of the daylight savings time": function(ceil) {
127
assert.deepEqual(ceil(utc(2011, 10, 06, 01)), utc(2011, 10, 13));
132
topic: function(interval) {
133
return interval.offset;
135
"does not modify the passed-in date": function(offset) {
136
var date = utc(2010, 11, 31, 23, 59, 59, 999);
138
assert.deepEqual(date, utc(2010, 11, 31, 23, 59, 59, 999));
140
"does not round the passed-in-date": function(offset) {
141
assert.deepEqual(offset(utc(2010, 11, 31, 23, 59, 59, 999), +1), utc(2011, 00, 07, 23, 59, 59, 999));
142
assert.deepEqual(offset(utc(2010, 11, 31, 23, 59, 59, 456), -2), utc(2010, 11, 17, 23, 59, 59, 456));
144
"allows negative offsets": function(offset) {
145
assert.deepEqual(offset(utc(2010, 11, 01), -1), utc(2010, 10, 24));
146
assert.deepEqual(offset(utc(2011, 00, 01), -2), utc(2010, 11, 18));
147
assert.deepEqual(offset(utc(2011, 00, 01), -1), utc(2010, 11, 25));
149
"allows positive offsets": function(offset) {
150
assert.deepEqual(offset(utc(2010, 10, 24), +1), utc(2010, 11, 01));
151
assert.deepEqual(offset(utc(2010, 11, 18), +2), utc(2011, 00, 01));
152
assert.deepEqual(offset(utc(2010, 11, 25), +1), utc(2011, 00, 01));
154
"allows zero offset": function(offset) {
155
assert.deepEqual(offset(utc(2010, 11, 31, 23, 59, 59, 999), 0), utc(2010, 11, 31, 23, 59, 59, 999));
156
assert.deepEqual(offset(utc(2010, 11, 31, 23, 59, 58, 000), 0), utc(2010, 11, 31, 23, 59, 58, 000));
162
suite.export(module);