context("Check that NCA calculations are working")
test_that("Extravascular single dose data is computed corectly",{
exvas_sd_dat <- readr::read_table(
"data_exvas_sd.txt",skip = 1,
col_types = list(.default = readr::col_double())) # Can move this to data
exvas_sd_true_result <- readr::read_csv("results_exvas_sd_true.csv",
col_types=list(readr::col_character(),.default = readr::col_double())
)
# transpose the true results
exvas_sd_true_result <- exvas_sd_true_result %>%
tidyr::gather(var, val, 2:ncol(.)) %>%
tidyr::spread(names(.)[1], "val")
#### test for linear method
out <- ncappc(obsFile=exvas_sd_dat,
psnOut=TRUE,
method="linear",
evid = FALSE,
onlyNCA = T,
extrapolate = T,
printOut = F,
noPlot = T)
calc_vals <- out$ncaOutput %>% tibble::as_tibble() %>%
dplyr::mutate_all(~as.numeric(as.character(.)))
true_vals <- exvas_sd_true_result %>%
dplyr::filter(var=="Linear_trapezoidal_WinNonlin") %>%
dplyr::rename("ID"=var) %>% dplyr::mutate(ID=1)
# are all the names for the true result in the computed result?
expect_length(names(true_vals)[!(names(true_vals) %in% names(calc_vals))],0)
# select the names we can compare and order the same for both
calc_vals_sub <- calc_vals %>% dplyr::select(names(calc_vals)[(names(calc_vals) %in% names(true_vals))]) %>%
dplyr::select(names(true_vals))
# values the same?
expect_equal(data.frame(calc_vals_sub),data.frame(true_vals),tolerance=0.005)
#### test for log-linear method
out <- ncappc(obsFile=exvas_sd_dat,
psnOut=TRUE,
method="linearup-logdown",
evid = FALSE,
onlyNCA = T,
extrapolate = T,
printOut = F,
noPlot = T)
calc_vals <- out$ncaOutput %>% tibble::as_tibble() %>%
dplyr::mutate_all(~as.numeric(as.character(.)))
true_vals <- exvas_sd_true_result %>%
dplyr::filter(var=="Linear_log_trapezoidal_WinNonlin") %>%
dplyr::rename("ID"=var) %>% dplyr::mutate(ID=1)
# are all the names for the true result in the computed result?
expect_length(names(true_vals)[!(names(true_vals) %in% names(calc_vals))],0)
# select the names we can compare and order the same for both
calc_vals_sub <- calc_vals %>% dplyr::select(names(calc_vals)[(names(calc_vals) %in% names(true_vals))]) %>%
dplyr::select(names(true_vals))
# values the same?
expect_equal(data.frame(calc_vals_sub),data.frame(true_vals),tolerance=0.005)
})
test_that("Extravascular multiple dose data is computed corectly",{
exvas_md_dat <- readr::read_table("data_exvas_md.txt",skip = 1) # Can move this to data
exvas_md_dat[9,"TIME"] <- 96
exvas_md_true_result <- readr::read_csv("results_exvas_md_true.csv")
exvas_md_true_result <- exvas_md_true_result %>%
tidyr::gather(var, val, 2:ncol(.)) %>%
tidyr::spread(names(.)[1], "val")
#### test for linear method
out <- ncappc(obsFile=exvas_md_dat,
psnOut=TRUE,
method="linear",
doseType = "ss",
#timeNmObs = "TAD",
doseTime = 96,
Tau = 12,
evid = TRUE,
onlyNCA = T,
extrapolate = T,
printOut = F,
noPlot = T)
calc_vals <- out$ncaOutput %>% tibble::as_tibble() %>%
dplyr::mutate_all(~as.numeric(as.character(.)))
true_vals <- exvas_md_true_result %>%
dplyr::filter(var=="Linear_trapezoidal_WinNonlin") %>%
dplyr::rename("ID"=var) %>% dplyr::mutate(ID=1)
# are all the names for the true result in the computed result?
expect_length(names(true_vals)[!(names(true_vals) %in% names(calc_vals))],0)
# select the names we can compare and order the same for both
calc_vals_sub <- calc_vals %>% dplyr::select(names(calc_vals)[(names(calc_vals) %in% names(true_vals))]) %>%
dplyr::select(names(true_vals))
# values the same?
expect_equal(data.frame(calc_vals_sub),data.frame(true_vals),tolerance=0.005)
#### test for log-linear method
out <- ncappc(obsFile=exvas_md_dat,
psnOut=TRUE,
method="linearup-logdown",
doseType = "ss",
#timeNmObs = "TAD",
doseTime = 96,
Tau = 12,
evid = TRUE,
onlyNCA = T,
extrapolate = T,
printOut = F,
noPlot = T)
calc_vals <- out$ncaOutput %>% tibble::as_tibble() %>%
dplyr::mutate_all(~as.numeric(as.character(.)))
true_vals <- exvas_md_true_result %>%
dplyr::filter(var=="Linear_log_trapezoidal_WinNonlin") %>%
dplyr::rename("ID"=var) %>% dplyr::mutate(ID=1)
# are all the names for the true result in the computed result?
expect_length(names(true_vals)[!(names(true_vals) %in% names(calc_vals))],0)
# select the names we can compare and order the same for both
calc_vals_sub <- calc_vals %>% dplyr::select(names(calc_vals)[(names(calc_vals) %in% names(true_vals))]) %>%
dplyr::select(names(true_vals))
# values the same?
expect_equal(data.frame(calc_vals_sub),data.frame(true_vals),tolerance=0.005)
})
test_that("IV single dose data is computed corectly",{
iv_sd_dat <- readr::read_table("data_iv_sd.txt",skip = 1) # Can move this to data
iv_sd_true_result <- readr::read_csv("results_iv_sd_true.csv")
iv_sd_true_result <- iv_sd_true_result %>%
tidyr::gather(var, val, 2:ncol(.)) %>%
tidyr::spread(names(.)[1], "val")
#### test for linear method
out <- ncappc(obsFile=iv_sd_dat,
psnOut=TRUE,
method="linear",
adminType = "iv-bolus",
#doseType = "ss",
#timeNmObs = "TAD",
#doseTime = 96,
#Tau = 12,
evid = FALSE,
onlyNCA = T,
extrapolate = T,
printOut = F,
noPlot = T)
calc_vals <- out$ncaOutput %>% tibble::as_tibble() %>%
dplyr::mutate_all(~as.numeric(as.character(.)))
true_vals <- iv_sd_true_result %>%
dplyr::filter(var=="Linear_trapezoidal_WinNonlin") %>%
dplyr::rename("ID"=var) %>% dplyr::mutate(ID=1)
# are all the names for the true result in the computed result?
expect_length(names(true_vals)[!(names(true_vals) %in% names(calc_vals))],0)
# select the names we can compare and order the same for both
calc_vals_sub <- calc_vals %>% dplyr::select(names(calc_vals)[(names(calc_vals) %in% names(true_vals))]) %>%
dplyr::select(names(true_vals))
# values the same?
expect_equal(data.frame(calc_vals_sub),data.frame(true_vals),tolerance=0.005)
#### test for log-linear method
out <- ncappc(obsFile=iv_sd_dat,
psnOut=TRUE,
method="linearup-logdown",
adminType = "iv-bolus",
#doseType = "ss",
#timeNmObs = "TAD",
#doseTime = 96,
#Tau = 12,
evid = FALSE,
onlyNCA = T,
extrapolate = T,
printOut = F,
noPlot = T)
calc_vals <- out$ncaOutput %>% tibble::as_tibble() %>%
dplyr::mutate_all(~as.numeric(as.character(.)))
true_vals <- iv_sd_true_result %>%
dplyr::filter(var=="Linear_log_trapezoidal_WinNonlin") %>%
dplyr::rename("ID"=var) %>% dplyr::mutate(ID=1)
# are all the names for the true result in the computed result?
expect_length(names(true_vals)[!(names(true_vals) %in% names(calc_vals))],0)
# select the names we can compare and order the same for both
calc_vals_sub <- calc_vals %>% dplyr::select(names(calc_vals)[(names(calc_vals) %in% names(true_vals))]) %>%
dplyr::select(names(true_vals))
# values the same?
expect_equal(data.frame(calc_vals_sub),data.frame(true_vals),tolerance=0.005)
})
test_that("IV multiple dose data is computed corectly",{
iv_md_dat <- readr::read_table("data_iv_md.txt",skip = 1) # Can move this to data
iv_md_dat[9,"TIME"] <- 96
iv_md_true_result <- readr::read_csv("results_iv_md_true.csv")
iv_md_true_result <- iv_md_true_result %>%
tidyr::gather(var, val, 2:ncol(.)) %>%
tidyr::spread(names(.)[1], "val")
#### test for linear method
out <- ncappc(obsFile=iv_md_dat,
psnOut=TRUE,
method="linear",
adminType = "iv-bolus",
doseType = "ss",
#timeNmObs = "TAD",
doseTime = 96,
backExtrp = T,
Tau = 12,
#evid = FALSE,
onlyNCA = T,
extrapolate = T,
printOut = F,
noPlot = T)
calc_vals <- out$ncaOutput %>% tibble::as_tibble() %>%
dplyr::mutate_all(~as.numeric(as.character(.)))
true_vals <- iv_md_true_result %>%
dplyr::filter(var=="Linear_trapezoidal_WinNonlin") %>%
dplyr::rename("ID"=var) %>% dplyr::mutate(ID=1)
# are all the names for the true result in the computed result?
expect_length(names(true_vals)[!(names(true_vals) %in% names(calc_vals))],0)
# select the names we can compare and order the same for both
calc_vals_sub <- calc_vals %>% dplyr::select(names(calc_vals)[(names(calc_vals) %in% names(true_vals))]) %>%
dplyr::select(names(true_vals))
# values the same?
expect_equal(data.frame(calc_vals_sub),data.frame(true_vals),tolerance=0.005)
#### test for log-linear method
out <- ncappc(obsFile=iv_md_dat,
psnOut=TRUE,
method="linearup-logdown",
adminType = "iv-bolus",
doseType = "ss",
#timeNmObs = "TAD",
doseTime = 96,
backExtrp = T,
Tau = 12,
#evid = FALSE,
onlyNCA = T,
extrapolate = T,
printOut = F,
noPlot = T)
calc_vals <- out$ncaOutput %>% tibble::as_tibble() %>%
dplyr::mutate_all(~as.numeric(as.character(.)))
true_vals <- iv_md_true_result %>%
dplyr::filter(var=="Linear_log_trapezoidal_WinNonlin") %>%
dplyr::rename("ID"=var) %>% dplyr::mutate(ID=1)
# are all the names for the true result in the computed result?
expect_length(names(true_vals)[!(names(true_vals) %in% names(calc_vals))],0)
# select the names we can compare and order the same for both
calc_vals_sub <- calc_vals %>% dplyr::select(names(calc_vals)[(names(calc_vals) %in% names(true_vals))]) %>%
dplyr::select(names(true_vals))
# values the same?
expect_equal(data.frame(calc_vals_sub),data.frame(true_vals),tolerance=0.005)
})
test_that("IV infusion single dose data is computed corectly",{
iv_inf_sd_dat <- readr::read_table("data_iv_inf_sd.txt",skip = 1) # Can move this to data
iv_inf_sd_true_result <- readr::read_csv("results_iv_inf_sd_true.csv")
iv_inf_sd_true_result <- iv_inf_sd_true_result %>%
tidyr::gather(var, val, 2:ncol(.)) %>%
tidyr::spread(names(.)[1], "val")
#### test for linear method
out <- ncappc(obsFile=iv_inf_sd_dat,
psnOut=TRUE,
method="linear",
adminType = "iv-infusion",
#doseType = "ss",
#timeNmObs = "TAD",
#doseTime = 96,
#Tau = 12,
evid = FALSE,
onlyNCA = T,
extrapolate = T,
printOut = F,
noPlot = T)
calc_vals <- out$ncaOutput %>% tibble::as_tibble() %>%
dplyr::mutate_all(~as.numeric(as.character(.)))
true_vals <- iv_inf_sd_true_result %>%
dplyr::filter(var=="Linear_trapezoidal_WinNonlin") %>%
dplyr::rename("ID"=var) %>% dplyr::mutate(ID=1)
# are all the names for the true result in the computed result?
expect_length(names(true_vals)[!(names(true_vals) %in% names(calc_vals))],0)
# select the names we can compare and order the same for both
calc_vals_sub <- calc_vals %>% dplyr::select(names(calc_vals)[(names(calc_vals) %in% names(true_vals))]) %>%
dplyr::select(names(true_vals))
# values the same?
expect_equal(data.frame(calc_vals_sub),data.frame(true_vals),tolerance=0.005)
#### test for log-linear method
out <- ncappc(obsFile=iv_inf_sd_dat,
psnOut=TRUE,
method="linearup-logdown",
adminType = "iv-infusion",
#doseType = "ss",
#timeNmObs = "TAD",
#doseTime = 96,
#Tau = 12,
#TI=2,
evid = FALSE,
onlyNCA = T,
extrapolate = T,
printOut = F,
noPlot = T)
calc_vals <- out$ncaOutput %>% tibble::as_tibble() %>%
dplyr::mutate_all(~as.numeric(as.character(.)))
true_vals <- iv_inf_sd_true_result %>%
dplyr::filter(var=="Linear_log_trapezoidal_WinNonlin") %>%
dplyr::rename("ID"=var) %>% dplyr::mutate(ID=1)
# are all the names for the true result in the computed result?
expect_length(names(true_vals)[!(names(true_vals) %in% names(calc_vals))],0)
# select the names we can compare and order the same for both
calc_vals_sub <- calc_vals %>% dplyr::select(names(calc_vals)[(names(calc_vals) %in% names(true_vals))]) %>%
dplyr::select(names(true_vals))
# values the same?
expect_equal(data.frame(calc_vals_sub),data.frame(true_vals),tolerance=0.005)
})
test_that("IV infusion multiple dose data is computed corectly",{
iv_inf_md_dat <- readr::read_table("data_iv_inf_md.txt",skip = 1) # Can move this to data
iv_inf_md_dat[9,"TIME"] <- 96
iv_inf_md_true_result <- readr::read_csv("results_iv_inf_md_true.csv")
iv_inf_md_true_result <- iv_inf_md_true_result %>%
tidyr::gather(var, val, 2:ncol(.)) %>%
tidyr::spread(names(.)[1], "val")
#### test for linear method
out <- ncappc(obsFile=iv_inf_md_dat,
psnOut=TRUE,
method="linear",
adminType = "iv-infusion",
doseType = "ss",
#timeNmObs = "TAD",
doseTime = 96,
backExtrp = T,
Tau = 12,
TI=2,
#evid = FALSE,
onlyNCA = T,
extrapolate = T,
printOut = F,
noPlot = T)
calc_vals <- out$ncaOutput %>% tibble::as_tibble() %>%
dplyr::mutate_all(~as.numeric(as.character(.)))
true_vals <- iv_inf_md_true_result %>%
dplyr::filter(var=="Linear_trapezoidal_WinNonlin") %>%
dplyr::rename("ID"=var) %>% dplyr::mutate(ID=1)
# are all the names for the true result in the computed result?
expect_length(names(true_vals)[!(names(true_vals) %in% names(calc_vals))],0)
# select the names we can compare and order the same for both
calc_vals_sub <- calc_vals %>% dplyr::select(names(calc_vals)[(names(calc_vals) %in% names(true_vals))]) %>%
dplyr::select(names(true_vals))
# values the same?
expect_equal(data.frame(calc_vals_sub),data.frame(true_vals),tolerance=0.005)
#### test for log-linear method
out <- ncappc(obsFile=iv_inf_md_dat,
psnOut=TRUE,
method="linearup-logdown",
adminType = "iv-infusion",
doseType = "ss",
#timeNmObs = "TAD",
doseTime = 96,
backExtrp = T,
Tau = 12,
TI=2,
#evid = FALSE,
onlyNCA = T,
extrapolate = T,
printOut = F,
noPlot = T)
calc_vals <- out$ncaOutput %>% tibble::as_tibble() %>%
dplyr::mutate_all(~as.numeric(as.character(.)))
true_vals <- iv_inf_md_true_result %>%
dplyr::filter(var=="Linear_log_trapezoidal_WinNonlin") %>%
dplyr::rename("ID"=var) %>% dplyr::mutate(ID=1)
# are all the names for the true result in the computed result?
expect_length(names(true_vals)[!(names(true_vals) %in% names(calc_vals))],0)
# select the names we can compare and order the same for both
calc_vals_sub <- calc_vals %>% dplyr::select(names(calc_vals)[(names(calc_vals) %in% names(true_vals))]) %>%
dplyr::select(names(true_vals))
# values the same?
expect_equal(data.frame(calc_vals_sub),data.frame(true_vals),tolerance=0.005)
})
test_that("force_extrapolate works corectly",{
data_1 <- tibble::tibble(
ID=1,
TIME = c(0,0.25,0.5,1,1.5,2,3,4,6,8,12,16,24),
DV=c(0, 0.07, 0.14, 0.21, 0.24, 0.27, 0.26, 0.25, 0.22, 0.19, 0.13, 0.081, 0.033)
)
out_1 <- ncappc(obsFile=data_1,
onlyNCA = T,
extrapolate = T,
printOut = F,
evid = FALSE,
noPlot = T)
out_2 <- ncappc(obsFile=data_1,
onlyNCA = T,
extrapolate = T,
printOut = F,
evid = FALSE,
noPlot = T,
force_extrapolate=T)
expect_true(all(out_1$ncaOutput==out_2$ncaOutput,na.rm = T))
data_2 <- data_1 %>% dplyr::filter(TIME<3)
expect_message(out_2 <- ncappc(obsFile=data_2,
onlyNCA = T,
extrapolate = T,
printOut = F,
evid = FALSE,
noPlot = T,
force_extrapolate=T))
expect_true(is.na(out_2$ncaOutput$AUCINF_obs))
data_3 <- data_1 %>% dplyr::filter(TIME>17|TIME<3)
out_3 <- ncappc(obsFile=data_3,
onlyNCA = T,
extrapolate = T,
printOut = F,
evid = FALSE,
noPlot = T,
force_extrapolate=T)
expect_true(!is.na(out_3$ncaOutput$AUCINF_obs))
data_4 <- data_1 %>% dplyr::filter(TIME>15|TIME<3)
out_4 <- ncappc(obsFile=data_4,
onlyNCA = T,
extrapolate = T,
printOut = F,
evid = FALSE,
noPlot = T,
force_extrapolate=T)
expect_true(!is.na(out_4$ncaOutput$AUCINF_obs))
})
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.