Nothing
expect_list_classes <- function(obj, classes) {
stopifnot(inherits(obj, "list"))
obj_classes <- vapply(
X = obj,
FUN = function(x) {
class(x)
},
FUN.VALUE = character(1),
USE.NAMES = FALSE
)
if (identical(obj_classes, classes)) {
testthat::succeed()
return(invisible(obj_classes))
} else {
testthat::fail(sprintf(
"objects elements' classes are: %s but expected classes are: %s",
paste0(obj_classes, collapse = ", "), paste0(classes, collapse = ", ")
))
}
}
expect_call_regex <- function(obj, pattern, ...) {
obj <- paste0(deparse(obj), collapse = "")
out <- grepl(pattern = pattern, x = obj, ...)
if (out) {
testthat::succeed()
return(invisible(out))
} else {
testthat::fail(sprintf(
"The regex pattern \"%s\" did not match the call object:\n \"%s\"",
pattern, obj
))
}
}
expect_regex <- function(obj, pattern, invert = FALSE, ...) {
out <- vapply(
X = obj,
FUN = function(x, ...) {
grepl(pattern = pattern, x = x, ...)
},
FUN.VALUE = logical(1),
USE.NAMES = FALSE,
...
)
if (invert) {
out <- !out
}
if (all(out)) {
testthat::succeed()
return(invisible(out))
} else {
testthat::fail(sprintf(
"The regex pattern \"%s\" did not match the string vector:\n \"%s\"",
pattern, paste0(obj, collapse = ", ")
))
}
}
expect_class <- function(obj, expected, ...) {
if (inherits(obj, expected)) {
testthat::succeed()
return(invisible(class(obj)))
} else {
testthat::fail(sprintf(
"Your object's class is `%s`` but `%s`` is expected.",
class(obj), expected
))
}
}
expect_has_names <- function(obj, expected) {
in_obj_not_expected <- setdiff(names(obj), expected)
in_expected_not_obj <- setdiff(expected, names(obj))
if (length(c(in_obj_not_expected, in_expected_not_obj)) == 0) {
testthat::succeed()
return(invisible(expected))
} else {
testthat::fail(sprintf(
"The names does not match:\n names in object but not expected: %s\n expected name not in object: %s",
paste0(in_obj_not_expected, collapse = ", "),
paste0(in_expected_not_obj, collapse = ", ")
))
}
}
expect_na <- function(obj) {
if (all(is.na(obj))) {
testthat::succeed()
return(invisible(TRUE))
} else {
testthat::fail("The object contain non-NA elements..")
}
}
expect_error2 <- function(obj, pattern = NULL, invert = FALSE, ...) {
obj <- try(obj,
silent = TRUE
)
if (inherits(obj, "try-error")) {
if (is.null(pattern)) {
testthat::succeed()
return(invisible(TRUE))
} else {
out <- vapply(
X = pattern,
FUN = function(patt) {
grepl(pattern = patt, x = obj, ...)
},
FUN.VALUE = logical(1)
)
if (invert) {
out <- !out
}
if (all(out)) {
testthat::succeed()
return(invisible(out))
} else {
testthat::fail(sprintf(
"Error was prodced but the regex pattern(s) %s didn't match.",
which(!out)
))
}
}
} else {
testthat::fail("obj runs with no error.")
}
}
Any scripts or data that you put into this service are public.
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.