# create test objects
dat <- dplyr::mutate(
mice::nhanes,
bmi = as.numeric(bmi),
hyp = as.factor(hyp),
age2 = as.character(age)
)
imp <- suppressWarnings(mice::mice(dat, printFlag = FALSE))
# tests
test_that("continuous data plot", {
expect_s3_class(ggmice(dat, ggplot2::aes(bmi)), "ggplot")
expect_s3_class(ggmice(imp, ggplot2::aes(bmi)), "ggplot")
expect_s3_class(ggmice(dat, ggplot2::aes(y = bmi)), "ggplot")
expect_s3_class(ggmice(imp, ggplot2::aes(y = bmi)), "ggplot")
})
test_that("categorical data plot", {
expect_s3_class(ggmice(dat, ggplot2::aes(hyp)), "ggplot")
expect_s3_class(ggmice(imp, ggplot2::aes(hyp)), "ggplot")
expect_s3_class(ggmice(dat, ggplot2::aes(age2)), "ggplot")
expect_s3_class(ggmice(imp, ggplot2::aes(age2)), "ggplot")
})
test_that("mixed data plot", {
expect_s3_class(ggmice(dat, ggplot2::aes(age, bmi)), "ggplot")
expect_s3_class(ggmice(imp, ggplot2::aes(age, bmi)), "ggplot")
expect_s3_class(ggmice(dat, ggplot2::aes(age, hyp)), "ggplot")
expect_s3_class(ggmice(imp, ggplot2::aes(age, hyp)), "ggplot")
expect_s3_class(ggmice(dat, ggplot2::aes(age, age2)), "ggplot")
expect_s3_class(ggmice(imp, ggplot2::aes(age, age2)), "ggplot")
})
test_that("complete data plot", {
expect_s3_class(ggmice(na.omit(dat), ggplot2::aes(bmi)), "ggplot")
imp2 <-
suppressWarnings(mice::mice(na.omit(dat), printFlag = FALSE, seed = 1))
expect_s3_class(ggmice(imp2, ggplot2::aes(bmi)), "ggplot")
})
test_that("incorrect data", {
expect_error(ggmice(NA))
expect_error(ggmice("test"))
expect_error(ggmice(as.matrix(dat)))
expect_error(ggmice(cbind(dat, dat), ggplot2::aes(bmi)))
})
test_that("advanced mapping", {
expect_error(ggmice(dat, ggplot2::aes(log(age))))
expect_error(ggmice(dat, ggplot2::aes(age3)))
expect_warning(ggmice(dat, ggplot2::aes(bmi, color = bmi)))
})
test_that("incorrect mapping", {
expect_error(ggmice(dat))
expect_error(ggmice(dat, ggplot2::aes(x = test)))
expect_error(ggmice(dat, ggplot2::aes(group = age)))
expect_error(ggmice(dat, ggplot2::aes("bmi")))
})
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.