expect_equal_named_lists <- function(object, expected, ...) {
expect_true(!is.null(names(object)) && !is.null(names(expected)))
expect_true(is.list(object) && is.list(expected))
object <- object[order(names(object))]
expected <- expected[order(names(expected))]
expect_equal(object, expected)
}
test_temp_file <- function(fileext = "", pattern = "test-file-",
envir = parent.frame(), create = TRUE) {
tmp <- tempfile(pattern = pattern, fileext = fileext)
if (identical(envir, .GlobalEnv)) {
message("Temporary files will _not_ be cleaned up")
} else {
withr::defer(
try(unlink(tmp, recursive = TRUE, force = TRUE), silent = TRUE),
envir = envir)
}
if (create) {
cat("", file = tmp)
normalizePath(tmp)
} else {
tmp
}
}
test_temp_dir <- function(pattern = "test-dir-", envir = parent.frame()) {
tmp <- test_temp_file(pattern = pattern, envir = envir, create = FALSE)
dir.create(tmp, recursive = TRUE, showWarnings = FALSE)
normalizePath(tmp)
}
# Create a temporary directory and switch the working directory to it
local_temp_dir <- function(..., .local_envir = parent.frame()) {
tmp <- withr::local_tempdir(..., .local_envir = .local_envir)
withr::local_dir(tmp, .local_envir = .local_envir)
invisible(tmp)
}
test_package_root <- function() {
x <- tryCatch(
find_package_root(),
error = function(e) NULL)
if (!is.null(x)) return(x)
pkg <- testthat::testing_package()
x <- tryCatch(
find_package_root(
path = file.path("..", "..", "00_pkg_src", pkg)
),
error = function(e) NULL
)
if (!is.null(x)) return(x)
stop("Cannot find package root")
}
skip_in_covr <- function() {
if (Sys.getenv("R_COVR") == "true") skip("In covr")
}
# TODO: update this to cli.num_colors
local_cli_config <- function(unicode = FALSE, dynamic = FALSE,
ansi = FALSE, num_colors = 1,
.local_envir = parent.frame()) {
withr::local_options(
cli.dynamic = dynamic,
cli.ansi = ansi,
cli.unicode = unicode,
crayon.enabled = num_colors > 1,
crayon.colors = num_colors,
.local_envir = .local_envir
)
withr::local_envvar(
PKG_OMIT_TIMES = "true",
PKG_OMIT_SIZES = "true",
.local_envir = .local_envir
)
}
pst <- function(...) suppressMessages(...)
long_basename <- function(x) {
# remove potential trailing slash
l <- nchar(x)
x <- ifelse (substr(x, l, l) %in% c("/", "\\"), substr(x, 1, l - 1), x)
sub("^.*[/\\]", "", x)
}
read_all <- function(path) {
bytes <- readBin(path, "raw", file.size(path))
chr <- rawToChar(bytes)
Encoding(chr) <- "UTF-8"
chr
}
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.