toolkit/exemples/couple/javascript/d3/test/time/years-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.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);