Nothing
library(testthat)
context("Test the simulate method with events")
seed <- 1
source(file.path(getwd(), test_path(), "test-utils.R"))
test_that("Clear central compartment events", {
if (skip_long_tests()) {
return(TRUE)
}
model <- model_suite$testing$nonmem$advan4_trans4
regFilename <- "clear_central_event"
dataset <- Dataset(3) %>%
add(Bolus(time = 0, amount = 1000, compartment = 1)) %>%
add(Observations(times = seq(0, 24, by = 0.5)))
events <- Events()
event1 <- Event(name = "Event 1", times = c(15), fun = function(inits) {
inits$A_CENTRAL <- 0
return(inits)
})
events <- events %>% add(event1)
simulation <- expression(simulate(model = model, dataset = dataset, dest = destEngine, events = events, seed = seed))
test <- expression(
output_regression_test(results, output = "CP", filename = regFilename),
spaghettiPlot(results, "CP") # Still drug in A_PERIPHERAL
)
campsis_test(simulation, test, env = environment())
})
test_that("Give daily dose in absortion", {
if (skip_long_tests()) {
return(TRUE)
}
model <- model_suite$testing$nonmem$advan4_trans4
regFilename <- "event_daily_dose"
dataset <- Dataset(3) %>%
add(Observations(times = seq(0, 24 * 7, by = 4)))
events <- Events()
event1 <- Event(name = "Event 1", times = seq(0, 24 * 6, by = 24), fun = function(inits) {
inits$A_DEPOT <- inits$A_DEPOT + 1000
return(inits)
})
events <- events %>% add(event1)
simulation <- expression(simulate(model = model, dataset = dataset, dest = destEngine, events = events, seed = seed))
test <- expression(
output_regression_test(results, output = "CP", filename = regFilename),
spaghettiPlot(results, "CP")
)
campsis_test(simulation, test, env = environment())
})
test_that("Daily dose in dataset + daily dose through events", {
if (skip_long_tests()) {
return(TRUE)
}
model <- model_suite$testing$nonmem$advan4_trans4
regFilename <- "event_daily_dose"
dataset <- Dataset(3) %>%
add(Bolus(time = seq(0, 24 * 6, by = 24), amount = 500)) %>%
add(Observations(times = seq(0, 24 * 7, by = 4)))
events <- Events()
event1 <- Event(name = "Half daily dose", times = seq(0, 24 * 6, by = 24), fun = function(inits) {
inits$A_DEPOT <- inits$A_DEPOT + 500
return(inits)
})
events <- events %>% add(event1)
simulation <- expression(simulate(model = model, dataset = dataset, dest = destEngine, events = events, seed = seed))
test <- expression(
output_regression_test(results, output = "CP", filename = regFilename),
spaghettiPlot(results, "CP")
)
campsis_test(simulation, test, env = environment())
})
test_that("Body weight as an event covariate", {
if (skip_long_tests()) {
return(TRUE)
}
model <- model_suite$testing$nonmem$advan2_trans2
equation <- model %>% find(Equation("CL"))
model <- model %>% replace(Equation("CL", paste0(equation@rhs, "*pow(BW/70, 0.75)")))
regFilename <- "event_varying_bw"
dataset <- Dataset(3)
for (day in 0:2) {
dataset <- dataset %>% add(Bolus(time = day * 24, amount = 1000))
}
dataset <- dataset %>% add(Observations(times = seq(0, 24 * 2, by = 1)))
dataset <- dataset %>% add(EventCovariate("BW", 100))
events <- Events()
event1 <- Event(name = "Event 1", times = 15, fun = function(inits) {
inits$BW <- 60
return(inits)
})
event2 <- Event(name = "Event 2", times = 30, fun = function(inits) {
inits$BW <- 30
return(inits)
})
events <- events %>% add(event1) %>% add(event2)
simulation <- expression(simulate(
model = model,
dataset = dataset,
dest = destEngine,
events = events,
seed = seed,
outvars = "BW"
))
test <- expression(
output_regression_test(results, output = "CP", filename = regFilename),
spaghettiPlot(results, "CP")
)
campsis_test(simulation, test, env = environment())
})
test_that("Dose adaptation based on Ctrough", {
if (skip_long_tests()) {
return(TRUE)
}
model <- model_suite$testing$nonmem$advan2_trans2
regFilename <- "dose_adaptation_ctrough"
dataset <- Dataset(5)
days <- 7
dataset <- dataset %>% add(Observations(times = seq(0, 24 * days, by = 1)))
dataset <- dataset %>% add(EventCovariate("DOSE", 1500))
events <- Events()
event1 <- Event(name = "Dose adaptation", times = (seq_len(days) - 1) * 24, fun = function(inits) {
inits$DOSE <- ifelse(inits$CP > 5, inits$DOSE * 0.75, inits$DOSE)
inits$A_DEPOT <- inits$A_DEPOT + inits$DOSE
return(inits)
})
events <- events %>% add(event1)
simulation <- expression(simulate(
model = model,
dataset = dataset,
dest = destEngine,
events = events,
seed = seed,
outvars = "DOSE"
))
test <- expression(
output_regression_test(results, output = c("CP", "DOSE"), filename = regFilename),
spaghettiPlot(results, "CP")
)
campsis_test(simulation, test, env = environment())
})
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.