context("test-coxph_bf")
data <- survival::aml
names(data) <- c("time", "event", "group")
data$group <- ifelse(test = survival::aml$x == "Maintained",
yes = 0,
no = 1)
sim_data <- coxph_data_sim(n_data = 3,
ns_c = 20,
ns_e = 56,
ne_c = 18,
ne_e = 40,
cox_hr = c(0.433, 0.242, 0.774),
cox_hr_ci_level = 0.95,
maxit = 25)
test_that("coxph_bf yields correct S4 class", {
expect_is(
coxph_bf(data = data),
"baymedrCoxProportionalHazards"
)
expect_is(
coxph_bf(data = sim_data),
"baymedrCoxProportionalHazardsMulti"
)
})
test_that("coxph_bf yields numeric Bayes factor", {
expect_true(
is.numeric(coxph_bf(data = data)@bf)
)
expect_true(
is.numeric(coxph_bf(data = sim_data)@bf)
)
})
test_that("coxph_bf gives correct error messages", {
expect_error(
coxph_bf(data = factor(sample(1:5, 100, TRUE))),
str_c("'data' must be either a single data.frame or a list resulting ",
"from coxph_data_sim()."),
fixed = TRUE
)
expect_error(
coxph_bf(data = data.frame(
time = sample(x = letters,
size = 100,
replace = TRUE),
event = sample(x = 0:1,
size = 100,
replace = TRUE),
group = sample(x = 0:1,
size = 100,
replace = TRUE)
)),
"The first column in 'data' must be a non-negative numeric vector.",
fixed = TRUE
)
expect_error(
coxph_bf(data = data.frame(
time = rnorm(n = 100,
mean = -100),
event = sample(x = 0:1,
size = 100,
replace = TRUE),
group = sample(x = 0:1,
size = 100,
replace = TRUE)
)),
"The first column in 'data' must be a non-negative numeric vector.",
fixed = TRUE
)
expect_error(
coxph_bf(data = data.frame(
time = runif(n = 100,
min = 0,
max = 100),
event = sample(x = letters,
size = 100,
replace = TRUE),
group = sample(x = 0:1,
size = 100,
replace = TRUE)
)),
str_c("The second column in 'data' must be a numeric vector containing ",
"only the values 0 and 1."),
fixed = TRUE
)
expect_error(
coxph_bf(data = data.frame(
time = runif(n = 100,
min = 0,
max = 100),
event = sample(x = 0:5,
size = 100,
replace = TRUE),
group = sample(x = 0:1,
size = 100,
replace = TRUE)
)),
str_c("The second column in 'data' must be a numeric vector containing ",
"only the values 0 and 1."),
fixed = TRUE
)
expect_error(
coxph_bf(data = data.frame(
time = runif(n = 100,
min = 0,
max = 100),
event = sample(x = 0:1,
size = 100,
replace = TRUE),
group = sample(x = letters,
size = 100,
replace = TRUE)
)),
str_c("The third column in 'data' must be a numeric vector containing ",
"only the values 0 and 1."),
fixed = TRUE
)
expect_error(
coxph_bf(data = data.frame(
time = runif(n = 100,
min = 0,
max = 100),
event = sample(x = 0:1,
size = 100,
replace = TRUE),
group = sample(x = 0:5,
size = 100,
replace = TRUE)
)),
str_c("The third column in 'data' must be a numeric vector containing ",
"only the values 0 and 1."),
fixed = TRUE
)
expect_error(
coxph_bf(data = data.frame(
time = runif(n = 100,
min = 0,
max = 100),
event = sample(x = 0:1,
size = 100,
replace = TRUE),
group = sample(x = 0:1,
size = 100,
replace = TRUE)
),
null_value = "a"),
"'null_value' must be a single numeric value.",
fixed = TRUE
)
expect_error(
coxph_bf(data = data.frame(
time = runif(n = 100,
min = 0,
max = 100),
event = sample(x = 0:1,
size = 100,
replace = TRUE),
group = sample(x = 0:1,
size = 100,
replace = TRUE)
),
null_value = -1:1),
"'null_value' must be a single numeric value.",
fixed = TRUE
)
expect_error(
coxph_bf(data = data.frame(
time = runif(n = 100,
min = 0,
max = 100),
event = sample(x = 0:1,
size = 100,
replace = TRUE),
group = sample(x = 0:1,
size = 100,
replace = TRUE)
),
alternative = "abc"),
"'alternative' must be one of one.sided or two.sided.",
fixed = TRUE
)
expect_error(
coxph_bf(data = data.frame(
time = runif(n = 100,
min = 0,
max = 100),
event = sample(x = 0:1,
size = 100,
replace = TRUE),
group = sample(x = 0:1,
size = 100,
replace = TRUE)
),
alternative = "two.sided",
direction = -1),
"When 'alternative' is two.sided, 'direction' must be NULL.",
fixed = TRUE
)
expect_error(
coxph_bf(data = data.frame(
time = runif(n = 100,
min = 0,
max = 100),
event = sample(x = 0:1,
size = 100,
replace = TRUE),
group = sample(x = 0:1,
size = 100,
replace = TRUE)
),
alternative = "one.sided",
direction = NULL),
"When 'alternative' is one.sided, 'direction' must be low or high.",
fixed = TRUE
)
expect_error(
coxph_bf(data = data.frame(
time = runif(n = 100,
min = 0,
max = 100),
event = sample(x = 0:1,
size = 100,
replace = TRUE),
group = sample(x = 0:1,
size = 100,
replace = TRUE)
),
prior_sd = 1:3),
str_c("'prior_mean' and 'prior_sd' must be single numeric values. ",
"'prior_sd' must be positive."),
fixed = TRUE
)
expect_error(
coxph_bf(data = data.frame(
time = runif(n = 100,
min = 0,
max = 100),
event = sample(x = 0:1,
size = 100,
replace = TRUE),
group = sample(x = 0:1,
size = 100,
replace = TRUE)
),
prior_sd = -1),
str_c("'prior_mean' and 'prior_sd' must be single numeric values. ",
"'prior_sd' must be positive."),
fixed = TRUE
)
expect_error(
coxph_bf(data = data.frame(
time = c(runif(n = 99,
min = 0,
max = 100), NA),
event = sample(x = 0:1,
size = 100,
replace = TRUE),
group = sample(x = 0:1,
size = 100,
replace = TRUE)
)),
"'data' must not contain any missing values.",
fixed = TRUE
)
})
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.