if (!.Call(`_rxode2_isIntel`)) {
test_that("no warnings/errors without boundaries", {
one.cmt <- function() {
ini({
tka <- 0.45; label("Ka")
tcl <- log(2.7); label("Cl")
tv <- 3.45; label("V")
eta.ka ~ 0.6
eta.cl ~ 0.3
eta.v ~ 0.1
add.sd <- 0.7
})
model({
ka <- exp(tka + eta.ka)
cl <- exp(tcl + eta.cl)
v <- exp(tv + eta.v)
linCmt() ~ add(add.sd)
})
}
expect_true(testRxUnbounded(one.cmt))
expect_error(assertRxUnbounded(one.cmt), NA)
expect_warning(warnRxBounded(one.cmt), NA)
})
test_that("assert or testRxLinCmt and boundaries", {
one.cmt <- function() {
ini({
tka <- 0.45; label("Ka")
tcl <- log(c(0, 2.7, 100)); label("Cl")
tv <- 3.45; label("V")
eta.ka ~ 0.6
eta.cl ~ 0.3
eta.v ~ 0.1
add.sd <- 0.7
})
model({
ka <- exp(tka + eta.ka)
cl <- exp(tcl + eta.cl)
v <- exp(tv + eta.v)
linCmt() ~ add(add.sd)
})
}
expect_false(testRxUnbounded(one.cmt))
expect_error(assertRxUnbounded(one.cmt))
expect_warning(warnRxBounded(one.cmt))
expect_error(assertRxLinCmt(one.cmt), NA)
expect_true(testRxLinCmt(one.cmt))
mod <- function() {
ini({
cl <- 1.1
v <- 20
ka <- 1.5
})
model({
d/dt(depot) <- -ka*depot
d/dt(central) <- ka*depot - (cl/v)*central
f(central) <- bioav
if (mode == 1) rate(central) <- rat2
if (mode == 2) dur(central) <- dur2
cp <- central/(v/1000)
})
}
expect_error(assertRxLinCmt(mod))
expect_false(testRxLinCmt(mod))
})
test_that("assertRxUiRandomOnIdOnly", {
one.cmt <- function() {
ini({
tka <- 0.45; label("Ka")
tcl <- log(c(0, 2.7, 100)); label("Cl")
tv <- 3.45; label("V")
eta.ka ~ 0.6
eta.cl ~ 0.3
eta.v ~ 0.1
add.sd <- 0.7
})
model({
ka <- exp(tka + eta.ka)
cl <- exp(tcl + eta.cl)
v <- exp(tv + eta.v)
linCmt() ~ add(add.sd)
})
}
expect_equal(
assertRxUiRandomOnIdOnly(one.cmt),
as.rxUi(one.cmt)
)
})
test_that("assert/test Compartment/Var", {
mod <- function() {
ini({
cl <- 1.1
v <- 20
ka <- 1.5
})
model({
d/dt(depot) <- -ka*depot
d/dt(central) <- ka*depot - (cl/v)*central
f(central) <- bioav
if (mode == 1) rate(central) <- rat2
if (mode == 2) dur(central) <- dur2
cp <- central/(v/1000)
})
}
mod <- mod()
expect_equal(assertVariableExists(mod, c("ka", "cl")), "ka")
expect_equal(assertVariableExists(mod, c("cl", "ka")), "cl")
expect_error(assertVariableExists(mod, c("depot", "central")),
"variable 'depot', 'central' not in the model")
expect_equal(assertCompartmentExists(mod, c("depot", "central")), "depot")
expect_equal(assertCompartmentExists(mod, c("central", "depot")), "central")
expect_equal(assertCompartmentExists(mod, c("ack", "central")), "central")
expect_equal(assertExists(mod, c("depot", "ka")), "depot")
expect_equal(assertExists(mod, c("ka", "depot")), "ka")
expect_error(assertCompartmentExists(mod, "central"), NA)
expect_error(assertCompartmentNew(mod, "central"),
"compartment 'central' already exists in the model")
expect_true(testCompartmentExists(mod, "central"))
expect_error(assertCompartmentExists(mod, "funny"),
"'funny' compartment is not in the model")
expect_error(assertCompartmentNew(mod, "funny"), NA)
expect_false(testCompartmentExists(mod, "funny"))
expect_error(assertCompartmentExists(mod, funny),
"'funny' compartment is not in the model")
expect_error(assertCompartmentNew(mod, funny), NA)
expect_false(testCompartmentExists(mod, funny))
expect_error(assertCompartmentExists(mod, central), NA)
expect_error(assertCompartmentNew(mod, central),
"compartment 'central' already exists in the model")
expect_true(testCompartmentExists(mod, central))
# now variables
expect_error(assertVariableExists(mod, "cp"), NA)
expect_error(assertExists(mod, "cp"), NA)
expect_true(testVariableExists(mod, "cp"))
expect_true(testExists(mod, "cp"))
expect_error(assertVariableNew(mod, "cp"),
"variable 'cp' is already in the model")
expect_error(assertVariableExists(mod, cp), NA)
expect_true(testVariableExists(mod, cp))
expect_error(assertVariableNew(mod, cp),
"variable 'cp' is already in the model")
expect_error(assertVariableExists(mod,"funny"),
"variable 'funny' not in the model")
expect_false(testVariableExists(mod, "funny"))
expect_error(assertVariableNew(mod, "funny"),NA)
expect_error(assertVariableExists(mod,funny),
"variable 'funny' not in the model")
expect_false(testVariableExists(mod, funny))
expect_error(assertVariableNew(mod, funny),NA)
})
test_that("assertCompartmentName", {
expect_equal(assertCompartmentName("x"), "x")
expect_equal(assertCompartmentName("x.y"), "x.y")
expect_equal(assertCompartmentName("x_y"), "x_y")
# This is a valid R variable name, but it does not work with rxode2
## f <- rxode2("d/dt(.) = . + 3")
## rxode2 model syntax error:
## ===================================================
## rxode2 syntax error:
## :001: d/dt(.) = . + 3
## ^
expect_error(assertCompartmentName("."))
expect_error(assertCompartmentName("9"))
expect_error(assertCompartmentName(9))
expect_error(assertCompartmentName(NULL))
expect_error(assertCompartmentName(c("A", "B")))
})
test_that("assertVariableName", {
expect_equal(assertVariableName("x"), "x")
expect_equal(assertVariableName("x.y"), "x.y")
expect_equal(assertVariableName("x_y"), "x_y")
# This is a valid R variable name, but it does not work
# with rxode2
# rxode2 model syntax error:
# ===================================================
# rxode2 syntax error:
# :001: . = 3
# ^
expect_error(assertVariableName("."))
expect_error(assertVariableName("9"))
expect_error(assertVariableName(9))
expect_error(assertVariableName(NULL))
expect_error(assertVariableName(c("A", "B")))
})
test_that("assertParameterValue", {
expect_equal(assertParameterValue(1), 1)
expect_equal(assertParameterValue(-9), -9)
expect_equal(assertParameterValue(0), 0)
expect_error(assertParameterValue(Inf))
expect_error(assertParameterValue(NA))
})
}
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.