test_that("quantile_cens returns the expected quantile when no values are censored", {
expect_equal(
vpc::quantile_cens(x=1:10, probs=0.3, cens="left", limit=0),
unname(quantile(x=1:10, probs=0.3))
)
})
test_that("quantile_cens returns NA_real_ when the probs value is censored", {
expect_equal(
vpc::quantile_cens(x=1:10, probs=0.3, cens="left", limit=6),
NA_real_
)
})
test_that("quantile_cens returns NA_real_ when the probs value is censored", {
expect_equal(
vpc::quantile_cens(x=1:10, probs=0.3, cens="right", limit=6),
unname(quantile(x=1:10, probs=0.3))
)
})
test_that("quantile_cens returns NA_real_ when the probs value is censored and counts NA values as censored", {
expect_equal(
vpc::quantile_cens(x=c(1:10, rep(NA, 10)), probs=0.3, cens="right", limit=6),
NA_real_
)
})
test_that("quantile_cens returns the normal quantile value when neither direction is censored", {
expect_equal(
vpc::quantile_cens(x=1:10, probs=0.3, cens="neither"),
unname(quantile(x=1:10, probs=0.3))
)
})
test_that("quantile_cens returns an error when neither direction is censored and there is an NA in the data", {
expect_error(
vpc::quantile_cens(x=c(NA, 1), probs=0.3, cens="neither"),
regexp="NA are not allowed when cens='neither'",
fixed=TRUE
)
})
test_that("quantile_cens returns an error for trying to censor both directions", {
expect_error(
vpc::quantile_cens(x=1:10, probs=0.3, cens="both", limit=6),
regexp="cens='both' is not yet supported",
fixed=TRUE
)
})
test_that("quantile_cens returns an error for an invalid 'cens'", {
expect_error(
vpc::quantile_cens(x=1:10, probs=0.3, cens="foo", limit=6)
)
})
test_that("loq_frac counts left values correctly", {
expect_equal(vpc:::loq_frac(x=1:10, limit=3, cens="left"), 0.2)
})
test_that("loq_frac counts right values correctly", {
expect_equal(vpc:::loq_frac(x=1:10, limit=3, cens="right"), 0.7)
})
test_that("loq_frac only allows valid `cens` values", {
expect_error(
vpc:::loq_frac(x=1:10, limit=3, cens="foo")
)
})
test_that("loq_frac counts neither direction values correctly", {
expect_equal(vpc:::loq_frac(x=1:10, limit=NULL, cens="neither"), 0)
})
test_that("loq_frac counts neither direction values correctly (and ignores `limit`)", {
expect_equal(vpc:::loq_frac(x=1:10, limit=1, cens="neither"), 0)
})
test_that("loq_frac counts both values correctly", {
expect_equal(vpc:::loq_frac(x=1:10, limit=c(3, 6), cens="both"), 0.6)
})
test_that("loq_frac errors", {
expect_error(
vpc:::loq_frac(x=1:10, limit=2:3, cens="left"),
regexp= "limit must be a scalar if cens='left'",
fixed=TRUE,
info="loq_frac checks limit correctly with cens='left'"
)
expect_error(
vpc:::loq_frac(x=1:10, limit=2:3, cens="right"),
regexp="limit must be a scalar if cens='right'",
info="loq_frac checks limit correctly with cens='right'"
)
expect_error(
vpc:::loq_frac(x=1:10, limit=2, cens="both"),
regexp="limit must have 2 elements if cens='both'",
info="loq_frac checks limit correctly with cens='both'"
)
})
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.