rxTest({
## rxode2 instance 1
m1 <-
rxode2(
model = "
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;"
)
test_that("rxode2 instance 1 is created", {
expect_s3_class(m1, "rxode2")
})
et1 <- eventTable(amount.units = "ug", time.units = "hours")
et1$add.dosing(dose = 10000, nbr.doses = 5, dosing.interval = 24)
et1$add.sampling(0:24)
et1$add.sampling(24)
et1$add.sampling(seq(from = 24 + 8, to = 5 * 24, by = 8))
test_that("rxode2 event table 1 was created", {
expect_s3_class(et1, "rxEt")
expect_equal(et1$get.nobs(), 38)
expect_equal(length(et1$get.dosing()[, 1]), 1)
})
o1.first <-
suppressWarnings(rxSolve(
m1,
params = c(
KA = .291, CL = 18.6, V2 = 40.2, Q = 10.5, V3 = 297.0,
Kin = 1.0, Kout = 1.0, EC50 = 200.0
),
events = et1,
inits = c(0, 0, 0, 1)
))
o1.df <- as.data.frame(o1.first)
o1.df2 <- tibble::as_tibble(o1.first)
test_that("Numeric Data frame lookup operators [] make sense", {
expect_equal(o1.first[], o1.df[])
expect_equal(o1.first[, 3], o1.df[, 3])
expect_equal(o1.first[, 3, drop = FALSE], o1.df[, 3, drop = FALSE])
expect_equal(o1.first[3, ], o1.df[3, ])
expect_equal(o1.first[, c(1, 3)], o1.df[, c(1, 3)])
expect_equal(o1.first[c(1, 3), ], o1.df[c(1, 3), ])
expect_equal(o1.first[1, 3], o1.df[1, 3])
expect_equal(o1.first[c(1, 3), c(1, 3)], o1.df[c(1, 3), c(1, 3)])
})
test_that("as_data_frame produces reasonable results.", {
expect_equal(tibble::as_tibble(o1.df), o1.df2)
})
test_that("Character data frame lookup operators [] make sense", {
expect_equal(o1.first[, "centr"], o1.df[, "centr"])
expect_equal(o1.first[, "centr", drop = FALSE], o1.df[, "centr", drop = FALSE])
expect_equal(o1.first[, c("centr", "depot")], o1.df[, c("centr", "depot")])
})
test_that("Character data frame assignment operators [] make sense", {
o1.assign <- o1.first
expect_s3_class(o1.assign, "data.frame")
o1.assign[, "depot"] <- 0
expect_equal(rep(0, times = length(as.data.frame(o1.assign)[, 1])), as.data.frame(o1.assign)[, "depot"])
expect_equal(rep(0, times = length(o1.assign$depot)), o1.assign$depot)
expect_false(any(class(o1.assign) == "rxSolve"))
})
test_that("Numeric data frame lookup operators [[]] make sense", {
expect_equal(o1.first[[1]], o1.df[[1]])
expect_equal(o1.first[[3]], o1.df[[3]])
})
test_that("Character data frame lookup operators [[]] make sense", {
expect_equal(o1.first[["depot"]], o1.df[["depot"]])
expect_equal(o1.first[["de"]], o1.df[["de"]])
expect_equal(o1.first[["de"]], NULL)
expect_equal(o1.first[["de", exact = FALSE]], o1.df[["de", exact = FALSE]])
expect_equal(o1.first[["de", exact = FALSE]], o1.df[["depot"]])
expect_warning(o1.first[["de", exact = NA]])
})
test_that("Character data frame assignment operators [[]] make sense", {
o1.assign <- o1.first
expect_s3_class(o1.assign, "data.frame")
o1.assign[["depot"]] <- 0
expect_equal(rep(0, times = length(as.data.frame(o1.assign)[, 1])), as.data.frame(o1.assign)[["depot"]])
expect_equal(rep(0, times = length(o1.assign$depot)), o1.assign$depot)
expect_false(any(class(o1.assign) == "rxSolve"))
})
test_that("Character data frame lookup operators $ make sense", {
expect_equal(o1.first$centr, o1.df$centr)
expect_equal(o1.first$depot, o1.df$depot)
})
test_that("Character data frame assignment operators $ make sense", {
o1.assign <- o1.first
expect_s3_class(o1.assign, "rxSolve")
o1.assign$depot <- 0
expect_equal(rep(0, times = length(as.data.frame(o1.assign)[, 1])), as.data.frame(o1.assign)$depot)
expect_equal(rep(0, times = length(o1.assign$depot)), o1.assign$depot)
expect_false(any(class(o1.assign) == "rxSolve"))
})
test_that("rownames lookup & assignment makes sense", {
expect_equal(rownames(o1.first), paste(seq_len(length(o1.first[, 1]))))
rownames(o1.first) <- paste("row", seq_len(length(o1.first$depot)))
expect_equal(rownames(o1.first), paste("row", seq_len(length(o1.first$depot))))
rownames(o1.first) <- NULL
expect_equal(rownames(o1.first), paste(seq_len(length(o1.first[, 1]))))
})
})
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.