Nothing
test_that("Horseshoe distribution - format and structure", {
dist <- dist_horseshoe(lambda = c(0.5, 1, 2), tau = 1)
# length
expect_length(dist, 3L)
# format
expect_equal(format(dist), c("HS(0.5, 1)", "HS(1, 1)", "HS(2, 1)"))
})
test_that("Horseshoe distribution - density", {
lambda <- 1
tau <- 1
dist <- dist_horseshoe(lambda = lambda, tau = tau)
x_vals <- c(-2, -1, 0, 1, 2)
expect_equal(
density(dist, x_vals)[[1]],
LaplacesDemon::dhs(x_vals, lambda, tau)
)
expect_equal(
density(dist, x_vals, log = TRUE)[[1]],
LaplacesDemon::dhs(x_vals, lambda, tau, log = TRUE)
)
})
test_that("Horseshoe distribution - support", {
dist <- dist_horseshoe(lambda = 1, tau = 1)
s <- support(dist)
expect_s3_class(s, "support_region")
expect_equal(format(s), "R")
})
test_that("Horseshoe distribution - generate", {
dist <- dist_horseshoe(lambda = 1, tau = 1)
set.seed(42)
samples <- generate(dist, 100)[[1]]
expect_length(samples, 100L)
expect_type(samples, "double")
# Horseshoe is symmetric around 0 -- large sample mean should be near 0
expect_lt(abs(mean(samples)), 1)
})
test_that("Horseshoe distribution - input validation", {
expect_error(
dist_horseshoe(lambda = -1, tau = 1),
"lambda"
)
expect_error(
dist_horseshoe(lambda = 0, tau = 1),
"lambda"
)
expect_error(
dist_horseshoe(lambda = 1, tau = -1),
"tau"
)
expect_error(
dist_horseshoe(lambda = 1, tau = 0),
"tau"
)
})
test_that("Horseshoe distribution - heavier tails with larger lambda", {
# With larger lambda the density at x=0 is lower (more spread),
# but the tails are heavier
dist_narrow <- dist_horseshoe(lambda = 0.1, tau = 1)
dist_wide <- dist_horseshoe(lambda = 5, tau = 1)
# Larger lambda => lower peak at 0
expect_gt(density(dist_narrow, 0), density(dist_wide, 0))
})
test_that("Horseshoe distribution - larger tau scales distribution", {
dist_small <- dist_horseshoe(lambda = 1, tau = 0.5)
dist_large <- dist_horseshoe(lambda = 1, tau = 2)
# Larger tau => more spread => lower peak at 0
expect_gt(density(dist_small, 0), density(dist_large, 0))
})
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.