Files
openlayers/test/spec/ol/array.test.js
Bart van den Eijnden 46647373ee Merge pull request #4570 from bartvde/numbersafe
Rename defaultSort to numberSafeCompareFunction on ol.array
2015-12-17 15:24:13 +01:00

111 lines
4.0 KiB
JavaScript

goog.provide('ol.test.array');
describe('ol.array', function() {
describe('numberSafeCompareFunction', function() {
it('sorts as expected', function() {
var arr = [40, 200, 3000];
// default sort would yield [200, 3000, 40]
arr.sort(ol.array.numberSafeCompareFunction);
expect(arr).to.eql(arr);
});
});
describe('binaryFindNearest', function() {
it('returns expected value', function() {
var arr = [1000, 500, 100];
expect(ol.array.binaryFindNearest(arr, 10000)).to.eql(0);
expect(ol.array.binaryFindNearest(arr, 1000)).to.eql(0);
expect(ol.array.binaryFindNearest(arr, 900)).to.eql(0);
expect(ol.array.binaryFindNearest(arr, 750)).to.eql(1);
expect(ol.array.binaryFindNearest(arr, 550)).to.eql(1);
expect(ol.array.binaryFindNearest(arr, 500)).to.eql(1);
expect(ol.array.binaryFindNearest(arr, 450)).to.eql(1);
expect(ol.array.binaryFindNearest(arr, 300)).to.eql(2);
expect(ol.array.binaryFindNearest(arr, 200)).to.eql(2);
expect(ol.array.binaryFindNearest(arr, 100)).to.eql(2);
expect(ol.array.binaryFindNearest(arr, 50)).to.eql(2);
});
});
describe('linearFindNearest', function() {
it('returns expected value', function() {
var arr = [1000, 500, 100];
expect(ol.array.linearFindNearest(arr, 10000, 0)).to.eql(0);
expect(ol.array.linearFindNearest(arr, 10000, 1)).to.eql(0);
expect(ol.array.linearFindNearest(arr, 10000, -1)).to.eql(0);
expect(ol.array.linearFindNearest(arr, 1000, 0)).to.eql(0);
expect(ol.array.linearFindNearest(arr, 1000, 1)).to.eql(0);
expect(ol.array.linearFindNearest(arr, 1000, -1)).to.eql(0);
expect(ol.array.linearFindNearest(arr, 900, 0)).to.eql(0);
expect(ol.array.linearFindNearest(arr, 900, 1)).to.eql(0);
expect(ol.array.linearFindNearest(arr, 900, -1)).to.eql(1);
expect(ol.array.linearFindNearest(arr, 750, 0)).to.eql(1);
expect(ol.array.linearFindNearest(arr, 750, 1)).to.eql(0);
expect(ol.array.linearFindNearest(arr, 750, -1)).to.eql(1);
expect(ol.array.linearFindNearest(arr, 550, 0)).to.eql(1);
expect(ol.array.linearFindNearest(arr, 550, 1)).to.eql(0);
expect(ol.array.linearFindNearest(arr, 550, -1)).to.eql(1);
expect(ol.array.linearFindNearest(arr, 500, 0)).to.eql(1);
expect(ol.array.linearFindNearest(arr, 500, 1)).to.eql(1);
expect(ol.array.linearFindNearest(arr, 500, -1)).to.eql(1);
expect(ol.array.linearFindNearest(arr, 450, 0)).to.eql(1);
expect(ol.array.linearFindNearest(arr, 450, 1)).to.eql(1);
expect(ol.array.linearFindNearest(arr, 450, -1)).to.eql(2);
expect(ol.array.linearFindNearest(arr, 300, 0)).to.eql(2);
expect(ol.array.linearFindNearest(arr, 300, 1)).to.eql(1);
expect(ol.array.linearFindNearest(arr, 300, -1)).to.eql(2);
expect(ol.array.linearFindNearest(arr, 200, 0)).to.eql(2);
expect(ol.array.linearFindNearest(arr, 200, 1)).to.eql(1);
expect(ol.array.linearFindNearest(arr, 200, -1)).to.eql(2);
expect(ol.array.linearFindNearest(arr, 100, 0)).to.eql(2);
expect(ol.array.linearFindNearest(arr, 100, 1)).to.eql(2);
expect(ol.array.linearFindNearest(arr, 100, -1)).to.eql(2);
expect(ol.array.linearFindNearest(arr, 50, 0)).to.eql(2);
expect(ol.array.linearFindNearest(arr, 50, 1)).to.eql(2);
expect(ol.array.linearFindNearest(arr, 50, -1)).to.eql(2);
});
});
describe('reverseSubArray', function() {
it('returns expected value', function() {
var arr;
var expected = [1, 2, 3, 4, 5, 6];
arr = [1, 5, 4, 3, 2, 6];
ol.array.reverseSubArray(arr, 1, 4);
expect(arr).to.eql(expected);
arr = [3, 2, 1, 4, 5, 6];
ol.array.reverseSubArray(arr, 0, 2);
expect(arr).to.eql(expected);
arr = [1, 2, 3, 6, 5, 4];
ol.array.reverseSubArray(arr, 3, 5);
expect(arr).to.eql(expected);
arr = [6, 5, 4, 3, 2, 1];
ol.array.reverseSubArray(arr, 0, 5);
expect(arr).to.eql(expected);
});
});
});
goog.require('ol.array');