Nothing
skip_if_not(Sys.getenv("RUN_REGRESSION_TESTS") == "true")
CompareWithStable <- function(refVarFile, testDir, regIgnore) {
v <- list(
topic = basename(dirname(refVarFile)),
var = gsub("\\.rds$", "", basename(refVarFile))
)
if (
is.null(regIgnore) ||
!any(apply(regIgnore, 1, function(x) {
v$var == x[2] && (x[1] == "*" || x[1] == v$topic)
}))
) {
test_that(paste("Compare", v$topic, v$var), {
testVarFile <- paste0(
file.path(testDir, v$topic, v$var),
".rds"
)
expect_true(file.exists(testVarFile))
if (file.exists(testVarFile)) {
testVar <- readRDS(testVarFile)
refVar <- readRDS(refVarFile)
if (!is.null(regIgnore)) {
regIgnore$mainVar <- gsub("\\$.*$", "", regIgnore[, 2])
varIgnore <- regIgnore[
apply(regIgnore, 1, function(x) {
v$var == x[3] && (x[1] == "*" || x[1] == v$topic)
}),
2
]
if (length(varIgnore) > 0) {
itemIgnore <- gsub("^.*\\$", "", varIgnore)
for (item in itemIgnore) {
testVar[[item]] <- NULL
refVar[[item]] <- NULL
}
}
}
expect_equivalent(testVar, refVar)
}
})
}
}
tmp_path <- file.path("../tmp", Sys.getenv("R_VERSION"))
if (
dir.exists(file.path(tmp_path, "stable")) &
dir.exists(file.path(tmp_path, "dev"))
) {
refVarFiles <- list.files(
path = file.path(tmp_path, "stable"),
pattern = "\\.rds$",
recursive = TRUE,
full.names = TRUE
)
regIgnoreFile <- "../../.regressionignore"
if (file.exists(regIgnoreFile)) {
message(
"Using .regressionignore file. The following variables are going to be skipped:"
)
regIgnore <- read.table(
file = regIgnoreFile,
sep = " ",
header = FALSE,
skip = 5,
col.names = c("topic", "var"),
stringsAsFactors = FALSE
)
apply(regIgnore, 1, function(x) message(x[1], ": ", x[2]))
} else {
message("File ", file.path(getwd(), regIgnoreFile), " not found")
regIgnore <- NULL
}
lapply(
refVarFiles,
FUN = CompareWithStable,
testDir = file.path(tmp_path, "dev"),
regIgnore = regIgnore
)
} else {
stop(
"Regression tests compared to released version needs that you run the following instructions first:\n",
"Rscript tests/testthat/regression_tests.R stable\n",
"R CMD INSTALL .\n",
"Rscript tests/testthat/regression_tests.R dev"
)
}
Any scripts or data that you put into this service are public.
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.