test_that("general integration test works", {
input <- readRDS("test_dataset_who2007.rds")
check_with_survey(input)
})
test_that("sampling weights are considered correctly", {
input <- readRDS("test_dataset_who2007.rds")
set.seed(1)
sw <- runif(nrow(input)) / nrow(input)
check_with_survey(input, sampling_weights = sw)
})
test_that("clusters are considered correctly", {
input <- readRDS("test_dataset_who2007.rds")
set.seed(1)
cluster <- 1:nrow(input) %% 3
check_with_survey(input, cluster = cluster)
})
test_that("cluster and strata are considered correctly", {
input <- readRDS("test_dataset_who2007.rds")
cluster <- 1:nrow(input) %% 3
strata <- as.integer(input$sex == 1)
# implicitly tests nested cluster
check_with_survey(input, cluster = cluster, strata = strata)
})
test_that("strata are considered correctly", {
input <- readRDS("test_dataset_who2007.rds")
strata <- as.integer(input$sex == 1)
# implicitly tests nested cluster
check_with_survey(input, strata = strata)
})
test_that("age only between 60 and 229 is considered", {
input <- readRDS("test_dataset_who2007.rds")
input$agemons <- input$agemons * 2
input_filtered <- input[input$agemons >= 60 & input$agemons <= 228, ]
expect_warning(
res1 <- anthroplus_prevalence(
input$sex,
input$agemons,
input$oedema,
input$height,
input$weight
), "excluded"
)
res2 <- anthroplus_prevalence(
input_filtered$sex,
input_filtered$agemons,
input_filtered$oedema,
input_filtered$height,
input_filtered$weight
)
expect_equal(res1, res2)
})
test_that("Female/Male is used in groups, regardles of input coding", {
res <- anthroplus_prevalence(
c("1", "2", "f", "m"),
61:100,
"n",
100,
35
)
expect_equal(res$HAZ_pop[res$Group == "Sex: Female"], 20)
expect_equal(res$HAZ_pop[res$Group == "Sex: Male"], 20)
expect_true(
which(res$Group == "Sex: Female") <
which(res$Group == "Sex: Male")
)
})
test_that("it fails if sampling weights are negative", {
expect_error(
anthroplus_prevalence(
c("1", "2", "f", "m"),
61,
"n",
100,
35,
sw = c(1, 1, -1, 1)
)
)
})
test_that("it fails if all values are filtered out", {
expect_error(
anthroplus_prevalence(
1,
59,
"n",
100,
35,
), "age"
)
})
test_that("NA values in age are filtered out", {
expect_warning(
res <- anthroplus_prevalence(
c("1", "2", "f", "m"),
c(61, 61, NA_real_, 61),
"n",
100,
35
), "excluded"
)
expect_equal(res$HAZ_pop[res$Group == "All"], 3)
})
test_that("NA sampling weights are set to 0", {
expect_warning(
res <- anthroplus_prevalence(
c("1", "2", "f", "m"),
61,
"n",
100,
35,
sw = c(0.3, 0.3, NA_real_, 0.4)
),
"sampling weights"
)
res2 <- anthroplus_prevalence(
c("1", "2", "f", "m"),
61,
"n",
100,
35,
sw = c(0.3, 0.3, 0, 0.4)
)
expect_equal(res, res2)
})
test_that("Age groups are in completed years", {
res <- anthroplus_prevalence(
1,
61:228,
"n",
seq.int(100, 180, length.out = 168),
seq.int(35, 70, length.out = 168)
)
res <- res[grepl("Age Group 1", res$Group, fixed = TRUE), ]
expected_unwpop <- table(floor(61:228 / 12))
expect_equal(
res$HAZ_unwpop,
as.numeric(expected_unwpop)
)
})
test_that("oedema = y implies zscore = -3.1 for weight related indicators", {
res <- anthroplus_prevalence(
c("1", "2", "2", "1"),
61:100,
"y",
100,
35
)
# should still be counted in prevalence
expect_true(all(res$WAZ_unwpop[-(1:3)] >= 0))
expect_true(all(res$BMIZ_unwpop >= 0))
expect_true(sum(res$WAZ_unwpop[-(1:3)]) > 0)
expect_true(sum(res$BMIZ_unwpop) > 0)
# since all zscores for prevalence are -3.1, it should yield 100% everywhere
expect_equal(mean(res$WA_3_r, na.rm = TRUE), 100)
expect_equal(mean(res$WA_2_r, na.rm = TRUE), 100)
expect_equal(mean(res$WA_1_r, na.rm = TRUE), 100)
expect_equal(mean(res$BMI_3_r, na.rm = TRUE), 100)
expect_equal(mean(res$BMI_2_r, na.rm = TRUE), 100)
expect_equal(mean(res$BMI_1_r, na.rm = TRUE), 100)
# but the zscore based estimates should still be NA
expect_true(all(is.na(res$WA_r)))
expect_true(all(is.na(res$WA_se)))
expect_true(all(is.na(res$WA_ll)))
expect_true(all(is.na(res$WA_ul)))
expect_true(all(is.na(res$BMI_r)))
expect_true(all(is.na(res$BMI_se)))
expect_true(all(is.na(res$BMI_ll)))
expect_true(all(is.na(res$BMI_ul)))
})
test_that("oedema correction is only applied if age <= 120 for wfa", {
res <- anthroplus_prevalence(
c(1, 2, 1, 2, 1, 2),
150,
"y",
100,
60
)
expect_true(all(is.na(res[, "WA_3_r"])))
})
test_that("'all' and 'sex w/o age' results are NA for WFA indicator", {
res <- anthroplus_prevalence(
c("1", "2", "2", "1"),
61:100,
"n",
100,
35
)
wa_cols <- colnames(res)
wa_cols <- wa_cols[grepl("^WA", wa_cols)]
expect_true(
all(is.na(res[1:3, wa_cols, drop = TRUE]))
)
})
test_that("age in months = 228 is part of the age group", {
expect_false(is.na(prev_wider_age_groups(228)))
expect_false(is.na(prev_age_groups(228)))
})
test_that("age in months = 60 is part of the age group", {
expect_false(is.na(prev_wider_age_groups(60)))
expect_false(is.na(prev_age_groups(60)))
})
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.