tests/testthat/test-ggmice.R

# 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")))
})
amices/ggmice documentation built on July 28, 2024, 5:27 p.m.