--- a +++ b/tests/testthat/test-ctrlSpec.R @@ -0,0 +1,51 @@ +context("test-ctrlSpec") + +test_that("give_median",{ + expect_error(CtrlSpecfromMedian(ctrl.median=NA)) + expect_error(CtrlSpecfromMedian(ctrl.median=-6)) + expect_error(CtrlSpecfromMedian(ctrl.median="ew")) + expect_warning(expect_error(CtrlSpecfromMedian(ctrl.median=c(1,2,3)))) + + cs <- CtrlSpecfromMedian(ctrl.median=10) + expect_equal(10,cs@median) + expect_equal("median=10",cs@text) + + expmed <- cs@experimentaltext(HR=1,shape=1) + expect_equal("median=10",expmed) + + expmed <- cs@experimentaltext(HR=1,shape=1) + expect_equal("median=10",expmed) + + expmed <- cs@experimentaltext(HR=1/1.5672,shape=1) + expect_equal("median=15.67",expmed) + + expmed <- cs@experimentaltext(HR=0.25,shape=0.5) + expect_equal("median=160",expmed) + +}) + +test_that("give_prop",{ + expect_error(CtrlSpecfromProportion(time=-8,proportion.had.event=0.5,shape=1)) + expect_error(CtrlSpecfromProportion(time=8,proportion.had.event=-0.5,shape=1)) + expect_error(CtrlSpecfromProportion(time=8,proportion.had.event=1.0,shape=1)) + expect_error(CtrlSpecfromProportion(time=8,proportion.had.event=0.5,shape=0)) + expect_error(CtrlSpecfromProportion(time=8,proportion.had.event=0.5,shape=c(1,4))) + + x <- CtrlSpecfromProportion(time=8,proportion.had.event=0.75,shape=2.5) + m <- (log(2)^0.4)/(log(4)^0.4/8) + expect_equal(m,x@median) + + expect_equal("75% of subjects had an event by 8",x@text) + + x <- CtrlSpecfromProportion(time=8.5,proportion.had.event=0.5,shape=2) + m <- 8.5 + expect_equal(m,x@median) + expect_equal("50% of subjects had an event by 8.5",x@text) + + + expect_equal("50% of subjects had an event by 8.5",x@experimentaltext(HR=1,shape=2)) + + prop <- paste(round((1-(1-0.5)^2)*100,2),"% of subjects had an event by 8.5",sep="") + expect_equal(prop, x@experimentaltext(HR=2,shape=2)) + +})