tests/testthat/test-visualize.R

context("Visualize results")

test_that("Visualize PCA", {
  data(decathlon, package = "FactoMineR")
  res_pca <- FactoMineR::PCA(decathlon, scale.unit = TRUE,
                             ind.sup = 1:5, quanti.sup = 11:12,
                             quali.sup = 13, graph = FALSE)

  # map
  map <- c("individuals", "variables", "eigenvalues")
  for (i in map) {
    expect_is(visualize(res_pca, map = i, axes = c(1, 2)), "ggplot")
  }
  expect_error(visualize(res_pca, map = "X"))

  # extra
  expect_is(visualize(res_pca, map = "ind", extra = "ind"), "ggplot")
  expect_is(visualize(res_pca, map = "var", extra = "quanti"), "ggplot")
  expect_is(visualize(res_pca, map = "var", extra = "quali"), "ggplot")
  expect_is(visualize(res_pca, map = "var", extra = c("quanti", "quali")), "ggplot")
  expect_error(visualize(res_pca, extra = "X"))

  # select
  expect_is(visualize(res_pca, map = "ind", select = 1:5), "ggplot")
  expect_is(visualize(res_pca, map = "ind", select = "cos2 0.1"), "ggplot")
  expect_error(visualize(res_pca, select = "X"))

  select_ind <- c("coord", "contrib", "cos2", "dist")
  for (i in select_ind) {
    expect_is(visualize(res_pca, extra = "ind", select = paste(i, 5)), "ggplot")
  }

  expect_is(visualize(res_pca, map = "variables", select = 1:5), "ggplot")
  select_var <- c("coord", "cos2", "contrib")
  for (i in select_var) {
    expect_is(visualize(res_pca, map = "variables", select = paste(i, 5)), "ggplot")
  }

  # group
  expect_is(visualize(res_pca, group = 13), "ggplot")
  expect_is(visualize(res_pca, group = rep(LETTERS, length.out = nrow(decathlon) - 5)), "ggplot")
  expect_error(visualize(res_pca, group = "X"))
  expect_error(visualize(res_pca, group = 1:5))
})

test_that("Visualize CA", {
  data(children, package = "FactoMineR")
  res_ca <- FactoMineR::CA(children, col.sup = 6:7, row.sup = 15:18,
                           quanti.sup = 8,
                           graph = FALSE)

  # map
  map <- c("rows", "columns")
  expect_is(visualize(res_ca, map = map, axes = c(1, 2)), "ggplot")
  for (i in map) {
    expect_is(visualize(res_ca, map = i, axes = c(1, 2)), "ggplot")
  }
  expect_error(visualize(res_ca, map = "X"))

  # extra
  expect_is(visualize(res_ca, map = "rows", extra = "rows"), "ggplot")
  expect_is(visualize(res_ca, map = "col", extra = "col"), "ggplot")
  expect_is(visualize(res_ca, map = "col", extra = "quanti"), "ggplot")

  # select
  expect_is(visualize(res_ca, map = "rows", select = 1:5), "ggplot")
  expect_is(visualize(res_ca, map = "rows", select = "cos2 0.1"), "ggplot")
  expect_error(visualize(res_ca, select = "X"))

  select_row <- c("coord", "contrib", "cos2", "inertia")
  for (i in select_row) {
    expect_is(visualize(res_ca, extra = "rows", select = paste(i, 5)), "ggplot")
  }

  expect_is(visualize(res_ca, map = "columns", select = 1:5), "ggplot")
  select_col <- c("coord", "cos2", "contrib", "inertia")
  for (i in select_col) {
    expect_is(visualize(res_ca, extra = "columns", select = paste(i, 5)), "ggplot")
  }

  # group
  expect_is(visualize(res_ca, group = 1), "ggplot")
  expect_is(visualize(res_ca, group = rep(LETTERS, length.out = nrow(children) - 4)), "ggplot")
  expect_error(visualize(res_ca, group = "X"))
  expect_error(visualize(res_ca, group = 1:5))

  # eigenvalues - not exported yet
  expect_is(plotEigenvalues(res_ca, variance = TRUE), "ggplot")
  expect_is(plotEigenvalues(res_ca, variance = FALSE), "ggplot")
})
nfrerebeau/FactoHelpeR documentation built on Nov. 5, 2019, 3:16 p.m.