81 lines
2.5 KiB
JavaScript
81 lines
2.5 KiB
JavaScript
import {interpolatePoint} from '../../../../../src/ol/geom/flat/interpolate.js';
|
|
|
|
|
|
describe('ol.geom.flat.interpolate', function() {
|
|
|
|
describe('ol.geom.flat.interpolate.interpolatePoint', function() {
|
|
|
|
it('returns the expected value for single points', function() {
|
|
const flatCoordinates = [0, 1];
|
|
const point =
|
|
interpolatePoint(flatCoordinates, 0, 2, 2, 0.5);
|
|
expect(point).to.eql([0, 1]);
|
|
});
|
|
|
|
it('returns the expected value for simple line segments', function() {
|
|
const flatCoordinates = [0, 1, 2, 3];
|
|
const point =
|
|
interpolatePoint(flatCoordinates, 0, 4, 2, 0.5);
|
|
expect(point).to.eql([1, 2]);
|
|
});
|
|
|
|
it('returns the expected value when the mid point is an existing ' +
|
|
'coordinate',
|
|
function() {
|
|
const flatCoordinates = [0, 1, 2, 3, 4, 5];
|
|
const point = interpolatePoint(
|
|
flatCoordinates, 0, 6, 2, 0.5);
|
|
expect(point).to.eql([2, 3]);
|
|
});
|
|
|
|
it('also when vertices are repeated', function() {
|
|
const flatCoordinates = [0, 1, 2, 3, 2, 3, 4, 5];
|
|
const point = interpolatePoint(
|
|
flatCoordinates, 0, 8, 2, 0.5);
|
|
expect(point).to.eql([2, 3]);
|
|
});
|
|
|
|
it('returns the expected value when the midpoint falls halfway between ' +
|
|
'two existing coordinates',
|
|
function() {
|
|
const flatCoordinates = [0, 1, 2, 3, 4, 5, 6, 7];
|
|
const point = interpolatePoint(
|
|
flatCoordinates, 0, 8, 2, 0.5);
|
|
expect(point).to.eql([3, 4]);
|
|
});
|
|
|
|
it('also when vertices are repeated', function() {
|
|
const flatCoordinates = [0, 1, 2, 3, 2, 3, 4, 5, 6, 7];
|
|
const point = interpolatePoint(
|
|
flatCoordinates, 0, 10, 2, 0.5);
|
|
expect(point).to.eql([3, 4]);
|
|
});
|
|
|
|
it('returns the expected value when the coordinates are not evenly spaced',
|
|
function() {
|
|
const flatCoordinates = [0, 1, 2, 3, 6, 7];
|
|
const point = interpolatePoint(
|
|
flatCoordinates, 0, 6, 2, 0.5);
|
|
expect(point).to.eql([3, 4]);
|
|
});
|
|
|
|
it('also when vertices are repeated',
|
|
function() {
|
|
const flatCoordinates = [0, 1, 2, 3, 2, 3, 6, 7];
|
|
const point = interpolatePoint(
|
|
flatCoordinates, 0, 8, 2, 0.5);
|
|
expect(point).to.eql([3, 4]);
|
|
});
|
|
|
|
it('returns the expected value when using opt_dest',
|
|
function() {
|
|
const flatCoordinates = [0, 1, 2, 3, 6, 7];
|
|
const point = interpolatePoint(
|
|
flatCoordinates, 0, 6, 2, 0.5, [0, 0]);
|
|
expect(point).to.eql([3, 4]);
|
|
});
|
|
|
|
});
|
|
|
|
});
|