toolkit/javascript/d3/test/geo/mercator-test.js
changeset 47 c0b4a8b5a012
equal deleted inserted replaced
46:efd9c589177a 47:c0b4a8b5a012
       
     1 require("../env");
       
     2 require("../../d3");
       
     3 require("../../d3.geo");
       
     4 
       
     5 var vows = require("vows"),
       
     6     assert = require("assert");
       
     7 
       
     8 var suite = vows.describe("d3.geo.mercator");
       
     9 
       
    10 suite.addBatch({
       
    11   "mercator": {
       
    12     topic: function() {
       
    13       return d3.geo.mercator().translate([0, 0]).scale(100);
       
    14     },
       
    15     "Arctic": function(mercator) {
       
    16       var coords = mercator([0, 85]);
       
    17       assert.inDelta(coords[0], 0, 1e-6);
       
    18       assert.inDelta(coords[1], -49.8362085, 1e-6);
       
    19       var lonlat = mercator.invert(coords);
       
    20       assert.inDelta(lonlat[0], 0, 1e-6);
       
    21       assert.inDelta(lonlat[1], 85, 1e-6);
       
    22     },
       
    23     "Antarctic": function(mercator) {
       
    24       var coords = mercator([0, -85]);
       
    25       assert.inDelta(coords[0], 0, 1e-6);
       
    26       assert.inDelta(coords[1], 49.8362085, 1e-6);
       
    27       var lonlat = mercator.invert(coords);
       
    28       assert.inDelta(lonlat[0], 0, 1e-6);
       
    29       assert.inDelta(lonlat[1], -85, 1e-6);
       
    30     },
       
    31     "Hawaii": function(mercator) {
       
    32       var coords = mercator([-180, 0]);
       
    33       assert.inDelta(coords[0], -50, 1e-6);
       
    34       assert.inDelta(coords[1], 0, 1e-6);
       
    35       var lonlat = mercator.invert(coords);
       
    36       assert.inDelta(lonlat[0], -180, 1e-6);
       
    37       assert.inDelta(lonlat[1], 0, 1e-6);
       
    38     },
       
    39     "Phillipines": function(mercator) {
       
    40       var coords = mercator([180, 0]);
       
    41       assert.inDelta(coords[0], 50, 1e-6);
       
    42       assert.inDelta(coords[1], 0, 1e-6);
       
    43       var lonlat = mercator.invert(coords);
       
    44       assert.inDelta(lonlat[0], 180, 1e-6);
       
    45       assert.inDelta(lonlat[1], 0, 1e-6);
       
    46     },
       
    47     "Inversion works for non-zero translation": function() {
       
    48       var mercator = d3.geo.mercator().translate([123, 99]).scale(100),
       
    49           coords = mercator([0, 85]),
       
    50           lonlat = mercator.invert(coords);
       
    51       assert.inDelta(lonlat[0], 0, 1e-6);
       
    52       assert.inDelta(lonlat[1], 85, 1e-6);
       
    53     }
       
    54   }
       
    55 });
       
    56 
       
    57 suite.export(module);