Nothing
# Tests for nest_rvars
#
# Author: mjskay
###############################################################################
library(dplyr)
library(posterior)
#set up datasets
data(RankCorr, package = "ggdist")
# subset of RankCorr (for speed)
RankCorr_s = as_draws_rvars(RankCorr[[1]][1:10,])
# tests for nest_rvars ===================================================
test_that("nest_rvars works", {
rvar_df = RankCorr_s %>%
spread_rvars(b[i,], tau[i])
draws_df = RankCorr_s %>%
spread_draws(b[i,..], tau[i]) %>%
select(i,
`b[1,1]` = b.1,
`b[1,2]` = b.2,
`b[1,3]` = b.3,
`b[1,4]` = b.4,
tau, .chain, .iteration, .draw
)
expect_equal(unnest_rvars(rvar_df), draws_df)
expect_equal(nest_rvars(draws_df), group_by(rvar_df, i))
})
# .chain / .iteration columns work -------------------------------------
test_that("chains and iterations work", {
rvar_df = tibble(
i = 1:2,
x = rvar(array(1:16/4, dim = c(4,2,2)), nchains = 2)
) %>%
group_by(i)
draws_df = tibble(
i = rep(1:2L, each = 4),
`x[1,1]` = 1:8/4,
`x[1,2]` = 9:16/4,
.chain = rep(c(1L,2L,1L,2L), each = 2),
.iteration = rep(1:2L, 4),
.draw = rep(1:4L, 2)
) %>%
group_by(i)
expect_equal(unnest_rvars(rvar_df), draws_df)
expect_equal(nest_rvars(draws_df), rvar_df)
# missing .iteration
rvar_df_one_chain = rvar_df
rvar_df_one_chain$x = rvar(draws_of(rvar_df$x), nchains = 1)
draws_df_no_iteration = draws_df
draws_df_no_iteration$.iteration = NA
expect_equal(nest_rvars(draws_df_no_iteration), rvar_df_one_chain)
draws_df_no_iteration$.iteration = NULL
expect_equal(nest_rvars(draws_df_no_iteration), rvar_df_one_chain)
# missing .chain
draws_df_no_chain = draws_df
draws_df_no_chain$.chain = NA
expect_equal(nest_rvars(draws_df_no_chain), rvar_df_one_chain)
draws_df_no_chain$.chain = NULL
expect_equal(nest_rvars(draws_df_no_chain), rvar_df_one_chain)
})
test_that("missing / NA .chain and .iteration columns work", {
rvar_df = RankCorr_s %>%
spread_rvars(b[i,], tau[i])
draws_df = RankCorr_s %>%
spread_draws(b[i,..], tau[i]) %>%
select(i,
`b[1,1]` = b.1,
`b[1,2]` = b.2,
`b[1,3]` = b.3,
`b[1,4]` = b.4,
tau, .chain, .iteration, .draw
)
expect_equal(unnest_rvars(rvar_df), draws_df)
expect_equal(nest_rvars(draws_df), group_by(rvar_df, i))
})
# matrix columns ----------------------------------------------------------
test_that("matrix columns work", {
rvar_df = tibble::tibble(
x = 1:3,
m = matrix(1:9, 3, 3),
y = rvar(array(1:12, dim = c(4, 3)))
) %>%
group_by(x, m)
draws_df = tibble::tibble(
x = rep(1:3, each = 4),
m = matrix(rep(1:9, each = 4), 12, 3),
y = 1:12,
.chain = 1L,
.iteration = rep(1:4, 3),
.draw = rep(1:4, 3)
) %>%
group_by(x, m)
expect_equal(unnest_rvars(rvar_df), draws_df)
expect_equal(nest_rvars(draws_df), rvar_df)
})
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.