test_that("vcat can handle lists", {
expect_warning(vcat(0, list(a = 3, b = "blub")), "3blub")
})
# define shortcut for withMadratLogging and a
# repeated calling of the same function
wML1 <- withMadratLogging
wML2 <- function(expr) wML1(wML1(expr))
test_that("withMadratLogging properly logs warnings", {
p <- maxample("pop")
wmMagExp <- "^WARNING: \n?You are trying to mbind an empty magclass object\\. Is that really intended\\?\n$"
wMagExp <- "You are trying to mbind an empty magclass object\\. Is that really intended\\?$"
w <- "This is a warning"
wExp <- paste0("^", w, "$")
wmExp <- paste0("WARNING: ", w)
for (withMadratLoggingX in c(wML1, wML2)) {
expect_warning(expect_message(withMadratLoggingX(base::warning(w)), wmExp), wExp)
withMadratLoggingX(expect_warning(warning(w), wExp))
withMadratLoggingX(expect_warning(vcat(0, w), wExp))
expect_warning(expect_message(withMadratLoggingX(trash <- mbind(p[1:10, , , invert = TRUE], p)), wmMagExp), wMagExp)
}
})
test_that("withMadratLogging properly logs messages", {
m <- "This is a message"
mExp <- paste0("^NOTE: ", m, "\n$")
localConfig(verbosity = 2, .verbose = FALSE)
for (withMadratLoggingX in c(wML1, wML2)) {
expect_message(withMadratLoggingX(base::message(m)), mExp)
expect_message(withMadratLoggingX(message(m)), mExp)
expect_message(withMadratLoggingX(vcat(1, m)), mExp)
expect_message(withMadratLoggingX(vcat(2, m)), paste0("^MINOR NOTE: ", m, "\n$"))
}
})
test_that("withMadratLogging properly logs warnings", {
p <- maxample("pop")
emMagExp <- "^ERROR: \n?subscript out of bounds \\(\"BLA\"\\)\n$"
eMagExp <- "subscript out of bounds \\(\"BLA\"\\)"
e <- "This is an error"
eExp <- paste0("^", e, "$")
emExp <- paste0("^WARNING: ", e, "\n$")
for (withMadratLoggingX in c(wML1, wML2)) {
expect_error(expect_message(withMadratLoggingX(p["BLA", , ]), emMagExp), eMagExp)
expect_error(expect_message(withMadratLoggingX(base::stop(e)), emExp), eExp)
expect_error(expect_message(withMadratLoggingX(stop(e)), emExp), eExp)
expect_error(expect_message(withMadratLoggingX(vcat(-1, e)), emExp), eExp)
}
})
test_that("vcat warnings and messages can be suppressed", {
warningCounter <- getOption("madratWarningsCounter", 0)
expect_silent(suppressWarnings(vcat(0, "warning")))
expect_identical(getOption("madratWarningsCounter", 0), warningCounter)
expect_silent(suppressMessages(vcat(1, "bla")))
})
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.