test_that("Isolation of module", {
# defined objects are local to module
m <- module({
fun <- function(x) x
})
expect_true(Negate(exists)("fun"))
expect_true(exists("fun", m))
# module does not know of the outside world. This is so in interactive mode.
# In a package it is the enclosing env. The test env is not interactive.
x <- 1
m <- module({
fun <- function() try(x, silent = TRUE)
}, baseenv())
expect_is(m$fun(), "try-error")
})
test_that("nested modules", {
expectEqual <- function(a, b) {
testthat::expect_equal(a, b)
}
val <- module({
import(stats, median)
import(modules, module)
# The nested module should be able to figure out, that it is inside a nested
# module and hence can connect:
m <- module({
fun <- function(x) median(x)
})
})$m$fun(1:10)
expectEqual(
val,
5.5
)
})
test_that("print method for modules", {
expectOutput <- function(x, expr) {
testthat::expect_output(x, expr)
}
expectOutput(print(module({
fun <- function() {
## doc
NULL
}
})),
"fun:\nfunction\\(\\)\n")
})
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.