# d <- mix(dst_unif(0, 5), dst_empirical(c(2, 3, 3, 4, 6)))
# # plot(d, "cdf", from = -1, to = 7, n = 1001)
# cdf <- get_cdf(d)
# tau <- c(0.1, 0.15, 0.2, 0.25, 0.3, 0.35, 0.4, 0.5, NA, NaN, 0.55, 0.6, 0.9, 1)
# ans <- c(1, 1.5, 2, 2, 2, 2.5, 3, 3, NA, NaN, 3, 3, 5, 6)
# tau_left <- c(-Inf, -100, 0)
# tau_right <- c(100, Inf)
# ans_left <- c(-Inf, -Inf, -Inf)
# ans_right <- c(Inf, Inf)
# set.seed(1)
# permute <- sample(1:length(tau))
#
# test_that("quantiles by inversion of cdf works", {
# expect_equal(
# sapply(tau, function(x) {
# left_inverse(cdf,
# at = x, low = -1, high = 7,
# tol = 1e-6, maxiter = 1000
# )
# }),
# ans
# )
# expect_equal(eval_quantile(d, at = tau), ans)
# expect_equal(eval_quantile(d, at = tau[permute]), ans[permute])
# expect_equal(eval_quantile(d, at = tau_left), ans_left)
# expect_equal(eval_quantile(d, at = tau_right), ans_right)
# expect_equal(
# eval_quantile(d, at = c(tau_right, tau_left, tau)),
# c(ans_right, ans_left, ans)
# )
# expect_equal(eval_quantile(d, at = 0.5), 3)
# expect_identical(eval_quantile(d, at = numeric(0L)), numeric(0L))
# expect_identical(eval_quantile(d, at = NA_real_), NA_real_)
# expect_identical(eval_quantile(d, at = NaN), NaN)
# expect_identical(
# eval_quantile(d, at = c(NA_real_, NA_real_)),
# c(NA_real_, NA_real_)
# )
# })
#
# d2 <- mix(dst_norm(0, 1), dst_norm(4, 1))
#
# test_that("Quantile algorithm works with no discontinuities", {
# expect_equal(eval_quantile(d2, at = 0.5), 2)
# # eval_quantile(d2, at = 1:9/10)
# expect_equal(
# eval_quantile(d2, at = c(0, 0.5, NA, 1, 1.3)),
# c(-Inf, 2, NA, Inf, Inf)
# )
# })
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.