Nothing
test_that("Laplace distribution", {
# defaults - testing with explicit parameters
dist <- dist_laplace(0, 1)
expect_equal(mean(dist), 0)
expect_equal(variance(dist), 2)
# display
expect_s3_class(dist, "distribution")
expect_output(print(dist), "Laplace\\(0, 1\\)")
expect_output(print(dist_laplace(numeric(), numeric())), "<distribution\\[0\\]>")
# error checking
expect_error(
dist_laplace(0, -1),
"positive"
)
expect_error(
dist_laplace(0, 0),
"positive"
)
expect_silent(
dist_laplace(mu = 0L, sigma = 1L)
)
set.seed(123)
mu <- c(-0.560475646552213, -0.23017748948328, 1.55870831414912, 0.070508391424576,
0.129287735160946, 1.71506498688328, 0.460916205989202, -1.26506123460653,
-0.686852851893526, -0.445661970099958)
sigma <- c(1.22408179743946, 0.359813827057364, 0.400771450594052, 0.11068271594512,
0.555841134754075, 1.78691313680308, 0.497850478229239, 1.96661715662964,
0.701355901563686, 0.472791407727934)
dist <- dist_laplace(mu, sigma)
# summary statistics
expect_equal(mean(dist), c(-0.560475646552213, -0.23017748948328, 1.55870831414912, 0.070508391424576,
0.129287735160946, 1.71506498688328, 0.460916205989202, -1.26506123460653,
-0.686852851893526, -0.445661970099958), tolerance = 1e-6)
expect_equal(median(dist), c(-0.560475646552213, -0.23017748948328, 1.55870831414912, 0.070508391424576,
0.129287735160946, 1.71506498688328, 0.460916205989202, -1.26506123460653,
-0.686852851893526, -0.445661970099958))
expect_equal(variance(dist), c(2.99675249364525, 0.258931980283333, 0.321235511222522, 0.0245013272179761,
0.617918734169395, 6.38611711695883, 0.495710197346165, 7.73516608150009,
0.98380020131642, 0.447063430442723))
expect_equal(skewness(dist), c(0, 0, 0, 0, 0, 0, 0, 0, 0, 0))
expect_equal(kurtosis(dist), c(3, 3, 3, 3, 3, 3, 3, 3, 3, 3))
# symmetry
expect_equal(has_symmetry(dist), c(TRUE, TRUE, TRUE, TRUE, TRUE, TRUE, TRUE, TRUE, TRUE, TRUE))
# density
expect_equal(
density(dist, 0),
c(0.25840877941931, 0.732940031399069, 0.0255261195667388, 2.38908099437143,
0.712858180290539, 0.107160364045725, 0.397920035658436, 0.133623419562148,
0.267742715233142, 0.412027664803725)
)
# log density
expect_equal(
density(dist, 0, log = TRUE),
c(-1.35321253156994, -0.310691392994745, -3.66805305431685, 0.87090877081269,
-0.338472783975555, -2.23342883709496, -0.921504209314974, -2.0127297371183,
-1.31772877737028, -0.886664784305052)
)
# cdf
expect_equal(
cdf(dist, 5),
c(0.994676987466257, 0.999999756691372, 0.999906711705461, 1,
0.99992177527756, 0.920458518481099, 0.999945128184019, 0.979325448598997,
0.999849495376496, 0.999995025840115)
)
# quantile
expect_equal(
quantile(dist, 0.7),
c(0.0648167011653952, -0.0463753668370739, 1.76343264038643,
0.127047958837356, 0.413225629536493, 2.62786600460636, 0.71523098707285,
-0.2604627988623, -0.328582285995298, -0.204148004336135)
)
# Test that cdf and quantile are inverses
probs <- c(0.1, 0.25, 0.5, 0.75, 0.9)
expect_equal(
cdf(dist[1L], quantile(dist[1L], probs)[[1L]])[[1L]],
probs,
tolerance = 1e-10
)
# generate
set.seed(123)
generated <- generate(dist, 10)
expect_length(generated, length(dist))
expect_true(all(sapply(generated, length) == 10))
large_sample <- generate(dist[[1]], 10000)[[1]]
expect_equal(mean(large_sample), mu[[1]], tolerance = 0.1)
expect_equal(var(large_sample), 2 * sigma[[1]]^2, tolerance = 0.2)
})
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.