StackGenVis: Alignment of Data, Algorithms, and Models for Stacking Ensemble Learning Using Performance Metrics https://doi.org/10.1109/TVCG.2020.3030352
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
StackGenVis/frontend/node_modules/binary-search-bounds/test/test.js

154 lines
3.3 KiB

"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<arr.length; ++l) {
for(var h=l; h<arr.length; ++h) {
for(var i=0; i<values.length; ++i) {
for(var j=l; j<=h; ++j) {
if(arr[j] >= 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<arr.length; ++l) {
for(var h=l; h<arr.length; ++h) {
for(var i=0; i<values.length; ++i) {
for(var j=h; j>=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<arr.length; ++l) {
for(var h=l; h<arr.length; ++h) {
for(var i=0; i<values.length; ++i) {
for(var j=l; j<=h; ++j) {
if(arr[j] > 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<values.length; ++i) {
for(var j=arr.length-1; j>=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<values.length; ++i) {
if(arr.indexOf(values[i]) < 0) {
t.equals(lu(garr, values[i]), -1)
} else {
t.equals(arr[lu(garr, values[i])], values[i])
}
}
}
checkArray([0,1,1,1,2], [-1, 0, 1, 2, 0.5, 1.5, 5])
t.end()
})