Nothing
withr::with_output_sink("test-recovery.Rout", {
test_that("recovery works", {
target_runner_xy <- function(experiment, scenario)
{
configuration <- experiment$configuration
instance <- experiment$instance
x <- configuration[["x"]]
y <- configuration[["y"]]
value <- switch(instance,
ackley = f_ackley(x, y),
goldestein = f_goldestein_price(x, y),
matyas = f_matyas(x, y),
himmelblau = f_himmelblau(x, y))
list(cost = value)
}
parameters_table <- '
x "" r (0, 1.00)
y "" r (0, 1.00)
'
parameters <- readParameters(text = parameters_table)
logFile <- withr::local_tempfile(pattern = "irace", fileext = ".Rdata")
seed <- sample.int(min(2147483647L, .Machine$integer.max), size = 1, replace = TRUE)
maxExperiments <- 500L
limit <- 100L
scenario <- list(
instances = c("ackley", "goldestein", "matyas", "himmelblau"),
parameters = parameters,
targetRunner = target_runner_xy,
logFile = logFile,
seed = seed,
quiet = TRUE,
maxExperiments = maxExperiments)
expect_silent(confs <- irace(scenario = scenario))
scenario$targetRunner <- wrap_target_runner_error(target_runner_xy, limit)
# Otherwise, the tests are too fast.
with_mocked_bindings({
expect_error(irace(scenario = scenario), "== irace == The cost returned by targetRunner is not numeric")
},
.irace_minimum_saving_time = 0
)
logFile_new <- withr::local_tempfile(pattern = "irace", fileext = ".Rdata")
scenario <- modifyList(scenario, list(
targetRunner = wrap_target_runner_counter(target_runner_xy),
recoveryFile = logFile,
seed = NA,
quiet = FALSE,
logFile = logFile_new))
recover_confs <- irace(scenario = scenario)
expect_identical(confs, recover_confs)
expect_lt(environment(scenario$targetRunner)$counter, maxExperiments - 50)
})
test_that("recovery maxTime", {
target_runner <- function(experiment, scenario) {
configuration <- experiment$configuration
tmax <- configuration[["tmax"]]
temp <- configuration[["temp"]]
time <- max(1, abs(rnorm(1, mean=(tmax+temp)/10)))
list(cost = time, time = time)
}
parameters <- readParameters(text = '
tmax "" i (1, 50)
temp "" r (0, 10)
')
logFile <- withr::local_tempfile(pattern = "irace", fileext = ".Rdata")
seed <- 1234567
scenario <- list(targetRunner = target_runner,
instances = 1:10,
seed = seed,
maxTime = 500,
logFile = logFile,
quiet = TRUE,
parameters = parameters)
expect_silent(confs <- irace(scenario = scenario))
scenario$targetRunner <- wrap_target_runner_error(target_runner, 200L)
# Otherwise, the tests are too fast.
with_mocked_bindings({
expect_error(irace(scenario = scenario), "== irace == The cost returned by targetRunner is not numeric")
},
.irace_minimum_saving_time = 0
)
logFile_new <- withr::local_tempfile(pattern = "irace", fileext = ".Rdata")
scenario <- modifyList(scenario, list(
targetRunner = wrap_target_runner_counter(target_runner),
recoveryFile = logFile,
seed = NA,
quiet = FALSE,
logFile = logFile_new))
recover_confs <- irace(scenario = scenario)
expect_identical(confs, recover_confs)
expect_lt(environment(scenario$targetRunner)$counter,
nrow(read_logfile(logFile_new)$state$experiment_log) - 150L)
})
}) # withr::with_output_sink()
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.