test_that("turn length one unquoted vals into args", {
temp_function <- function(x){
quo_get(
args = "x",
as_var_args = "x"
)
}
expect_equal(
temp_function(bare_arg_val)$x,
vars(bare_arg_val),
ignore_attr = TRUE
)
})
test_that("turn length 2 unquoted vals into args", {
temp_function <- function(x){
quo_get(
args = "x",
as_var_args = "x"
)
}
expect_equal(
temp_function(c(bare_arg_val1, bare_arg_val2))$x,
vars(bare_arg_val1, bare_arg_val2),
ignore_attr = TRUE
)
})
test_that("turn length one unquoted quo into args", {
temp_function <- function(x){
quo_get(
args = "x",
as_quo_args = "x"
)
}
expect_equal(
temp_function(bare_arg_val)$x,
quo(bare_arg_val),
ignore_attr = TRUE
)
})
test_that("turn length two unquoted quo into args", {
temp_function <- function(x){
quo_get(
args = "x",
as_quo_args = "x"
)
}
warning_res <- capture_warnings({
tempfunc_res <-
temp_function(c(bare_arg_val1, bare_arg_val2))
})
expect_equal(
tempfunc_res$x,
quo(bare_arg_val1),
ignore_attr = TRUE
)
})
test_that("throw error when input argument errors out", {
temp_function_1 <- function(x, ...){
val <- temp_function_2(...)
val
}
temp_function_2 <- function(..., env = parent.frame()){
arg_parent <- names(formals(sys.function(sys.parent(1))))
args <- setdiff(arg_parent,c("..."))
val <- quo_get(
args,
envir = env
)
val
}
fail_function <- function(...){
dot_list <- as.list(substitute(substitute(...)))[-1]
if(length(dot_list) == 0){
stop("I HAVE FAILED")
}else{
dot_list
}
}
expect_silent(
temp_function_1(x = fail_function("test value"))
)
expect_error(
temp_function_1(x = fail_function()),
"Error in evaluating argument `x`:\n Error in fail_function(): I HAVE FAILED",
fixed = TRUE
)
})
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.