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