## ------------------------------------- ## ## Verify working results ## ------------------------------------- ## test_that( "Joint data generation, no error", { a <- c(0,0,0,1,1,1) b <- c(1,1,1,2,2,2) c <- c(0,1,2,2,1,0) d <- c(1,1,0,0,1,1) e <- c(0,1,1,1,0,0) df <- data.table( 't0'=a, 't1'=b, 'e0'=c, 'e1'=d, 'fac'=e) time1 <- "t0" time2 <- "t1" df$pyr <- df$t1 - df$t0 pyr <- "pyr" events <- c( 'e0', 'e1' ) names_e0 <- c( 'fac' ) names_e1 <- c( 'fac' ) names_shared <- c( 't0', 't0' ) term_n_e0 <- c(0) term_n_e1 <- c(0) term_n_shared <- c(0,0) tform_e0 <- c( "loglin" ) tform_e1 <- c( "loglin" ) tform_shared <- c( "quad_slope", "loglin_top" ) keep_constant_e0 <- c(0) keep_constant_e1 <- c(0) keep_constant_shared <- c(0,0) a_n_e0 <- c(-0.1) a_n_e1 <- c(0.1) a_n_shared <- c(0.001, -0.02) name_list <- list( 'shared'=names_shared, 'e0'=names_e0, 'e1'=names_e1) term_n_list <- list( 'shared'=term_n_shared, 'e0'=term_n_e0, 'e1'=term_n_e1) tform_list <- list( 'shared'=tform_shared, 'e0'=tform_e0, 'e1'=tform_e1) keep_constant_list <- list( 'shared'=keep_constant_shared, 'e0'=keep_constant_e0, 'e1'=keep_constant_e1) a_n_list <- list( 'shared'=a_n_shared, 'e0'=a_n_e0, 'e1'=a_n_e1) # expect_no_error(Joint_Multiple_Events(df, events, name_list, term_n_list, tform_list, keep_constant_list, a_n_list)) }) test_that( "Joint data generation fill defaults, no error", { a <- c(0,0,0,1,1,1) b <- c(1,1,1,2,2,2) c <- c(0,1,2,2,1,0) d <- c(1,1,0,0,1,1) e <- c(0,1,1,1,0,0) df <- data.table( 't0'=a, 't1'=b, 'e0'=c, 'e1'=d, 'fac'=e) time1 <- "t0" time2 <- "t1" df$pyr <- df$t1 - df$t0 pyr <- "pyr" events <- c( 'e0', 'e1' ) names_e0 <- c( 'fac' ) names_e1 <- c( 'fac' ) names_shared <- c( 't0', 't0' ) term_n_e0 <- c(0) term_n_e1 <- c(0) term_n_shared <- c(0,0) tform_e0 <- c( "loglin" ) tform_e1 <- c( "loglin" ) tform_shared <- c( "quad_slope", "loglin_top" ) keep_constant_e0 <- c(0) keep_constant_e1 <- c(0) keep_constant_shared <- c(0,0) a_n_e0 <- c(-0.1) a_n_e1 <- c(0.1) a_n_shared <- c(0.001, -0.02) name_list <- list( 'shared'=names_shared, 'e0'=names_e0, 'e1'=names_e1) term_n_list <- list( 'shared'=term_n_shared, 'e0'=term_n_e0, 'e1'=term_n_e1) tform_list <- list( 'shared'=tform_shared, 'e0'=tform_e0, 'e1'=tform_e1) keep_constant_list <- list( 'shared'=keep_constant_shared, 'e0'=keep_constant_e0, 'e1'=keep_constant_e1) a_n_list <- list( 'shared'=a_n_shared, 'e0'=a_n_e0, 'e1'=a_n_e1) # expect_no_error(Joint_Multiple_Events(df, events, name_list, list(), list(), list(), list())) val <- Joint_Multiple_Events(df, events, name_list, list(), list(), list(), list()) expect_equal(val$term_n, rep(0,4)) expect_equal(val$tform, rep( 'loglin',4)) expect_equal(val$keep_constant, rep(0,4)) expect_equal(val$a_n, rep(0,4)) }) test_that( "Joint data generation, check results", { a <- c(0,0,0,1,1,1) b <- c(1,1,1,2,2,2) c <- c(0,1,2,2,1,0) d <- c(1,1,0,0,1,1) e <- c(0,1,1,1,0,0) df <- data.table( 't0'=a, 't1'=b, 'e0'=c, 'e1'=d, 'fac'=e) time1 <- "t0" time2 <- "t1" df$pyr <- df$t1 - df$t0 pyr <- "pyr" events <- c( 'e0', 'e1' ) names_e0 <- c( 'fac' ) names_e1 <- c( 'fac' ) names_shared <- c( 't0', 't0' ) term_n_e0 <- c(0) term_n_e1 <- c(0) term_n_shared <- c(0,0) tform_e0 <- c( "loglin" ) tform_e1 <- c( "loglin" ) tform_shared <- c( "quad_slope", "loglin_top" ) keep_constant_e0 <- c(0) keep_constant_e1 <- c(0) keep_constant_shared <- c(0,0) a_n_e0 <- c(-0.1) a_n_e1 <- c(0.1) a_n_shared <- c(0.001, -0.02) name_list <- list( 'shared'=names_shared, 'e0'=names_e0, 'e1'=names_e1) term_n_list <- list( 'shared'=term_n_shared, 'e0'=term_n_e0, 'e1'=term_n_e1) tform_list <- list( 'shared'=tform_shared, 'e0'=tform_e0, 'e1'=tform_e1) keep_constant_list <- list( 'shared'=keep_constant_shared, 'e0'=keep_constant_e0, 'e1'=keep_constant_e1) a_n_list <- list( 'shared'=a_n_shared, 'e0'=a_n_e0, 'e1'=a_n_e1) # val <- Joint_Multiple_Events(df, events, name_list, term_n_list, tform_list, keep_constant_list, a_n_list) expect_equal(val$names, c( "t0", "t0", "fac_e0", "fac_e1" )) expect_equal(names(val$df),c( 't0', 't1', 'events', 'e0', 'e1', 'fac', 'pyr', 'fac_e0', 'fac_e1' )) }) test_that( "Joint data regression, no error", { a <- c(0,0,0,1,1,1) b <- c(1,1,1,2,2,2) c <- c(0,1,2,2,1,0) d <- c(1,1,0,0,1,1) e <- c(0,1,1,1,0,0) f <- c(0,1,0,0,1,1) df <- data.table( 't0'=a, 't1'=b, 'e0'=c, 'e1'=d, 'fac'=e) time1 <- "t0" time2 <- "t1" df$pyr <- df$t1 - df$t0 pyr <- "pyr" events <- c( 'e0', 'e1' ) names_e0 <- c( 'fac' ) names_e1 <- c( 'fac' ) names_shared <- c( 't0', 't0' ) term_n_e0 <- c(0) term_n_e1 <- c(0) term_n_shared <- c(0,0) tform_e0 <- c( "loglin" ) tform_e1 <- c( "loglin" ) tform_shared <- c( "quad_slope", "loglin_top" ) keep_constant_e0 <- c(0) keep_constant_e1 <- c(0) keep_constant_shared <- c(0,0) a_n_e0 <- c(-0.1) a_n_e1 <- c(0.1) a_n_shared <- c(0.001, -0.02) name_list <- list( 'shared'=names_shared, 'e0'=names_e0, 'e1'=names_e1) term_n_list <- list( 'shared'=term_n_shared, 'e0'=term_n_e0, 'e1'=term_n_e1) tform_list <- list( 'shared'=tform_shared, 'e0'=tform_e0, 'e1'=tform_e1) keep_constant_list <- list( 'shared'=keep_constant_shared, 'e0'=keep_constant_e0, 'e1'=keep_constant_e1) a_n_list <- list( 'shared'=a_n_shared, 'e0'=a_n_e0, 'e1'=a_n_e1) der_iden <- 0 modelform <- "M" fir <- 0 control <- list( "ncores"=2, 'lr' = 0.75, 'maxiter' = 2, 'halfmax' = 5, 'epsilon' = 1e-3, 'dbeta_max' = 0.5, 'deriv_epsilon' = 1e-3, 'abs_max'=1.0, 'change_all'=TRUE, 'dose_abs_max'=100.0, 'verbose'=0, 'ties'='breslow', 'double_step'=1) guesses_control <- list( "maxiter"=10, "guesses"=10, "lin_min"=0.001, "lin_max"=1, "loglin_min"=-1, "loglin_max"=1, "lin_method"="uniform", "loglin_method"="uniform", strata=FALSE) strat_col <- 'f' expect_no_error(RunPoissonRegression_Joint_Omnibus(df, pyr, events, name_list, term_n_list, tform_list, keep_constant_list, a_n_list, modelform, fir, der_iden, control,strat_col) ) }) test_that( "Joint data regression, check results", { a <- c(0,0,0,1,1,1) b <- c(1,1,1,2,2,2) c <- c(0,1,2,2,1,0) d <- c(1,1,0,0,1,1) e <- c(0,1,1,1,0,0) f <- c(0,1,0,0,1,1) df <- data.table( 't0'=a, 't1'=b, 'e0'=c, 'e1'=d, 'fac'=e) time1 <- "t0" time2 <- "t1" df$pyr <- df$t1 - df$t0 pyr <- "pyr" events <- c( 'e0', 'e1' ) names_e0 <- c( 'fac' ) names_e1 <- c( 'fac' ) names_shared <- c( 't0', 't0' ) term_n_e0 <- c(0) term_n_e1 <- c(0) term_n_shared <- c(0,0) tform_e0 <- c( "loglin" ) tform_e1 <- c( "loglin" ) tform_shared <- c( "quad_slope", "loglin_top" ) keep_constant_e0 <- c(0) keep_constant_e1 <- c(0) keep_constant_shared <- c(0,0) a_n_e0 <- c(-0.1) a_n_e1 <- c(0.1) a_n_shared <- c(0.001, -0.02) name_list <- list( 'shared'=names_shared, 'e0'=names_e0, 'e1'=names_e1) term_n_list <- list( 'shared'=term_n_shared, 'e0'=term_n_e0, 'e1'=term_n_e1) tform_list <- list( 'shared'=tform_shared, 'e0'=tform_e0, 'e1'=tform_e1) keep_constant_list <- list( 'shared'=keep_constant_shared, 'e0'=keep_constant_e0, 'e1'=keep_constant_e1) a_n_list <- list( 'shared'=a_n_shared, 'e0'=a_n_e0, 'e1'=a_n_e1) der_iden <- 0 modelform <- "M" fir <- 0 control <- list( "ncores"=2, 'lr' = 0.75, 'maxiter' = 10, 'halfmax' = 5, 'epsilon' = 1e-3, 'dbeta_max' = 0.5, 'deriv_epsilon' = 1e-3, 'abs_max'=1.0, 'change_all'=TRUE, 'dose_abs_max'=100.0, 'verbose'=0, 'ties'='breslow', 'double_step'=1) guesses_control <- list( "maxiter"=10, "guesses"=10, "lin_min"=0.001, "lin_max"=1, "loglin_min"=-1, "loglin_max"=1, "lin_method"="uniform", "loglin_method"="uniform", strata=FALSE) strat_col <- 'f' e <- RunPoissonRegression_Joint_Omnibus(df, pyr, events, name_list, term_n_list, tform_list, keep_constant_list, a_n_list, modelform, fir, der_iden, control,strat_col) expect_equal(e$beta_0, c(0.5742600, -1.0349816, -0.0200000, -0.1647421),tolerance=1e-2) expect_equal(e$Converged,TRUE) }) ## ------------------------------------- ## ## Verify errors results ## ------------------------------------- ## test_that( "Joint data generation, incorrect length error", { a <- c(0,0,0,1,1,1) b <- c(1,1,1,2,2,2) c <- c(0,1,2,2,1,0) d <- c(1,1,0,0,1,1) e <- c(0,1,1,1,0,0) df <- data.table( 't0'=a, 't1'=b, 'e0'=c, 'e1'=d, 'fac'=e) time1 <- "t0" time2 <- "t1" df$pyr <- df$t1 - df$t0 pyr <- "pyr" events <- c( 'e0', 'e1' ) names_e0 <- c( 'fac' ) names_e1 <- c( 'fac' ) names_shared <- c( 't0', 't0' ) term_n_e0 <- c(0) term_n_e1 <- c(0) term_n_shared <- c(0,0) tform_e0 <- c( "loglin" ) tform_e1 <- c( "loglin" ) tform_shared <- c( "quad_slope", "loglin_top" ) keep_constant_e0 <- c(0) keep_constant_e1 <- c(0) keep_constant_shared <- c(0,0) a_n_e0 <- c(-0.1) a_n_e1 <- c(0.1) a_n_shared <- c(0.001, -0.02) # name_list <- list( 'shared'=names_shared, 'e0'=names_e0, 'e1'=names_e1) term_n_list <- list( 'shared'=term_n_shared, 'e0'=term_n_e0, 'e1'=term_n_e1) tform_list <- list( 'shared'=tform_shared, 'e0'=tform_e0, 'e1'=tform_e1) keep_constant_list <- list( 'shared'=keep_constant_shared, 'e0'=keep_constant_e0, 'e1'=keep_constant_e1) a_n_list <- list( 'shared'=a_n_shared, 'e0'=a_n_e0, 'e1'=a_n_e1) # term_n_list <- list( 'shared'=term_n_shared, 'e0'=term_n_e0, 'e1'=c(1,1,1,1,1,1)) expect_error(Joint_Multiple_Events(df, events, name_list, term_n_list, tform_list, keep_constant_list, a_n_list)) # term_n_list <- list( 'shared'=term_n_shared, 'e0'=term_n_e0, 'e1'=term_n_e1) tform_list <- list( 'shared'=tform_shared, 'e0'=tform_e0, 'e1'=c(1,1,1,1,1,1)) expect_error(Joint_Multiple_Events(df, events, name_list, term_n_list, tform_list, keep_constant_list, a_n_list)) # tform_list <- list( 'shared'=tform_shared, 'e0'=tform_e0, 'e1'=tform_e1) keep_constant_list <- list( 'shared'=keep_constant_shared, 'e0'=keep_constant_e0, 'e1'=c(1,1,1,1,1,1)) expect_error(Joint_Multiple_Events(df, events, name_list, term_n_list, tform_list, keep_constant_list, a_n_list)) # keep_constant_list <- list( 'shared'=keep_constant_shared, 'e0'=keep_constant_e0, 'e1'=keep_constant_e1) a_n_list <- list( 'shared'=a_n_shared, 'e0'=a_n_e0, 'e1'=c(1,1,1,1,1,1)) expect_error(Joint_Multiple_Events(df, events, name_list, term_n_list, tform_list, keep_constant_list, a_n_list)) })