Add more tests for ol.coordinate.

This commit is contained in:
Marc Jansen
2015-04-02 18:39:46 +02:00
parent 72a4b31e86
commit 3245fa43ae

View File

@@ -106,6 +106,79 @@ describe('ol.coordinate', function() {
});
});
describe('#format', function() {
it('can deal with undefined coordinate', function() {
expect(ol.coordinate.format()).to.be('');
});
it('formats a coordinate into a template (default precision is 0)',
function() {
var coord = [7.85, 47.983333];
var template = 'Coordinate is ({x}|{y}).';
var got = ol.coordinate.format(coord, template);
var expected = 'Coordinate is (8|48).';
expect(got).to.be(expected);
});
it('formats a coordinate into a template and respects precision)',
function() {
var coord = [7.85, 47.983333];
var template = 'Coordinate is ({x}|{y}).';
var got = ol.coordinate.format(coord, template, 2);
var expected = 'Coordinate is (7.85|47.98).';
expect(got).to.be(expected);
});
});
describe('#rotate', function() {
it('can rotate point in place', function() {
var coord = [7.85, 47.983333];
var rotateRadians = Math.PI / 2; // 90 degrees
ol.coordinate.rotate(coord, rotateRadians);
expect(coord[0].toFixed(6)).to.eql('-47.983333');
expect(coord[1].toFixed(6)).to.eql('7.850000');
});
it('returns the rotated point', function() {
var coord = [7.85, 47.983333];
var rotateRadians = Math.PI / 2; // 90 degrees
var rotated = ol.coordinate.rotate(coord, rotateRadians);
expect(rotated[0].toFixed(7)).to.eql('-47.9833330');
expect(rotated[1].toFixed(7)).to.eql('7.8500000');
});
});
describe('#scale', function() {
it('can scale point in place', function() {
var coord = [7.85, 47.983333];
var scale = 1.2;
ol.coordinate.scale(coord, scale);
expect(coord[0].toFixed(7)).to.eql('9.4200000');
expect(coord[1].toFixed(7)).to.eql('57.5799996');
});
it('returns the scaled point', function() {
var coord = [7.85, 47.983333];
var scale = 1.2;
var scaledCoord = ol.coordinate.scale(coord, scale);
expect(scaledCoord[0].toFixed(7)).to.eql('9.4200000');
expect(scaledCoord[1].toFixed(7)).to.eql('57.5799996');
});
});
describe('#sub', function() {
it('can subtract from point in place', function() {
var coord = [47, 11];
var delta = [1, -1];
ol.coordinate.sub(coord, delta);
expect(coord[0]).to.eql(46);
expect(coord[1]).to.eql(12);
});
it('can subtract from point in place', function() {
var coord = [47, 11];
var delta = [1, -1];
var subtracted = ol.coordinate.sub(coord, delta);
expect(subtracted[0]).to.eql(46);
expect(subtracted[1]).to.eql(12);
});
});
describe('#squaredDistanceToSegment', function() {
it('can handle points where the foot of the perpendicular is closest',
function() {
@@ -124,6 +197,53 @@ describe('ol.coordinate', function() {
});
describe('#toStringHDMS', function() {
it('returns the empty string on undefined input', function() {
var got = ol.coordinate.toStringHDMS();
var expected = '';
expect(got).to.be(expected);
});
it('formats a coord as expected', function() {
var coord = [7.85, 47.983333];
var got = ol.coordinate.toStringHDMS(coord);
var expected = '47° 59 0″ N 7° 51 0″ E';
expect(got).to.be(expected);
});
});
describe('#toStringXY', function() {
it('formats with zero fractional digits as default', function() {
var coord = [7.85, 47.983333];
var got = ol.coordinate.toStringXY(coord);
var expected = '8, 48';
expect(got).to.be(expected);
});
it('formats with given fractional digits, if passed', function() {
var coord = [7.85, 47.983333];
var got = ol.coordinate.toStringXY(coord, 2);
var expected = '7.85, 47.98';
expect(got).to.be(expected);
});
});
describe('#fromProjectedArray', function() {
it('returns an inverted coord for "n" or "s"', function() {
var northCoord = ol.coordinate.fromProjectedArray([1, 2], 'n');
var southCoord = ol.coordinate.fromProjectedArray([1, 2], 's');
expect(northCoord).to.eql([2, 1]);
expect(southCoord).to.eql([2, 1]);
});
it('returns an unchanged coord for any other "axis"', function() {
var eastCoord = ol.coordinate.fromProjectedArray([1, 2], 'e');
var westCoord = ol.coordinate.fromProjectedArray([1, 2], 'w');
var bogusCoord = ol.coordinate.fromProjectedArray([1, 2], 'q');
var unchangedCoord = ol.coordinate.fromProjectedArray([1, 2], '');
expect(eastCoord).to.eql([1, 2]);
expect(westCoord).to.eql([1, 2]);
expect(bogusCoord).to.eql([1, 2]);
expect(unchangedCoord).to.eql([1, 2]);
});
});
});
goog.require('ol.coordinate');