test_that("perturb_matrix works correctly", {
mat_a <- mat_u + mat_f
x_sens1 <- perturb_matrix(mat_a)
expect_true(inherits(x_sens1, "matrix"))
expect_true(nrow(x_sens1) == nrow(mat_a) & ncol(x_sens1) == ncol(mat_a))
x_sens2 <- perturb_matrix(mat_a, pert = 0.2)
expect_true(inherits(x_sens1, "matrix"))
expect_true(sum(x_sens1) != sum(x_sens2))
x_elas1 <- perturb_matrix(mat_a, type = "elasticity")
expect_true(inherits(x_elas1, "matrix"))
expect_lt(abs(sum(x_elas1) - 1), 1e-6)
# check works with custom demog_stat function
fn_custom <- function(x) {
return(1)
}
x_cust <- perturb_matrix(mat_a, demog_stat = "fn_custom")
expect_true(all(x_cust == 0))
expect_error(perturb_matrix(mat_a, demog_stat = "blurg"))
})
test_that("perturb_matrix warns and fails gracefully", {
notfn <- "rtpsqwpaclfkhamw"
expect_error(perturb_matrix(mat_a, demog_stat = notfn))
})
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.