test_that("abort_bad_argument() is informative.", {
expect_error(
abort_bad_argument("size", "be an integer"),
regexp = "be an integer",
class = "rlang_error"
)
expect_snapshot(error = TRUE, {
abort_bad_argument("size", "be an integer", not = "character")
abort_bad_argument("size", must = "be an integer", not = "character",
footer = c(i = "please"))
abort_bad_argument("size", must = "be an integer", not = "character",
footer = "required", custom = "A new error")
})
})
test_that("abort_bad_argument() can add inline markup to footer", {
expect_snapshot(error = TRUE, {
a_local_variable <- "local var"
footer <- cli::format_message(c("x" = "Look at {.val {a_local_variable}}"))
abort_bad_argument("size", "be an integer", footer = footer)
})
})
test_that("check_palette() throws informative error.", {
expect_snapshot(error = TRUE, {
check_palette(2)
check_palette(NA_character_)
})
expect_snapshot(error = TRUE, {
x <- c("#009fb7", "firetruck")
check_palette(x)
})
})
test_that("check_palette() works", {
expect_identical(
check_palette(c("#009fb7", "#fed766")),
c(`#009fb7` = "#009fb7", `#fed766` = "#fed766")
)
expect_identical(
check_palette(c("#009fb700", "#fed766ff")),
c(`#009fb700` = "#009fb700", `#fed766ff` = "#fed766ff")
)
expect_identical(
check_palette(c("firebrick", "goldenrod", "navy")),
c(
firebrick = "#B22222", goldenrod = "#DAA520",
navy = "#000080"
)
)
expect_identical(
check_palette(c("firebrick", "#009fb7", "#FED766")),
c(
firebrick = "#B22222", `#009fb7` = "#009fb7",
`#FED766` = "#FED766"
)
)
})
test_that("check_pos_int() errors well", {
expect_snapshot(error = TRUE, {
check_pos_int("blue")
check_pos_int(NA_integer_, "taylor")
check_pos_int(integer(0L))
check_pos_int(2:3)
check_pos_int(-2)
})
})
test_that("check positive integer works", {
expect_identical(check_pos_int(0), 0L)
expect_identical(check_pos_int(3), 3L)
expect_identical(check_pos_int(5L), 5L)
expect_identical(check_pos_int(10L), 10L)
})
test_that("check_real_range() works", {
expect_snapshot(error = TRUE, {
check_real_range("a", 0, 1, "taylor")
check_real_range(NA_integer_, 1, 5)
check_real_range(integer(0L), 1, 5)
check_real_range(2:3, 0, 1)
check_real_range(2, 0, 1)
check_real_range(-1, 0, 1)
})
})
test_that("real range works", {
expect_identical(check_real_range(0, 0, 1), 0)
expect_identical(check_real_range(1, 0, 1), 1)
expect_identical(check_real_range(0.5, 0, 1), 0.5)
})
test_that("check_exact_abs_int() errors well", {
expect_snapshot(error = TRUE, {
check_exact_abs_int("a", 1)
check_exact_abs_int(NA_integer_, 1)
check_exact_abs_int(integer(0), 1)
check_exact_abs_int(2:3, 1)
check_exact_abs_int(3, 1)
check_exact_abs_int(3, 4)
})
})
test_that("check abs value of exact integer works", {
expect_identical(check_exact_abs_int(1, 1), 1L)
expect_identical(check_exact_abs_int(-1, 1), -1L)
expect_identical(check_exact_abs_int(1L, 1), 1L)
expect_identical(check_exact_abs_int(-1L, 1), -1L)
})
test_that("check_character() errors well", {
expect_snapshot(error = TRUE, {
check_character(1, arg = "taylor")
check_character(NA_character_)
})
})
test_that("character works", {
expect_identical(check_character("string", "test_arg"), "string")
expect_identical(check_character("String", "test_arg"), "String")
expect_identical(check_character("STRING", "test_arg"), "STRING")
})
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.