Skip to contents

Checks if the argument is a function and if all expected arguments are provided by the function.

Usage

assert_function(arg, params = NULL, optional = FALSE)

Arguments

arg

A function

The function to be checked

params

A character vector

A character vector of expected argument names for the aforementioned function in arg. If ellipsis, ..., is included in the function formals of the function in arg, this argument, params will be ignored, accepting all values of the character vector.

optional

Is the checked argument optional?

If set to FALSE and arg is NULL then an error is thrown.

Value

The function throws an error

  • if the argument is not a function or

  • if the function does not provide all arguments as specified for the params argument (assuming ellipsis is not in function formals)

Examples

example_fun <- function(fun) {
  assert_function(fun, params = c("x"))
}

example_fun(mean)

try(example_fun(1))
#> Error in assert_function(fun, params = c("x")) : 
#>   `fun` must be a function but is `1`

try(example_fun(sum))
#> Error in assert_function(fun, params = c("x")) : 
#>   `x` is not an argument of the function specified for `fun`