tests/testthat/test-dist-percentile.R

test_that("Negative Binomial distribution", {
  dist <- dist_normal(0, 1)
  percentiles <- seq(0.01, 0.99, by = 0.01)
  x <- vapply(percentiles, quantile, double(1L), x = dist)
  dist <- dist_percentile(list(x), list(percentiles*100))

  expect_equal(format(dist), "percentile[99]")

  # quantiles
  expect_equal(quantile(dist, 0.6), stats::qnorm(0.6, 0, 1))
  expect_equal(quantile(dist, 0.61), stats::qnorm(0.61, 0, 1))

  # pdf

  # cdf
  expect_equal(cdf(dist, 0), stats::pnorm(0, 0, 1))
  expect_equal(cdf(dist, 1), stats::pnorm(1, 0, 1), tolerance = 1e-3)

  # F(Finv(a)) ~= a
  expect_equal(cdf(dist, quantile(dist, 0.6)), 0.6, tolerance = 1e-3)

  # stats
})

Try the distributional package in your browser

Any scripts or data that you put into this service are public.

distributional documentation built on March 31, 2023, 7:12 p.m.