test_that("Merging works", {
i <- incidence::incidence(as.Date('2020-01-23'))
si <- c(0.2, 0.5, 0.2, 0.1)
R0 <- 10
x <- project(x = i,
si = si,
R = R0,
n_sim = 2,
R_fix_within = TRUE,
n_days = 10,
model = "poisson"
)
## test basic merge
x_2 <- merge_projections(list(x, x))
expect_equal(as.vector(x_2[, 1:2]), as.vector(x))
## different dates, 3 objects
x_3 <- merge_projections(list(x, x[1:3, 1], x[5:6, 1:2]))
expect_equal(ncol(x_3), ncol(x) + 3)
expect_equal(as.vector(x_3[, 1:2]), as.vector(x))
expect_equal(as.vector(x_3[1:3, 3]), as.vector(x[1:3, 1]))
expect_equal(as.vector(x_3[5:6, 4:5]), as.vector(x[5:6, 1:2]))
expect_equal(get_dates(x), get_dates(x_3)) # check dates
expect_true(all(x_3[-c(1:3), 3] == 0)) # check zeros in right place
})
test_that("Errors are issued as they should", {
msg <- "x is not a `list` but a character"
expect_error(merge_projections(letters), msg)
msg <- "some input objects are not `projections` objects"
expect_error(merge_projections(list(letters)), msg)
msg <- "x is an empty `list`"
expect_error(merge_projections(list()), msg)
})
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.