Nothing
testthat::skip("Testing object updates should be done manually.")
# List files in tests/old_experiments.
archive_files <- list.files(
path = "./tests/old_experiments",
pattern = ".zip",
full.names = TRUE)
# Set path to the directory where the archive should be unpacked.
archive_directory <- file.path(".", "tests", "old_experiments", "_experiment")
test_generate_experiment_parameters <- coro::generator(function(outcome_type) {
for (current_outcome_type in outcome_type) {
# Set learner
learner <- switch(
current_outcome_type,
"binomial" = c("glm_logistic", "lasso"),
"multinomial" = c("glm", "lasso"),
"count" = c("glm", "lasso"),
"continuous" = c("glm_gaussian", "lasso"),
"survival" = c("cox", "survival_regr_weibull"))
coro::yield(list(
"experimental_design" = "bs(fs+mb,3)",
"outcome_type" = current_outcome_type,
"fs_method" = c("mim", "concordance"),
"learner" = learner))
}
})
# Iterate over archive files.
for (archive_file in archive_files) {
# Determine outcome type by stripping the extension, underscore and version.
outcome_type <- gsub(
x = basename(archive_file),
pattern = "[[:digit:]]+|[.]zip$|[_]",
replacement = "")
# Determine the version by stripping the extension and all alpha-characters.
familiar_version <- gsub(
x = basename(archive_file),
pattern = "[[:alpha:]]+|[.]zip$",
replacement = "")
# Strip final underscore.
familiar_version <- gsub(
x = familiar_version,
pattern = "[_]$",
replacement = "")
# Replace underscores by period and convert to package version object.
familiar_version <- as.package_version(gsub(
x = familiar_version,
pattern = "[_]",
replacement = "."))
# Avoid running tests if the archived version for some reason exceeds the
# installed familiar version.
if (utils::packageVersion("familiar") < familiar_version) {
warning(
"The installed version of familiar (",
utils::packageVersion("familiar"),
") is older than the archive being tested (",
familiar_version, ").")
next
}
# Unzip directory.
utils::unzip(archive_file,
exdir = archive_directory,
overwrite = TRUE)
# Yield current set of parameters.
config_parameters <- test_generate_experiment_parameters(outcome_type = outcome_type)()
# Recreate data.
data <- familiar:::test_create_good_data_random_missing(outcome_type = outcome_type)
# Test 1: Running the experiment again ---------------------------------------
message(paste0(
"-------------------------------------------------------------\n",
outcome_type, " (", familiar_version, "): ",
"test direct export\n",
"-------------------------------------------------------------\n"
))
# Remove the results directory.
unlink(
file.path(archive_directory, "results"),
recursive = TRUE)
# Run the experiment to extract the data again.
do.call(
familiar::summon_familiar,
args = c(
list(
"data" = data,
"experiment_dir" = archive_directory,
"experiment_data" = list.files(
path = archive_directory,
full.names = TRUE,
pattern = "iterations.RDS"),
"parallel" = FALSE),
config_parameters))
# Test 2: Running the experiment again, starting with familiar data objects ------
message(paste0(
"-------------------------------------------------------------\n",
outcome_type, " (", familiar_version, "): ",
"test export after collecting familiarData objects\n",
"-------------------------------------------------------------\n"
))
# Remove the results directory.
unlink(
file.path(archive_directory, "results"),
recursive = TRUE)
# Remove the familiar_collections directory.
unlink(
file.path(archive_directory, "familiar_collections"),
recursive = TRUE)
# Run the experiment to extract the data again.
do.call(
familiar::summon_familiar,
args = c(
list(
"data" = data,
"experiment_dir" = archive_directory,
"experiment_data" = list.files(
path = archive_directory,
full.names = TRUE,
pattern = "iterations.RDS"),
"parallel" = FALSE),
config_parameters))
# Test 3: Running the experiment again, starting with ensembles --------------
if (familiar_version > "1.1.4") {
# The isolation forests within the historic version 1.1.4 are not backward
# compatible, and we need to skip these tests for version 1.1.4.
# Remove temporary directory.
unlink(
file.path(archive_directory),
recursive = TRUE
)
next
}
message(paste0(
"-------------------------------------------------------------\n",
outcome_type, " (", familiar_version, "): ",
"test export after creating familiarData objects\n",
"-------------------------------------------------------------\n"
))
# Remove temporary directory.
unlink(
file.path(archive_directory),
recursive = TRUE)
}
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.