Sidecar accessors for basket-mode results. cog_basket_resolution() returns the full resolution tibble (drops candidates list-col by default for readable printing). cog_basket_unresolved() filters to ambiguous/no_match rows for iterative refinement.
52 lines
1.7 KiB
R
52 lines
1.7 KiB
R
test_that("cog_basket_resolution returns the sidecar tibble", {
|
|
basket <- suppressMessages(cog_gov_search(
|
|
name = c("Broward", "Notarealplace"),
|
|
state = c("FL", "NY")
|
|
))
|
|
res <- cog_basket_resolution(basket)
|
|
expect_s3_class(res, "tbl_df")
|
|
expect_equal(nrow(res), 2L)
|
|
expect_setequal(colnames(res), c(
|
|
"query_name", "query_state", "query_type", "status",
|
|
"match_method", "canonical_govid", "gov_name", "n_candidates"
|
|
))
|
|
})
|
|
|
|
test_that("cog_basket_resolution(expand_candidates = TRUE) keeps candidates list-col", {
|
|
basket <- suppressMessages(cog_gov_search(
|
|
name = c("Broward", "Notarealplace"),
|
|
state = c("FL", "NY")
|
|
))
|
|
res <- cog_basket_resolution(basket, expand_candidates = TRUE)
|
|
expect_true("candidates" %in% colnames(res))
|
|
expect_true(is.list(res$candidates))
|
|
})
|
|
|
|
test_that("cog_basket_resolution errors on a non-basket tibble", {
|
|
utility <- cog_gov_search("BROWARD")
|
|
expect_error(
|
|
cog_basket_resolution(utility),
|
|
regexp = "no resolution attribute"
|
|
)
|
|
})
|
|
|
|
test_that("cog_basket_unresolved filters to ambiguous and no_match", {
|
|
basket <- suppressMessages(cog_gov_search(
|
|
name = c("Broward", "San Diego", "Notarealplace"),
|
|
state = c("FL", "CA", "NY")
|
|
))
|
|
unres <- cog_basket_unresolved(basket)
|
|
expect_equal(nrow(unres), 2L)
|
|
expect_setequal(unres$status, c("ambiguous", "no_match"))
|
|
expect_true("candidates" %in% colnames(unres))
|
|
})
|
|
|
|
test_that("cog_basket_unresolved returns 0 rows when basket is clean", {
|
|
basket <- cog_gov_search(
|
|
name = c("BROWARD COUNTY", "SAN DIEGO CITY"),
|
|
state = c("FL", "CA")
|
|
)
|
|
unres <- cog_basket_unresolved(basket)
|
|
expect_equal(nrow(unres), 0L)
|
|
})
|