Files
openlayers/test/spec/ol/ellipsoid/ellipsoid.test.js
2015-08-23 12:11:46 -06:00

228 lines
4.2 KiB
JavaScript

goog.provide('ol.test.Ellipsoid');
describe('ol.Ellipsoid', function() {
var expected = [
{
c1: [0, 0],
c2: [0, 0],
vincentyDistance: 0
},
{
c1: [0, 0],
c2: [45, 45],
vincentyDistance: 6662472.718217184
},
{
c1: [0, 0],
c2: [45, -45],
vincentyDistance: 6662472.718217184
},
{
c1: [0, 0],
c2: [-45, -45],
vincentyDistance: 6662472.718217184
},
{
c1: [0, 0],
c2: [-45, 45],
vincentyDistance: 6662472.718217184
},
{
c1: [0, 0],
c2: [180, 90],
vincentyDistance: 10001965.729311794
},
{
c1: [0, 0],
c2: [180, -90],
vincentyDistance: 10001965.729311794
},
{
c1: [0, 0],
c2: [-180, 90],
vincentyDistance: 10001965.729311794
},
{
c1: [0, 0],
c2: [-180, 90],
vincentyDistance: 10001965.729311794
},
{
c1: [45, 45],
c2: [45, 45],
vincentyDistance: 0
},
{
c1: [45, 45],
c2: [45, -45],
vincentyDistance: 9969888.755957305
},
{
c1: [45, 45],
c2: [-45, -45],
vincentyDistance: 13324945.436434371
},
{
c1: [45, 45],
c2: [-45, 45],
vincentyDistance: 6690232.932559058
},
{
c1: [45, 45],
c2: [180, 90],
vincentyDistance: 5017021.35133314
},
{
c1: [45, 45],
c2: [180, -90],
vincentyDistance: 14986910.107290443
},
{
c1: [45, 45],
c2: [-180, 90],
vincentyDistance: 5017021.35133314
},
{
c1: [45, 45],
c2: [-180, 90],
vincentyDistance: 5017021.35133314
},
{
c1: [45, -45],
c2: [45, -45],
vincentyDistance: 0
},
{
c1: [45, -45],
c2: [-45, -45],
vincentyDistance: 6690232.932559058
},
{
c1: [45, -45],
c2: [-45, 45],
vincentyDistance: 13324945.436434371
},
{
c1: [45, -45],
c2: [180, 90],
vincentyDistance: 14986910.107290443
},
{
c1: [45, -45],
c2: [180, -90],
vincentyDistance: 5017021.35133314
},
{
c1: [45, -45],
c2: [-180, 90],
vincentyDistance: 14986910.107290443
},
{
c1: [45, -45],
c2: [-180, 90],
vincentyDistance: 14986910.107290443
},
{
c1: [-45, -45],
c2: [-45, -45],
vincentyDistance: 0
},
{
c1: [-45, -45],
c2: [-45, 45],
vincentyDistance: 9969888.755957305
},
{
c1: [-45, -45],
c2: [180, 90],
vincentyDistance: 14986910.107290443
},
{
c1: [-45, -45],
c2: [180, -90],
vincentyDistance: 5017021.35133314
},
{
c1: [-45, -45],
c2: [-180, 90],
vincentyDistance: 14986910.107290443
},
{
c1: [-45, -45],
c2: [-180, 90],
vincentyDistance: 14986910.107290443
},
{
c1: [-45, 45],
c2: [-45, 45],
vincentyDistance: 0
},
{
c1: [-45, 45],
c2: [180, 90],
vincentyDistance: 5017021.35133314
},
{
c1: [-45, 45],
c2: [180, -90],
vincentyDistance: 14986910.107290443
},
{
c1: [-45, 45],
c2: [-180, 90],
vincentyDistance: 5017021.35133314
},
{
c1: [-45, 45],
c2: [-180, 90],
vincentyDistance: 5017021.35133314
},
{
c1: [180, 90],
c2: [180, 90],
vincentyDistance: 0
},
{
c1: [180, -90],
c2: [180, -90],
vincentyDistance: 0
},
{
c1: [-180, 90],
c2: [-180, 90],
vincentyDistance: 0
},
{
c1: [-180, 90],
c2: [-180, 90],
vincentyDistance: 0
},
{
c1: [-180, 90],
c2: [-180, 90],
vincentyDistance: 0
}
];
describe('vincenty', function() {
it('returns the same distances as Chris Veness\'s reference implementation',
function() {
var e, i, v;
for (i = 0; i < expected.length; ++i) {
e = expected[i];
v = ol.ellipsoid.WGS84.vincenty(e.c1, e.c2, 1e-12, 100);
expect(v.distance).to.roughlyEqual(e.vincentyDistance, 1e-8);
}
});
});
});
goog.require('ol.Ellipsoid');
goog.require('ol.ellipsoid.WGS84');