R-CMD-check / check (push) Failing after 1m30s
Final-review followups:
1. cog_explain rendered the popyear range as raw 2-digit values
("popyear range: 19-20"), which a user could read as the years 19-20.
Added .expand_popyear() helper to format as 4-digit calendar years
(2019-2020). Pivot at 70 to handle pre-2000 vintages if the corpus
ever extends backward.
2. cog_peer_compare provenance was missing pop_range and is_ratio,
omitted from the spec-required reproducibility metadata.
cog_find_peers now stamps both as tibble attributes; cog_peer_compare
reads them through to provenance$pop_range and provenance$is_ratio.
Test coverage extended: explain test asserts the 4-digit format and
rejects the old 2-digit form; peer-compare test asserts pop_range +
is_ratio propagate end-to-end.
326 PASS / 0 FAIL.
51 lines
1.7 KiB
R
51 lines
1.7 KiB
R
test_that("cog_explain prints verb header and target", {
|
|
skip_if_no_corpus()
|
|
r <- cog_spending("101006006", 2020L, "Corrections")
|
|
# cli writes to stderr; capture both stdout and message streams.
|
|
txt <- paste(c(
|
|
capture.output(cog_explain(r)),
|
|
capture.output(cog_explain(r), type = "message")
|
|
), collapse = "\n")
|
|
expect_true(grepl("cog_spending", txt))
|
|
expect_true(grepl("Corrections", txt))
|
|
expect_true(grepl("101006006", txt))
|
|
})
|
|
|
|
test_that("cog_explain format='list' returns structured provenance", {
|
|
skip_if_no_corpus()
|
|
r <- cog_spending("101006006", 2020L, "Corrections")
|
|
prov <- cog_explain(r, format = "list")
|
|
expect_identical(prov, attr(r, "provenance"))
|
|
})
|
|
|
|
test_that("cog_explain returns result invisibly for chaining", {
|
|
skip_if_no_corpus()
|
|
r <- cog_spending("101006006", 2020L, "Corrections")
|
|
res <- withVisible(cog_explain(r))
|
|
expect_false(res$visible)
|
|
expect_identical(res$value, r)
|
|
})
|
|
|
|
test_that("cog_explain errors on non-verb input", {
|
|
df <- tibble::tibble(a = 1)
|
|
expect_error(cog_explain(df), "provenance")
|
|
})
|
|
|
|
test_that("cog_explain prints denominator + popyear_range + counts", {
|
|
skip_if_no_corpus()
|
|
with_fixture_corpus({
|
|
r <- cog_spending("101006006", years = 2019:2020,
|
|
category = "Police", per_capita = TRUE)
|
|
out <- paste(c(
|
|
capture.output(cog_explain(r)),
|
|
capture.output(cog_explain(r), type = "message")
|
|
), collapse = "\n")
|
|
expect_true(grepl("Census F-33", out))
|
|
expect_true(grepl("popyear", out, ignore.case = TRUE))
|
|
expect_true(grepl("census_f33", out))
|
|
# popyear_range should render as 4-digit calendar years, not raw 2-digit
|
|
expect_true(grepl("2019-2020", out))
|
|
expect_false(grepl("popyear range: 19-20", out, fixed = TRUE))
|
|
})
|
|
})
|