set.seed(2024 - 07 - 04)
test_that("Wishart can use a choleskied Sigma", {
skip_if_not(check_tf_version())
sig <- lkj_correlation(2, dim = 2)
w <- wishart(5, sig)
m <- model(w, precision = "double")
tensorflow::set_random_seed(2024-07-30-1520)
expect_ok(draws <- mcmc(m, warmup = 0, n_samples = 5, verbose = FALSE))
})
test_that("Cholesky factor of Wishart should be a lower triangular matrix", {
skip_if_not(check_tf_version())
## Test if we just do calculate on chol_x
x <- wishart(df = 4, Sigma = diag(3))
chol_x <- chol(x)
expect_snapshot(
calculate(chol_x, nsim = 1, seed = 2024-10-31-1338)$chol_x[1,,]
)
calc_x <- calculate(x, nsim = 1)
calc_chol <- calculate(chol_x, nsim = 1)
expect_upper_tri(calc_chol$chol_x)
expect_square(calc_chol$chol_x)
## Test if we do calculate on x and chol_x
x <- wishart(df = 4, Sigma = diag(3))
chol_x <- chol(x)
calc_chol <- calculate(x, chol_x, nsim = 1, seed = 2024-10-31-1342)
expect_snapshot(
calc_chol$x[1,,]
)
expect_snapshot(
calc_chol$chol_x[1,,]
)
expect_square(calc_chol$chol_x)
expect_upper_tri(calc_chol$chol_x)
})
test_that("Cholesky factor of LJK_correlation should be a lower triangular matrix", {
skip_if_not(check_tf_version())
## Test if we just do calculate on chol_x
x <- lkj_correlation(eta = 3, dimension = 3)
chol_x <- chol(x)
expect_snapshot(
calculate(chol_x, nsim = 1, seed = 2024-07-30-1431)$chol_x[1,,]
)
calc_x <- calculate(x, nsim = 1, seed = 2024-07-30-1431)
calc_chol <- calculate(chol_x, nsim = 1, seed = 2024-07-30-1431)
expect_upper_tri(calc_chol$chol_x)
expect_square(calc_chol$chol_x)
## Test if we do calculate on x and chol_x
x <- lkj_correlation(eta = 3, dimension = 3)
chol_x <- chol(x)
calc_chol <- calculate(x, chol_x, nsim = 1, seed = 2024-07-30-1431)
expect_snapshot(
calc_chol$x[1,,]
)
expect_snapshot(
calc_chol$chol_x[1,,]
)
expect_square(calc_chol$chol_x)
expect_upper_tri(calc_chol$chol_x)
})
test_that("Post-MCMC, Wishart distribution stays symmetric, chol remains lower tri",{
skip_if_not(check_tf_version())
# From https://github.com/greta-dev/greta/issues/585
x <- wishart(df = 4, Sigma = diag(3))
m <- model(x)
tensorflow::set_random_seed(2024-07-30-1431)
draws <- mcmc(m, warmup = 1, n_samples = 1)
calcs <- calculate(x, chol(x), nsim = 1, seed = 2024-07-30-1431)
# ensure that the symmetric matrix is still symmetric
expect_snapshot(
calcs
)
expect_square(calcs$x)
expect_square(calcs$`chol(x)`)
expect_symmetric(calcs$x)
expect_upper_tri(calcs$`chol(x)`)
})
test_that("Post-MCMC, LKJ distribution stays symmetric, chol remains lower tri",{
skip_if_not(check_tf_version())
# From https://github.com/greta-dev/greta/issues/585
x <- lkj_correlation(eta = 3, dimension = 3)
m <- model(x)
tensorflow::set_random_seed(2024-07-30-1431)
draws <- mcmc(m, warmup = 1, n_samples = 1)
calcs <- calculate(x, chol(x), nsim = 1, seed = 2024-07-30-1431)
# ensure that the symmetric matrix is still symmetric
expect_snapshot(
calcs
)
expect_square(calcs$x)
expect_square(calcs$`chol(x)`)
expect_symmetric(calcs$x)
expect_upper_tri(calcs$`chol(x)`)
})
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.