context("quantile2")
test_that("only accepts numbers for x", {
expect_error(quantile2("foo"))
})
test_that("type is either 'caaqs' or 0:10", {
expect_error(quantile2(1:5, type = "foo"))
expect_error(quantile2(1:5, type = 0))
expect_error(quantile2(1:5, type = 10))
})
test_that("percentiles are correct with type = 'caaqs'", {
expect_true(all.equal(quantile2(1:25, probs = 0.98, type = "caaqs"), 25))
expect_true(all.equal(quantile2(1:50, probs = 0.98, type = "caaqs"), 50))
expect_true(all.equal(quantile2(1:51, probs = 0.98, type = "caaqs"), 50))
expect_true(all.equal(quantile2(1:100, probs = 0.98, type = "caaqs"), 99))
expect_true(all.equal(quantile2(1:101, probs = 0.98, type = "caaqs"), 99))
expect_true(all.equal(quantile2(1:150, probs = 0.98, type = "caaqs"), 148))
expect_true(all.equal(quantile2(1:151, probs = 0.98, type = "caaqs"), 148))
expect_true(all.equal(quantile2(1:200, probs = 0.98, type = "caaqs"), 197))
expect_true(all.equal(quantile2(1:201, probs = 0.98, type = "caaqs"), 197))
expect_true(all.equal(quantile2(1:250, probs = 0.98, type = "caaqs"), 246))
expect_true(all.equal(quantile2(1:251, probs = 0.98, type = "caaqs"), 246))
expect_true(all.equal(quantile2(1:300, probs = 0.98, type = "caaqs"), 295))
expect_true(all.equal(quantile2(1:301, probs = 0.98, type = "caaqs"), 295))
expect_true(all.equal(quantile2(1:350, probs = 0.98, type = "caaqs"), 344))
expect_true(all.equal(quantile2(1:351, probs = 0.98, type = "caaqs"), 344))
expect_true(all.equal(quantile2(1:366, probs = 0.98, type = "caaqs"), 359))
})
test_that("percentiles are correct with type = 'caaqs' and probs = 1", {
expect_true(all.equal(quantile2(1:25, probs = 1, type = "caaqs"), 25))
})
test_that("has names", {
expect_true(names(quantile2(1:10, probs = 0.98, names = TRUE, type = "caaqs")) == "98%")
})
test_that("fails with NAs if na.rm = FALSE", {
x <- 1:10
x[3] <- NA
expect_error(quantile2(x, na.rm = FALSE, type = "caaqs"))
})
test_that("works with NA if na.rm = TRUE", {
x <- 1:10
x[3] <- NA
expect_equal(quantile2(x, na.rm = TRUE, type = "caaqs"), 10)
})
test_that("works with length(probs) > 1 and type = 'caaqs'", {
expect_equal(quantile2(1:100, probs = c(0.1, 0.5, 0.98), type = "caaqs"),
c(11, 51, 99))
})
test_that("passes correctly to quantile", {
expect_equal(lapply(1:9, function(x) {
set.seed(42)
quantile(rnorm(100), probs = seq(0, 1, 0.25), names = TRUE, type = x)
}),
lapply(1:9, function(x) {
set.seed(42)
quantile2(rnorm(100), probs = seq(0, 1, 0.25), names = TRUE, type = x)
}))
})
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.