130 lines
3.7 KiB
JavaScript
130 lines
3.7 KiB
JavaScript
goog.provide('ol.test.coordinate');
|
|
|
|
describe('ol.coordinate', function() {
|
|
|
|
describe('#add', function() {
|
|
var coordinate,
|
|
delta;
|
|
|
|
beforeEach(function() {
|
|
coordinate = [50.73, 7.1];
|
|
delta = [-2, 3];
|
|
});
|
|
|
|
it('returns a coordinate', function() {
|
|
var returnedCoordinate = ol.coordinate.add(coordinate, delta);
|
|
expect(returnedCoordinate).to.be.an('array');
|
|
expect(returnedCoordinate).to.have.length(2);
|
|
});
|
|
|
|
it('adds the delta', function() {
|
|
var returnedCoordinate = ol.coordinate.add(coordinate, delta);
|
|
expect(returnedCoordinate[0]).to.eql(48.73);
|
|
expect(returnedCoordinate[1]).to.eql(10.1);
|
|
});
|
|
|
|
it('modifies in place', function() {
|
|
ol.coordinate.add(coordinate, delta);
|
|
expect(coordinate[0]).to.eql(48.73);
|
|
expect(coordinate[1]).to.eql(10.1);
|
|
});
|
|
});
|
|
|
|
describe('#equals', function() {
|
|
var cologne = [50.93333, 6.95],
|
|
bonn1 = [50.73, 7.1],
|
|
bonn2 = [50.73000, 7.10000];
|
|
|
|
it('compares correctly', function() {
|
|
var bonnEqualsBonn = ol.coordinate.equals(bonn1, bonn2),
|
|
bonnEqualsCologne = ol.coordinate.equals(bonn1, cologne);
|
|
expect(bonnEqualsBonn).to.be(true);
|
|
expect(bonnEqualsCologne).to.be(false);
|
|
});
|
|
});
|
|
|
|
describe('#format', function() {
|
|
var coordinate;
|
|
beforeEach(function() {
|
|
coordinate = [6.6123, 46.7919];
|
|
});
|
|
|
|
it('rounds the values', function() {
|
|
var string = ol.coordinate.format(coordinate, '{x} {y}', 0);
|
|
expect(string).to.eql('7 47');
|
|
});
|
|
|
|
it('handles the optional fractionDigits param', function() {
|
|
var string = ol.coordinate.format(coordinate, '{x} {y}', 3);
|
|
expect(string).to.eql('6.612 46.792');
|
|
});
|
|
});
|
|
|
|
describe('#createStringXY', function() {
|
|
var coordinate,
|
|
created,
|
|
formatted;
|
|
beforeEach(function() {
|
|
coordinate = [6.6123, 46.7919];
|
|
created = null;
|
|
formatted = null;
|
|
});
|
|
|
|
it('returns a CoordinateFormatType', function() {
|
|
created = ol.coordinate.createStringXY();
|
|
expect(created).to.be.a('function');
|
|
|
|
formatted = created(coordinate);
|
|
expect(formatted).to.be.a('string');
|
|
expect(formatted).to.eql('7, 47');
|
|
});
|
|
|
|
it('respects opt_fractionDigits', function() {
|
|
created = ol.coordinate.createStringXY(3);
|
|
expect(created).to.be.a('function');
|
|
|
|
formatted = created(coordinate);
|
|
expect(formatted).to.be.a('string');
|
|
expect(formatted).to.eql('6.612, 46.792');
|
|
});
|
|
});
|
|
|
|
describe('#closestOnSegment', function() {
|
|
it('can handle points where the foot of the perpendicular is closest',
|
|
function() {
|
|
var point = [2, 5];
|
|
var segment = [[-5, 0], [10, 0]];
|
|
expect(ol.coordinate.closestOnSegment(point, segment))
|
|
.to.eql([2, 0]);
|
|
});
|
|
it('can handle points where the foot of the perpendicular is not closest',
|
|
function() {
|
|
var point = [0, -6];
|
|
var segment = [[-5, 0], [0, -1]];
|
|
expect(ol.coordinate.closestOnSegment(point, segment))
|
|
.to.eql([0, -1]);
|
|
});
|
|
});
|
|
|
|
describe('#squaredDistanceToSegment', function() {
|
|
it('can handle points where the foot of the perpendicular is closest',
|
|
function() {
|
|
var point = [2, 5];
|
|
var segment = [[-5, 0], [10, 0]];
|
|
expect(ol.coordinate.squaredDistanceToSegment(point, segment))
|
|
.to.eql(25);
|
|
});
|
|
it('can handle points where the foot of the perpendicular is not closest',
|
|
function() {
|
|
var point = [0, -6];
|
|
var segment = [[-5, 0], [0, -1]];
|
|
expect(ol.coordinate.squaredDistanceToSegment(point, segment))
|
|
.to.eql(25);
|
|
});
|
|
|
|
});
|
|
|
|
});
|
|
|
|
goog.require('ol.coordinate');
|