Nothing
context("psa")
library(dampack)
# test the class
test_that("psa has all methods we'd expect", {
current_methods <- as.vector(methods(class = "psa"))
expected_methods <- c("plot.psa", "summary.psa")
expect_setequal(current_methods, expected_methods)
})
# class creation
## setup
sm_costs <- data.frame(rbind(c(10e3, 20e3, 100e3),
c(20e3, 40e3, 200e3)))
sm_effectiveness <- data.frame(rbind(c(100, 50, 900),
c(56, 89, 700)))
sm_parameters <- data.frame(
"p1" = c(1, 2),
"p2" = c(2, 10)
)
sm_strategies <- c("test", "notest", "treat")
names(sm_costs) <- names(sm_effectiveness) <- sm_strategies
psa_small <- make_psa_obj(sm_costs, sm_effectiveness, sm_parameters, sm_strategies)
test_that("psa returns correct object", {
expect_equal(psa_small$cost, sm_costs)
expect_equal(psa_small$effectiveness, sm_effectiveness)
expect_equal(psa_small$strategies, sm_strategies)
expect_equal(psa_small$n_strategies, 3)
expect_equal(psa_small$n_sim, 2)
expect_equal(psa_small$parameters, sm_parameters)
expect_equal(psa_small$parnames, colnames(sm_parameters))
})
# missing strategies
test_that("psa: missing strategies", {
psa_small <- make_psa_obj(sm_costs, sm_effectiveness,
sm_parameters)
expect_equal(psa_small$strategies, c("Strategy_1", "Strategy_2", "Strategy_3"))
})
## replacing spaces in strategies with underscores
sm_str_space <- c("test", "no test", "treat")
test_that("fix strategy", {
# should produce a warning
psa_space <- expect_warning(make_psa_obj(sm_costs, sm_effectiveness,
sm_parameters, sm_str_space), "no.test")
# correct strategies
expect_true("no.test" %in% psa_space$strategies)
expect_false("no test" %in% psa_space$strategies)
})
## methods
# plot
data("example_psa")
psa_big <- make_psa_obj(example_psa$cost, example_psa$effectiveness,
example_psa$parameters, example_psa$strategies)
test_that("plot.psa runs", {
expect_silent({
plot(psa_big)
plot(psa_big, center = FALSE)
plot(psa_big, ellipse = FALSE)
plot(psa_big, center = FALSE, ellipse = FALSE)
plot(psa_big, col = "bw")
plot(psa_big, col = "bw", xbreaks = seq(0, 15), xlim = c(0, 15),
ylim = NULL, alpha = 1)
})
})
# print
# use small example from above
test_that("print.psa returns correct output", {
msg <- capture.output(print(psa_small))
expected <- c("",
"PSA object ",
"------------------------------------------------- ",
"number of strategies (n_strategies): 3 ",
"strategies: test, notest, treat ",
"number of simulations (n_sim): 2 ",
"cost: a data frame with 2 rows and 3 columns. ",
"effectiveness: a data frame with 2 rows and 3 columns. ",
"parameters: a data frame with 2 rows and 2 columns ",
"parameter names (parnames): p1, p2 ",
"currency: $ ")
expect_equal(msg, expected)
})
# summary
test_that("summary.psa returns correct output", {
# no sds
expected_df <- data.frame("Strategy" = sm_strategies,
"meanCost" = colMeans(sm_costs),
"meanEffect" = colMeans(sm_effectiveness),
stringsAsFactors = FALSE,
row.names = NULL)
calc_df <- summary(psa_small)
expect_equal(expected = expected_df, calc_df)
})
Any scripts or data that you put into this service are public.
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.