Files
uscogdata/tests/testthat/test-views.R
T
jared 92c9a7382e test: re-baseline canonical_govid literals to 12-char namespace
Swaps every hardcoded 9-char canonical_govid literal (Broward County,
Fort Lauderdale City, Florida/Alabama state govts, Bexar/Tarrant/Wayne
counties, San Diego/Oakland/Miami/Austin cities) for its 12-char Phase P
equivalent, resolved by name+type+state against the regenerated fixture
xwalk. Also updates two gov_name search patterns that no longer match
under Phase P canonical naming ("FLORIDA STATE GOVT" -> "FLORIDA"; the
"Miami" substring test now pins type = "city" since MIAMI-DADE COUNTY's
canonical name now also contains "Miami", which would otherwise make the
match ambiguous across govs_types instead of resolving via largest-pop).
Underlying per-year population figures for Broward County and Alabama
are unchanged, so no expected data-value literals needed recomputation.
Suite: 126 test blocks / 336 expectations, 0 FAIL / 0 WARN / 0 SKIP.
2026-07-11 09:32:02 -04:00

91 lines
2.9 KiB
R

test_that("all expected views register on session open", {
skip_if_no_corpus()
con <- cog_open()
on.exit(cog_close())
views <- DBI::dbGetQuery(con,
"SELECT table_name FROM information_schema.tables
WHERE table_schema = 'main' AND table_type = 'VIEW'"
)
expected <- c(
"long", "spending_long", "revenue_long",
"canonical_fips_xwalk", "summary_categories",
"spending_annotated", "revenue_annotated"
)
expect_true(all(expected %in% views$table_name))
})
test_that("spending_long filters to E/F/G/K prefixes and excludes aggregates", {
skip_if_no_corpus()
con <- cog_open()
on.exit(cog_close())
prefixes <- DBI::dbGetQuery(con,
"SELECT DISTINCT LEFT(item_code, 1) AS pfx FROM spending_long"
)$pfx
expect_true(all(prefixes %in% c("E", "F", "G", "K")))
agg_count <- DBI::dbGetQuery(con,
"SELECT count(*) AS n FROM spending_long WHERE is_aggregate"
)$n
expect_equal(agg_count, 0)
})
test_that("revenue_long filters to T/A/U/B/C/D prefixes and excludes aggregates", {
skip_if_no_corpus()
con <- cog_open()
on.exit(cog_close())
prefixes <- DBI::dbGetQuery(con,
"SELECT DISTINCT LEFT(item_code, 1) AS pfx FROM revenue_long"
)$pfx
expect_true(all(prefixes %in% c("T", "A", "U", "B", "C", "D")))
agg_count <- DBI::dbGetQuery(con,
"SELECT count(*) AS n FROM revenue_long WHERE is_aggregate"
)$n
expect_equal(agg_count, 0)
})
test_that("spending_annotated carries category + xwalk columns", {
skip_if_no_corpus()
con <- cog_open()
on.exit(cog_close())
row <- DBI::dbGetQuery(con,
"SELECT * FROM spending_annotated LIMIT 1"
)
for (nm in c("canonical_govid", "item_code", "amt",
"xwalk_gov_name", "govs_type", "population_acs",
"category", "spend_subtype")) {
expect_true(nm %in% names(row), info = paste("missing column:", nm))
}
})
test_that("gov_population_yearly exposes one row per (year, canonical_govid)", {
skip_if_no_corpus()
with_fixture_corpus({
con <- uscogdata:::.ensure_session()
df <- DBI::dbGetQuery(
con,
"SELECT year, canonical_govid, population, popyear
FROM gov_population_yearly
WHERE canonical_govid = '121011212191'
ORDER BY year"
)
expect_setequal(df$year, c(2019L, 2020L))
expect_equal(nrow(df), 2L)
expect_true(all(!is.na(df$population)))
# Hardcoded values are from the bundled fixture (regenerated 2026-07-11
# against cog_pipeline publish tree, pipeline_commit 1a00925, Phase P
# schema_version 4). Update if the fixture is rebuilt against a
# different source vintage.
expect_equal(df$population[df$year == 2019L], 1935878L)
expect_equal(df$population[df$year == 2020L], 1952778L)
# Uniqueness on (year, canonical_govid) across the whole view.
dup <- DBI::dbGetQuery(
con,
"SELECT year, canonical_govid, COUNT(*) AS n
FROM gov_population_yearly
GROUP BY year, canonical_govid HAVING n > 1"
)
expect_equal(nrow(dup), 0L)
})
})