Nothing
test_that("getJobTable.Registry", {
reg = makeTestRegistry()
fun = function(i, j) i + j
ids = batchMap(fun, i = 1:4, j = rep(1, 4), reg = reg)
tab = getJobTable(reg = reg)
expect_data_table(tab, nrows = 4, ncols = 15, key = "job.id")
expect_list(tab$job.pars)
expect_equal(tab$job.pars[[1]], list(i = 1L, j = 1))
tab = unwrap(tab)
expect_data_table(tab, nrows = 4, ncols = 15, key = "job.id")
expect_null(tab[["job.pars"]])
expect_equal(tab$i, 1:4)
expect_equal(tab$j, rep(1, 4))
expect_is(tab$submitted, "POSIXct")
expect_is(tab$started, "POSIXct")
expect_is(tab$done, "POSIXct")
expect_is(tab$time.queued, "difftime")
expect_numeric(tab$time.queued, lower = 0)
expect_is(tab$time.running, "difftime")
expect_numeric(tab$time.running, lower = 0)
expect_character(tab$tags)
expect_true(allMissing(tab$tags))
tab = unwrap(getJobTable(reg = reg), sep = ".")
expect_null(tab[["job.pars"]])
expect_equal(tab$job.pars.i, 1:4)
expect_equal(tab$job.pars.j, rep(1, 4))
# be sure that the original tables are untouched
checkTables(reg)
submitAndWait(reg = reg, ids = s.chunk(ids), resources = list(my.walltime = 42L))
addJobTags(2:3, "my_tag", reg = reg)
tab = getJobTable(reg = reg)
expect_data_table(tab, key = "job.id")
expect_copied(tab, reg$status)
expect_is(tab$submitted, "POSIXct")
expect_is(tab$started, "POSIXct")
expect_is(tab$done, "POSIXct")
expect_is(tab$time.queued, "difftime")
expect_numeric(tab$time.queued, lower = 0)
expect_is(tab$time.running, "difftime")
expect_numeric(tab$time.running, lower = 0)
expect_character(tab$tags, min.len = 1L)
tab = getJobResources(reg = reg)
expect_data_table(tab, nrow = 4, ncols = 2, key = "job.id")
expect_copied(tab, reg$resources)
expect_set_equal(tab$resource.hash[1], tab$resource.hash)
expect_list(tab$resources)
expect_true(all(vlapply(tab$resources, function(r) r$my.walltime == 42)))
tab = unwrap(getJobResources(reg = reg))
expect_null(tab[["resources"]])
expect_integer(tab$my.walltime, any.missing = FALSE)
})
test_that("getJobPars", {
reg = makeTestRegistry()
fun = function(i, j) i + j
ids = batchMap(fun, i = 1:4, j = rep(1, 4), reg = reg)
tab = getJobPars(reg = reg)
expect_data_table(tab, nrow = 4, ncol = 2, key = "job.id")
tab = unwrap(tab)
expect_copied(tab, reg$defs)
expect_null(tab$job.pars)
expect_equal(tab$i, 1:4)
expect_equal(tab$j, rep(1, 4))
tab = unwrap(getJobPars(reg = reg, ids = 1:2))
expect_data_table(tab, nrow = 2, ncol = 3, key = "job.id")
tab = unwrap(getJobPars(reg = reg), sep = ".")
expect_data_table(tab, nrow = 4, ncol = 3, key = "job.id")
expect_equal(tab$job.pars.i, 1:4)
expect_equal(tab$job.pars.j, rep(1, 4))
})
test_that("getJobPars with repls", {
reg = makeTestExperimentRegistry()
prob = addProblem("prob", data = iris, fun = function(data, job) nrow(data), reg = reg)
algo = addAlgorithm("algo", fun = function(job, data, instance, i, ...) instance, reg = reg)
prob.designs = list(prob = data.table())
algo.designs = list(algo = data.table(i = 1:2))
ids = addExperiments(prob.designs, algo.designs, repls = 3, reg = reg)
waitForJobs(reg = reg, sleep = 1)
ids[, chunk := chunk(job.id, chunk.size = 2)]
submitAndWait(ids = ids, reg = reg)
expect_equal(nrow(getJobPars(reg = reg)), nrow(ids))
})
test_that("getJobTable.ExperimentRegistry", {
reg = makeTestExperimentRegistry()
prob = addProblem(reg = reg, "p1", data = iris, fun = function(job, data) nrow(data), seed = 42)
algo = addAlgorithm(reg = reg, "a1", fun = function(job, data, instance, sq) instance^sq)
ids = addExperiments(list(p1 = data.table(k = 1)), list(a1 = data.table(sq = 1:3)), reg = reg)
tab = getJobTable(reg = reg)
expect_data_table(tab, nrows = 3, ncols = 19, key = "job.id")
expect_copied(tab, reg$status)
expect_null(tab$job.pars)
expect_list(tab$prob.pars)
expect_list(tab$algo.pars)
for (i in 1:3) {
expect_equal(tab$prob.pars[[i]], list(k = 1))
expect_equal(tab$algo.pars[[i]], list(sq = i))
}
expect_equal(tab$problem[1], "p1")
expect_equal(tab$algorithm[1], "a1")
tab = unwrap(getJobTable(ids = 1:3, reg = reg), c("prob.pars", "algo.pars"))
expect_data_table(tab, nrows = 3, ncols = 19, key = "job.id")
expect_null(tab[["job.pars"]])
expect_set_equal(tab$k, rep(1, 3))
expect_set_equal(tab$sq, 1:3)
tab = unwrap(getJobPars(reg = reg), sep = ".")
expect_null(tab[["job.pars"]])
expect_set_equal(tab$prob.pars.k, rep(1, 3))
expect_set_equal(tab$algo.pars.sq, 1:3)
})
test_that("experiment registry with vector parameters", {
tmp = makeTestExperimentRegistry()
fun = function(job, data, n, mean, sd, ...) rnorm(sum(n), mean = mean, sd = sd)
addProblem("rnorm", fun = fun, reg = tmp)
fun = function(instance, ...) sd(instance)
addAlgorithm("deviation", fun = fun, reg = tmp)
prob.designs = algo.designs = list()
prob.designs$rnorm = data.table(expand.grid(n = list(100, 1:4), mean = 0, sd = 1:2))
algo.designs$deviation = data.table()
addExperiments(prob.designs, algo.designs, reg = tmp)
submitAndWait(reg = tmp)
res = getJobPars(reg = tmp)
expect_data_table(res, ncol = 5)
expect_list(res$prob.pars, len = 4)
res = unwrap(res)
expect_data_table(res, ncol = 6, nrow = 4, col.names = "unique")
expect_list(res$n, len = 4)
expect_numeric(res$mean, len = 4, any.missing = FALSE)
expect_numeric(res$sd, len = 4, any.missing = FALSE)
res = unwrap(res)
expect_data_table(res, ncol = 9, nrow = 4, col.names = "unique")
})
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.