toolkit/javascript/d3/test/time/day-test.js
changeset 47 c0b4a8b5a012
equal deleted inserted replaced
46:efd9c589177a 47:c0b4a8b5a012
       
     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.day");
       
     9 
       
    10 suite.addBatch({
       
    11   "day": {
       
    12     topic: function() {
       
    13       return d3.time.day;
       
    14     },
       
    15     "returns midnights": function(floor) {
       
    16       assert.deepEqual(floor(local(2010, 11, 31, 23)), local(2010, 11, 31));
       
    17       assert.deepEqual(floor(local(2011, 0, 1, 0)), local(2011, 0, 1));
       
    18       assert.deepEqual(floor(local(2011, 0, 1, 1)), local(2011, 0, 1));
       
    19     },
       
    20     "observes start of daylight savings time": function(floor) {
       
    21       assert.deepEqual(floor(utc(2011, 2, 13, 7)), local(2011, 2, 12));
       
    22       assert.deepEqual(floor(utc(2011, 2, 13, 8)), local(2011, 2, 13));
       
    23       assert.deepEqual(floor(utc(2011, 2, 13, 9)), local(2011, 2, 13));
       
    24       assert.deepEqual(floor(utc(2011, 2, 13, 10)), local(2011, 2, 13));
       
    25     },
       
    26     "observes end of daylight savings time": function(floor) {
       
    27       assert.deepEqual(floor(utc(2011, 10, 6, 7)), local(2011, 10, 6));
       
    28       assert.deepEqual(floor(utc(2011, 10, 6, 8)), local(2011, 10, 6));
       
    29       assert.deepEqual(floor(utc(2011, 10, 6, 9)), local(2011, 10, 6));
       
    30       assert.deepEqual(floor(utc(2011, 10, 6, 10)), local(2011, 10, 6));
       
    31     },
       
    32     "UTC": {
       
    33       topic: function(floor) {
       
    34         return floor.utc;
       
    35       },
       
    36       "returns midnights": function(floor) {
       
    37         assert.deepEqual(floor(utc(2010, 11, 31, 23)), utc(2010, 11, 31));
       
    38         assert.deepEqual(floor(utc(2011, 0, 1, 0)), utc(2011, 0, 1));
       
    39         assert.deepEqual(floor(utc(2011, 0, 1, 1)), utc(2011, 0, 1));
       
    40       },
       
    41       "does not observe the start of daylight savings time": function(floor) {
       
    42         assert.deepEqual(floor(utc(2011, 2, 13, 7)), utc(2011, 2, 13));
       
    43         assert.deepEqual(floor(utc(2011, 2, 13, 8)), utc(2011, 2, 13));
       
    44         assert.deepEqual(floor(utc(2011, 2, 13, 9)), utc(2011, 2, 13));
       
    45         assert.deepEqual(floor(utc(2011, 2, 13, 10)), utc(2011, 2, 13));
       
    46       },
       
    47       "does not observe the end of daylight savings time": function(floor) {
       
    48         assert.deepEqual(floor(utc(2011, 10, 6, 5)), utc(2011, 10, 6));
       
    49         assert.deepEqual(floor(utc(2011, 10, 6, 6)), utc(2011, 10, 6));
       
    50         assert.deepEqual(floor(utc(2011, 10, 6, 7)), utc(2011, 10, 6));
       
    51         assert.deepEqual(floor(utc(2011, 10, 6, 8)), utc(2011, 10, 6));
       
    52       }
       
    53     }
       
    54   }
       
    55 });
       
    56 
       
    57 function local(year, month, day, hours, minutes, seconds) {
       
    58   return new Date(year, month, day, hours || 0, minutes || 0, seconds || 0);
       
    59 }
       
    60 
       
    61 function utc(year, month, day, hours, minutes, seconds) {
       
    62   return new Date(Date.UTC(year, month, day, hours || 0, minutes || 0, seconds || 0));
       
    63 }
       
    64 
       
    65 suite.export(module);