55 lines
1.5 KiB
JavaScript
55 lines
1.5 KiB
JavaScript
/* -*- Mode: js; js-indent-level: 2; -*- */
|
|
/*
|
|
* Copyright 2011 Mozilla Foundation and contributors
|
|
* Licensed under the New BSD license. See LICENSE or:
|
|
* http://opensource.org/licenses/BSD-3-Clause
|
|
*/
|
|
if (typeof define !== 'function') {
|
|
var define = require('amdefine')(module, require);
|
|
}
|
|
define(function (require, exports, module) {
|
|
|
|
var binarySearch = require('../../lib/source-map/binary-search');
|
|
|
|
function numberCompare(a, b) {
|
|
return a - b;
|
|
}
|
|
|
|
exports['test too high'] = function (assert, util) {
|
|
var needle = 30;
|
|
var haystack = [2,4,6,8,10,12,14,16,18,20];
|
|
|
|
assert.doesNotThrow(function () {
|
|
binarySearch.search(needle, haystack, numberCompare);
|
|
});
|
|
|
|
assert.equal(haystack[binarySearch.search(needle, haystack, numberCompare)], 20);
|
|
};
|
|
|
|
exports['test too low'] = function (assert, util) {
|
|
var needle = 1;
|
|
var haystack = [2,4,6,8,10,12,14,16,18,20];
|
|
|
|
assert.doesNotThrow(function () {
|
|
binarySearch.search(needle, haystack, numberCompare);
|
|
});
|
|
|
|
assert.equal(binarySearch.search(needle, haystack, numberCompare), -1);
|
|
};
|
|
|
|
exports['test exact search'] = function (assert, util) {
|
|
var needle = 4;
|
|
var haystack = [2,4,6,8,10,12,14,16,18,20];
|
|
|
|
assert.equal(haystack[binarySearch.search(needle, haystack, numberCompare)], 4);
|
|
};
|
|
|
|
exports['test fuzzy search'] = function (assert, util) {
|
|
var needle = 19;
|
|
var haystack = [2,4,6,8,10,12,14,16,18,20];
|
|
|
|
assert.equal(haystack[binarySearch.search(needle, haystack, numberCompare)], 18);
|
|
};
|
|
|
|
});
|