"use strict" var tape = require("tape") var bounds = require("../search-bounds.js") var guard = require("guarded-array") tape("greaterThanEquals", function(t) { var lb = bounds.ge function checkArray(arr, values) { var garr = guard(arr) for(var l=0; l= values[i]) { break } } t.equals(lb(garr, values[i], l, h), j, 'search in ['+l+','+h+']') } } } } checkArray([0,1,1,1,2], [-1, 0, 1, 2, 0.5, 1.5, 5]) t.equals(lb([0,2,5,6], 0), 0) t.equals(lb([0,2,5,6], 1), 1) t.equals(lb([0,2,5,6], 2), 1) t.equals(lb([0,2,5,6], 3), 2) t.equals(lb([0,2,5,6], 4), 2) t.equals(lb([0,2,5,6], 5), 2) t.equals(lb([0,2,5,6], 6), 3) function cmp(a,b) { return a - b } t.equals(lb([0,1,1,1,2], -1, cmp), 0) t.equals(lb([0,1,1,1,2], 0, cmp), 0) t.equals(lb([0,1,1,1,2], 1, cmp), 1) t.equals(lb([0,1,1,1,2], 2, cmp), 4) t.equals(lb([0,1,1,1,2], 0.5, cmp), 1) t.equals(lb([0,1,1,1,2], 1.5, cmp), 4) t.equals(lb([0,1,1,1,2], 5, cmp), 5) t.equals(lb([0,2,5,6], 0, cmp), 0) t.equals(lb([0,2,5,6], 1, cmp), 1) t.equals(lb([0,2,5,6], 2, cmp), 1) t.equals(lb([0,2,5,6], 3, cmp), 2) t.equals(lb([0,2,5,6], 4, cmp), 2) t.equals(lb([0,2,5,6], 5, cmp), 2) t.equals(lb([0,2,5,6], 6, cmp), 3) t.end() }) tape("lessThan", function(t) { var lu = bounds.lt function checkArray(arr, values) { var garr = guard(arr) for(var l=0; l=l; --j) { if(values[i] > arr[j]) { break } } t.equals(lu(garr, values[i], l, h), j, i + " - indexOf(" + values[i] + ")="+j + " [" + l + "," + h + "]") } } } } checkArray([0,1,1,1,2], [-1, 0, 1, 2, 0.5, 1.5, 5]) t.end() }) tape("greaterThan", function(t) { var lb = bounds.gt function checkArray(arr, values) { var garr = guard(arr) for(var l=0; l values[i]) { break } } t.equals(lb(garr, values[i], l, h), j) } } } } checkArray([0,1,1,1,2], [-1, 0, 1, 2, 0.5, 1.5, 5]) t.end() }) tape("lessThanEquals", function(t) { var lu = bounds.le function checkArray(arr, values) { var garr = guard(arr) for(var i=0; i=0; --j) { if(values[i] >= arr[j]) { break } } t.equals(lu(garr, values[i]), j, i + " - indexOf(" + values[i] + ")="+j ) } } checkArray([0,1,1,1,2], [-1, 0, 1, 2, 0.5, 1.5, 5]) t.end() }) tape("equals", function(t) { var lu = bounds.eq function checkArray(arr, values) { var garr = guard(arr) for(var i=0; i