Nothing
test_that("wdi_get_handles invalid language input", {
expect_error(
wdi_get(
entities = "USA", indicators = "NY.GDP.MKTP.CD", language = "xx"
)
)
})
test_that("wdi_get checks invalid parameter values", {
expect_error(wdi_get("USA", "NY.GDP.PCAP.KD", frequency = "weekly"),
"must be either 'annual', 'quarter', or 'month'")
expect_error(wdi_get("USA", "NY.GDP.PCAP.KD", format = "tall"),
"must be either 'long' or 'wide'")
})
test_that("wdi_get handles invalid per_page input", {
expect_error(
wdi_get(
entities = "USA", indicators = "NY.GDP.MKTP.CD", per_page = -1
)
)
expect_error(
wdi_get(
entities = "USA", indicators = "NY.GDP.MKTP.CD", per_page = "1000"
)
)
})
test_that("wdi_get handels invalid most_recent_only input", {
expect_error(
wdi_get(
entities = "USA", indicators = "NY.GDP.MKTP.CD",
most_recent_only = "yes"
)
)
})
test_that("wdi_get handels invalid progress input", {
expect_error(
wdi_get(
entities = "USA", indicators = "NY.GDP.MKTP.CD", progress = "yes"
)
)
})
test_that("wdi_get creates valid output structure for single indicator", {
skip_if_offline()
result <- wdi_get(
entities = "USA",
indicators = "NY.GDP.MKTP.CD",
start_year = 2010, end_year = 2020,
language = "en", per_page = 10, progress = FALSE
)
expected_names <- c("indicator_id", "entity_id", "year", "value")
expect_true(is.data.frame(result))
expect_true(all(expected_names %in% names(result)))
expect_equal(nrow(result), 11)
})
test_that("wdi_get_creates valid output structure for multiple indicators", {
skip_if_offline()
result <- wdi_get(
entities = "USA",
indicators = c("NY.GDP.MKTP.CD", "SP.POP.TOTL"),
start_year = 2010, end_year = 2020,
language = "en", per_page = 10, progress = FALSE
)
expected_names <- c("indicator_id", "entity_id", "year", "value")
expect_true(is.data.frame(result))
expect_true(all(expected_names %in% names(result)))
expect_true(any(result$indicator_id == "NY.GDP.MKTP.CD"))
expect_true(any(result$indicator_id == "SP.POP.TOTL"))
})
test_that("wdi_get returns a tibble", {
skip_if_offline()
result <- wdi_get("USA", "NY.GDP.PCAP.KD")
expect_s3_class(result, "tbl_df")
})
test_that("wdi_get handles single indicator, entity & default parameters", {
skip_if_offline()
result <- wdi_get("USA", "NY.GDP.PCAP.KD")
expected_colnames <- c("indicator_id", "entity_id", "year", "value")
expect_true(all(expected_colnames %in% colnames(result)))
expect_equal(unique(result$entity_id), "USA")
expect_equal(unique(result$indicator_id), "NY.GDP.PCAP.KD")
})
test_that("wdi_get handles multiple indicators and multiple entities", {
skip_if_offline()
result <- wdi_get(c("USA", "CAN"), c("NY.GDP.PCAP.KD", "SP.POP.TOTL"))
expected_colnames <- c("indicator_id", "entity_id", "year", "value")
expect_true(all(expected_colnames %in% colnames(result)))
expect_true(all(result$entity_id %in% c("USA", "CAN")))
expect_true(all(result$indicator_id %in% c("NY.GDP.PCAP.KD", "SP.POP.TOTL")))
})
test_that("wdi_get handles different date ranges and frequencies", {
skip_if_offline()
result_annual <- wdi_get(
"USA", "NY.GDP.PCAP.KD",
start_year = 2010, end_year = 2015, frequency = "annual"
)
result_quarter <- wdi_get(
"NGA", "DT.DOD.DECT.CD.TL.US",
start_year = 2010, end_year = 2015, frequency = "quarter"
)
result_month <- wdi_get(
"USA", "DPANUSSPB",
start_year = 2010, end_year = 2015, frequency = "month"
)
expect_equal(range(result_annual$year), c(2010, 2015))
expect_true("quarter" %in% colnames(result_quarter))
expect_true("month" %in% colnames(result_month))
})
test_that("wdi_get handles format parameter (long and wide)", {
skip_if_offline()
result_long <- wdi_get("USA", "NY.GDP.PCAP.KD", format = "long")
result_wide <- wdi_get("USA", "NY.GDP.PCAP.KD", format = "wide")
expect_true("indicator_id" %in% colnames(result_long))
expect_false("indicator_id" %in% colnames(result_wide))
})
test_that("wdi_get handles empty data gracefully", {
mock_data <- data.frame(
indicator = I(data.frame(
id = character(),
value = character()
)),
country = I(data.frame(
id = character(),
value = character()
)),
countryiso3code = character(),
date = character(),
value = numeric(),
unit = character(),
obs_status = character(),
decimal = integer()
)
with_mocked_bindings(
perform_request = function(...) mock_data,
{
result <- wdi_get("USA", "NY.GDP.PCAP.KD")
expect_equal(nrow(result), 0)
}
)
})
test_that("create_date constructs date range correctly", {
expect_equal(create_date(2010, 2015), "2010:2015")
expect_null(create_date(NULL, NULL))
})
test_that("validate_frequency checks valid frequencies", {
expect_error(validate_frequency("weekly"),
"must be either 'annual', 'quarter', or 'month'")
expect_silent(validate_frequency("annual"))
expect_silent(validate_frequency("quarter"))
expect_silent(validate_frequency("month"))
})
test_that("validate_progress checks if progress is logical", {
expect_error(validate_progress("yes"), "must be either TRUE or FALSE")
expect_silent(validate_progress(TRUE))
expect_silent(validate_progress(FALSE))
})
test_that("validate_source checks if source is valid", {
with_mocked_bindings(
wdi_get_sources = function(...) tibble(source_id = c(1, 2, 3)),
{
expect_error(validate_source(4), "is not supported")
expect_silent(validate_source(1))
expect_silent(validate_source(NULL))
}
)
})
test_that("validate_format checks valid formats", {
expect_error(validate_format("tall"), "must be either 'long' or 'wide'")
expect_silent(validate_format("long"))
expect_silent(validate_format("wide"))
})
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.