111 lines
4.0 KiB
JavaScript
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');
|