mirror of
https://github.com/FoggedLens/iD.git
synced 2026-02-12 16:52:50 +00:00
72 lines
3.1 KiB
JavaScript
72 lines
3.1 KiB
JavaScript
describe('iD.units', function() {
|
||
describe('dmsMatcher', function() {
|
||
it('parses D M SS format', function() {
|
||
var result = iD.dmsMatcher('35 11 10.1 , 136 49 53.8');
|
||
expect(result[0]).to.be.closeTo( 35.18614, 0.00001);
|
||
expect(result[1]).to.be.closeTo(136.83161, 0.00001);
|
||
});
|
||
it('parses D M SS format, with negative value', function() {
|
||
var result = iD.dmsMatcher('-35 11 10.1 , -136 49 53.8');
|
||
expect(result[0]).to.be.closeTo( -35.18614, 0.00001);
|
||
expect(result[1]).to.be.closeTo(-136.83161, 0.00001);
|
||
});
|
||
|
||
it('parses D MM format', function() {
|
||
var result = iD.dmsMatcher('35 11.1683 , 136 49.8966');
|
||
expect(result[0]).to.be.closeTo( 35.18614, 0.00001);
|
||
expect(result[1]).to.be.closeTo(136.83161, 0.00001);
|
||
});
|
||
it('parses D MM format, with negative value', function() {
|
||
var result = iD.dmsMatcher('-35 11.1683 , -136 49.8966');
|
||
expect(result[0]).to.be.closeTo( -35.18614, 0.00001);
|
||
expect(result[1]).to.be.closeTo(-136.83161, 0.00001);
|
||
});
|
||
it('parses z/x/y coordinate', () => {
|
||
var result = iD.dmsMatcher('2/-1.23/34.44');
|
||
expect(result[0]).to.be.closeTo(-1.23, 0.00001);
|
||
expect(result[1]).to.be.closeTo(34.44, 0.00001);
|
||
expect(result[2]).to.eql(2);
|
||
});
|
||
it('parses x/y coordinate', () => {
|
||
var result = iD.dmsMatcher('-1.23/34.44', 'de');
|
||
expect(result[0]).to.be.closeTo(-1.23, 0.00001);
|
||
expect(result[1]).to.be.closeTo(34.44, 0.00001);
|
||
});
|
||
it('parses coordinate with localized numbers', () => {
|
||
var result = iD.dmsMatcher('49,4109399, 8,7147086', 'de');
|
||
expect(result[0]).to.be.closeTo(49.4109399, 0.00001);
|
||
expect(result[1]).to.be.closeTo( 8.7147086, 0.00001);
|
||
});
|
||
|
||
it('handles invalid input', function() {
|
||
var result = iD.dmsMatcher('!@#$');
|
||
expect(result).to.be.null;
|
||
});
|
||
});
|
||
|
||
describe('dmsCoordinatePair', function() {
|
||
it('formats coordinate pair', function () {
|
||
var result = iD.dmsCoordinatePair([90 + 0.5/3600, 45]);
|
||
expect(result).to.be.eql('45°N, 90°0′1″E');
|
||
});
|
||
it('formats 0°', function () {
|
||
var result = iD.dmsCoordinatePair([0, 0]);
|
||
expect(result).to.be.eql('0°, 0°');
|
||
});
|
||
it('formats negative value', function () {
|
||
var result = iD.dmsCoordinatePair([-179, -90]);
|
||
expect(result).to.be.eql('90°S, 179°W');
|
||
});
|
||
it('formats 180° lng, should be E or W', function () {
|
||
// The longitude at this line can be given as either east or west.
|
||
var result = iD.dmsCoordinatePair([180, 0]);
|
||
expect(result).to.be.oneOf(['0°, 180°W', '0°, 180E°']);
|
||
});
|
||
it('formats value over 90°lat or 180°lng', function () {
|
||
var result = iD.dmsCoordinatePair([181, 91]);
|
||
expect(result).to.be.oneOf(['90°N, 179°W']);
|
||
});
|
||
});
|
||
});
|
||
|