test_that("failing common type reports correct error call", {
my_function <- function() vec_ptype2(2, chr())
expect_snapshot((expect_error(my_function())))
})
test_that("failing cast reports correct error call", {
my_function <- function() vec_cast(2, chr())
expect_snapshot((expect_error(my_function())))
df1 <- data_frame(x = TRUE, y = TRUE)
df2 <- data_frame(y = "1")
my_function <- function(lhs, rhs) vec_cast(lhs, rhs)
expect_snapshot((expect_error(my_function(df1, df2))))
df1 <- data_frame(y = TRUE)
df2 <- data_frame(y = "1")
expect_snapshot((expect_error(my_function(df1, df2))))
})
test_that("lossy cast reports correct error call", {
my_function <- function() vec_cast(2, lgl())
expect_snapshot((expect_error(my_function())))
})
test_that("failing common size reports correct error call", {
my_function <- function() vec_recycle(1:2, 10)
expect_snapshot((expect_error(my_function())))
# FIXME
my_function <- function() vec_size_common(1:2, 1:10)
expect_snapshot((expect_error(my_function())))
})
test_that("unsupported error reports correct error call", {
x <- new_vctr(1:2)
my_function <- function() dim(x) <- 1:2
expect_snapshot((expect_error(my_function())))
my_function <- function() median(x)
expect_snapshot((expect_error(my_function())))
})
test_that("scalar error reports correct error call", {
my_function <- function() obj_check_vector(foobar())
expect_snapshot((expect_error(my_function())))
})
test_that("size error reports correct error call", {
my_function <- function() vec_check_size(1:2, size = 1)
expect_snapshot((expect_error(my_function())))
})
test_that("bare casts report correct error call", {
my_function <- function() vec_cast(1.5, int())
expect_snapshot((expect_error(my_function())))
my_function <- function() vec_cast(1.5, lgl())
expect_snapshot((expect_error(my_function())))
my_function <- function() vec_cast(2L, lgl())
expect_snapshot((expect_error(my_function())))
# Passing call to `shape_broadcast()`
my_function <- function() vec_cast(matrix(TRUE), dbl())
expect_snapshot((expect_error(my_function())))
})
test_that("base S3 casts report correct error call", {
my_function <- function() vec_cast("a", factor("b"))
expect_snapshot((expect_error(my_function())))
})
test_that("names validation reports correct error call", {
my_function <- function() vec_as_names(c("x", "", "y"), repair = "check_unique")
expect_snapshot((expect_error(my_function())))
my_function <- function() vec_as_names(c("x", "x"), repair = "check_unique", repair_arg = "repair")
expect_snapshot((expect_error(my_function())))
my_function <- function() vec_as_names("...", repair = "check_unique", repair_arg = "repair")
expect_snapshot((expect_error(my_function())))
})
test_that("subscript validation reports correct error calls", {
my_function <- function() vctrs::num_as_location(1, 1L, missing = "bogus")
expect_snapshot((expect_error(my_function())))
my_function <- function() vctrs::vec_as_location(10, 2)
expect_snapshot((expect_error(my_function())))
my_function <- function(my_arg) vec_as_location(my_arg, 2)
expect_snapshot((expect_error(my_function(1.5))))
my_function <- function(my_arg) vctrs::vec_as_subscript(my_arg)
expect_snapshot((expect_error(my_function(1.5))))
my_function <- function(my_arg) vctrs::vec_as_location(my_arg, 2)
expect_snapshot((expect_error(my_function(list()))))
my_function <- function(my_arg) vec_as_location(1, my_arg)
expect_snapshot((expect_error(my_function(1.5))))
my_function <- function(my_arg) vec_as_location(my_arg, 1, missing = "error")
expect_snapshot((expect_error(my_function(NA))))
})
test_that("`vec_ptype()` reports correct error call", {
my_function <- function(my_arg) vec_ptype(my_arg)
expect_snapshot({
(expect_error(my_function(env())))
(expect_error(my_function(foobar(list()))))
})
})
test_that("`vec_slice()` uses `error_call`", {
my_function <- function(x, i) vec_slice(x, i, error_call = current_env())
expect_snapshot({
(expect_error(my_function(env(), 1)))
(expect_error(my_function(1, 2)))
})
})
test_that("vec_slice() reports self in error context", {
expect_snapshot({
(expect_error(vec_slice(foobar(list()), 1)))
(expect_error(vec_slice(list(), env())))
})
})
test_that("list_sizes() reports error context", {
expect_snapshot({
(expect_error(list_sizes(foobar(list()))))
(expect_error(list_sizes(list(env()))))
(expect_error(list_sizes(list(1, 2, env()))))
(expect_error(list_sizes(list(1, 2, foo = env()))))
})
})
test_that("vec_size() reports error context", {
expect_snapshot({
(expect_error(vec_size(env())))
})
})
test_that("vec_cast_common() reports error context", {
my_function <- function(...) vec_cast_common(...)
expect_snapshot((expect_error(my_function(my_arg = 1.5, .to = int()))))
expect_snapshot((expect_error(my_function(my_arg = 1.5, .to = int(), .arg = "my_arg"))))
expect_snapshot((expect_error(my_function(this_arg = 1, that_arg = "foo", .arg = "my_arg"))))
expect_snapshot((expect_error(my_function(1, "foo", .arg = "my_arg"))))
x <- data.frame(x = "a")
y <- data.frame(x = 1, y = 2)
expect_snapshot((expect_error(my_function(this_arg = x, that_arg = y))))
})
test_that("vec_ptype_common() reports error context", {
my_function <- function(...) vec_ptype_common(...)
expect_snapshot((expect_error(my_function(this_arg = 1, that_arg = "foo"))))
expect_snapshot((expect_error(my_function(this_arg = 1, that_arg = "foo", .arg = "my_arg"))))
expect_snapshot((expect_error(my_function(1, "foo", .arg = "my_arg"))))
})
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.