context("fromDataSim")
test_that("validateArgs",{
data(event.data)
my.data <- EventData(data=event.data,
subject="subject",
rand.date="randDate",
has.event="hasEvent",
withdrawn="withdrawn",
time="time",
site="site")
my.fit <- fit(my.data)
expect_error(simulate(my.fit,Nsim=-6))
expect_error(simulate(my.fit,Nsim=0))
expect_error(simulate(my.fit,Nsim="sd"))
expect_error(expect_warning(simulate(my.fit,Nsim=10,seed="we")))
expect_error(simulate(my.fit,Nsim=10,limit=0.51))
expect_error(simulate(my.fit,Nsim=10,limit=-0.1))
expect_error(simulate(my.fit,Nsim=10,limit=c(0.1,0.4)))
expect_error(simulate(my.fit,Nsim=10,data=my.data@subject.data))
expect_error(simulate(my.fit,Nsim=10,fix.rate=0.5))
expect_error(simulate(my.fit,Nsim=10,fix.shape=1.0))
expect_error(simulate(my.fit,Nsim=10,fix.rate=0.5,fix.shape=-1))
expect_error(simulate(my.fit,Nsim=10,fix.rate=-0.5,fix.shape=1))
expect_error(simulate(my.fit,Nsim=10,fix.rate=c(0.5,1.5),fix.shape=1))
expect_error(simulate(my.fit,Nsim=10,fix.rate=0.5,fix.shape="gt"))
expect_error(simulate(my.fit,Nsim=10,fix.rate=0.5,fix.shape=c(1,1.01)))
expect_error(simulate(my.fit,Nsim=10,Naccrual=3))
ag <- Generate.PoissonAccrual(start.date="2014-10-10",rate=1)
expect_warning(simulate(my.fit,Nsim=10,accrualGenerator=ag))
expect_warning(simulate(my.fit,Nsim=10,accrualGenerator=ag,Naccrual=0))
expect_error(simulate(my.fit,Nsim=10,accrualGenerator="e",Naccrual=10))
expect_error(simulate(my.fit,Nsim=10,accrualGenerator=ag,Naccrual=-4))
expect_error(simulate(my.fit,Nsim=10,accrualGenerator=ag,Naccrual=c(1,4,5)))
expect_error(simulate(my.fit,Nsim=10,longlagsettings="err"))
expect_error(simulate(my.fit,Nsim=10,longlagsettings=ag))
expect_error(simulate(my.fit,Nsim=10,HR=4,r=1))
d <- my.data
d@subject.data$time <- 0
d@subject.data$withdrawn <- 0
d@subject.data$has.event <- 0
expect_error(simulate(my.fit,Nsim=10,data,d,r=1))
expect_error(simulate(my.fit,Nsim=10,data,d,HR=1))
expect_error(simulate(my.fit,Nsim=10,data,d,r=1,HR=c(1,2,3)))
expect_error(simulate(my.fit,Nsim=10,data,d,r=1,HR="er"))
expect_error(simulate(my.fit,Nsim=10,data,d,r=1,HR=0))
expect_error(simulate(my.fit,Nsim=10,data,d,r=1,HR=-1))
expect_error(simulate(my.fit,Nsim=10,data,d,r=0,HR=1))
expect_error(simulate(my.fit,Nsim=10,data,d,r=-1,HR=1.2))
expect_error(simulate(my.fit,Nsim=10,data,d,r=c("df",TRUE),HR=1))
})
test_that("CalculateAccrualTimes",{
myf <- function(N){
return(rep(as.Date(c("2016-01-01","2016-02-02")) ,N/2))
}
ac <- new("AccrualGenerator",f=myf,text="t",model="t")
rand.dates <- as.Date(c(1:10,25:50,51:100,11:24),origin="2015-01-01")
ans <- CalculateAccrualTimes(0,10,rand.dates,NULL)
expect_equal("matrix",class(ans))
expect_equal(10,nrow(ans))
expect_equal(100,ncol(ans))
expect_equal(ans[1,],ans[2,])
expect_equal(ans[3,],ans[2,])
expect_equal(16436+c(1:10,25:50,51:100,11:24),ans[2,])
ans <- CalculateAccrualTimes(2,10,rand.dates,ac)
expect_equal("matrix",class(ans))
expect_equal(102,ncol(ans))
expect_equal(10,nrow(ans))
expect_equal(rep(16801,10),ans[,101])
expect_equal(rep(16833,10),ans[,102])
expect_equal(16436+c(1:10,25:50,51:100,11:24,365,397),ans[2,])
})
test_that("deterministic_bits",{
set.seed(10)
data(event.data)
e <- event.data[event.data$hasEvent==1,]
e <- rbind(e,event.data[700,])
e$randDate[700] <- "2016-01-01"
my.data <- EventData(data=e,
subject="subject",
rand.date="randDate",
has.event="hasEvent",
withdrawn="withdrawn",
time="time",
site="site")
my.fit <- fit(my.data)
results <- simulate(my.fit,Nsim=50,limit=0.25)
expect_equal(700,length(results@eventQuantiles@median))
expect_equal(700,length(results@eventQuantiles@upper))
expect_equal(700,length(results@eventQuantiles@lower))
expect_equal(700,length(results@recQuantiles@median))
expect_equal(700,length(results@recQuantiles@upper))
expect_equal(700,length(results@recQuantiles@lower))
expect_equal(my.data,results@event.data)
expect_equal(0.25,results@limit)
expect_equal(0,results@Naccrual)
expect_equal(sort(my.data@subject.data$rand.date),results@recQuantiles@median)
expect_equal(sort(my.data@subject.data$rand.date),results@recQuantiles@upper)
expect_equal(sort(my.data@subject.data$rand.date),results@recQuantiles@lower)
expect_equal(sort(as.Date(e$eventDate[1:699])),results@eventQuantiles@median[1:699])
expect_equal(sort(as.Date(e$eventDate[1:699])),results@eventQuantiles@lower[1:699])
expect_equal(sort(as.Date(e$eventDate[1:699])),results@eventQuantiles@upper[1:699])
expect_true(e$time[700] < results@eventQuantiles@median[700])
my.accrual <- Generate.PoissonAccrual(start.date="2015-11-29",rate=1)
expect_warning(results <- simulate(my.fit,Nsim=50,limit=0.25,
accrualGenerator=my.accrual,Naccrual=99))
expect_equal(799, length(results@eventQuantiles@median))
expect_equal(799, length(results@eventQuantiles@lower))
expect_equal(799, length(results@eventQuantiles@upper))
expect_equal(799,length(results@recQuantiles@median))
expect_equal(results@eventQuantiles@median,sort(results@eventQuantiles@median))
expect_equal(results@recQuantiles@median,sort(results@recQuantiles@median))
expect_true(all(results@eventQuantiles@median <= results@eventQuantiles@upper))
expect_true(all(results@eventQuantiles@median >= results@eventQuantiles@lower))
})
test_that("GetHRs",{
x <- GetHRs(HR=1,r=1,N=100)
expect_equal(x,rep(1,100))
set.seed(10)
x <- GetHRs(HR=0.5,r=3,N=200)
expect_equal(sort(x),c(rep(0.5,150),rep(1,50)))
set.seed(11)
y <- GetHRs(HR=0.5,r=3,N=200)
expect_equal(sort(x),sort(y))
expect_false(all(x==y))
x <- GetHRs(HR=0.5,r=1/3,N=200)
expect_equal(sort(x),c(rep(0.5,50),rep(1,150)))
})
test_that("followup",{
data(event.data)
my.data <- EventData(data=event.data,
subject="subject", rand.date="randDate",
has.event="hasEvent", withdrawn="withdrawn",
time="time", site="site")
expect_true(is.infinite(my.data@followup))
data.with.follow.up <- EventData(data=event.data,
subject="subject", rand.date="randDate",
has.event="hasEvent", withdrawn="withdrawn",
time="time", site="site",followup=1500)
expect_equal(1500,data.with.follow.up@followup)
my.fit <- fit(my.data)
expect_warning(simulate(my.fit,Nsim=20,data=data.with.follow.up))
})