Nothing
# Test predictModelFit function
test_that("predictModelFit works correctly", {
model_fit <- list(
model = "emax",
coeffs = c(e0 = 0, eMax = 1, ed50 = 2),
dose_levels = c(0, 1, 2, 3, 4, 5)
)
pred_vals <- predictModelFit(model_fit)
expect_type(pred_vals, "double")
dose_levels <- c(0, 2.5, 5, 10)
prior_list <- lapply(dose_levels, function(dose_group) {
RBesT::mixnorm(weak = c(w = 1, m = 0, s = 200), sigma = 10)
})
names(prior_list) <- c("Ctr", paste0("DG_", dose_levels[-1]))
trial_data <- dplyr::filter(
dplyr::filter(tibble::tibble(testdata), bname == "BRINTELLIX"),
primtime == 8,
indication == "MAJOR DEPRESSIVE DISORDER",
protid == 5
)
posterior <- getPosterior(
prior_list = prior_list,
mu_hat = trial_data$rslt,
S_hat = trial_data$se,
calc_ess = TRUE
)
n_patients <- c(128, 124, 129, 122)
# Guesstimate estimation
exp_guesst <- DoseFinding::guesst(
model = "exponential",
d = 5, p = 0.2, Maxd = max(dose_levels)
)
emax_guesst <- DoseFinding::guesst(
model = "emax",
d = 2.5, p = 0.9
)
sigEmax_guesst <- DoseFinding::guesst(
model = "sigEmax",
d = c(2.5, 5), p = c(0.5, 0.95)
)
logistic_guesst <- DoseFinding::guesst(
model = "logistic",
d = c(5, 10), p = c(0.1, 0.85)
)
betaMod_params <- c(delta1 = 1, delta2 = 1)
quadratic_params <- c(delta2 = -0.1)
mods <- DoseFinding::Mods(
linear = NULL,
# guesstimate scale
exponential = exp_guesst,
emax = emax_guesst,
sigEmax = sigEmax_guesst,
logistic = logistic_guesst,
# parameter scale
betaMod = betaMod_params,
quadratic = quadratic_params,
# Options for all models
doses = dose_levels,
maxEff = -1,
placEff = -12.8
)
fit_simple <- getModelFits(
models = names(mods),
dose_levels = dose_levels,
posterior = posterior,
simple = TRUE
)
expect_no_error(fit_simple)
expect_type(fit_simple, "list")
fit <- getModelFits(
models = names(mods),
dose_levels = dose_levels,
posterior = posterior,
simple = FALSE
)
expect_no_error(fit)
expect_type(fit, "list")
})
# Test for addModelWeights
test_that("addModelWeights works correctly in a simple case", {
# Create a test case
test_model_fits1 <- list(
model1 = list(gAIC = 1),
model2 = list(gAIC = 1),
model3 = list(gAIC = 1)
)
expected_output1 <- list(
list(gAIC = 1, model_weight = 1 / 3),
list(gAIC = 1, model_weight = 1 / 3),
list(gAIC = 1, model_weight = 1 / 3)
)
# Call the function with the test case
result <- addModelWeights(model_fits = test_model_fits1)
# Assert the expected behavior
expect_true(is.list(result))
expect_equal(length(result), length(test_model_fits1))
expect_true(all(sapply(result, function(x) "model_weight" %in% names(x))))
expect_equal(result, expected_output1)
test_model_fits2 <- list(
model1 = list(gAIC = 100),
model2 = list(gAIC = 0),
model3 = list(gAIC = 100)
)
expected_output2 <- list(
list(gAIC = 100, model_weight = 0),
list(gAIC = 0, model_weight = 1),
list(gAIC = 100, model_weight = 0)
)
result <- addModelWeights(model_fits = test_model_fits2)
expect_equal(result, expected_output2, tolerance = 1e-10)
})
# Test for getGenAIC
test_that("getGenAIC calculates AIC correctly using snapshot test and a simple example", {
# Create a test case
test_model_fit <- list(
pred_values = rep(1, 3),
coeffs = rep(1, 3)
)
test_post_combs <- list(
means = matrix(rep(1, 6), nrow = 2),
vars = matrix(rep(1, 6), nrow = 2),
weights = c(1, 1)
)
result <- getGenAIC(model_fit = test_model_fit, post_combs = test_post_combs)
# expected result determined with snapshot of behavior prior to first release on CRAN
expected_result <- 6
# Assert the expected behavior
expect_equal(result, expected_result)
})
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.