Nothing
# Tests for gather_draws
#
# Author: mjskay
###############################################################################
library(dplyr)
library(tidyr)
test_that("regular expressions for parameter names work on non-indexed parameters", {
data(RankCorr, package = "ggdist")
ref = RankCorr %>% spread_draws(typical_r) %>% gather_variables()
expect_equal(gather_draws(RankCorr, `typical..`, regex = TRUE), ref)
})
test_that("regular expressions for parameter names work on indexed parameters", {
data(RankCorr, package = "ggdist")
ref = RankCorr %>% spread_draws(c(tau, u_tau)[i]) %>% gather_variables()
expect_equal(gather_draws(RankCorr, `.*tau`[i], regex = TRUE), ref)
})
test_that("gather_draws works on a combination of 0 and 1-dimensional values (with correct groups)", {
data(RankCorr, package = "ggdist")
ref = RankCorr %>%
spread_draws(tau[i], typical_r) %>%
gather(".variable", ".value", -one_of(".chain", ".iteration", ".draw", "i")) %>%
ungroup() %>%
filter(.variable != "typical_r" | (.variable == "typical_r" & i == 1))
ref[ref$.variable == "typical_r", "i"] = NA
ref = group_by(ref, i, .variable, .drop = FALSE)
result = gather_draws(RankCorr, tau[i], typical_r)
# grouped tibble equivalence is too persnickety now, so test equivalence + equal groups
expect_equivalent(result, ref)
expect_equal(group_vars(result), group_vars(ref))
})
test_that("draw_indices works", {
df = data.frame(
.chain = rep(1:4, each = 4),
.iteration = rep(1:4, 4),
.draw = 1:16,
.warmup = rep(c(TRUE, TRUE, FALSE, FALSE), 4),
`x[1]` = 2:17,
`x[2]` = 3:18,
check.names = FALSE
)
ref = tibble(
i = rep(1:2, each = 16),
.chain = rep(1:4, each = 4, times = 2),
.iteration = rep(1:4, 8),
.draw = rep(1:16, 2),
.warmup = rep(c(TRUE, TRUE, FALSE, FALSE), 8),
.variable = "x",
.value = c(2:17, 3:18)
) %>%
group_by(i, .variable)
result = gather_draws(df, x[i], draw_indices = c(".chain", ".iteration", ".draw", ".warmup"))
expect_equivalent(result, ref)
expect_equal(group_vars(result), group_vars(ref))
})
Any scripts or data that you put into this service are public.
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.