context("Random parameters generators")
test_that("Random parameters generators", {
my_randoms <- list(
act.rate = param_random(c(0.25, 0.5, 0.75)),
tx.halt.part.prob = function() rbeta(1, 1, 2),
hiv.test.rate = function() c(
rnorm(1, 0.015, 0.01),
rnorm(1, 0.010, 0.01),
rnorm(1, 0.020, 0.01)
)
)
expect_warning(param <- param.net(
inf.prob = 0.3,
act.rate = 0.3,
random.params = my_randoms)
)
expect_message(generate_random_params(param, verbose = TRUE))
expect_silent(generate_random_params(param, verbose = FALSE))
param <- param.net(inf.prob = 0.3, act.rate = 0.1)
expect_equal(generate_random_params(param), param)
param <- param.net(inf.prob = 0.3, random.params = list())
expect_equal(generate_random_params(param), param)
param <- param.net(inf.prob = 0.3, random.params = 4)
expect_error(generate_random_params(param))
param <- param.net(inf.prob = 0.3, random.params = list(1))
expect_error(generate_random_params(param))
generate_correlated_params <- function() {
param.unique <- runif(1)
param.set.1 <- param.unique + runif(2)
param.set.2 <- param.unique * rnorm(3)
return(list(param.unique, param.set.1, param.set.2))
}
# Data.frame set of random parameters :
correlated_params <- t(replicate(10, unlist(generate_correlated_params())))
correlated_params <- as.data.frame(correlated_params)
colnames(correlated_params) <- c(
"param.unique",
"param.set.1_1", "param.set.1_2",
"param.set.2_1", "param.set.2_2", "param.set.2_3"
)
randoms <- c(my_randoms, list(param.random.set = correlated_params))
param <- param.net(inf.prob = 0.3, random.params = randoms)
expect_silent(generate_random_params(param))
# duplicated `act.rate` random definition
colnames(correlated_params) <- c(
"act.rate",
"param.set.1_1", "param.set.1_2",
"param.set.2_1", "param.set.2_2", "param.set.2_3"
)
randoms <- c(my_randoms, list(param.random.set = correlated_params))
expect_warning(
param <- param.net(inf.prob = 0.3, act.rate = 0.1, random.params = randoms)
)
expect_warning(generate_random_params(param))
# malformed name "param_set.1_1"
colnames(correlated_params) <- c(
"act.rate",
"param_set.1_1", "param.set.1_2",
"param.set.2_1", "param.set.2_2", "param.set.2_3"
)
randoms <- c(my_randoms, list(param.random.set = correlated_params))
param <- param.net(inf.prob = 0.3, random.params = randoms)
expect_error(generate_random_params(param))
# param.random.set not a data.frame
randoms <- c(my_randoms, list(param.random.set = list()))
param <- param.net(inf.prob = 0.3, random.params = randoms)
expect_error(generate_random_params(param))
})
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.