test_that("wid_series_types: structure", { expect_s3_class(wid_series_types, "data.frame") expect_identical(names(wid_series_types), c("code","description")) expect_true(all(grepl("^[a-z]$", wid_series_types$code))) expect_true(all(c("s","a","i") %in% wid_series_types$code)) }) test_that("wid_ages: structure", { expect_s3_class(wid_ages, "data.frame") expect_identical(names(wid_ages), c("code","description")) expect_true(all(grepl("^[0-9]{3}$", wid_ages$code))) expect_true(all(c("999","992","014") %in% wid_ages$code)) expect_gte(nrow(wid_ages), 30L) }) test_that("wid_pop_types: structure", { expect_s3_class(wid_pop_types, "data.frame") expect_identical(names(wid_pop_types), c("code","description")) expect_true(all(grepl("^[a-z]$", wid_pop_types$code))) expect_true(all(c("i","j") %in% wid_pop_types$code)) }) test_that("wid_countries: structure", { expect_s3_class(wid_countries, "data.frame") expect_identical(names(wid_countries), c("code","description")) expect_true(all(grepl("^[A-Z]{2}(-[A-Za-z0-9]{2,3})?$", wid_countries$code))) expect_gte(nrow(wid_countries), 200L) expect_true(all(c("US","FR","CN") %in% wid_countries$code)) }) test_that("wid_percentiles: structure", { expect_s3_class(wid_percentiles, "data.frame") expect_identical(names(wid_percentiles), c("code","description")) expect_true(all(grepl("^p[0-9]+(\\.[0-9]+)?p[0-9]+(\\.[0-9]+)?$", wid_percentiles$code))) expect_gte(nrow(wid_percentiles), 100L) expect_true(all(c("p0p100","p99p100") %in% wid_percentiles$code)) }) test_that("wid_percentiles: bounds", { bounds <- regmatches(wid_percentiles$code, regexec("^p([0-9.]+)p([0-9.]+)$", wid_percentiles$code)) lo <- as.numeric(vapply(bounds, `[`, character(1L), 2L)) hi <- as.numeric(vapply(bounds, `[`, character(1L), 3L)) expect_true(all(lo < hi)) }) test_that("wid_percentiles: p99p100 described as top 1%", { d <- wid_percentiles$description[wid_percentiles$code=="p99p100"] expect_true(grepl("Top 1", d, ignore.case=TRUE)) }) test_that("wid_percentiles: p0p100 described as entire population", { d <- wid_percentiles$description[wid_percentiles$code=="p0p100"] expect_true(grepl("Entire", d, ignore.case=TRUE)) }) test_that("wid_concepts: structure", { expect_s3_class(wid_concepts, "data.frame") expect_identical(names(wid_concepts), c("code","description")) expect_true(all(grepl("^[a-z]{4,8}$", wid_concepts$code))) expect_gte(nrow(wid_concepts), 100L) expect_true(all(c("ptinc","nninc") %in% wid_concepts$code)) }) test_that("wid_concepts: section-7 codes present", { sec7 <- c("inyixx","intlcu","xlcusp","xlceup","xlcyup","xlcusx","xlceux","xlcyux", "xrerus","xrereu","xreryu","npopul","npopem","ntaxto","ntaxma","ntaxad", "ntaxre","wlabsh","wcapsh","wwealn","wwealp","wwealh","wweali","wwealc", "wwealg","iquali") expect_true(all(sec7 %in% wid_concepts$code)) }) test_that("wid_concepts: section-7 price/exchange/ratio descriptions correct", { d <- setNames(wid_concepts$description, wid_concepts$code) cases <- list( inyixx="price", intlcu="currency", xlcusp="PPP", xlceup="PPP", xlcyup="PPP", xlcusx="Market", xlceux="Market", xlcyux="Market", xrerus="Real", xrereu="Real", xreryu="Real", npopul="population", npopem="Employed", ntaxto="Total", ntaxma="Married", ntaxad="Adult", ntaxre="Remaining", wlabsh="Labor", wcapsh="Capital", wwealn="Net", wwealp="Private", wwealh="Household", wweali="Institutional", wwealc="Corporate", wwealg="Government", iquali="transparency" ) for (code in names(cases)) { expect_true(grepl(cases[[code]], d[[code]], ignore.case=TRUE), label=paste("description of", code)) } })