rxTest({
test_that("RxODE#393", {
filePath <- test_path("test-issue-393.qs")
skip_if_not(file.exists(filePath))
d <- qs::qread(filePath)
mod1 <- rxode2({
# CLH = THETA[1];
# CLD = THETA[2];
# V_centr = THETA[3];
# V_peri = THETA[4];
CLR <- 0
ka <- 0
FQ_LV <- 2.604
BW <- 6.2 # kg
Qh <- FQ_LV * BW
RBP <- 0.679
Fh <- 1 - CLH / RBP / Qh
FaFg <- 1
C_centr <- A_centr / V_centr # venous (VE) total venous blood
C_peri <- A_peri / V_peri # arterial (AR) total arterial blood
d / dt(A_centr) <- -C_centr * (CLR + CLH) + C_peri * CLD - C_centr * CLD + ka * A_absorption # central
d / dt(A_peri) <- -C_peri * CLD + C_centr * CLD # peripheral
d / dt(A_absorption) <- -ka * A_absorption
f(A_absorption) <- Fh * FaFg
})
mod2 <- rxode2({
CLH <- THETA[1]
CLD <- THETA[2]
V_centr <- THETA[3]
V_peri <- THETA[4]
CLR <- 0
ka <- 0
FQ_LV <- 2.604
BW <- 6.2 # kg
Qh <- FQ_LV * BW
RBP <- 0.679
Fh <- 1 - CLH / RBP / Qh
FaFg <- 1
C_centr <- A_centr / V_centr # venous (VE) total venous blood
C_peri <- A_peri / V_peri # arterial (AR) total arterial blood
d / dt(A_centr) <- -C_centr * (CLR + CLH) + C_peri * CLD - C_centr * CLD + ka * A_absorption # central
d / dt(A_peri) <- -C_peri * CLD + C_centr * CLD # peripheral
d / dt(A_absorption) <- -ka * A_absorption
f(A_absorption) <- Fh * FaFg
})
s1 <- rxSolve(mod1, d, params = c(CLH = 2, CLD = 10, V_centr = 77, V_peri = 10), returnType = "data.frame")
s2 <- rxSolve(mod2, d, params = setNames(c(2, 10, 77, 10), paste0("THETA[", 1:4, "]")), returnType = "data.frame")
s2 <- s2[, names(s1)]
expect_equal(s1, s2)
s3 <- rxSolve(mod2, d,
params = c(c(CLR = 0, ka = 0, FQ_LV = 2.604, BW = 6.2, RBP = 0.679, FaFg = 1), setNames(c(2, 10, 77, 10), paste0("THETA[", 1:4, "]"))),
returnType = "data.frame"
)
s3 <- s3[, names(s1)]
expect_equal(s1, s3)
s4 <- rxSolve(mod2, d, theta = c(2, 10, 77, 10), returnType = "data.frame")
s4 <- s4[, names(s1)]
expect_equal(s1, s3)
s5 <- rxSolve(mod2, d, theta = c(2, 10, 77, 10))
s6 <- rxSolve(mod2, d, params = setNames(c(2, 10, 77, 10), paste0("THETA[", 1:4, "]")))
})
})
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.