Nothing
library(gtools)
##############################
### Examples from man page ###
##############################
### Toy examples
# search for x=10
s <- binsearch( function(x) x-10, range=c(0,20) )
stopifnot(s$where==10)
# search for x=10.1
s <- binsearch( function(x) x-10.1, range=c(0,20) )
stopifnot( s$where==c(10,11) )
### Classical toy example
# binary search for the index of 'M' among the sorted letters
fun <- function(X) ifelse(LETTERS[X] > 'M', 1,
ifelse(LETTERS[X] < 'M', -1, 0 ) )
s = binsearch( fun, range=1:26 )
stopifnot( LETTERS[s$where]=="M")
##################################
### Test boundary contiditions ###
##################################
s = binsearch(fun = function(x) x-10, range=c(1,10) )
with(s, stopifnot(where==10, value==0, flag=="Found") )
s = binsearch(fun = function(x) x-1, range=c(1,10) )
with(s, stopifnot(where==1, value==0, flag=="Found") )
checkWarning <- function( expr )
{
myEnv <- environment()
catchWarning <- function(w) {
assign("warningValue", w, pos=myEnv)
invokeRestart("muffleWarning")
}
retval <- withCallingHandlers(expr = expr,
warning = catchWarning)
if( !exists("warningValue", where=myEnv, inherits=FALSE) )
stop("Expected a warning message")
}
checkWarning( s <- binsearch(fun = function(x) x-10, range=c(1,9) ) )
with(s, stopifnot(where==9, value==-1, flag=="Upper Boundary" ) )
checkWarning( s <- binsearch(fun = function(x) x-1, range=c(2,10) ) )
with(s, stopifnot(where==2, value==1, flag=="Lower Boundary" ) )
Any scripts or data that you put into this service are public.
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.