rxTest({
# test id=="item"
f1 <- rxode2({
a <- 1
if (id == "matt") {
a <- 2
}
})
df <- data.frame(
ID = c("matt", "not"),
TIME = c(0, 1)
)
ref <- rxSolve(f1, df)
test_that("id==matt #1", {
expect_equal(ref$a, c(2, 1))
})
df <- data.frame(
ID = c("not", "matt"),
TIME = c(0, 1)
)
ref <- rxSolve(f1, df)
test_that("id==matt #2", {
expect_equal(ref$a, c(1, 2))
})
f2 <- rxode2({
a <- 1
if ("matt" == ID) {
a <- 2
}
})
df <- data.frame(
ID = c("matt", "not"),
TIME = c(0, 1)
)
ref <- rxSolve(f2, df)
test_that("id==matt #3", {
expect_equal(ref$a, c(2, 1))
})
df <- data.frame(
ID = c("not", "matt"),
TIME = c(0, 1)
)
ref <- rxSolve(f2, df)
test_that("id==mat #4", {
expect_equal(ref$a, c(1, 2))
})
f1 <- rxode2({
a <- 1
if (id != "matt") {
a <- 2
}
})
df <- data.frame(
ID = c("matt", "not"),
TIME = c(0, 1)
)
ref <- rxSolve(f1, df)
test_that("id!=matt #1", {
expect_equal(ref$a, c(1, 2))
})
df <- data.frame(
ID = c("not", "matt"),
TIME = c(0, 1)
)
ref <- rxSolve(f1, df)
test_that("id!=matt #2", {
expect_equal(ref$a, c(2, 1))
})
f1 <- rxode2({
a <- 1
if (id == "100") {
a <- 2
}
})
df <- data.frame(
ID = c(100, 200),
TIME = c(0, 1)
)
ref <- rxSolve(f1, df)
test_that("id2", {
expect_equal(ref$a, c(2, 1))
})
test_that("id equality error", {
suppressMessages(expect_error(rxode2({
a <- 1
if (id == 100) {
a <- 2
}
})))
})
f1 <- rxode2({
a <- 1 + (id == "100") * 2
})
ref <- rxSolve(f1, df)
test_that("id3", {
expect_equal(ref$a, c(3, 1))
})
f1 <- rxode2({
a <- 1 + (id == "100") * 2
})
ref <- rxSolve(f1, df)
test_that("id3", {
expect_equal(ref$a, c(3, 1))
})
# test cmt=="item"/no.
f3 <- rxode2({
a <- 3
if (cmt == "depot") {
a <- 2
}
})
df <- data.frame(
ID = c("not", "matt"),
TIME = c(0, 1),
cmt = structure(1:2, .Label = c("depot", "central"), class = "factor")
)
tmp <- rxSolve(f3, df)
test_that("cmt==\"depot\"", {
expect_equal(tmp$a, c(2, 3))
})
f3 <- rxode2({
a <- 3
if (cmt == 1) {
a <- 2
}
})
tmp <- rxSolve(f3, df)
test_that("cmt==1", {
expect_equal(tmp$a, c(2, 3))
})
f3 <- rxode2({
a <- 3
if (cmt != "depot") {
a <- 2
}
})
tmp <- rxSolve(f3, df)
test_that("cmt!=\"depot\"", {
expect_equal(tmp$a, c(3, 2))
})
f3 <- rxode2({
a <- 3
if (cmt != 1) {
a <- 2
}
})
test_that("cmt!=\"depot\"", {
expect_equal(tmp$a, c(3, 2))
})
f3 <- rxode2({
a <- 1
if ("depot" == cmt) {
a <- 2
}
})
tmp <- rxSolve(f3, df)
test_that("cmt==\"depot\"", {
expect_equal(tmp$a, c(2, 1))
})
f3 <- rxode2({
a <- 1
if ("depot" != cmt) {
a <- 2
}
})
tmp <- rxSolve(f3, df)
test_that("cmt==\"depot\"", {
expect_equal(tmp$a, c(1, 2))
})
test_that("translation to and from SE", {
a <- rxToSE("id==\"matt\"")
expect_equal(a, "rxEq(id,rxQ__matt__rxQ)")
b <- rxFromSE(a)
expect_equal(b, "(id==\"matt\")")
})
tmp <- "C2=centr/V;\nC3=peri/V2;\nd/dt(depot)=-KA*depot;\nd/dt(centr)=KA*depot-CL*C2-Q*C2+Q*C3;\nd/dt(peri)=Q*C2-Q*C3;\nC4=CMT;\nif(CMT==\"depot\"){\nprd=depot;\n}\nif(CMT==\"centr\"){\nprd=centr;\n}\nif(CMT==\"peri\"){\nprd=peri;\n}\n"
test_that("prune checks", {
expect_equal(
rxPrune(tmp),
"C2=centr/V\nC3=peri/V2\nd/dt(depot)=-KA*depot\nd/dt(centr)=KA*depot-CL*C2-Q*C2+Q*C3\nd/dt(peri)=Q*C2-Q*C3\nC4=CMT\nprd=(CMT==\"depot\")*(depot)\nprd=(CMT==\"centr\")*(centr)+(1-((CMT==\"centr\")))*(prd)\nprd=(CMT==\"peri\")*(peri)+(1-((CMT==\"peri\")))*(prd)"
)
})
})
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.