skip("Expensive manual test")
test_that("data is cached", {
path = tempfile()
odata = with_cache(OMLData$new(9), cache = path)
expect_file_exists(file.path(path, "version.json"))
expect_list(odata$desc)
path_desc = file.path(path, "data_desc", "9.qs")
expect_file_exists(path_desc)
expect_equal(odata$desc, qs::qread(path_desc))
expect_data_table(odata$data)
path_data = file.path(path, "data", "9.qs")
expect_file_exists(path_data)
expect_equal(odata$data, qs::qread(path_data))
# ensure that cache is not overwritten
mtime_before = file.mtime(path_data)
expect_data_table(with_cache(OMLData$new(9), cache = path)$data)
expect_equal(mtime_before, file.mtime(path_data))
# increase version number of data desc
env = get("CACHE", envir = asNamespace("mlr3oml"))
env$initialized = setdiff(env$initialized, path)
version_before = env$versions$data
on.exit({
env$versions$data = version_before
})
env$versions$data = 9999
# ensure that cache gets invalidated
odata = OMLData$new(9, cache = path)
expect_false(test_file_exists(path_data))
expect_data_table(odata$data)
expect_lt(mtime_before, file.mtime(path_data))
})
test_that("study 99 can be loaded and parsed", {
data_ids = list_oml_data(tag = "study_99")$data_id
cache = TRUE
withr::local_options(list(warn = 2L))
for (data_id in data_ids) {
odata = with_cache(OMLData$new(data_id), cache = cache)
expect_oml_data(odata)
# expect_count(odata$id)
# expect_identical(odata$id, data_id)
if (isFALSE(cache)) {
expect_false(odata$cache_dir)
} else {
expect_string(odata$cache_dir)
}
}
#
#
# qualities = odata$qualities
# expect_data_table(qualities, ncols = 2L, key = "name", min.rows = 2L)
# expect_character(qualities$name, any.missing = FALSE, min.chars = 1L)
# expect_numeric(qualities$value, any.missing = TRUE)
# expect_subset(c("NumberOfFeatures", "NumberOfInstances"), qualities$name)
#
# features = odata$features
# expect_data_table(features, min.cols = 8L, key = "index")
# expect_integer(features$index, lower = 0L, upper = nrow(features))
# expect_subset(c(odata$target_names, odata$feature_names), features$name)
# expect_set_equal(c(odata$target_names, odata$feature_names), features[!is_row_identifier & !is_ignore, name])
# expect_equal(sum(features$is_target), 1) # only classif and regr
# expect_logical(features$is_ignore, any.missing = FALSE)
# expect_logical(features$is_row_identifier, any.missing = FALSE)
# expect_integer(features$number_of_missing_values, lower = 0L, upper = odata$nrow, any.missing = FALSE)
# expect_list(features$nominal_value, types = c("NULL", "character"))
#
# task = odata$task()
# expect_task(task)
# expect_identical(odata$nrow, task$nrow)
# expect_identical(odata$ncol, task$ncol)
# expect_set_equal(odata$feature_names, task$feature_names)
# expect_set_equal(odata$target_names, task$target_names)
# }
})
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.