From fd299ad20cecb3ad07d6b7192a302d9ffc98f568 Mon Sep 17 00:00:00 2001 From: Denis Date: Mon, 24 Apr 2017 23:59:15 -0400 Subject: [PATCH] Distance conversion tests (#687) * adds distance conversion tests * Change latitude to zero Consider using cheap-ruler for calculations based on latitudes --- packages/turf-helpers/package.json | 1 + packages/turf-helpers/test.js | 26 +++++++++++++++++++++++++- 2 files changed, 26 insertions(+), 1 deletion(-) diff --git a/packages/turf-helpers/package.json b/packages/turf-helpers/package.json index 1cd969a037..e2955615bc 100644 --- a/packages/turf-helpers/package.json +++ b/packages/turf-helpers/package.json @@ -29,6 +29,7 @@ }, "homepage": "https://github.com/Turfjs/turf", "devDependencies": { + "@turf/distance": "^4.1.0", "benchmark": "^2.1.3", "tape": "^3.5.0" }, diff --git a/packages/turf-helpers/test.js b/packages/turf-helpers/test.js index a1bca5b6c3..afea17a100 100644 --- a/packages/turf-helpers/test.js +++ b/packages/turf-helpers/test.js @@ -1,5 +1,6 @@ const test = require('tape'); const helpers = require('.'); +const distance = require('@turf/distance'); const { point, polygon, @@ -11,8 +12,11 @@ const { multiPolygon, geometryCollection, radiansToDistance, + distanceToRadians, + distanceToDegrees, bearingToAngle -} = helpers; +} += helpers; test('point', t => { const ptArray = point([5, 10], {name: 'test point'}); @@ -306,6 +310,26 @@ test('radiansToDistance', t => { t.end(); }); +// the higher/lower in latitude, the greater the distortion (curvature of the earth) +const dx = distance(point([-120, 0]), point([-120.5, 0])); +const dy = distance(point([-120, 0]), point([-120, 0.5])); + +test('distanceToRadians', t => { + t.equal(distanceToRadians(dx), distanceToRadians(dy), 'radiance conversion'); + t.equal(distanceToRadians(1, 'radians'), 1); + t.equal(distanceToRadians(6373, 'kilometers'), 1); + t.equal(distanceToRadians(3960, 'miles'), 1); + + t.end(); +}); + +test('distanceToDegrees', t => { + t.equal(Number(distanceToDegrees(dx).toFixed(6)), 0.5, 'degrees conversion'); + t.equal(Number(distanceToDegrees(dy).toFixed(6)), 0.5, 'degrees conversion'); + + t.end(); +}); + test('bearingToAngle', t => { t.equal(bearingToAngle(40), 40); t.equal(bearingToAngle(-105), 255);