Nothing
#' @title Testing summary: SuperLeaner & k_split
#' @section Last Updated By:
#' Yongqi Zhong
#' @section Last Update Date:
#' 2020/08/09
test_that("AIPW summary: SuperLeaner & k_split", {
require(SuperLearner)
##k_split == 1: no cross-fitting
vec <- function() sample(0:1,100,replace = T)
sl.lib <- c("SL.mean","SL.glm")
aipw <- AIPW$new(Y=vec(),
A=vec(),
W.Q =vec(),
W.g =vec(),
Q.SL.library=sl.lib,
g.SL.library=sl.lib,
k_split = 1,verbose = TRUE,
save.sl.fit = TRUE)
#correctly print output
expect_output(aipw$fit()$summary(), regexp = "Estimate")
#check any null values after calculating results
expect_false(any(sapply(aipw$estimates, is.null)))
expect_false(any(sapply(aipw$libs, is.null)))
expect_false(any(sapply(aipw$obs_est, is.null)))
expect_false(is.null(aipw$result))
##k_split >0: cross-fitting == k_split
aipw <- AIPW$new(Y=vec(),
A=vec(),
W.Q =vec(),
W.g =vec(),
Q.SL.library=sl.lib,
g.SL.library=sl.lib,
k_split = 3,verbose = TRUE,
save.sl.fit = TRUE)
#correctly print output
expect_output(aipw$fit()$summary(), regexp = "Estimate")
#check any null values after calculating results
expect_false(any(sapply(aipw$estimates, is.null)))
expect_false(any(sapply(aipw$libs, is.null)))
expect_false(any(sapply(aipw$obs_est, is.null)))
expect_false(is.null(aipw$result))
})
#' @title Testing summary: verbose
#' @section Last Updated By:
#' Yongqi Zhong
#' @section Last Update Date:
#' 2020/05/22
test_that("AIPW summary: verbose", {
require(SuperLearner)
vec <- function() sample(0:1,100,replace = T)
sl.lib <- c("SL.mean","SL.glm")
##verbose==False
aipw <- AIPW$new(Y=vec(),
A=vec(),
W.Q =vec(),
W.g =vec(),
Q.SL.library=sl.lib,
g.SL.library=sl.lib,
k_split = 1,verbose = FALSE)
expect_equal(capture.output(aipw$fit()$summary()),character(0))
})
#' @title Testing summary: g.bound input
#' @section Last Updated By:
#' Yongqi Zhong
#' @section Last Update Date:
#' 2021/01/26
test_that("Testing summary: g.bound input", {
require(SuperLearner)
vec <- function() sample(0:1,100,replace = T)
sl.lib <- c("SL.mean","SL.glm")
aipw <- AIPW$new(Y=vec(),
A=vec(),
W.Q =vec(),
W.g =vec(),
Q.SL.library=sl.lib,
g.SL.library=sl.lib,
k_split = 1,verbose = FALSE)$fit()
#Check error messages
expect_warning(aipw$summary(c(0.1,0.2,0.3)),
info = "More than two g.bound are provided. Only the first two will be used.")
expect_equal(aipw$.__enclos_env__$private$g.bound, c(0.1,0.2))
expect_error(aipw$summary(0.5),
info = "g.bound >= 0.5 is not allowed when only one g.bound value is provided")
expect_error(aipw$summary("C"),
info = "g.bound must be numeric")
expect_error(aipw$summary(-1),
info = "g.bound must between 0 and 1")
expect_error(aipw$summary(1),
info = "g.bound must between 0 and 1")
})
#' @title Testing summary: continuous outcome reporting
#' @section Last Updated By:
#' Yongqi Zhong
#' @section Last Update Date:
#' 2021/03/24
test_that("AIPW summary: continuous outcome", {
require(SuperLearner)
##k_split == 1: no cross-fitting
vec <- function() sample(0:1,100,replace = T)
sl.lib <- c("SL.mean","SL.glm")
##verbose==False
aipw <- AIPW$new(Y=rnorm(100,10),
A=vec(),
W =vec(),
Q.SL.library=sl.lib,
g.SL.library=sl.lib,
k_split = 1,verbose = FALSE)$fit()$summary()
#check results with RR and OR
expect_equal(nrow(aipw$result),3)
})
#' @title Testing summary: missing outcome reporting (N)
#' @section Last Updated By:
#' Yongqi Zhong
#' @section Last Update Date:
#' 2021/03/24
test_that("AIPW summary: missing outcome", {
require(SuperLearner)
##k_split == 1: no cross-fitting
vec <- function() sample(0:1,100,replace = T)
sl.lib <- c("SL.mean","SL.glm")
##verbose==False
expect_warning(aipw <- AIPW$new(Y=c(NA,vec()[2:100]),
A=c(1,vec()[2:100]),
W =vec(),
Q.SL.library=sl.lib,
g.SL.library=sl.lib,
k_split = 1,verbose = FALSE)$fit()$summary())
#Check N reporting
expect_equal(aipw$result[3,5], 100)
})
#' @title Testing summary: ATT reporting
#' @section Last Updated By:
#' Yongqi Zhong
#' @section Last Update Date:
#' 2021/03/17
test_that("AIPW summary: continuous outcome", {
require(SuperLearner)
set.seed(123)
vec <- function() sample(0:1,100,replace = T)
sl.lib <- c("SL.mean","SL.glm")
aipw <- AIPW$new(Y=vec(),
A=vec(),
W.Q =vec(),
W.g =vec(),
Q.SL.library=sl.lib,
g.SL.library=sl.lib,
k_split = 1,verbose = FALSE)
expect_warning(aipw$stratified_fit()$summary())
#check results with RR and OR
expect_equal(nrow(aipw$result),7)
})
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.