test_that("trim_ws() works with data frames", {
test_trim <- data.frame(
x = 1:5,
y = c("a", "b c", " d", "e f ", "g "),
stringsAsFactors = FALSE
)
expect_identical(
trim_ws(test_trim),
data.frame(
x = 1:5,
y = c("a", "b c", "d", "e f", "g"),
stringsAsFactors = FALSE
)
)
})
test_that("trim_ws() works with list", {
test_trim <- list(
x = 1:5,
y = c("a", "b c", " d", "e f ", "g ")
)
expect_identical(
trim_ws(test_trim),
list(
x = 1:5,
y = c("a", "b c", "d", "e f", "g")
)
)
})
test_that("n_unique() works with NULL", {
expect_identical(n_unique(NULL), 0)
})
test_that("n_unique() works with list", {
test_n_unique <- list(
x = 1:3,
y = c("a", "b")
)
expect_identical(
n_unique(test_n_unique),
list(x = 3L, y = 2L)
)
})
test_that("has_single_value() works", {
x <- c(1, 1)
expect_true(has_single_value(x))
x <- c("a", "a")
expect_true(has_single_value(x))
x <- factor(c("a", "a"))
expect_true(has_single_value(x))
x <- c(NA, 1)
expect_false(has_single_value(x))
expect_true(has_single_value(x, remove_na = TRUE))
x <- c(2, 1)
expect_false(has_single_value(x))
x <- NULL
expect_false(has_single_value(x))
x <- c(NA, NA)
expect_false(has_single_value(x))
expect_false(has_single_value(x, remove_na = TRUE))
})
test_that("safe_deparse_symbol() works", {
expect_identical(safe_deparse_symbol(as.name("test")), "test")
expect_null(safe_deparse_symbol("test"))
expect_identical(safe_deparse(as.name("test")), "test")
expect_identical(safe_deparse("test"), "\"test\"")
})
test_that("trim_ws() works with non-ascii chars", {
expect_identical(
trim_ws(c("test ", " Se\x96ora ", "works \x97fine ", "this too", "yeah")),
c("test", "Se\x96ora", "works \x97fine", "this too", "yeah")
)
})
skip_if_not_installed("withr")
withr::with_environment(
new.env(),
test_that("validate_argument", {
foo1 <- function(test = "short_distance") {
validate_argument(test, c("short_distance", "long_distance", "medium_distance"))
}
# match
expect_identical(foo1("medium_distance"), "medium_distance")
# typo
expect_error(
foo1("medium_ditsance"),
regex = "Otherwise, use one"
)
# no match
expect_error(
foo1("abcabcabc"),
regex = "Please use one"
)
foo2 <- function(test = "short_distance") {
validate_argument(test, "short_distance")
}
# match
expect_identical(foo2("short_distance"), "short_distance")
# typo
expect_error(
foo2("short_ditsance"),
regex = "Did you mean \"short"
)
# no match
expect_error(
foo2("abcabcabcabc"),
regex = "Please use one"
)
foo3 <- function(test = "short_distance") {
validate_argument(test, c("short_distance", "shorter_distance", "shortest_distance"))
}
# match
expect_identical(foo3("short_distance"), "short_distance")
# typo
expect_error(
foo3("short_ditsance"),
regex = "Did you mean one"
)
# no match
expect_error(
foo3("aaaaaaaaaaaaaaaaaaaa"),
regex = "Please use one"
)
})
)
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.