# Define files to be tested -----------------------------------------------
ctrl_tab_1 <- xpdb_ex_pk %>%
mutate.xpose_data(DV = log(DV), .problem = 1) %>%
distinct.xpose_data(DV, .problem = 1) %>%
select.xpose_data(ID:TAD, DV, EVID, .problem = 1) %>%
rename.xpose_data(TSLD = TAD, .problem = 1) %>%
get_data(.problem = 1)
ctrl_tab_2 <- xpdb_ex_pk %>%
group_by(ID, SEX, .problem = 1) %>%
summarize(CMAX = max(DV), .problem = 1) %>%
ungroup(.problem = 1) %>%
get_data(.problem = 1) %>%
ungroup()
test_xpdb_1 <- vpc_data(xpdb_ex_pk, opt = vpc_opt(n_bins = 2), quiet = TRUE)
ctrl_xpdb_1 <- test_xpdb_1
ctrl_xpdb_1$special$data[[1]]$vpc_dat <- dplyr::filter(.data = ctrl_xpdb_1$special$data[[1]]$vpc_dat, bin == 2)
ctrl_list_vars_1 <- '\nList of available variables for problem no. 1 \n - Subject identifier (id) : ID\n - Dependent variable (dv) : DV\n - Independent variable (idv) : TIME\n - Dose amount (amt) : AMT\n - Event identifier (evid) : EVID\n - Model typical predictions (pred) : PRED\n - Model individual predictions (ipred) : IPRED\n - Model parameter (param) : KA, CL, V, ALAG1\n - Eta (eta) : ETA1, ETA2, ETA3\n - Residuals (res) : CWRES, IWRES, RES, WRES\n - Categorical covariates (catcov) : SEX, MED1, MED2\n - Continuous covariates (contcov) : CLCR, AGE, WT\n - Compartment amounts (a) : A1, A2\n - Not attributed (na) : DOSE, SS, II, CPRED, DV2\n\nList of available variables for problem no. 2 \n - Subject identifier (id) : ID\n - Dependent variable (dv) : DV\n - Independent variable (idv) : TIME\n - Dose amount (amt) : AMT\n - Event identifier (evid) : EVID\n - Model individual predictions (ipred) : IPRED\n - Not attributed (na) : DOSE, SEX, CLCR, AGE, WT, DV2'
# Tests start here --------------------------------------------------------
test_that('xpdb_edits checks error properly', {
expect_error(filter.xpose_data(.data = '1', ID == 110), regexp = 'Bad input')
expect_error(filter.xpose_data(.data = xpdb_ex_pk, ID == 110, .problem = 99),
regexp = 'not found')
expect_error(filter.xpose_data(.data = xpdb_ex_pk, .source = 'fake', ID == 110), regexp = 'not found')
expect_error(filter.xpose_data(.data = xpdb_ex_pk, .source = c('ext', 'phi'), ID == 110), regexp = 'length 1')
expect_error(filter.xpose_data(.data = xpdb_ex_pk, .source = 'special'))
})
test_that('xpdb_edits works properly', {
expect_equal(filter.xpose_data(.data = xpdb_ex_pk, ID == 110, TIME > 10, .problem = 1) %>%
get_data(.problem = 1),
xpdb_ex_pk %>% get_data(.problem = 1) %>% filter(.$ID == 110, .$TIME > 10))
expect_equal(filter.xpose_data(.data = xpdb_ex_pk, ID == 110, .problem = 1, .source = 'phi') %>%
slice.xpose_data(1:3, .source = 'phi') %>%
mutate.xpose_data(TEST = 'Ok', .source = 'phi') %>%
get_file(ext = 'phi', quiet = TRUE),
xpdb_ex_pk %>% get_file(ext = 'phi', quiet = TRUE) %>% filter(.$ID == 110) %>%
slice(1:3) %>% mutate(TEST = 'Ok'))
expect_equal(ctrl_tab_1, xpdb_ex_pk %>%
get_data(.problem = 1) %>%
mutate(DV = log(DV)) %>%
distinct(DV, .keep_all = TRUE) %>%
select(ID:TAD, DV, EVID) %>%
rename(TSLD = TAD))
expect_equal(ctrl_tab_2, xpdb_ex_pk %>%
get_data(.problem = 1) %>%
group_by(ID, SEX) %>%
summarize(CMAX = max(DV)) %>%
ungroup())
expect_warning(test_xpdb_2 <- filter.xpose_data(.data = test_xpdb_1, bin == 2, .source = 'special',
.where = c('fake1', 'fake2', 'vpc_dat'))$special$data[[1]],
regexp = 'elements fake1, fake2 not found in vpc continuous')
expect_equal(test_xpdb_2, ctrl_xpdb_1$special$data[[1]])
})
test_that('variable added with mutate is available in all problems', {
xpdb_mod <- mutate.xpose_data(xpdb_ex_pk, VAR = 1)
expect_true(exists('VAR', xpdb_mod$data$data[[1]]))
expect_true(exists('VAR', xpdb_mod$data$data[[2]]))
})
test_that('index is properly updated', {
xpdb_mod <- mutate.xpose_data(.data = xpdb_ex_pk, TAD = NULL, DV2 = DV * 2)
expect_equal(capture_output(list_vars(xpdb_mod, .problem = 1:2)), ctrl_list_vars_1)
})
test_that('irep works properly', {
expect_message(irep_out <- irep(rep(1:5, time = 3), quiet = FALSE),
regexp = '3 simulations found')
expect_equal(irep_out, rep(1:3, each = 5))
})
test_that('n() works', {
xpdb_sum <- xpdb_ex_pk %>% group_by(ID, .problem = 1) %>% summarise(n(), .problem = 1)
expect_equal(xpdb_sum %>% get_data(.problem = 1),
xpdb_ex_pk %>% get_data(.problem = 1) %>% group_by(ID) %>% summarise(n()))
expect_equal(xpdb_ex_pk %>% mutate(N = 1:n(), .source = 'ext') %>% get_file(ext = 'ext', quiet = TRUE),
xpdb_ex_pk %>% get_file(ext = 'ext', quiet = TRUE) %>% mutate(N = 1:n()))
})
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.