test_that("Test round trip", {
skip_on_cran()
## simulate basic epicurve
dat <- c(0, 2, 2, 3, 3, 5, 5, 5, 6, 6, 6, 6)
i <- incidence::incidence(dat)
## example with a function for SI
si <- distcrete::distcrete("gamma", interval = 1L,
shape = 1.5,
scale = 2, w = 0)
set.seed(1)
pred_1 <- project(i, runif(100, 0.8, 1.9), si, n_days = 30)
colnames(pred_1) <- paste("sim", 1:ncol(pred_1), sep = "_")
df <- as.data.frame(pred_1)
new_pred <- build_projections(df[, -1], df[, 1])
expect_identical(pred_1, new_pred)
})
test_that("Test dates default", {
skip_on_cran()
## simulate basic epicurve
dat <- c(0, 2, 2, 3, 3, 5, 5, 5, 6, 6, 6, 6)
i <- incidence::incidence(dat)
## example with a function for SI
si <- distcrete::distcrete("gamma", interval = 1L,
shape = 1.5,
scale = 2, w = 0)
set.seed(1)
x <- project(i, runif(100, 0.8, 1.9), si, n_days = 30)
df <- as.data.frame(x)
new_x <- build_projections(df[, -1])
expect_equal(seq_along(get_dates(x)) - 1L, get_dates(new_x))
})
test_that("Test errors", {
skip_on_cran()
expect_error(
new_projections(matrix(1:10, ncol = 2), dates = 1:10, cumulative = FALSE),
"Number of dates (10) does not match number of rows (5)",
fixed = TRUE)
expect_error(
build_projections(matrix(1:10, ncol = 2), dates = 1:10),
"Number of dates (10) does not match number of rows (5)",
fixed = TRUE)
})
test_that("Test ordering", {
skip_on_cran()
mat <- matrix(round(rnorm(100, 10)), ncol = 20)
dates <- Sys.Date() + c(5, 1, 3, 2, 4)
## test ordering
x <- build_projections(mat, dates)
expect_identical(get_dates(x), sort(dates))
expect_equal(as.vector(mat[order(dates), ]), as.vector(x))
## test no ordering
x <- build_projections(mat, dates, order_dates = FALSE)
expect_identical(get_dates(x), dates)
expect_equal(as.vector(mat), as.vector(x))
})
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.