context("simulation functions")
test_that("init_status returns correct initial status", {
# params
N <- 9
startnodes <- c(1, 3, 5, 7, 9)
# define test case
test_case <- rep(0, N)
test_case[startnodes] <- 1
# package implementation
package_imp <- init_status(N, startnodes)
# equality test
expect_equal(package_imp, test_case)
})
test_that("sus_contacts_matrix identifies susceptible contacts correctly", {
N <- 10
infected <- c(2, 4, 6, 8, 10)
susceptible <- c(1, 3, 5, 7, 9)
status <- rep(0, times = N)
status[infected] <- 1
# test case 1 (connected to no nodes)
edge_vector_1 <- rep(0, N)
# test case 2 (connected to all nodes)
edge_vector_2 <- rep(1, N)
# test case 3 (connected to nodes 1:5)
edge_vector_3 <- rep(0, N)
edge_vector_3[1:5] <- 1
# test 1
package_imp <- sus_contacts_matrix(edge_vector_1, status)
expected_result <- integer()
expect_equal(package_imp, expected_result)
# test 2
package_imp <- sus_contacts_matrix(edge_vector_2, status)
expected_result <- susceptible
expect_equal(package_imp, expected_result)
# test 3
package_imp <- sus_contacts_matrix(edge_vector_3, status)
expected_result <- c(1, 3, 5)
expect_equal(package_imp, expected_result)
})
test_that("sus_contacts_list identifies susceptible contacts correctly", {
N <- 10
infected <- c(2, 4, 6, 8, 10)
susceptible <- c(1, 3, 5, 7, 9)
status <- rep(0, times = N)
status[infected] <- 1
# test case 1 (connected to no nodes)
edge_vector_1 <- integer()
# test case 2 (connected to all nodes)
edge_vector_2 <- seq_len(N)
# test case 3 (connected to nodes 1:5)
edge_vector_3 <- c(1, 2, 3, 4, 5)
# test 1
package_imp <- sus_contacts_list(edge_vector_1, status)
expected_result <- integer()
expect_equal(package_imp, expected_result)
# test 2
package_imp <- sus_contacts_list(edge_vector_2, status)
expected_result <- susceptible
expect_equal(package_imp, expected_result)
# test 3
package_imp <- sus_contacts_list(edge_vector_3, status)
expected_result <- c(1, 3, 5)
expect_equal(package_imp, expected_result)
})
test_that("inf_contacts_matrix identifies susceptible contacts correctly", {
N <- 10
infected <- c(2, 4, 6, 8, 10)
status <- rep(0, times = N)
status[infected] <- 1
# test case 1 (connected to no nodes)
edge_vector_1 <- rep(0, N)
package_imp <- inf_contacts_matrix(edge_vector_1, status)
expected_result <- integer()
expect_equal(package_imp, expected_result)
# test case 2 (connected to all nodes)
edge_vector_2 <- rep(1, N)
package_imp <- inf_contacts_matrix(edge_vector_2, status)
expected_result <- infected
expect_equal(package_imp, expected_result)
# test case 3 (connected to nodes 1:5)
edge_vector_3 <- rep(0, N)
edge_vector_3[1:5] <- 1
package_imp <- inf_contacts_matrix(edge_vector_3, status)
expected_result <- c(2, 4)
expect_equal(package_imp, expected_result)
})
test_that("inf_contacts_list identifies susceptible contacts correctly", {
N <- 10
infected <- c(2, 4, 6, 8, 10)
status <- rep(0, times = N)
status[infected] <- 1
# test case 1 (connected to no nodes)
edge_vector_1 <- integer()
package_imp <- inf_contacts_list(edge_vector_1, status)
expected_result <- integer()
expect_equal(package_imp, expected_result)
# test case 2 (connected to all nodes)
edge_vector_2 <- seq_len(N)
package_imp <- inf_contacts_list(edge_vector_2, status)
expected_result <- infected
expect_equal(package_imp, expected_result)
# test case 3 (connected to nodes 1:5)
edge_vector_3 <- c(1, 2, 3, 4, 5)
package_imp <- inf_contacts_list(edge_vector_3, status)
expected_result <- c(2, 4)
expect_equal(package_imp, expected_result)
})
test_that("init_rates_sis_matrix initialises rates correctly", {
N <- 10
graph <- matrix(1, nrow = 10, ncol = 10)
diag(graph) <- 0
tau <- 0.5
gam <- 1
# test ; all nodes infected
status <- rep(1, N)
startnodes <- 1:N
expected_result <- rep(gam, N)
package_imp <- init_rates_sis_matrix(graph, startnodes, gam, tau, status)
expect_equal(package_imp, expected_result)
# test 2; node 1 infected
status <- rep(0, N)
startnodes <- 1
status[startnodes] <- 1
expected_result <- c(gam, rep(tau, times = N - 1))
package_imp <- init_rates_sis_matrix(graph, startnodes, gam, tau, status)
expect_equal(package_imp, expected_result)
})
test_that("init_rates_sis_list initialises rates correctly", {
N <- 10
graph <- vector("list", N)
for (i in 1:N) {
graph[[i]] <- seq_len(N)[-i]
}
tau <- 0.5
gam <- 1
# test ; all nodes infected
status <- rep(1, N)
startnodes <- 1:N
expected_result <- rep(gam, N)
package_imp <- init_rates_sis_list(graph, startnodes, gam, tau, status)
expect_equal(package_imp, expected_result)
# test 2; node 1 infected
status <- rep(0, N)
startnodes <- 1
status[startnodes] <- 1
expected_result <- c(gam, rep(tau, times = N - 1))
package_imp <- init_rates_sis_list(graph, startnodes, gam, tau, status)
expect_equal(package_imp, expected_result)
})
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.