rxTest({
test_that("evid=3 reset time", {
mod1 <- rxode2({
KA <- 2.94E-01
CL <- 1.86E+01
V2 <- 4.02E+01
Q <- 1.05E+01
V3 <- 2.97E+02
Kin <- 1
Kout <- 1
EC50 <- 200
C2 <- centr / V2
C3 <- peri / V3
d / dt(depot) <- -KA * depot
d / dt(centr) <- KA * depot - CL * C2 - Q * C2 + Q * C3
d / dt(peri) <- Q * C2 - Q * C3
d / dt(eff) <- Kin - Kout * (1 - C2 / (EC50 + C2)) * eff
eff(0) <- 1
printf("%f\n", time)
})
et_1 <-
et(dose = 10000, addl = 0, ii = 0) %>%
et(0:8)
et_reset <- et(evid = 3)
et_2 <-
et(dose = 20000, addl = 0, ii = 0) %>%
et(0:8)
et <- dplyr::bind_rows(et_1, et_reset, et_2)
tmp <- etTrans(et, mod1)
expect_true(!identical(tmp$TIME, et$time))
tmp <- as.data.frame(tmp)
expect_equal(tmp$TIME, et$time)
et2 <- rbind(data.frame(id=1, et[, names(et) != "id"]),
data.frame(id=2, et[, names(et) != "id"]))
tmp <- etTrans(et2, mod1)
expect_true(!identical(tmp$TIME, et2$time))
tmp <- as.data.frame(tmp)
expect_equal(tmp$TIME, et2$time)
t <- tempfile("test-evid3", fileext = ".csv")
suppressWarnings(.rxWithSink(t, {
cat("t\n")
x <- rxSolve(mod1, et)
}))
d <- read.csv(t)
unlink(t)
expect_true(all(d$t < 9))
expect_true(all(x$time < 9))
expect_true(!all(x$C2[x$resetno == 1] == x$C2[x$resetno == 2]))
expect_true(x$eff[1] == 1)
})
test_that("evid=3 reset time mixed", {
mod1 <- rxode2({
KA <- 2.94E-01
CL <- 1.86E+01
V2 <- 4.02E+01
Q <- 1.05E+01
V3 <- 2.97E+02
Kin <- 1
Kout <- 1
EC50 <- 200
C2 <- linCmt()
d / dt(eff) <- Kin - Kout * (1 - C2 / (EC50 + C2)) * eff
eff(0) <- 1
printf("%f\n", time)
})
et_1 <-
et(dose = 10000, addl = 0, ii = 0) %>%
et(0:8)
et_reset <- et(evid = 3)
et_2 <-
et(dose = 20000, addl = 0, ii = 0) %>%
et(0:8)
et <- dplyr::bind_rows(et_1, et_reset, et_2)
t <- tempfile("test-evid3", fileext = ".csv")
suppressWarnings(.rxWithSink(t, {
cat("t\n")
x <- rxSolve(mod1, et)
}))
d <- read.csv(t)
unlink(t)
expect_true(all(d$t < 9))
expect_true(all(x$time < 9))
expect_true(!all(x$C2[x$resetno == 1] == x$C2[x$resetno == 2]))
expect_true(x$eff[1] == 1)
})
test_that("evid=3 reset time linCmt", {
mod1 <- rxode2({
KA <- 2.94E-01
CL <- 1.86E+01
V2 <- 4.02E+01
Q <- 1.05E+01
V3 <- 2.97E+02
Kin <- 1
Kout <- 1
EC50 <- 200
C2 <- linCmt()
printf("%f\n", time)
})
et1 <-
# et(amount.units='mg', time.units='hours') %>%
et(dose = 10000, addl = 0, ii = 0) %>%
# et(amt=20000, nbr.doses=5, start.time=120, dosing.interval=24) %>%
et(0:8)
et_reset <- et(evid = 3)
et_2 <-
# et(amount.units='mg', time.units='hours') %>%
et(dose = 20000, addl = 0, ii = 0) %>%
# et(amt=20000, nbr.doses=5, start.time=120, dosing.interval=24) %>%
et(0:8)
et <- dplyr::bind_rows(et1, et_reset, et_2)
t <- tempfile("test-evid3", fileext = ".csv")
suppressWarnings(.rxWithSink(t, {
cat("t\n")
x <- rxSolve(mod1, et)
}))
d <- read.csv(t)
unlink(t)
expect_true(all(d$t < 9))
expect_true(all(x$time < 9))
expect_true(!all(x$C2[x$resetno == 1] == x$C2[x$resetno == 2]))
})
test_that("warning for unsorted data with evid=3", {
mod1 <- rxode2({
KA <- 2.94E-01
CL <- 1.86E+01
V2 <- 4.02E+01
Q <- 1.05E+01
V3 <- 2.97E+02
Kin <- 1
Kout <- 1
EC50 <- 200
C2 <- linCmt()
})
et1 <-
et(dose = 10000, addl = 0, ii = 0) %>%
et(0:8)
etReset <- et(evid = 3)
et2 <-
et(dose = 20000, addl = 0, ii = 0) %>%
et(0:8)
et <- dplyr::bind_rows(et1, etReset, et2)
et$time[5] <- 9
expect_warning(x <- rxSolve(mod1, et))
expect_false(any(names(x) == "resetno"))
})
})
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.