Skip to content

Commit ed73dca

Browse files
committed
Keep only non-redundant tests for tidy parameter helpers
1 parent ab18e91 commit ed73dca

File tree

2 files changed

+1
-93
lines changed

2 files changed

+1
-93
lines changed

NEWS.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
# bayesplot (development version)
22

3-
* Added dedicated unit tests for `param_range()`, `param_glue()`, and `tidyselect_parameters()` tidy parameter selection helpers.
3+
* Added unit tests for previously untested edge cases in `param_range()`, `param_glue()`, and `tidyselect_parameters()` (no-match, partial-match, and negation behavior).
44
* Use `rlang::warn()` and `rlang::inform()` for selected PPC user messages instead of base `warning()` and `message()`.
55
* Standardize input validation errors in `ppc_km_overlay()` and interpolation helpers to use `rlang::abort()` for consistent error handling.
66
* Fix assignment-in-call bug in `mcmc_rank_ecdf()` (#).

tests/testthat/test-tidy-params.R

Lines changed: 0 additions & 92 deletions
Original file line numberDiff line numberDiff line change
@@ -2,59 +2,21 @@ source(test_path("data-for-mcmc-tests.R"))
22

33
# param_range --------------------------------------------------------------
44

5-
test_that("param_range selects correct parameters by index", {
6-
all_pars <- c("alpha", "beta[1]", "beta[2]", "beta[3]", "sigma")
7-
result <- param_range("beta", c(1, 3), vars = all_pars)
8-
expect_equal(result, c(2L, 4L))
9-
})
10-
115
test_that("param_range returns empty integer when no matches", {
126
all_pars <- c("alpha", "gamma[1]", "gamma[2]")
137
result <- param_range("beta", 1:3, vars = all_pars)
148
expect_identical(result, integer(0))
159
})
1610

17-
test_that("param_range handles single index", {
18-
all_pars <- c("alpha", "beta[1]", "beta[2]", "sigma")
19-
result <- param_range("beta", 2, vars = all_pars)
20-
expect_equal(result, 3L)
21-
})
22-
2311
test_that("param_range drops non-matching indices silently", {
2412
all_pars <- c("alpha", "beta[1]", "beta[3]")
2513
# beta[2] does not exist, should be silently dropped
2614
result <- param_range("beta", 1:3, vars = all_pars)
2715
expect_equal(result, c(2L, 3L))
2816
})
2917

30-
test_that("param_range errors when vars is not NULL or character", {
31-
expect_error(
32-
param_range("beta", 1:3, vars = list("a", "b")),
33-
"'vars' must be NULL or a character vector."
34-
)
35-
expect_error(
36-
param_range("beta", 1:3, vars = 1:5),
37-
"'vars' must be NULL or a character vector."
38-
)
39-
})
40-
4118
# param_glue ---------------------------------------------------------------
4219

43-
test_that("param_glue selects correct parameters with one expression", {
44-
all_pars <- c("alpha[1]", "alpha[2]", "alpha[3]", "sigma")
45-
result <- param_glue("alpha[{i}]", i = c(1, 3), vars = all_pars)
46-
expect_equal(result, c(1L, 3L))
47-
})
48-
49-
test_that("param_glue selects correct parameters with multiple expressions", {
50-
all_pars <- c(
51-
"b[X:1]", "b[X:2]", "b[Y:1]", "b[Y:2]", "sigma"
52-
)
53-
result <- param_glue("b[{var}:{lev}]", var = c("X", "Y"), lev = c(1, 2),
54-
vars = all_pars)
55-
expect_equal(result, c(1L, 3L, 2L, 4L))
56-
})
57-
5820
test_that("param_glue returns empty integer when no matches", {
5921
all_pars <- c("alpha", "sigma")
6022
result <- param_glue("beta[{i}]", i = 1:3, vars = all_pars)
@@ -69,64 +31,10 @@ test_that("param_glue drops non-matching names silently", {
6931
expect_equal(result, c(1L, 2L))
7032
})
7133

72-
test_that("param_glue errors when vars is not NULL or character", {
73-
expect_error(
74-
param_glue("alpha[{i}]", i = 1:3, vars = list("a")),
75-
"'vars' must be NULL or a character vector."
76-
)
77-
expect_error(
78-
param_glue("alpha[{i}]", i = 1:3, vars = 42),
79-
"'vars' must be NULL or a character vector."
80-
)
81-
})
82-
8334
# tidyselect_parameters ----------------------------------------------------
8435

85-
test_that("tidyselect_parameters selects by name", {
86-
all_pars <- c("alpha", "beta[1]", "beta[2]", "sigma")
87-
selected <- tidyselect_parameters(all_pars, vars(alpha, sigma))
88-
expect_equal(selected, c("alpha", "sigma"))
89-
})
90-
91-
test_that("tidyselect_parameters works with tidyselect helpers", {
92-
all_pars <- c("alpha", "beta[1]", "beta[2]", "sigma")
93-
selected <- tidyselect_parameters(all_pars, vars(starts_with("beta")))
94-
expect_equal(selected, c("beta[1]", "beta[2]"))
95-
})
96-
9736
test_that("tidyselect_parameters works with negation", {
9837
all_pars <- c("alpha", "beta[1]", "beta[2]", "sigma")
9938
selected <- tidyselect_parameters(all_pars, vars(-alpha))
10039
expect_equal(selected, c("beta[1]", "beta[2]", "sigma"))
10140
})
102-
103-
test_that("tidyselect_parameters errors when nothing matches", {
104-
all_pars <- c("alpha", "beta[1]", "sigma")
105-
expect_error(
106-
tidyselect_parameters(all_pars, vars(starts_with("zzz"))),
107-
"No parameters were found matching those names."
108-
)
109-
})
110-
111-
test_that("tidyselect_parameters works with contains()", {
112-
all_pars <- c("b[(Intercept) X:1]", "b[(Intercept) X:2]", "sigma")
113-
selected <- tidyselect_parameters(all_pars, vars(contains("Intercept")))
114-
expect_equal(selected, c("b[(Intercept) X:1]", "b[(Intercept) X:2]"))
115-
})
116-
117-
# Integration with vars() --------------------------------------------------
118-
119-
test_that("param_range works inside vars() via prepare_mcmc_array", {
120-
result <- prepare_mcmc_array(mat, pars = vars(param_range("beta", 1:2)))
121-
pars <- dimnames(result)[[3]]
122-
expect_equal(pars, c("beta[1]", "beta[2]"))
123-
})
124-
125-
test_that("param_glue works inside vars() via prepare_mcmc_array", {
126-
result <- prepare_mcmc_array(
127-
mat,
128-
pars = vars(param_glue("b[(Intercept) x:{i}]", i = c(1, 3)))
129-
)
130-
pars <- dimnames(result)[[3]]
131-
expect_equal(pars, c("b[(Intercept) x:1]", "b[(Intercept) x:3]"))
132-
})

0 commit comments

Comments
 (0)