checkFuncs {RUnit} | R Documentation |
A set of functions used to check the results of some test calculation. If these functions are called within the RUnit framework, the results of the checks are stored and reported in the test protocol.
checkEquals
compares two R objects by invoking all.equal
on
the two objects. If the objects are not equal an error is
generated and the failure is reported to the test logger such that it
appears in the test protocol.
checkEqualsNumeric
works just like checkEquals
except
that it invokes all.equal.numeric
instead of all.equal
checkTrue
uses the function identical
to check if the expression
provided as first argument evaluates to TRUE
. If not, an error is
generated and the failure is reported to the test logger such that it
appears in the test protocol.
checkException
evaluates the passed expression and uses the
try
mechanism to check if the evaluation generates an error.
If it does the test is OK. Otherwise an error is
generated and the failure is reported to the test logger such that it
appears in the test protocol.
DEACTIVATED
interrupts the test function and reports the test case
as deactivated. In the test protocol deactivated test functions are
listed separately. Test case deactivation can be useful in the case of
major refactoring. Alternatively, test cases can be commented out
completely but then it is easy to forget the test case altogether.
checkEquals(a, b, msg, tolerance = .Machine$double.eps^0.5, ...) checkEqualsNumeric(a, b, msg, tolerance = .Machine$double.eps^0.5, ...) checkTrue(expr, msg) checkException(expr, msg) DEACTIVATED(msg)
a, b |
two objects to be compared (should not be S4 class objects). |
msg |
an optional message to document a check and to facilitate the identification of a possible failure. The message only appears as text in the test protocol, it is not further used in any of the check functions. |
tolerance |
numeric >= 0. A check does not fail if differences smaller than `tolerance'. |
expr |
syntactically valid R expression which can be evaluated and must return a logical scalar (TRUE|FALSE). A named expression is also allowed but the name is disregarded. |
... |
optional arguments passed to all.equal or all.equal.numeric |
The check functions are direct equivalents of the various methods of the class junit.framework.Assert of Javas junit framework which served as basis for the RUnit package.
Thomas K"onig, Klaus J"unemann & Matthias Burger
all.equal
, all.equal.numeric
and
identical
are the underlying comparison functions.
try
is used for error catching.
checkTrue(1 < 2, "check1") ## passes fine ## checkTrue(1 > 2, "check2") ## appears as failure in the test protocol v <- 1:3 w <- 1:3 checkEquals(v,w) ## pasess fine names(v) <- c("A", "B", "C") ## checkEquals(v,w) ## fails because v and w have different names checkEqualsNumeric(v,w) ## passes fine because names are ignored fun <- function(x) { if(x) { stop("stop conditions signaled") } return() } checkException(fun(TRUE)) ## passes fine ## checkException(fun(FALSE)) ## failure, because f raises no error ## DEACTIVATED("here one can document on the reason for deactivation")