|
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); |