Factor out ol.geom.flat.closest

This commit is contained in:
Tom Payne
2014-03-12 11:17:39 +01:00
parent b565092d62
commit 2b6845244c
8 changed files with 96 additions and 95 deletions

View File

@@ -1,41 +1,41 @@
goog.provide('ol.test.geom.closest');
goog.provide('ol.test.geom.flat.closest');
describe('ol.geom.closest', function() {
describe('ol.geom.flat.closest', function() {
describe('with simple data', function() {
var flatCoordinates = [0, 0, 1, 0, 3, 0, 5, 0, 6, 0, 8, 0, 11, 0];
describe('ol.geom.closest.getMaxSquaredDelta', function() {
describe('ol.geom.flat.closest.getMaxSquaredDelta', function() {
it('returns the expected value in simple cases', function() {
expect(ol.geom.closest.getMaxSquaredDelta(
expect(ol.geom.flat.closest.getMaxSquaredDelta(
flatCoordinates, 0, flatCoordinates.length, 2, 0)).to.be(9);
});
});
describe('ol.geom.closest.getClosestPoint', function() {
describe('ol.geom.flat.closest.getClosestPoint', function() {
it('returns the expected value', function() {
var maxDelta = Math.sqrt(ol.geom.closest.getMaxSquaredDelta(
var maxDelta = Math.sqrt(ol.geom.flat.closest.getMaxSquaredDelta(
flatCoordinates, 0, flatCoordinates.length, 2, 0));
expect(maxDelta).to.be(3);
var closestPoint = [NaN, NaN];
expect(ol.geom.closest.getClosestPoint(
expect(ol.geom.flat.closest.getClosestPoint(
flatCoordinates, 0, flatCoordinates.length, 2,
maxDelta, false, 0, 0, closestPoint, Infinity)).to.be(0);
expect(closestPoint).to.eql([0, 0]);
expect(ol.geom.closest.getClosestPoint(
expect(ol.geom.flat.closest.getClosestPoint(
flatCoordinates, 0, flatCoordinates.length, 2,
maxDelta, false, 4, 1, closestPoint, Infinity)).to.be(1);
expect(closestPoint).to.eql([4, 0]);
expect(ol.geom.closest.getClosestPoint(
expect(ol.geom.flat.closest.getClosestPoint(
flatCoordinates, 0, flatCoordinates.length, 2,
maxDelta, false, 5, 2, closestPoint, Infinity)).to.be(4);
expect(closestPoint).to.eql([5, 0]);
expect(ol.geom.closest.getClosestPoint(
expect(ol.geom.flat.closest.getClosestPoint(
flatCoordinates, 0, flatCoordinates.length, 2,
maxDelta, false, 10, 100, closestPoint, Infinity)).to.be(10000);
expect(closestPoint).to.eql([10, 0]);
@@ -78,31 +78,31 @@ describe('ol.geom.closest', function() {
describe('ol.geom.closet.maSquaredDelta', function() {
it('returns the expected value', function() {
expect(ol.geom.closest.getMaxSquaredDelta(
expect(ol.geom.flat.closest.getMaxSquaredDelta(
flatCoordinates, 0, flatCoordinates.length, 2, 0)).
to.roughlyEqual(1389.1058, 1e-9);
});
});
describe('ol.geom.closest.getClosestPoint', function() {
describe('ol.geom.flat.closest.getClosestPoint', function() {
it('returns the expected value', function() {
var maxDelta = Math.sqrt(ol.geom.closest.getMaxSquaredDelta(
var maxDelta = Math.sqrt(ol.geom.flat.closest.getMaxSquaredDelta(
flatCoordinates, 0, flatCoordinates.length, 2, 0));
expect(maxDelta).to.roughlyEqual(Math.sqrt(1389.1058), 1e-9);
var closestPoint = [NaN, NaN];
expect(ol.geom.closest.getClosestPoint(
expect(ol.geom.flat.closest.getClosestPoint(
flatCoordinates, 0, flatCoordinates.length, 2,
maxDelta, false, 0, 0, closestPoint, Infinity)).
to.roughlyEqual(110902.405, 1e-9);
expect(closestPoint).to.eql([292.41, 159.37]);
expect(ol.geom.closest.getClosestPoint(
expect(ol.geom.flat.closest.getClosestPoint(
flatCoordinates, 0, flatCoordinates.length, 2,
maxDelta, false, 500, 500, closestPoint, Infinity)).
to.roughlyEqual(106407.905, 1e-9);
expect(closestPoint).to.eql([671.55, 222.55]);
expect(ol.geom.closest.getClosestPoint(
expect(ol.geom.flat.closest.getClosestPoint(
flatCoordinates, 0, flatCoordinates.length, 2,
maxDelta, false, 1000, 500, closestPoint, Infinity)).
to.roughlyEqual(18229.4425, 1e-9);
@@ -118,14 +118,14 @@ describe('ol.geom.closest', function() {
var flatCoordinates = [0, 0, 10, -10, 2, 2, 30, -20];
var stride = 4;
describe('ol.geom.closest.getClosestPoint', function() {
describe('ol.geom.flat.closest.getClosestPoint', function() {
it('interpolates M coordinates', function() {
var maxDelta = Math.sqrt(ol.geom.closest.getMaxSquaredDelta(
var maxDelta = Math.sqrt(ol.geom.flat.closest.getMaxSquaredDelta(
flatCoordinates, 0, flatCoordinates.length, stride, 0));
expect(maxDelta).to.roughlyEqual(Math.sqrt(8), 1e-9);
var closestPoint = [NaN, NaN];
expect(ol.geom.closest.getClosestPoint(
expect(ol.geom.flat.closest.getClosestPoint(
flatCoordinates, 0, flatCoordinates.length, stride,
maxDelta, false, 1, 1, closestPoint, Infinity)).
to.roughlyEqual(0, 1e-9);
@@ -143,4 +143,5 @@ describe('ol.geom.closest', function() {
});
goog.require('ol.geom.closest');
goog.require('ol.geom.flat');
goog.require('ol.geom.flat.closest');