diff --git a/tests/testthat/test-ard_categorical_ci.data.frame.R b/tests/testthat/test-ard_categorical_ci.data.frame.R index ad7886bf..1df1411a 100644 --- a/tests/testthat/test-ard_categorical_ci.data.frame.R +++ b/tests/testthat/test-ard_categorical_ci.data.frame.R @@ -428,3 +428,78 @@ test_that("ard_continuous_ci.data.frame() NA handling", { proportion_ci_wald((df$am == 0) + (df$cyl == 4) > 1) ) }) + +test_that("ard_categorical_ci(method = 'strat_wilson') NA handling", { + + # no NAs + rsp <- c( + sample(c(TRUE, FALSE), size = 40, prob = c(3 / 4, 1 / 4), replace = TRUE), + sample(c(TRUE, FALSE), size = 40, prob = c(1 / 2, 1 / 2), replace = TRUE) + ) + grp <- factor(rep(c("A", "B"), each = 40), levels = c("B", "A")) + strata_data <- data.frame( + "f1" = sample(c("a", "b"), 80, TRUE), + "f2" = sample(c("x", "y", "z"), 80, TRUE), + stringsAsFactors = TRUE + ) + + weights <- 1:6 / sum(1:6) + + # data with NA values + + strata_na <- rbind(strata_data, data.frame(f1 = c(NA, NA), f2 = c(NA, NA))) + rsp_na <- c(rsp, NA,NA) + weights_na <- c(weights, NA, NA) + + # NA in the strata + expect_equal( + ard_categorical_ci( + data = data.frame( + rsp = rsp, + strata = interaction(strata_data) + ), + variables = rsp, + strata = strata, + weights = weights, + max.iterations = 10, + method = "strat_wilson" + ) , + ard_categorical_ci( + data = data.frame( + rsp = rsp_na, + strata = interaction(strata_na) + ), + variables = rsp, + strata = strata, + weights = weights, + max.iterations = 10, + method = "strat_wilson" + ) + ) + + # NA in weights + expect_equal( + ard_categorical_ci( + data = data.frame( + rsp = rsp, + strata = interaction(strata_data) + ), + variables = rsp, + strata = strata, + weights = weights, + max.iterations = 10, + method = "strat_wilson" + ) , + ard_categorical_ci( + data = data.frame( + rsp = rsp_na, + strata = interaction(strata_na) + ), + variables = rsp, + strata = strata, + weights = weights_na, + max.iterations = 10, + method = "strat_wilson" + ) + ) +})