Throws an error if a condition isn't met
The workhorse of the package that creates an assertion from a predicate. If a condition isn't met, then an error is thrown. This function is exported for use by package developers so that they can create their own assert functions.
assert_engine( predicate, ..., msg = "The assertion failed.", what = c("all", "any"), na_ignore = FALSE, severity = c("stop", "warning", "message", "none") )
predicate |
Function that returns a logical value (possibly a vector). |
... |
Passed to the |
msg |
The error message, in the event of failure. |
what |
Either 'all' or 'any', to reduce vectorised tests to a single value. |
na_ignore |
A logical value. If |
severity |
How severe should the consequences of the assertion be?
Either |
FALSE
with the attribute message
, as provided
in the input.
Missing values are considered as FALSE
for the purposes of
whether or not an error is thrown.
# Basic usage is like do.call; pass a predicate and the arguments to it. dont_stop(assert_engine(is_true, c(TRUE, FALSE, NA))) # Customise the error message dont_stop( assert_engine(is_true, c(TRUE, FALSE, NA), msg = "Not everything is true") ) # Only fail when no values match the predicate's conditions dont_stop(assert_engine(is_true, logical(3), what = "any")) # You can use base predicates, but the error message isn't as informative dont_stop(assert_engine(is.matrix, 1:5)) # Reduce the severity of failure assert_engine(is_true, c(TRUE, FALSE, NA), severity = "message")
Please choose more modern alternatives, such as Google Chrome or Mozilla Firefox.