Nothing
test_that("ct_cache_dir respects option", {
op <- options(comtrade.cache_dir = "/tmp/test-comtrade-cache")
on.exit(options(op))
expect_equal(comtrade:::ct_cache_dir(), "/tmp/test-comtrade-cache")
})
test_that("ct_cache_dir uses default when option not set", {
op <- options(comtrade.cache_dir = NULL)
on.exit(options(op))
dir <- comtrade:::ct_cache_dir()
expect_true(grepl("comtrade", dir))
})
test_that("ct_validate_year rejects invalid years", {
expect_error(comtrade:::ct_validate_year(1900), "1962")
expect_error(comtrade:::ct_validate_year("abc"), "numeric")
expect_error(comtrade:::ct_validate_year(3000), "current year")
})
test_that("ct_validate_year accepts valid years", {
expect_equal(comtrade:::ct_validate_year(2023), 2023L)
expect_equal(comtrade:::ct_validate_year(c(2020, 2021)), c(2020L, 2021L))
})
test_that("ct_validate_flow accepts valid flows", {
expect_equal(comtrade:::ct_validate_flow("X"), "X")
expect_equal(comtrade:::ct_validate_flow("m"), "M")
expect_equal(comtrade:::ct_validate_flow(c("X", "M")), c("X", "M"))
})
test_that("ct_validate_flow rejects invalid flows", {
expect_error(comtrade:::ct_validate_flow("Z"), "must be one of")
})
test_that("ct_records_to_df handles empty input", {
out <- comtrade:::ct_records_to_df(list(), c("a", "b"))
expect_s3_class(out, "data.frame")
expect_equal(nrow(out), 0L)
expect_named(out, c("a", "b"))
})
test_that("ct_records_to_df converts records", {
records <- list(
list(a = 1, b = "x"),
list(a = 2, b = "y")
)
out <- comtrade:::ct_records_to_df(records, c("a", "b"))
expect_equal(nrow(out), 2L)
expect_equal(out$a, c(1, 2))
expect_equal(out$b, c("x", "y"))
})
test_that("ct_records_to_df handles missing fields", {
records <- list(
list(a = 1),
list(a = 2, b = "y")
)
out <- comtrade:::ct_records_to_df(records, c("a", "b"))
expect_equal(nrow(out), 2L)
expect_true(is.na(out$b[1]))
})
test_that("ct_resolve_country handles ISO3 codes", {
code <- comtrade:::ct_resolve_country("GBR")
expect_equal(code, "826")
})
test_that("ct_resolve_country handles numeric codes", {
code <- comtrade:::ct_resolve_country(826)
expect_equal(code, "826")
})
test_that("ct_resolve_country handles World", {
expect_equal(comtrade:::ct_resolve_country("WORLD"), "0")
expect_equal(comtrade:::ct_resolve_country("W00"), "0")
})
test_that("ct_cache_read returns NULL for missing file", {
op <- options(comtrade.cache_dir = tempdir())
on.exit(options(op))
result <- comtrade:::ct_cache_read("nonexistent.rds")
expect_null(result)
})
test_that("ct_cache write and read roundtrip works", {
op <- options(comtrade.cache_dir = tempdir())
on.exit(options(op))
test_data <- data.frame(x = 1:3, y = letters[1:3])
comtrade:::ct_cache_write("test_roundtrip.rds", test_data)
result <- comtrade:::ct_cache_read("test_roundtrip.rds", max_age = 60)
expect_equal(result, test_data)
# Clean up
file.remove(file.path(tempdir(), "test_roundtrip.rds"))
})
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.