Nothing
# get_fun_args
test_that("`get_fun_args` gives argument names as vector", {
extpkg_args <- get_fun_args(base::t)
thispkg_args <- get_fun_args(get01args)
f <- function(x, y) x+y
predef_args <- get_fun_args(f)
anon_args <- get_fun_args(\(a, b) a-b)
expect_equal(extpkg_args, "x")
expect_equal(thispkg_args, "fun")
expect_equal(predef_args, c("x", "y"))
expect_equal(anon_args, c("a", "b"))
})
# deparse_fun_body
test_that("`deparse_fun_body` produces character string of function body", {
extpkg_body <- deparse_fun_body(base::t)
thispkg_body <- deparse_fun_body(get01args)
f <- function(x, y) {
z <- x+y
return(z)
}
predef_body <- deparse_fun_body(f)
anon_body <- deparse_fun_body(\(a, b) a-b)
expect_type(extpkg_body, "character")
expect_length(extpkg_body, 1)
expect_snapshot(extpkg_body)
expect_type(thispkg_body, "character")
expect_length(thispkg_body, 1)
expect_type(predef_body, "character")
expect_length(predef_body, 1)
expect_snapshot(predef_body)
expect_type(anon_body, "character")
expect_length(anon_body, 1)
expect_equal(anon_body, "a - b")
})
# get_response_from_formula
test_that("`get_response_from_formula` works for different formula specifiations", {
expect_equal(get_response_from_formula(Y ~ A),
"Y")
expect_equal(get_response_from_formula(formula("testing~bla")),
"testing")
})
# is_response_in_data
cli::test_that_cli("`is_response_in_data` correctly gives error when column not in data", {
dat <- data.frame(A = 1:2, B = 4:5)
expect_snapshot(
error = TRUE,
is_response_in_data(formula = C ~ A, data = dat))
})
test_that("`is_response_in_data` does not give error when column is in data", {
dat <- data.frame(A = 1:2, B = 4:5)
expect_no_error(
is_response_in_data(formula = B ~ A, data = dat)
)
})
# formula_everything
test_that("`formula_everything` returns the correct formula object", {
expect_equal(
formula_everything(Y ~ A),
Y ~ .)
expect_equal(
formula_everything(resp ~ A + B + mph * fpg),
resp ~ .)
})
# formula_to_str
test_that("`formula_to_str` returns character of length 1", {
formula_str <- formula_to_str(Y ~ A + X)
expect_equal(formula_str, "Y ~ A + X")
formula_str2 <- formula_to_str(Y ~ A1 + A2 + A3 + A4 + A5 + A6 + A7 + A8 + A9 +
A10 + A11 + A12 + A13 + A14 + A15 + A16 + A17)
expect_length(formula_str2, 1)
expect_equal(formula_str2, paste0("Y ~ ", paste("A", 1:17, sep = "", collapse = " + ")))
})
# check_formula
test_that("`check_formula` works", {
expect_s3_class(check_formula("Y ~ 1 + X"), "formula")
expect_error(check_formula(2),
regexp = "This usually means you did not include a response")
expect_error(check_formula(1+2*x1),
regexp = "This usually means you did not include a response")
})
# get01args
test_that("`get01args` returns list of arguments with 0 and 1 in them", {
ate <- function(psi0, psi1) psi1 - psi0
expect_equal(
get01args(fun = ate),
list(arg0 = "psi0", arg1 = "psi1")
)
some_fun <- function(blablabla0, c1) sum(log(blablabla0), sqrt(c1))
expect_equal(
get01args(fun = some_fun),
list(arg0 = "blablabla0", arg1 = "c1")
)
fun_with_additionalargs <- function(psi0, psi1, add_arg, ...) psi1 - psi0
expect_equal(
get01args(fun = fun_with_additionalargs),
list(arg0 = "psi0", arg1 = "psi1")
)
})
cli::test_that_cli("`get01args` gives error when arguments with 0 and 1 are missing", {
argsnotendingwith0and1 <- function(psi0, psi18) psi18 - psi0
expect_error({
get01args(argsnotendingwith0and1)
},
regexp = "need to end in"
)
missing1 <- function(a0, b) a0 - b
expect_error({
get01args(missing1)
},
regexp = "need to end in"
)
missing0 <- function(a, b1) a - b1
expect_error({
get01args(missing0)
},
regexp = "need to end in"
)
# missing both
expect_error({
get01args(sum)
},
regexp = "need to end in"
)
})
# print_symbolic_differentiation
test_that("`print_symbolic_differentiation` returns the result of Deriv", {
ate <- function(psi0, psi1) psi1 - psi0
expect_equal(
print_symbolic_differentiation(ate, "psi0"),
Deriv::Deriv(ate, "psi0")
)
})
cli::test_that_cli("`print_symbolic_differentiation` provides message", {
withr::local_options(postcard.verbose = 1)
ate <- function(psi0, psi1) psi1 - psi0
# Note we are using the transform argument to remove printing of
# the environment which changes between each run
expect_snapshot(
print_symbolic_differentiation(
ate,
"psi1",
add_string = "test string add"
),
transform = function(x) gsub("^<environment:.*>$", "", x)
)
})
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.