test_that("file_path_sans_ext removes extensions", {
# extensions are removed.
expect_equal(
file_path_sans_ext(c("noext", "extension.ext", "doubledot..ext")),
c("noext", "extension", "doubledot.")
)
# compression extensions are removed first (when explicitly requested).
expect_equal(
file_path_sans_ext(
c(
"noext",
"extension.ext",
"doubledot..ext",
"compressed.gz",
"compressext.ext.bz2",
"compressdoubledot..ext.xz"
),
compression = TRUE
),
c(
"noext",
"extension",
"doubledot.",
"compressed",
"compressext",
"compressdoubledot."
)
)
})
# rbind_fill --------------------------------------------------------------
test_that("adds missing columns", {
dfs <- list(data.frame(x = 1), data.frame(y = 2))
out <- rbind_fill(dfs)
expect_equal(out, data.frame(x = c(1, NA), y = c(NA, 2)))
})
test_that("order of col_names has preference", {
dfs <- list(data.frame(y = 1, x = 2))
out <- rbind_fill(dfs, c("x", "y"))
expect_equal(out, data.frame(x = 2, y = 1))
})
test_that("uses col_names if no inputs", {
expect_equal(rbind_fill(list()), data.frame())
expect_equal(
rbind_fill(list(), c("x", "y")),
data.frame(x = logical(), y = logical())
)
})
test_that("can work with empty data frames", {
out <- rbind_fill(list(data.frame(x = 1), data.frame()))
expect_equal(out, data.frame(x = 1))
})
# hashing -----------------------------------------------------------------
test_that("we can hash an empty file", {
emptyFile <- withr::local_tempfile()
file.create(emptyFile)
# computed by openssl::md5("")
expect_equal(fileMD5(emptyFile), "d41d8cd98f00b204e9800998ecf8427e")
expect_equal(fileMD5(NULL), "d41d8cd98f00b204e9800998ecf8427e")
})
test_that("we can hash a file with well known contents", {
path <- withr::local_tempfile()
# Open in binary mode so the contents are identical on all platforms
# (otherwise the file contains a \n on Unix and \r\n on Windows, which
# hash differently)
con <- file(path, open = "wb")
writeLines("go bananas!", con)
close(con)
expect_equal(fileMD5(path), "52d2daa95d288f3c01e4d4d87f85727e")
})
test_that("truthy is truthy", {
# fallback-to-default checks
expect_false(truthy(c()))
expect_true(truthy(c(), default = TRUE))
expect_false(truthy(NA))
expect_true(truthy(NA, default = TRUE))
# true value checks
expect_true(truthy(TRUE, default = FALSE))
expect_true(truthy("TRUE", default = FALSE))
expect_true(truthy("True", default = FALSE))
expect_true(truthy("true", default = FALSE))
expect_true(truthy("T", default = FALSE))
expect_true(truthy("1", default = FALSE))
expect_true(truthy(1, default = FALSE))
expect_true(truthy(42, default = FALSE))
# false value checks
expect_false(truthy(FALSE, default = TRUE))
expect_false(truthy("FALSE", default = TRUE))
expect_false(truthy("False", default = TRUE))
expect_false(truthy("false", default = TRUE))
expect_false(truthy("F", default = TRUE))
expect_false(truthy("0", default = TRUE))
expect_false(truthy(0, default = TRUE))
expect_false(truthy("nonsense", default = TRUE))
})
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.