diff --git a/R/Prior.R b/R/Prior.R index ca73698a..b32f61f3 100755 --- a/R/Prior.R +++ b/R/Prior.R @@ -566,7 +566,7 @@ prior_invgamma <- function(alpha, beta) { #' @export median.Prior <- function(x, na.rm, ...) { vals <- replicate( - n = 250, + n = 500, initialValues(x), simplify = FALSE ) |> diff --git a/tests/testthat/test-Prior.R b/tests/testthat/test-Prior.R index 3a687ade..b48d3701 100644 --- a/tests/testthat/test-Prior.R +++ b/tests/testthat/test-Prior.R @@ -214,3 +214,30 @@ test_that("Limits work as expected", { x <- set_limits(x, upper = 0) expect_error(initialValues(x), regex = "Unable to generate") }) + + + +test_that("median(Prior) works as expected", { + set.seed(2410) + + # Unrestricted + p1 <- prior_normal(-200, 400) + expect_equal( + median(p1), + -200, + tolerance = 0.15 + ) + + + # Constrained + p2 <- set_limits(p1, lower = 0) + + actual <- rnorm(6000, -200, 400) * 0.5 + -200 * 0.5 + actual_red <- actual[actual >= 0] + + expect_equal( + median(p2), + median(actual_red), + tolerance = 0.15 + ) +})