Nothing
#context("GEV functions 2")
## Example shape parameters
# Positive
xi1 <- 0.1
low <- -1 / xi1
# Zero
xi2 <- 0
# Negative
xi3 <- -1e-7
up <- -1 / xi3
## Example input vectors
# For testing pdf, log_pdf and cdf
xvec <- c(-Inf, 0, Inf, NA)
x1 <- c(low, xvec)
x2 <- xvec
x3 <- c(up, xvec)
# For testing quantile
pvec <- c(0, 0.25, 0.5, 0.75, 1, NA)
test_that("rgev, length of output", {
expect_length(rgev(n = 1, shape = xi1), 1)
expect_length(rgev(n = 100, shape = xi1), 100)
expect_length(rgev(n = 0, shape = xi1), 0)
expect_error(rgev(n = -2, shape = xi1))
expect_length(rgev(n = 1, shape = xi2), 1)
expect_length(rgev(n = 100, shape = xi2), 100)
expect_length(rgev(n = 0, shape = xi2), 0)
expect_error(rgev(n = -2, shape = xi2))
expect_length(rgev(n = 1, shape = xi3), 1)
expect_length(rgev(n = 100, shape = xi3), 100)
expect_length(rgev(n = 0, shape = xi3), 0)
expect_error(rgev(n = -2, shape = xi3))
})
test_that("dgev, values and length of output", {
p <- pvec[2:4]
qq <- qgev(p, shape = xi1)
expect_equal(dgev(x1, shape = xi1), c(0, 0, exp(-1), 0, NA))
expect_equal(dgev(qq, shape = xi1), (-log(p)) ^ (1 + xi1) * p)
expect_length(dgev(seq_len(0), shape = xi1), 0)
expect_length(dgev(seq_len(1), shape = xi1), 1)
expect_length(dgev(seq_len(10), shape = xi1), 10)
qq <- qgev(p, shape = xi2)
expect_equal(dgev(x1, shape = xi2), c(0, 0, exp(-1), 0, NA))
expect_equal(dgev(qq, shape = xi2), (-log(p)) ^ (1 + xi2) * p)
expect_length(dgev(seq_len(0), shape = xi2), 0)
expect_length(dgev(seq_len(1), shape = xi2), 1)
expect_length(dgev(seq_len(10), shape = xi2), 10)
qq <- qgev(p, shape = xi3)
expect_equal(dgev(x1, shape = xi3), c(0, 0, exp(-1), 0, NA))
expect_equal(dgev(qq, shape = xi3), (-log(p)) ^ (1 + xi3) * p)
expect_length(dgev(seq_len(0), shape = xi3), 0)
expect_length(dgev(seq_len(1), shape = xi3), 1)
expect_length(dgev(seq_len(10), shape = xi3), 10)
})
test_that("pgev, values and length of output", {
expect_equal(pgev(x1, shape = xi1), c(0, 0, exp(-1), 1, NA))
expect_length(pgev(seq_len(0), shape = xi1), 0)
expect_length(pgev(seq_len(1), shape = xi1), 1)
expect_length(pgev(seq_len(10), shape = xi1), 10)
expect_equal(pgev(x2, shape = xi2), c(0, exp(-1), 1, NA))
expect_length(pgev(seq_len(0), shape = xi2), 0)
expect_length(pgev(seq_len(1), shape = xi2), 1)
expect_length(pgev(seq_len(10), shape = xi2), 10)
expect_equal(pgev(x3, shape = xi3), c(1, 0, exp(-1), 1, NA))
expect_length(pgev(seq_len(0), shape = xi3), 0)
expect_length(pgev(seq_len(1), shape = xi3), 1)
expect_length(pgev(seq_len(10), shape = xi3), 10)
})
test_that("qgev, values and length of output", {
q1 <- ((-log(pvec[2:4])) ^ (-xi1) - 1) / xi1
expect_equal(qgev(pvec, shape = xi1), c(low, q1, Inf, NA))
expect_length(qgev(seq_len(0), shape = xi1), 0)
expect_length(qgev(c(0, 1), shape = xi1), 2)
expect_length(qgev(seq_len(10) / 10, shape = xi1), 10)
q2 <- -log(-log(pvec[2:4]))
expect_equal(qgev(pvec, shape = xi2), c(-Inf, q2, Inf, NA))
expect_length(qgev(seq_len(0), shape = xi2), 0)
expect_length(qgev(c(0, 1), shape = xi2), 2)
expect_length(qgev(seq_len(10) / 10, shape = xi2), 10)
q3 <- ((-log(pvec[2:4])) ^ (-xi3) - 1) / xi3
expect_equal(qgev(pvec, shape = xi3), c(-Inf, q3, up, NA))
expect_length(qgev(seq_len(0), shape = xi3), 0)
expect_length(qgev(c(0, 1), shape = xi3), 2)
expect_length(qgev(seq_len(10) / 10, shape = xi3), 10)
})
test_that("pgev and qgev are consistent", {
expect_equal(pgev(qgev(pvec, shape = xi1), shape = xi1), pvec)
expect_equal(pgev(qgev(pvec, shape = xi2), shape = xi2), pvec)
expect_equal(pgev(qgev(pvec, shape = xi3), shape = xi3), pvec)
})
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.