A Lightweight Core of the 'assertive' Package

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.


Project Status: Active - The project has reached a stable, usable state and is being actively developed. Is the package on CRAN? SemaphoreCI Build Status AppVeyor Build Status Codecov Test Coverage Status Coveralls Test Coverage Status

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.

Installation

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")

Predicates

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.

Assertions

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.

Utilities

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.

News

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.

Reference manual

It appears you don't have a PDF plugin for this browser. You can click here to download the reference manual.

install.packages("assertive.base")

0.0-7 by Richard Cotton, 2 years ago


https://bitbucket.org/richierocks/assertive.base


Report a bug at https://bitbucket.org/richierocks/assertive.base/issues


Browse source code at https://github.com/cran/assertive.base


Authors: Richard Cotton [aut, cre] , Sunkyu Choi [trl] , Ivanka Skakun [trl] , Gergely Dar<c3><b3>czi [trl] , Anton Antonov [trl] , Hisham Ben Hamidane [trl] , Anja Billing [trl] , Aditya Bhagwat [trl] , Rasmus B<c3><a5><c3><a5>th [trl] , Mine Cetinkaya-Rundel [trl] , Aspasia Chatziefthymiou [trl]


Documentation:   PDF Manual  


GPL (>= 3) license


Imports methods, utils

Suggests testthat


Imported by DTSg, assertive, assertive.code, assertive.data, assertive.data.uk, assertive.data.us, assertive.datetimes, assertive.files, assertive.matrices, assertive.models, assertive.numbers, assertive.properties, assertive.reflection, assertive.sets, assertive.strings, assertive.types, multipanelfigure, pathological, poio, tensorr.

Depended on by setter.


See at CRAN