Nothing
library(testthat)
context("Test the events/interruption logic")
seed <- 1
source(file.path(getwd(), test_path(), "test-utils.R"))
test_that("Simple interrutpions - No events", {
if (skip_long_tests()) {
return(TRUE)
}
model <- model_suite$testing$nonmem$advan4_trans4
regFilename <- "simple_bolus" # Existing non-regression file (see testSimulateBolus.R)
dataset <- Dataset() %>%
add(Bolus(time = 0, amount = 1000, compartment = 1)) %>%
add(Observations(times = seq(0, 24, by = 0.5)))
events <- Events()
# 10 is part of the observations
# 20.1 is not part of the observations
event1 <- Event(name = "Event 1", times = c(10, 20.1), fun = function(inits) {
# Don't do anything. Just return the inits data frame.
return(inits)
})
events <- events %>% add(event1)
# With events
simulation <- expression(simulate(model = model, dataset = dataset, dest = destEngine, events = events, seed = seed))
test <- expression(
output_regression_test(results, output = "CP", filename = regFilename)
)
campsis_test(simulation, test, env = environment())
# Without events
simulation <- expression(simulate(model = model, dataset = dataset, dest = destEngine, events = NULL, seed = seed))
test <- expression(
output_regression_test(results, output = "CP", filename = regFilename)
)
campsis_test(simulation, test, env = environment())
})
test_that("Interruptions at doses times - BW covariate - No events", {
if (skip_long_tests()) {
return(TRUE)
}
model <- model_suite$testing$nonmem$advan4_trans4
equation <- model %>% find(Equation("CL"))
model <- model %>% replace(Equation("CL", paste0(equation@rhs, "*pow(BW/70, 0.75)")))
regFilename <- "event_interruption_at_dose"
dataset <- Dataset(2) %>%
add(Bolus(time = 0, amount = 1000, compartment = 1)) %>%
add(Bolus(time = 24, amount = 1000, compartment = 1)) %>%
add(Observations(times = seq(0, 48, by = 5))) %>%
add(Covariate(name = "BW", 70))
events <- Events()
# 10 is part of the observations
# 24 is not part of the observations but is a bolus time
# 34 is not part of the observations and not part of the doses times
event1 <- Event(name = "Event 1", times = c(10, 24, 34), fun = function(inits) {
# Don't do anything. Just return the inits data frame.
return(inits)
})
events <- events %>% add(event1)
# With events
simulation <- expression(simulate(model = model, dataset = dataset, dest = destEngine, events = events, seed = seed))
test <- expression(
output_regression_test(results, output = "CP", filename = regFilename)
)
campsis_test(simulation, test, env = environment())
# Without events
simulation <- expression(simulate(model = model, dataset = dataset, dest = destEngine, events = NULL, seed = seed))
test <- expression(
output_regression_test(results, output = "CP", filename = regFilename)
)
campsis_test(simulation, test, env = environment())
})
test_that("Interruptions at doses times - BW covariate - IOV on KA - No events", {
if (skip_long_tests()) {
return(TRUE)
}
model <- model_suite$testing$nonmem$advan4_trans4
equation <- model %>% find(Equation("CL"))
model <- model %>% replace(Equation("CL", paste0(equation@rhs, "*pow(BW/70, 0.75)")))
model <- model %>% replace(Equation("KA", "THETA_KA*exp(ETA_KA + IOV_KA)"))
regFilename <- "event_interruption_at_dose_iov"
dataset <- Dataset(2) %>%
add(Bolus(time = 0, amount = 1000, compartment = 1)) %>%
add(Bolus(time = 24, amount = 1000, compartment = 1)) %>%
add(Observations(times = seq(0, 48, by = 5))) %>%
add(Covariate(name = "BW", 70)) %>%
add(IOV(colname = "IOV_KA", distribution = NormalDistribution(0, sd = 0.3)))
# Uncomment these 2 lines to understand how IOV is exported!
# dataset <- dataset %>% add(new("event_related_observations", times=c(10, 23, 24, 34), compartment=as.integer(NA)))
# table <- dataset %>% export(dest="RxODE", event_related=TRUE)
events <- Events()
# 10 OBS TIME
# 23 NOTHING, JUST BEFORE DOSE
# 24 DOSE
# 34 NOTHING
event1 <- Event(name = "Event 1", times = c(10, 23, 24, 34), fun = function(inits) {
# Don't do anything. Just return the inits data frame.
return(inits)
})
events <- events %>% add(event1)
# With events
simulation <- expression(simulate(model = model, dataset = dataset, dest = destEngine, events = events, seed = seed))
test <- expression(
output_regression_test(results, output = "CP", filename = regFilename)
)
campsis_test(simulation, test, env = environment())
# Without events
simulation <- expression(simulate(model = model, dataset = dataset, dest = destEngine, events = NULL, seed = seed))
test <- expression(
output_regression_test(results, output = "CP", filename = regFilename)
)
campsis_test(simulation, test, env = environment())
})
test_that("Simulate initial conditions + events", {
if (skip_long_tests()) {
return(TRUE)
}
model <- model_suite$testing$nonmem$advan3_trans4
model <- model %>% add(InitialCondition(compartment = 1, rhs = "1000"))
regFilename <- "initial_conditions"
dataset <- Dataset(3)
dataset <- dataset %>% add(Observations(times = seq(0, 72, by = 1)))
events <- Events()
event1 <- Event(name = "Dummy event", times = c(0, 10), fun = function(inits) {
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 %>% dplyr::filter(TIME >= 5), output = "CP", filename = regFilename)
)
campsis_test(simulation, test, env = environment())
})
test_that("Simulate multiple arms + events", {
if (skip_long_tests()) {
return(TRUE)
}
model <- model_suite$testing$nonmem$advan4_trans4
regFilename <- "event_in_multiple_arms"
dataset <- Dataset()
# Treatment arm 1
arm1 <- Arm(id = 1, subjects = 2) %>%
add(Bolus(time = c(0, 24, 48), amount = 1000)) %>%
add(Observations(times = seq(0, 72, by = 5)))
# Treatment arm 2
arm2 <- Arm(id = 2, subjects = 2) %>%
add(Bolus(time = c(5, 29, 53), amount = 2000)) %>%
add(Observations(times = seq(0, 77, by = 6)))
dataset <- dataset %>% add(c(arm1, arm2))
events <- Events()
event1 <- Event(name = "Dummy event", times = c(0, 5, 20, 29, 40, 48), fun = function(inits) {
return(inits)
})
events <- events %>% add(event1)
# With events
simulation <- expression(simulate(model = model, dataset = dataset, dest = destEngine, events = events, seed = seed))
test <- expression(
output_regression_test(results, output = "CP", filename = regFilename)
)
campsis_test(simulation, test, env = environment())
# Without events
simulation <- expression(simulate(model = model, dataset = dataset, dest = destEngine, events = NULL, seed = seed))
test <- expression(
output_regression_test(results, output = "CP", filename = regFilename)
)
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.