"Inversion works for non-zero translation": function() { var mercator = d3.geo.mercator().translate([123, 99]).scale(100), coords = mercator([0, 85]), lonlat = mercator.invert(coords); assert.inDelta(lonlat[0], 0, 1e-6); assert.inDelta(lonlat[1], 85, 1e-6); }
"size": function() { var f = new BloomFilter(1000, 4), i = -1; for (var i = 0; i < 100; ++i) f.add(i); assert.inDelta(f.size(), 100, 6); for (var i = 0; i < 1000; ++i) f.add(i); assert.inDelta(f.size(), 1000, 100); }
"the length of a line string is the sum of its great arc segments": function (length) { assert.inDelta(length({ type: "LineString", coordinates: [ [-45, 0], [45, 0] ] }), Math.PI / 2, 1e-6); assert.inDelta(length({ type: "LineString", coordinates: [ [-45, 0], [-30, 0], [-15, 0], [0, 0] ] }), Math.PI / 4, 1e-6); assert.inDelta(length({ type: "MultiLineString", coordinates: [ [ [-45, 0], [-30, 0] ], [ [-15, 0], [0, 0] ] ] }), Math.PI / 6, 1e-6); },
'from line': function (p) { var dt = 1, err_delta = 0.01, line = new Line(1, 1, 10, 1); // top p.x = 5; p.y = 0.9; p.vx = 0.2; p.vy = -0.2; assert.isTrue(p.reflectFromLine(line, dt)); assert.equal(p.vx, 0.2); assert.equal(p.vy, 0.2); // bottom p.x = 2; p.y = 1.1; p.vx = 0.2; p.vy = 0.2; assert.isTrue(p.reflectFromLine(line, dt)); assert.equal(p.vx, 0.2); assert.equal(p.vy, -0.2); // another line line = new Line(1, 1, 10, 10); p.x = 5.1; p.y = 5; p.vx = 0.2; p.vy = 0.0; assert.isTrue(p.reflectFromLine(line, dt)); assert.inDelta(p.vx, 0.0, err_delta); assert.inDelta(p.vy, 0.2, err_delta); // far away p.x = 50; p.y = 25; p.vx = 0.2; p.vy = 0.2; assert.isFalse(p.reflectFromLine(line, dt)); assert.equal(p.vx, 0.2); assert.equal(p.vy, 0.2); },
"Inversion works for non-zero translation": function() { var projection = d3.geo.orthographic().translate([123, 99]).scale(100), coords = projection([0, 85]), lonlat = projection.invert(coords); assert.inDelta(lonlat[0], 0, 1e-6); assert.inDelta(lonlat[1], 85, 1e-6); }
"`inDelta`": function () { assert.inDelta(42, 40, 5); assert.inDelta(42, 40, 2); assert.inDelta(42, 42, 0); assert.inDelta(3.1, 3.0, 0.2); assertError(assert.inDelta, [42, 40, 1]); },
"Inversion works for non-zero translation": function() { var albers = d3.geo.albers().translate([123, 99]).scale(100), coords = albers([0, 85]), lonlat = albers.invert(coords); assert.inDelta(lonlat[0], 0, 1e-6); assert.inDelta(lonlat[1], 85, 1e-6); }
"Inversion works for non-zero translation": function() { var azimuthal = d3.geo.azimuthal().mode("stereographic").translate([123, 99]).scale(100), coords = azimuthal([0, 85]), lonlat = azimuthal.invert(coords); assert.inDelta(lonlat[0], 0, 1e-6); assert.inDelta(lonlat[1], 85, 1e-6); }
"size": function() { var f = new BloomFilter(1000, 4), i = -1; while (++i < 100) f.add(i); assert.inDelta(f.size(), 97.014763, 1e-6); --i; while (++i < 1000) f.add(i); assert.inDelta(f.size(), 1007.549320, 1e-6); }
"size": function() { var f = new BloomFilter(1000, 4), i = -1; while (++i < 100) f.add(i); assert.inDelta(f.size(), 101.241308, 1e-6); --i; while (++i < 1000) f.add(i); assert.inDelta(f.size(), 1067.174487, 1e-6); }
"simple": function() { var erf = science.stats.erf; assert.inDelta(erf(-3 ), -0.999977909503, 1e-6); assert.inDelta(erf(-1 ), -0.842700792950, 1e-6); assert.inDelta(erf( 0 ), 0, 1e-6); assert.inDelta(erf( 0.5), 0.520499877813, 1e-6); assert.inDelta(erf( 2.1), 0.997020533344, 1e-6); }
"Phillipines": function(mercator) { var coords = mercator([180, 0]); assert.inDelta(coords[0], 50, 1e-6); assert.inDelta(coords[1], 0, 1e-6); var lonlat = mercator.invert(coords); assert.inDelta(lonlat[0], 180, 1e-6); assert.inDelta(lonlat[1], 0, 1e-6); },
"Antarctic": function(mercator) { var coords = mercator([0, -85]); assert.inDelta(coords[0], 0, 1e-6); assert.inDelta(coords[1], 49.8362085, 1e-6); var lonlat = mercator.invert(coords); assert.inDelta(lonlat[0], 0, 1e-6); assert.inDelta(lonlat[1], -85, 1e-6); },
"Hawaii": function(albers) { var coords = albers([-180, 0]); assert.inDelta(coords[0], -984.779405, 1e-6); assert.inDelta(coords[1], 209.571197, 1e-6); var lonlat = albers.invert(coords); assert.inDelta(lonlat[0], -180, 1e-6); assert.inDelta(lonlat[1], 0, 1e-6); },
"Arctic": function(albers) { var coords = albers([0, 85]); assert.inDelta(coords[0], 1031.393796, 1e-6); assert.inDelta(coords[1], -714.160436, 1e-6); var lonlat = albers.invert(coords); assert.inDelta(lonlat[0], 0, 1e-6); assert.inDelta(lonlat[1], 85, 1e-6); },
"Antarctic": function(projection) { var coords = projection([0, -90]); assert.inDelta(coords[0], 0, 1e-6); assert.inDelta(coords[1], 141.421356, 1e-6); var lonlat = projection.invert(coords); assert.inDelta(lonlat[0], 180, 1e-6); assert.inDelta(lonlat[1], -90, 1e-6); },
"Arctic": function(projection) { var coords = projection([0, 85]); assert.inDelta(coords[0], 0, 1e-6); assert.inDelta(coords[1], -135.118041, 1e-6); var lonlat = projection.invert(coords); assert.inDelta(lonlat[0], 0, 1e-6); assert.inDelta(lonlat[1], 85, 1e-6); },
"Phillipines": function(azimuthal) { var coords = azimuthal([180, 0]); assert.inDelta(coords[0], 0, 1e-6); assert.inDelta(coords[1], 0, 1e-6); var lonlat = azimuthal.invert(coords); assert.inDelta(lonlat[0], 0, 1e-6); assert.inDelta(lonlat[1], 0, 1e-6); },
"Antarctic": function(azimuthal) { var coords = azimuthal([0, -85]); assert.inDelta(coords[0], 0, 1e-6); assert.inDelta(coords[1], 99.619469, 1e-6); var lonlat = azimuthal.invert(coords); assert.inDelta(lonlat[0], 0, 1e-6); assert.inDelta(lonlat[1], -85, 1e-6); },
"origin": function(azimuthal) { var coords = azimuthal([0, 0]); assert.inDelta(coords[0], 0, 1e-6); assert.inDelta(coords[1], 0, 1e-6); var lonlat = azimuthal.invert(coords); assert.inDelta(lonlat[0], 0, 1e-6); assert.inDelta(lonlat[1], 0, 1e-6); },
"Antarctic": function(albers) { var coords = albers([0, -85]); assert.inDelta(coords[0], 2753.458335, 1e-6); assert.inDelta(coords[1], 317.371122, 1e-6); var lonlat = albers.invert(coords); assert.inDelta(lonlat[0], 0, 1e-6); assert.inDelta(lonlat[1], -85, 1e-6); },
"simple": function() { var phi = science.stats.phi; assert.inDelta(phi(-3 ), 0.00134989803163, 1e-6); assert.inDelta(phi(-1 ), 0.158655253931, 1e-6); assert.inDelta(phi( 0 ), 0.5, 1e-6); assert.inDelta(phi( 0.5), 0.691462461274, 1e-6); assert.inDelta(phi( 2.1), 0.982135579437, 1e-6); }
"Phillipines": function(albers) { var coords = albers([180, 0]); assert.inDelta(coords[0], 894.435228, 1e-6); assert.inDelta(coords[1], -2927.636630, 1e-6); var lonlat = albers.invert(coords); assert.inDelta(lonlat[0], 180, 1e-6); assert.inDelta(lonlat[1], 0, 1e-6); },
"Antarctic": function(projection) { var coords = projection([0, -85]); assert.inDelta(coords[0], 0, 1e-6); assert.inDelta(coords[1], 99.619469, 1e-6); var lonlat = projection.invert(coords); assert.inDelta(lonlat[0], 0, 1e-6); assert.inDelta(lonlat[1], -85, 1e-6); },
"computes the centroid as mid-radius and mid-angle": function(arc) { var c = arc().innerRadius(0).outerRadius(100).startAngle(0).endAngle(2 * Math.PI).centroid(); assert.inDelta(c[0], 0, 1e-6); assert.inDelta(c[1], 50, 1e-6); var c = arc().innerRadius(100).outerRadius(200).startAngle(Math.PI).endAngle(2 * Math.PI).centroid(); assert.inDelta(c[0], -150, 1e-6); assert.inDelta(c[1], 0, 1e-6); },
"Arctic": function(azimuthal) { var coords = azimuthal([0, 85]); assert.inDelta(coords[0], 0, 1e-6); assert.inDelta(coords[1], -135.118041, 1e-6); var lonlat = azimuthal.invert(coords); assert.inDelta(lonlat[0], 0, 1e-6); assert.inDelta(lonlat[1], 85, 1e-6); },
"Hawaii": function(mercator) { var coords = mercator([-180, 0]); assert.inDelta(coords[0], -50, 1e-6); assert.inDelta(coords[1], 0, 1e-6); var lonlat = mercator.invert(coords); assert.inDelta(lonlat[0], -180, 1e-6); assert.inDelta(lonlat[1], 0, 1e-6); },
"Phillipines": function(projection) { var coords = projection([180, 0]); assert.inDelta(coords[0], 0, 1e-6); assert.inDelta(coords[1], 0, 1e-6); var lonlat = projection.invert(coords); assert.inDelta(lonlat[0], 0, 1e-6); assert.inDelta(lonlat[1], 0, 1e-6); },
"Hawaii": function(projection) { var coords = projection([-180, 0]); assert.inDelta(coords[0], 0, 1e-6); assert.inDelta(coords[1], 0, 1e-6); var lonlat = projection.invert(coords); assert.inDelta(lonlat[0], 0, 1e-6); assert.inDelta(lonlat[1], 0, 1e-6); },
"Antarctic": function(azimuthal) { var coords = azimuthal([0, -90]); assert.inDelta(coords[0], 0, 1e-6); assert.inDelta(coords[1], 141.421356, 1e-6); var lonlat = azimuthal.invert(coords); assert.inDelta(lonlat[0], 180, 1e-6); assert.inDelta(lonlat[1], -90, 1e-6); },