Nothing
# Setup
test_dir <- file.path(tempdir(), "testing_grounds")
dir.create(test_dir)
testthat::test_that("check and fix extensions", {
# Test data
obj1 <- rnorm(1000)
obj2 <- data.frame(x = runif(100), y = "something", z = rep(c(TRUE, FALSE), 50))
obj3 <- list(obj1, obj2)
params1 <- list(distribution = "normal", other_params = list(param1 = TRUE, param2 = 1, param3 = NA))
params2 <- list(distribution = "uniform", other_params = list(param1 = FALSE, param2 = 2, param3 = "1", param4 = 4))
params3 <- list(distribution = "composite", other_params = list(param1 = TRUE, param2 = 3, param3 = 1))
# Save objects
save_objects(test_dir, obj1, params1)
save_objects(test_dir, obj2, params2)
save_objects(test_dir, obj3, params3)
# Expect warnings if trying to overwrite
testthat::expect_warning(save_objects(test_dir, obj1, params1))
# Create and update hash table with new parameters
hash_table_file <- glue::glue("{test_dir}/test_hash_table.csv")
create_hash_table(test_dir, save_path = hash_table_file)
saved_hash_table <- readr::read_csv(hash_table_file)
saved_hash_table$a_new_param <- c(NA, NA, "1", "1") ## These files will be the same
readr::write_csv(saved_hash_table, hash_table_file)
testthat::expect_message(update_from_hash_table(hash_table_file, test_dir))
# Create and update hash table with new parameters
curr_files <- list.files(test_dir, full.names = TRUE, pattern = "\\.rds$")
create_hash_table(test_dir, save_path = hash_table_file)
saved_hash_table <- readr::read_csv(hash_table_file)
saved_hash_table$another_new_param <- c(1, 1, 1, 1)
readr::write_csv(saved_hash_table, hash_table_file)
file.remove(curr_files[c(1, 2, 3, 7)])
testthat::expect_warning(update_from_hash_table(hash_table_file, test_dir))
})
testthat::test_that("indexr:::c_string_to_vector handles all cases correctly", {
# 1. Check NA and empty string
testthat::expect_true(is.na(indexr:::c_string_to_vector(NA)))
testthat::expect_true(is.na(indexr:::c_string_to_vector("")))
# 2. Check trimming whitespace and numeric conversion
testthat::expect_equal(indexr:::c_string_to_vector(" 42 "), 42)
testthat::expect_equal(indexr:::c_string_to_vector("-3.14"), -3.14)
# 3. Check logical conversion
testthat::expect_true(indexr:::c_string_to_vector("TRUE"))
testthat::expect_false(indexr:::c_string_to_vector("FALSE"))
# 4. Check single string with no conversion
# (not numeric, not logical, does not start with c(...))
testthat::expect_equal(indexr:::c_string_to_vector("hello"), "hello")
# 5. Check vector of numeric with c(...)
testthat::expect_equal(indexr:::c_string_to_vector("c(1, 2, 3)"), c(1, 2, 3))
# 6. Check vector of logical with c(...)
testthat::expect_equal(indexr:::c_string_to_vector("c(TRUE, FALSE, TRUE)"), c(TRUE, FALSE, TRUE))
# 7. Check vector of mixed numeric formats with c(...)
testthat::expect_equal(indexr:::c_string_to_vector("c(-1, 2.5, 3)"), c(-1, 2.5, 3))
# 8. Check vector of character (unquoted) with c(...)
testthat::expect_equal(indexr:::c_string_to_vector("c(abc, def)"), c("abc", "def"))
# 9. Check vector of quoted character with c(...)
testthat::expect_equal(indexr:::c_string_to_vector('c("hello", "world")'), c("hello", "world"))
# 10. Check that malformed c(...) input falls back to plain string
testthat::expect_equal(indexr:::c_string_to_vector("c(1,2,3"), "c(1,2,3")
testthat::expect_equal(indexr:::c_string_to_vector("c1,2,3)"), "c1,2,3)")
})
unlink(test_dir, 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.