/* -*- 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); }; });