3
var vows = require("vows"),
4
assert = require("assert"),
5
time = require("./time"),
9
var suite = vows.describe("d3.time.scale");
18
"changes to the domain are isolated": function(scale) {
19
var x = scale().domain([local(2009, 0, 1), local(2010, 0, 1)]), y = x.copy();
20
x.domain([local(2010, 0, 1), local(2011, 0, 1)]);
21
assert.deepEqual(y.domain(), [local(2009, 0, 1), local(2010, 0, 1)]);
22
assert.equal(x(local(2010, 0, 1)), 0);
23
assert.equal(y(local(2010, 0, 1)), 1);
24
y.domain([local(2011, 0, 1), local(2012, 0, 1)]);
25
assert.equal(x(local(2011, 0, 1)), 1);
26
assert.equal(y(local(2011, 0, 1)), 0);
27
assert.deepEqual(x.domain(), [local(2010, 0, 1), local(2011, 0, 1)]);
28
assert.deepEqual(y.domain(), [local(2011, 0, 1), local(2012, 0, 1)]);
30
"changes to the range are isolated": function(scale) {
31
var x = scale().domain([local(2009, 0, 1), local(2010, 0, 1)]), y = x.copy();
33
assert.deepEqual(x.invert(1), local(2009, 0, 1));
34
assert.deepEqual(y.invert(1), local(2010, 0, 1));
35
assert.deepEqual(y.range(), [0, 1]);
37
assert.deepEqual(x.invert(2), local(2010, 0, 1));
38
assert.deepEqual(y.invert(2), local(2009, 0, 1));
39
assert.deepEqual(x.range(), [1, 2]);
40
assert.deepEqual(y.range(), [2, 3]);
42
"changes to the interpolator are isolated": function(scale) {
43
var x = scale().domain([local(2009, 0, 1), local(2010, 0, 1)]).range(["red", "blue"]), y = x.copy();
44
x.interpolate(d3.interpolateHsl);
45
assert.equal(x(local(2009, 6, 1)), "#ff00fd");
46
assert.equal(y(local(2009, 6, 1)), "#81007e");
47
assert.equal(y.interpolate(), d3.interpolate);
49
"changes to clamping are isolated": function(scale) {
50
var x = scale().domain([local(2009, 0, 1), local(2010, 0, 1)]).clamp(true), y = x.copy();
52
assert.equal(x(local(2011, 0, 1)), 2);
53
assert.equal(y(local(2011, 0, 1)), 1);
54
assert.isTrue(y.clamp());
56
assert.equal(x(local(2011, 0, 1)), 2);
57
assert.equal(y(local(2011, 0, 1)), 2);
58
assert.isFalse(x.clamp());
63
"observes explicit tick interval": function(scale) {
64
var x = scale().domain([local(2011, 0, 1, 12, 1, 0), local(2011, 0, 1, 12, 4, 4)]);
65
assert.deepEqual(x.ticks(d3.time.minutes), [
66
local(2011, 0, 1, 12, 1),
67
local(2011, 0, 1, 12, 2),
68
local(2011, 0, 1, 12, 3),
69
local(2011, 0, 1, 12, 4)
72
"observes explicit tick interval and step": function(scale) {
73
var x = scale().domain([local(2011, 0, 1, 12, 0, 0), local(2011, 0, 1, 12, 33, 4)]);
74
assert.deepEqual(x.ticks(d3.time.minutes, 10), [
75
local(2011, 0, 1, 12, 0),
76
local(2011, 0, 1, 12, 10),
77
local(2011, 0, 1, 12, 20),
78
local(2011, 0, 1, 12, 30)
81
"generates sub-second ticks": function(scale) {
82
var x = scale().domain([local(2011, 0, 1, 12, 0, 0), local(2011, 0, 1, 12, 0, 1)]);
83
assert.deepEqual(x.ticks(4), [
84
local(2011, 0, 1, 12, 0, 0, 0),
85
local(2011, 0, 1, 12, 0, 0, 200),
86
local(2011, 0, 1, 12, 0, 0, 400),
87
local(2011, 0, 1, 12, 0, 0, 600),
88
local(2011, 0, 1, 12, 0, 0, 800),
89
local(2011, 0, 1, 12, 0, 1, 0)
92
"generates 1-second ticks": function(scale) {
93
var x = scale().domain([local(2011, 0, 1, 12, 0, 0), local(2011, 0, 1, 12, 0, 4)]);
94
assert.deepEqual(x.ticks(4), [
95
local(2011, 0, 1, 12, 0, 0),
96
local(2011, 0, 1, 12, 0, 1),
97
local(2011, 0, 1, 12, 0, 2),
98
local(2011, 0, 1, 12, 0, 3),
99
local(2011, 0, 1, 12, 0, 4)
102
"generates 5-second ticks": function(scale) {
103
var x = scale().domain([local(2011, 0, 1, 12, 0, 0), local(2011, 0, 1, 12, 0, 20)]);
104
assert.deepEqual(x.ticks(4), [
105
local(2011, 0, 1, 12, 0, 0),
106
local(2011, 0, 1, 12, 0, 5),
107
local(2011, 0, 1, 12, 0, 10),
108
local(2011, 0, 1, 12, 0, 15),
109
local(2011, 0, 1, 12, 0, 20)
112
"generates 15-second ticks": function(scale) {
113
var x = scale().domain([local(2011, 0, 1, 12, 0, 0), local(2011, 0, 1, 12, 0, 50)]);
114
assert.deepEqual(x.ticks(4), [
115
local(2011, 0, 1, 12, 0, 0),
116
local(2011, 0, 1, 12, 0, 15),
117
local(2011, 0, 1, 12, 0, 30),
118
local(2011, 0, 1, 12, 0, 45)
121
"generates 30-second ticks": function(scale) {
122
var x = scale().domain([local(2011, 0, 1, 12, 0, 0), local(2011, 0, 1, 12, 1, 50)]);
123
assert.deepEqual(x.ticks(4), [
124
local(2011, 0, 1, 12, 0, 0),
125
local(2011, 0, 1, 12, 0, 30),
126
local(2011, 0, 1, 12, 1, 0),
127
local(2011, 0, 1, 12, 1, 30)
130
"generates 1-minute ticks": function(scale) {
131
var x = scale().domain([local(2011, 0, 1, 12, 0, 27), local(2011, 0, 1, 12, 4, 12)]);
132
assert.deepEqual(x.ticks(4), [
133
local(2011, 0, 1, 12, 1),
134
local(2011, 0, 1, 12, 2),
135
local(2011, 0, 1, 12, 3),
136
local(2011, 0, 1, 12, 4)
139
"generates 5-minute ticks": function(scale) {
140
var x = scale().domain([local(2011, 0, 1, 12, 3, 27), local(2011, 0, 1, 12, 21, 12)]);
141
assert.deepEqual(x.ticks(4), [
142
local(2011, 0, 1, 12, 5),
143
local(2011, 0, 1, 12, 10),
144
local(2011, 0, 1, 12, 15),
145
local(2011, 0, 1, 12, 20)
148
"generates 15-minute ticks": function(scale) {
149
var x = scale().domain([local(2011, 0, 1, 12, 8, 27), local(2011, 0, 1, 13, 4, 12)]);
150
assert.deepEqual(x.ticks(4), [
151
local(2011, 0, 1, 12, 15),
152
local(2011, 0, 1, 12, 30),
153
local(2011, 0, 1, 12, 45),
154
local(2011, 0, 1, 13, 0)
157
"generates 30-minute ticks": function(scale) {
158
var x = scale().domain([local(2011, 0, 1, 12, 28, 27), local(2011, 0, 1, 14, 4, 12)]);
159
assert.deepEqual(x.ticks(4), [
160
local(2011, 0, 1, 12, 30),
161
local(2011, 0, 1, 13, 0),
162
local(2011, 0, 1, 13, 30),
163
local(2011, 0, 1, 14, 0)
166
"generates 1-hour ticks": function(scale) {
167
var x = scale().domain([local(2011, 0, 1, 12, 28, 27), local(2011, 0, 1, 16, 34, 12)]);
168
assert.deepEqual(x.ticks(4), [
169
local(2011, 0, 1, 13, 0),
170
local(2011, 0, 1, 14, 0),
171
local(2011, 0, 1, 15, 0),
172
local(2011, 0, 1, 16, 0)
175
"generates 3-hour ticks": function(scale) {
176
var x = scale().domain([local(2011, 0, 1, 14, 28, 27), local(2011, 0, 2, 1, 34, 12)]);
177
assert.deepEqual(x.ticks(4), [
178
local(2011, 0, 1, 15, 0),
179
local(2011, 0, 1, 18, 0),
180
local(2011, 0, 1, 21, 0),
181
local(2011, 0, 2, 0, 0)
184
"generates 6-hour ticks": function(scale) {
185
var x = scale().domain([local(2011, 0, 1, 16, 28, 27), local(2011, 0, 2, 14, 34, 12)]);
186
assert.deepEqual(x.ticks(4), [
187
local(2011, 0, 1, 18, 0),
188
local(2011, 0, 2, 0, 0),
189
local(2011, 0, 2, 6, 0),
190
local(2011, 0, 2, 12, 0)
193
"generates 12-hour ticks": function(scale) {
194
var x = scale().domain([local(2011, 0, 1, 16, 28, 27), local(2011, 0, 3, 21, 34, 12)]);
195
assert.deepEqual(x.ticks(4), [
196
local(2011, 0, 2, 0, 0),
197
local(2011, 0, 2, 12, 0),
198
local(2011, 0, 3, 0, 0),
199
local(2011, 0, 3, 12, 0)
202
"generates 1-day ticks": function(scale) {
203
var x = scale().domain([local(2011, 0, 1, 16, 28, 27), local(2011, 0, 5, 21, 34, 12)]);
204
assert.deepEqual(x.ticks(4), [
205
local(2011, 0, 2, 0, 0),
206
local(2011, 0, 3, 0, 0),
207
local(2011, 0, 4, 0, 0),
208
local(2011, 0, 5, 0, 0)
211
"generates 2-day ticks": function(scale) {
212
var x = scale().domain([local(2011, 0, 2, 16, 28, 27), local(2011, 0, 9, 21, 34, 12)]);
213
assert.deepEqual(x.ticks(4), [
214
local(2011, 0, 3, 0, 0),
215
local(2011, 0, 5, 0, 0),
216
local(2011, 0, 7, 0, 0),
217
local(2011, 0, 9, 0, 0)
220
"generates 1-week ticks": function(scale) {
221
var x = scale().domain([local(2011, 0, 1, 16, 28, 27), local(2011, 0, 23, 21, 34, 12)]);
222
assert.deepEqual(x.ticks(4), [
223
local(2011, 0, 2, 0, 0),
224
local(2011, 0, 9, 0, 0),
225
local(2011, 0, 16, 0, 0),
226
local(2011, 0, 23, 0, 0)
229
"generates 1-month ticks": function(scale) {
230
var x = scale().domain([local(2011, 0, 18), local(2011, 4, 2)]);
231
assert.deepEqual(x.ticks(4), [
232
local(2011, 1, 1, 0, 0),
233
local(2011, 2, 1, 0, 0),
234
local(2011, 3, 1, 0, 0),
235
local(2011, 4, 1, 0, 0)
238
"generates 3-month ticks": function(scale) {
239
var x = scale().domain([local(2010, 11, 18), local(2011, 10, 2)]);
240
assert.deepEqual(x.ticks(4), [
241
local(2011, 0, 1, 0, 0),
242
local(2011, 3, 1, 0, 0),
243
local(2011, 6, 1, 0, 0),
244
local(2011, 9, 1, 0, 0)
247
"generates 1-year ticks": function(scale) {
248
var x = scale().domain([local(2010, 11, 18), local(2014, 2, 2)]);
249
assert.deepEqual(x.ticks(4), [
250
local(2011, 0, 1, 0, 0),
251
local(2012, 0, 1, 0, 0),
252
local(2013, 0, 1, 0, 0),
253
local(2014, 0, 1, 0, 0)
256
"generates multi-year ticks": function(scale) {
257
var x = scale().domain([local(0, 11, 18), local(2014, 2, 2)]);
258
assert.deepEqual(x.ticks(6), [
259
local( 500, 0, 1, 0, 0),
260
local(1000, 0, 1, 0, 0),
261
local(1500, 0, 1, 0, 0),
262
local(2000, 0, 1, 0, 0)
268
topic: function(scale) {
269
return scale().tickFormat();
271
"formats year on New Year's": function(format) {
272
assert.equal(format(local(2011, 0, 1)), "2011");
273
assert.equal(format(local(2012, 0, 1)), "2012");
274
assert.equal(format(local(2013, 0, 1)), "2013");
276
"formats month on the 1st of each month": function(format) {
277
assert.equal(format(local(2011, 1, 1)), "February");
278
assert.equal(format(local(2011, 2, 1)), "March");
279
assert.equal(format(local(2011, 3, 1)), "April");
281
"formats week on Sunday midnight": function(format) {
282
assert.equal(format(local(2011, 1, 6)), "Feb 06");
283
assert.equal(format(local(2011, 1, 13)), "Feb 13");
284
assert.equal(format(local(2011, 1, 20)), "Feb 20");
286
"formats date on midnight": function(format) {
287
assert.equal(format(local(2011, 1, 2)), "Wed 02");
288
assert.equal(format(local(2011, 1, 3)), "Thu 03");
289
assert.equal(format(local(2011, 1, 4)), "Fri 04");
291
"formats hour on minute zero": function(format) {
292
assert.equal(format(local(2011, 1, 2, 11)), "11 AM");
293
assert.equal(format(local(2011, 1, 2, 12)), "12 PM");
294
assert.equal(format(local(2011, 1, 2, 13)), "01 PM");
296
"formats minute on second zero": function(format) {
297
assert.equal(format(local(2011, 1, 2, 11, 59)), "11:59");
298
assert.equal(format(local(2011, 1, 2, 12, 1)), "12:01");
299
assert.equal(format(local(2011, 1, 2, 12, 2)), "12:02");
301
"otherwise, formats second": function(format) {
302
assert.equal(format(local(2011, 1, 2, 12, 1, 9)), ":09");
303
assert.equal(format(local(2011, 1, 2, 12, 1, 10)), ":10");
304
assert.equal(format(local(2011, 1, 2, 12, 1, 11)), ":11");
309
topic: function(scale) {
314
"observes explicit tick interval": function(scale) {
315
var x = scale().domain([utc(2011, 0, 1, 12, 1, 0), utc(2011, 0, 1, 12, 4, 4)]);
316
assert.deepEqual(x.ticks(d3.time.minutes), [
317
utc(2011, 0, 1, 12, 1),
318
utc(2011, 0, 1, 12, 2),
319
utc(2011, 0, 1, 12, 3),
320
utc(2011, 0, 1, 12, 4)
323
"observes explicit tick interval and step": function(scale) {
324
var x = scale().domain([utc(2011, 0, 1, 12, 0, 0), utc(2011, 0, 1, 12, 33, 4)]);
325
assert.deepEqual(x.ticks(d3.time.minutes, 10), [
326
utc(2011, 0, 1, 12, 0),
327
utc(2011, 0, 1, 12, 10),
328
utc(2011, 0, 1, 12, 20),
329
utc(2011, 0, 1, 12, 30)
332
"generates sub-second ticks": function(scale) {
333
var x = scale().domain([utc(2011, 0, 1, 12, 0, 0), utc(2011, 0, 1, 12, 0, 1)]);
334
assert.deepEqual(x.ticks(4), [
335
utc(2011, 0, 1, 12, 0, 0, 0),
336
utc(2011, 0, 1, 12, 0, 0, 200),
337
utc(2011, 0, 1, 12, 0, 0, 400),
338
utc(2011, 0, 1, 12, 0, 0, 600),
339
utc(2011, 0, 1, 12, 0, 0, 800),
340
utc(2011, 0, 1, 12, 0, 1, 0)
343
"generates 1-second ticks": function(scale) {
344
var x = scale().domain([utc(2011, 0, 1, 12, 0, 0), utc(2011, 0, 1, 12, 0, 4)]);
345
assert.deepEqual(x.ticks(4), [
346
utc(2011, 0, 1, 12, 0, 0),
347
utc(2011, 0, 1, 12, 0, 1),
348
utc(2011, 0, 1, 12, 0, 2),
349
utc(2011, 0, 1, 12, 0, 3),
350
utc(2011, 0, 1, 12, 0, 4)
353
"generates 5-second ticks": function(scale) {
354
var x = scale().domain([utc(2011, 0, 1, 12, 0, 0), utc(2011, 0, 1, 12, 0, 20)]);
355
assert.deepEqual(x.ticks(4), [
356
utc(2011, 0, 1, 12, 0, 0),
357
utc(2011, 0, 1, 12, 0, 5),
358
utc(2011, 0, 1, 12, 0, 10),
359
utc(2011, 0, 1, 12, 0, 15),
360
utc(2011, 0, 1, 12, 0, 20)
363
"generates 15-second ticks": function(scale) {
364
var x = scale().domain([utc(2011, 0, 1, 12, 0, 0), utc(2011, 0, 1, 12, 0, 50)]);
365
assert.deepEqual(x.ticks(4), [
366
utc(2011, 0, 1, 12, 0, 0),
367
utc(2011, 0, 1, 12, 0, 15),
368
utc(2011, 0, 1, 12, 0, 30),
369
utc(2011, 0, 1, 12, 0, 45)
372
"generates 30-second ticks": function(scale) {
373
var x = scale().domain([utc(2011, 0, 1, 12, 0, 0), utc(2011, 0, 1, 12, 1, 50)]);
374
assert.deepEqual(x.ticks(4), [
375
utc(2011, 0, 1, 12, 0, 0),
376
utc(2011, 0, 1, 12, 0, 30),
377
utc(2011, 0, 1, 12, 1, 0),
378
utc(2011, 0, 1, 12, 1, 30)
381
"generates 1-minute ticks": function(scale) {
382
var x = scale().domain([utc(2011, 0, 1, 12, 0, 27), utc(2011, 0, 1, 12, 4, 12)]);
383
assert.deepEqual(x.ticks(4), [
384
utc(2011, 0, 1, 12, 1),
385
utc(2011, 0, 1, 12, 2),
386
utc(2011, 0, 1, 12, 3),
387
utc(2011, 0, 1, 12, 4)
390
"generates 5-minute ticks": function(scale) {
391
var x = scale().domain([utc(2011, 0, 1, 12, 3, 27), utc(2011, 0, 1, 12, 21, 12)]);
392
assert.deepEqual(x.ticks(4), [
393
utc(2011, 0, 1, 12, 5),
394
utc(2011, 0, 1, 12, 10),
395
utc(2011, 0, 1, 12, 15),
396
utc(2011, 0, 1, 12, 20)
399
"generates 15-minute ticks": function(scale) {
400
var x = scale().domain([utc(2011, 0, 1, 12, 8, 27), utc(2011, 0, 1, 13, 4, 12)]);
401
assert.deepEqual(x.ticks(4), [
402
utc(2011, 0, 1, 12, 15),
403
utc(2011, 0, 1, 12, 30),
404
utc(2011, 0, 1, 12, 45),
405
utc(2011, 0, 1, 13, 0)
408
"generates 30-minute ticks": function(scale) {
409
var x = scale().domain([utc(2011, 0, 1, 12, 28, 27), utc(2011, 0, 1, 14, 4, 12)]);
410
assert.deepEqual(x.ticks(4), [
411
utc(2011, 0, 1, 12, 30),
412
utc(2011, 0, 1, 13, 0),
413
utc(2011, 0, 1, 13, 30),
414
utc(2011, 0, 1, 14, 0)
417
"generates 1-hour ticks": function(scale) {
418
var x = scale().domain([utc(2011, 0, 1, 12, 28, 27), utc(2011, 0, 1, 16, 34, 12)]);
419
assert.deepEqual(x.ticks(4), [
420
utc(2011, 0, 1, 13, 0),
421
utc(2011, 0, 1, 14, 0),
422
utc(2011, 0, 1, 15, 0),
423
utc(2011, 0, 1, 16, 0)
426
"generates 3-hour ticks": function(scale) {
427
var x = scale().domain([utc(2011, 0, 1, 14, 28, 27), utc(2011, 0, 2, 1, 34, 12)]);
428
assert.deepEqual(x.ticks(4), [
429
utc(2011, 0, 1, 15, 0),
430
utc(2011, 0, 1, 18, 0),
431
utc(2011, 0, 1, 21, 0),
432
utc(2011, 0, 2, 0, 0)
435
"generates 6-hour ticks": function(scale) {
436
var x = scale().domain([utc(2011, 0, 1, 16, 28, 27), utc(2011, 0, 2, 14, 34, 12)]);
437
assert.deepEqual(x.ticks(4), [
438
utc(2011, 0, 1, 18, 0),
439
utc(2011, 0, 2, 0, 0),
440
utc(2011, 0, 2, 6, 0),
441
utc(2011, 0, 2, 12, 0)
444
"generates 12-hour ticks": function(scale) {
445
var x = scale().domain([utc(2011, 0, 1, 16, 28, 27), utc(2011, 0, 3, 21, 34, 12)]);
446
assert.deepEqual(x.ticks(4), [
447
utc(2011, 0, 2, 0, 0),
448
utc(2011, 0, 2, 12, 0),
449
utc(2011, 0, 3, 0, 0),
450
utc(2011, 0, 3, 12, 0)
453
"generates 1-day ticks": function(scale) {
454
var x = scale().domain([utc(2011, 0, 1, 16, 28, 27), utc(2011, 0, 5, 21, 34, 12)]);
455
assert.deepEqual(x.ticks(4), [
456
utc(2011, 0, 2, 0, 0),
457
utc(2011, 0, 3, 0, 0),
458
utc(2011, 0, 4, 0, 0),
459
utc(2011, 0, 5, 0, 0)
462
"generates 2-day ticks": function(scale) {
463
var x = scale().domain([utc(2011, 0, 2, 16, 28, 27), utc(2011, 0, 9, 21, 34, 12)]);
464
assert.deepEqual(x.ticks(4), [
465
utc(2011, 0, 3, 0, 0),
466
utc(2011, 0, 5, 0, 0),
467
utc(2011, 0, 7, 0, 0),
468
utc(2011, 0, 9, 0, 0)
471
"generates 1-week ticks": function(scale) {
472
var x = scale().domain([utc(2011, 0, 1, 16, 28, 27), utc(2011, 0, 23, 21, 34, 12)]);
473
assert.deepEqual(x.ticks(4), [
474
utc(2011, 0, 2, 0, 0),
475
utc(2011, 0, 9, 0, 0),
476
utc(2011, 0, 16, 0, 0),
477
utc(2011, 0, 23, 0, 0)
480
"generates 1-month ticks": function(scale) {
481
var x = scale().domain([utc(2011, 0, 18), utc(2011, 4, 2)]);
482
assert.deepEqual(x.ticks(4), [
483
utc(2011, 1, 1, 0, 0),
484
utc(2011, 2, 1, 0, 0),
485
utc(2011, 3, 1, 0, 0),
486
utc(2011, 4, 1, 0, 0)
489
"generates 3-month ticks": function(scale) {
490
var x = scale().domain([utc(2010, 11, 18), utc(2011, 10, 2)]);
491
assert.deepEqual(x.ticks(4), [
492
utc(2011, 0, 1, 0, 0),
493
utc(2011, 3, 1, 0, 0),
494
utc(2011, 6, 1, 0, 0),
495
utc(2011, 9, 1, 0, 0)
498
"generates 1-year ticks": function(scale) {
499
var x = scale().domain([utc(2010, 11, 18), utc(2014, 2, 2)]);
500
assert.deepEqual(x.ticks(4), [
501
utc(2011, 0, 1, 0, 0),
502
utc(2012, 0, 1, 0, 0),
503
utc(2013, 0, 1, 0, 0),
504
utc(2014, 0, 1, 0, 0)
507
"generates multi-year ticks": function(scale) {
508
var x = scale().domain([utc(0, 11, 18), utc(2014, 2, 2)]);
509
assert.deepEqual(x.ticks(6), [
510
utc( 500, 0, 1, 0, 0),
511
utc(1000, 0, 1, 0, 0),
512
utc(1500, 0, 1, 0, 0),
513
utc(2000, 0, 1, 0, 0)
519
topic: function(scale) {
520
return scale().tickFormat();
522
"formats year on New Year's": function(format) {
523
assert.equal(format(utc(2011, 0, 1)), "2011");
524
assert.equal(format(utc(2012, 0, 1)), "2012");
525
assert.equal(format(utc(2013, 0, 1)), "2013");
527
"formats month on the 1st of each month": function(format) {
528
assert.equal(format(utc(2011, 1, 1)), "February");
529
assert.equal(format(utc(2011, 2, 1)), "March");
530
assert.equal(format(utc(2011, 3, 1)), "April");
532
"formats week on Sunday midnight": function(format) {
533
assert.equal(format(utc(2011, 1, 6)), "Feb 06");
534
assert.equal(format(utc(2011, 1, 13)), "Feb 13");
535
assert.equal(format(utc(2011, 1, 20)), "Feb 20");
537
"formats date on midnight": function(format) {
538
assert.equal(format(utc(2011, 1, 2)), "Wed 02");
539
assert.equal(format(utc(2011, 1, 3)), "Thu 03");
540
assert.equal(format(utc(2011, 1, 4)), "Fri 04");
542
"formats hour on minute zero": function(format) {
543
assert.equal(format(utc(2011, 1, 2, 11)), "11 AM");
544
assert.equal(format(utc(2011, 1, 2, 12)), "12 PM");
545
assert.equal(format(utc(2011, 1, 2, 13)), "01 PM");
547
"formats minute on second zero": function(format) {
548
assert.equal(format(utc(2011, 1, 2, 11, 59)), "11:59");
549
assert.equal(format(utc(2011, 1, 2, 12, 1)), "12:01");
550
assert.equal(format(utc(2011, 1, 2, 12, 2)), "12:02");
552
"formats second on millisecond zero": function(format) {
553
assert.equal(format(utc(2011, 1, 2, 12, 1, 9)), ":09");
554
assert.equal(format(utc(2011, 1, 2, 12, 1, 10)), ":10");
555
assert.equal(format(utc(2011, 1, 2, 12, 1, 11)), ":11");
557
"otherwise, formats milliseconds": function(format) {
558
assert.equal(format(utc(2011, 1, 2, 12, 1, 0, 9)), ".009");
559
assert.equal(format(utc(2011, 1, 2, 12, 1, 0, 10)), ".010");
560
assert.equal(format(utc(2011, 1, 2, 12, 1, 0, 11)), ".011");
567
suite.export(module);