Nothing
# Tests for ungather_draws
#
# Author: mjskay
###############################################################################
library(dplyr)
library(tidyr)
test_that("ungather_draws raises an error when not provided with anything to ungather", {
expect_error(ungather_draws(tibble()), "You must supply at least one variable to ungather")
})
test_that("ungather_draws works on a simple parameter with no dimensions", {
data(RankCorr, package = "ggdist")
ref = tibble(
.chain = as.integer(1),
.iteration = seq_len(nrow(RankCorr[[1]])),
.draw = seq_len(nrow(RankCorr[[1]])),
typical_r = as.vector(RankCorr[[1]][, "typical_r"])
) %>%
bind_rows(tibble(
.chain = as.integer(2),
.iteration = seq_len(nrow(RankCorr[[2]])),
.draw = nrow(RankCorr[[2]]) + seq_len(nrow(RankCorr[[2]])),
typical_r = as.vector(RankCorr[[2]][, "typical_r"])
))
RankCorr %>%
gather_draws(typical_r) %>%
ungather_draws(typical_r) %>%
expect_equal(ref)
RankCorr %>%
gather_draws(typical_r, b[i, j]) %>%
ungather_draws(typical_r) %>%
expect_equal(ref)
})
test_that("ungather_draws works on multiple parameters with different dimensions", {
data(RankCorr, package = "ggdist")
result = RankCorr %>%
gather_draws(b[i, j], c(u_tau, tau)[i]) %>%
ungather_draws(b[i, j], c(u_tau, tau)[i])
ref = RankCorr %>%
tidy_draws() %>%
select(.chain, .iteration, .draw, starts_with("b"), starts_with("tau"), starts_with("u_tau"))
expect_equal(result[, order(names(result))], ref[, order(names(ref))])
})
test_that("ungather_draws(drop_indices = TRUE) drops draw indices", {
data(RankCorr, package = "ggdist")
result = RankCorr %>%
gather_draws(b[i, j], c(u_tau, tau)[i]) %>%
ungather_draws(b[i, j], c(u_tau, tau)[i], drop_indices = TRUE)
ref = RankCorr %>%
tidy_draws() %>%
select(starts_with("b"), starts_with("tau"), starts_with("u_tau"))
expect_equal(result[, order(names(result))], ref[, order(names(ref))])
})
test_that("ungather_draws does not support wide dimension syntax (`|`)", {
expect_error(ungather_draws(data.frame(), b[i ,j] | i),
'ungather_draws does not support the wide dimension syntax \\(`\\|`\\).')
})
test_that("ungather_draws works with user-specified names", {
data(line, package = "coda")
ref = line %>%
tidy_draws()
result = line %>%
gather_draws(alpha, beta, sigma) %>%
to_broom_names() %>%
ungather_draws(alpha, beta, sigma, variable = "term", value = "estimate")
expect_equal(result, 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.