library(testthat) library(AutoEDA) library(ggplot2) #========================================================== # PCA object #========================================================== pca <- pca_analysis(iris) #========================================================== # PCA Biplot #========================================================== test_that("pca_biplot returns ggplot", { skip_if_not_installed("factoextra") p <- pca_biplot(pca) expect_s3_class( p, "ggplot" ) }) test_that("pca_biplot returns non-NULL object", { skip_if_not_installed("factoextra") p <- pca_biplot(pca) expect_false( is.null(p) ) }) test_that("pca_biplot inherits gg class", { skip_if_not_installed("factoextra") p <- pca_biplot(pca) expect_true( inherits(p, "gg") ) }) #========================================================== # PCA Variable Plot #========================================================== test_that("pca_variable_plot returns ggplot", { skip_if_not_installed("factoextra") p <- pca_variable_plot(pca) expect_s3_class( p, "ggplot" ) }) test_that("pca_variable_plot returns non-NULL object", { skip_if_not_installed("factoextra") p <- pca_variable_plot(pca) expect_false( is.null(p) ) }) test_that("pca_variable_plot inherits gg class", { skip_if_not_installed("factoextra") p <- pca_variable_plot(pca) expect_true( inherits(p, "gg") ) }) #========================================================== # PCA Individual Plot #========================================================== test_that("pca_individual_plot returns ggplot", { skip_if_not_installed("factoextra") p <- pca_individual_plot(pca) expect_s3_class( p, "ggplot" ) }) test_that("pca_individual_plot returns non-NULL object", { skip_if_not_installed("factoextra") p <- pca_individual_plot(pca) expect_false( is.null(p) ) }) test_that("pca_individual_plot inherits gg class", { skip_if_not_installed("factoextra") p <- pca_individual_plot(pca) expect_true( inherits(p, "gg") ) }) #========================================================== # Invalid object #========================================================== test_that("pca_biplot rejects invalid object", { expect_error( pca_biplot(iris), "'pca' must be a PCAResult object." ) }) test_that("pca_variable_plot rejects invalid object", { expect_error( pca_variable_plot(iris), "'pca' must be a PCAResult object." ) }) test_that("pca_individual_plot rejects invalid object", { expect_error( pca_individual_plot(iris), "'pca' must be a PCAResult object." ) }) #========================================================== # NULL #========================================================== test_that("pca_biplot rejects NULL", { expect_error( pca_biplot(NULL) ) }) test_that("pca_variable_plot rejects NULL", { expect_error( pca_variable_plot(NULL) ) }) test_that("pca_individual_plot rejects NULL", { expect_error( pca_individual_plot(NULL) ) }) #========================================================== # Corrupted PCAResult #========================================================== test_that("pca_biplot rejects incomplete PCAResult", { skip_if_not_installed("factoextra") bad <- structure( list(), class = "PCAResult" ) expect_error( pca_biplot(bad) ) }) test_that("pca_variable_plot rejects incomplete PCAResult", { skip_if_not_installed("factoextra") bad <- structure( list(), class = "PCAResult" ) expect_error( pca_variable_plot(bad) ) }) test_that("pca_individual_plot rejects incomplete PCAResult", { skip_if_not_installed("factoextra") bad <- structure( list(), class = "PCAResult" ) expect_error( pca_individual_plot(bad) ) })