A minimal set of predicates and assertions used by the assertive package. This is mainly for use by other package developers who want to include run-time testing features in their own packages. End-users will usually want to use assertive directly.
A minimal set of predicates and assertions used by assertive, for package developers who want to include run-time testing features in their own packages. Most of the documentation is on the assertive page. End-users will usually want to use assertive directly.
To install the stable version, type:
install.packages("assertive.base")
To install the development version, you first need the devtools package.
install.packages("devtools")
Then you can install the assertive.base package using
library(devtools)install_bitbucket("richierocks/assertive.base")
There are six functions that accept (expressions resolving to) logical vectors, and return logical vectors:
is_true
returns a logical vector that is TRUE
when the input is TRUE
(x & !is.na(x)
).
is_false
returns a logical vector that is TRUE
when the input is FALSE
(!x & !is.na(x)
).
is_na
returns a logical vector that is TRUE
when the input is NA
(a wrapper to is.na(x)
).
...and their negations:
is_not_true
returns a logical vector that is TRUE
when the input is FALSE
or NA
(x | is.na(x)
).
is_not_false
returns a logical vector that is TRUE
when the input is TRUE
or NA
(!x | is.na(x)
).
is_not_na
returns a logical vector that is TRUE
when the input is TRUE
or FALSE
(!is.na(x)
).
There are four functions that return single logical values:
is_identical_to_true
returns TRUE
is effectively identical(x, TRUE)
(like
isTRUE
), but it lets you choose whether or not attributes are allowed on x
.
is_identical_to_false
and is_identical_to_na
works similarly with FALSE
and NA
.
are_identical
wraps base::identical
, checking if two expressions return the
same thing.
Predicates that return a vector have two corresponding assertions. For example,
is_true
has assert_all_are_true
and assert_any_are_true
.
Predicates returning a single logical value have one corresponding assertion.
For example, is_identical_to_true
has assert_is_identical_to_true
.
use_first
takes the first value of a vector, warning you if it one longer than
length one.
coerce_to
is a wrapper to as
, changing an object's type with a warning.
get_name_in_parent
gets the name of a variable in the parent environment
(stopping you have to remember deparse(substitute())
arcana).
strip_attributes
strips the attributes from an object.
merge_dots_with_list
merges the contents of ...
with a list argument, to
allow users to pass arguments to your function in either form.
dont_stop
runs code without stopping at errors, which is useful for
demonstrating errors in examples.
parenthesise
wraps a string in parentheses.
bapply
is a wraps vapply
, always returning a logical vector.
0.0-7 Added safe_deparse fn. Exported print_and_capture. Some moderate performance enhancements for vectorized predicates. Better feedback msg for is2 with fn and S4 inputs, and with vectorized class arg. Some more examples. 0.0-6 assertionConditions now include the name of the predicate that caused them. This predicate name is given in assertion failure messages. Byte compilation turned on (for slight performance gains). Numeric/complex values now reported with higher accuracy (17 sig digits) in vector error msgs. 0.0-5 Regression fixes to merge_dots_with_list, merge.list. Pipes inside the assertion now work (very slight breaking change to get_name_in_parent). 0.0-4 Many minor fixes and documentation updates. dont_stop can now run past multiple errors (slightly breaking change). merge.list and merge_dots_with_list deal with unnamed arguments. 0.0-3 Reverted behaviour of is_na, is_not_na to prevent breaks in dependencies. 0.0-2 Added Dutch, French, German, Greek, Hungarian, Korean, Russian, Swedish, Turkish, and Ukranian translations. Added assert_are_identical for comparing two objects. More README. 0.0-1 Content extracted from assertive 0.2-7, and tidied.