Nothing
context("data.R unit tests")
library("data.table")
# Convert multi-state dataset to PFS/OS dataset --------------------------------
msdata <- data.table(
patient_id = c(rep(1, 2),
rep(2, 3)),
transition_id = c(1, 2,
1, 2, 3),
status = c(0, 1,
1, 0, 0),
tstop = c(10, 10,
5, 5, 15)
)
msdata_pfs_os <- as_pfs_os(msdata, patient_vars = "patient_id", time_stop = "tstop")
test_that("as_pfs_os() returns correct output given stable -> death trajectory" , {
y <- msdata_pfs_os[patient_id == 1]
expect_equal(y$pfs_time, 10)
expect_equal(y$pfs_status, 1)
expect_equal(y$os_time, 10)
expect_equal(y$os_status, 1)
})
test_that(paste0("as_pfs_os() returns correct output given stable -> progression -> death trajectory",
" and right censoring for progression -> death transition"), {
y <- msdata_pfs_os[patient_id == 2]
expect_equal(y$pfs_time, 5)
expect_equal(y$pfs_status, 1)
expect_equal(y$os_time, 15)
expect_equal(y$os_status, 0)
})
test_that(paste0("as_pfs_os() returns correct output given stable -> progression -> death trajectory",
" and observed progression -> death transition"), {
x <- data.frame(
ptid = rep(1, 3),
trans = c(1, 2, 3),
status = c(1, 0, 1),
time_stop = c(7, 7, 11)
)
y <- as_pfs_os(x, patient_vars = "ptid", transition = "trans")
expect_equal(y$pfs_time, 7)
expect_equal(y$pfs_status, 1)
expect_equal(y$os_time, 11)
expect_equal(y$os_status, 1)
})
test_that("as_pfs_os() returns correct output given stable -> death is right censored" , {
x <- data.frame(
ptid = rep(1, 2),
transition_id = c(1, 2),
died = c(0, 0),
time_stop = c(5, 5)
)
y <- as_pfs_os(x, patient_vars = "ptid", status = "died")
expect_equal(y$pfs_time, 5)
expect_equal(y$os_time, 5)
expect_equal(y$pfs_status, 0)
expect_equal(y$os_status, 0)
})
test_that("as_pfs_os() returns correct number of rows" , {
expect_equal(
nrow(msdata_pfs_os),
length(unique(msdata$patient_id))
)
})
test_that("as_pfs_os() returns error with wrong transition variable" , {
expect_error(
as_pfs_os(onc3, patient_vars = "age", transition = "patient_id"),
"'patient_id' should be a vector with unique values c(1, 2, 3).",
fixed = TRUE
)
})
test_that("as_pfs_os() returns error with transition numbers not in c(1, 2, 3)" , {
y <- copy(msdata)[, transition_id := ifelse(transition_id == 3, 4, transition_id)]
expect_error(
as_pfs_os(y, patient_vars = "patient_id", time_stop = "tstop"),
"'transition_id' should be a vector with unique values c(1, 2, 3).",
fixed = TRUE
)
})
test_that("as_pfs_os() returns error with only one transition", {
expect_error(
as_pfs_os(msdata[transition_id == 1], patient_vars = "patient_id",
time_stop = "tstop"),
"'transition_id' should contain at a minimum values 1 and 2.",
)
})
test_that("as_pfs_os() returns error with only two transition that aren't 1 and 2", {
expect_error(
as_pfs_os(msdata[transition_id %in% c(1, 3)], patient_vars = "patient_id",
time_stop = "tstop"),
"If 'transition_id' contains 2 values, they should be 1 and 2.",
)
})
Any scripts or data that you put into this service are public.
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.