# ============================================================ # Tests for Polytomous Biclustering plot functions (v1.10.0+) # plotFCRP_gg, plotFCBR_gg, plotScoreField_gg # ratedBiclustering support added for v1.1.0 # ============================================================ # --- plotFCRP_gg --- test_that("plotFCRP_gg returns ggplot for ordinal Biclustering", { skip_if_not_installed("exametrika") skip_if(is.null(fixture_ordBiclust), "ordinal Biclustering fixture not available") result <- plotFCRP_gg(fixture_ordBiclust) expect_s3_class(result, "gg") }) test_that("plotFCRP_gg returns ggplot for nominal Biclustering", { skip_if_not_installed("exametrika") skip_if(is.null(fixture_nomBiclust), "nominal Biclustering fixture not available") result <- plotFCRP_gg(fixture_nomBiclust) expect_s3_class(result, "gg") }) test_that("plotFCRP_gg style parameter works", { skip_if_not_installed("exametrika") skip_if(is.null(fixture_ordBiclust), "ordinal Biclustering fixture not available") expect_s3_class(plotFCRP_gg(fixture_ordBiclust, style = "line"), "gg") expect_s3_class(plotFCRP_gg(fixture_ordBiclust, style = "bar"), "gg") }) test_that("plotFCRP_gg common options work", { skip_if_not_installed("exametrika") skip_if(is.null(fixture_ordBiclust), "ordinal Biclustering fixture not available") expect_s3_class(plotFCRP_gg(fixture_ordBiclust, title = FALSE), "gg") expect_s3_class(plotFCRP_gg(fixture_ordBiclust, title = "Custom FCRP"), "gg") expect_s3_class(plotFCRP_gg(fixture_ordBiclust, show_legend = FALSE), "gg") expect_s3_class(plotFCRP_gg(fixture_ordBiclust, legend_position = "bottom"), "gg") }) test_that("plotFCRP_gg rejects invalid input", { expect_error(plotFCRP_gg(NULL)) expect_error(plotFCRP_gg(data.frame(x = 1))) # Binary Biclustering should fail (requires 3+ categories) skip_if_not_installed("exametrika") skip_if(is.null(fixture_Biclust), "Biclustering fixture not available") expect_error(plotFCRP_gg(fixture_Biclust)) }) # --- plotFCBR_gg --- test_that("plotFCBR_gg returns ggplot for ordinal Biclustering", { skip_if_not_installed("exametrika") skip_if(is.null(fixture_ordBiclust), "ordinal Biclustering fixture not available") result <- plotFCBR_gg(fixture_ordBiclust) expect_s3_class(result, "gg") }) test_that("plotFCBR_gg fields parameter works", { skip_if_not_installed("exametrika") skip_if(is.null(fixture_ordBiclust), "ordinal Biclustering fixture not available") result <- plotFCBR_gg(fixture_ordBiclust, fields = 1) expect_s3_class(result, "gg") }) test_that("plotFCBR_gg common options work", { skip_if_not_installed("exametrika") skip_if(is.null(fixture_ordBiclust), "ordinal Biclustering fixture not available") expect_s3_class(plotFCBR_gg(fixture_ordBiclust, title = FALSE), "gg") expect_s3_class(plotFCBR_gg(fixture_ordBiclust, title = "Custom FCBR"), "gg") expect_s3_class(plotFCBR_gg(fixture_ordBiclust, show_legend = FALSE), "gg") expect_s3_class(plotFCBR_gg(fixture_ordBiclust, legend_position = "top"), "gg") }) test_that("plotFCBR_gg rejects invalid input", { expect_error(plotFCBR_gg(NULL)) expect_error(plotFCBR_gg(data.frame(x = 1))) }) # --- plotScoreField_gg --- test_that("plotScoreField_gg returns ggplot for ordinal Biclustering", { skip_if_not_installed("exametrika") skip_if(is.null(fixture_ordBiclust), "ordinal Biclustering fixture not available") result <- plotScoreField_gg(fixture_ordBiclust) expect_s3_class(result, "gg") }) test_that("plotScoreField_gg returns ggplot for nominal Biclustering", { skip_if_not_installed("exametrika") skip_if(is.null(fixture_nomBiclust), "nominal Biclustering fixture not available") result <- plotScoreField_gg(fixture_nomBiclust) expect_s3_class(result, "gg") }) test_that("plotScoreField_gg show_values parameter works", { skip_if_not_installed("exametrika") skip_if(is.null(fixture_ordBiclust), "ordinal Biclustering fixture not available") expect_s3_class(plotScoreField_gg(fixture_ordBiclust, show_values = TRUE), "gg") expect_s3_class(plotScoreField_gg(fixture_ordBiclust, show_values = FALSE), "gg") }) test_that("plotScoreField_gg common options work", { skip_if_not_installed("exametrika") skip_if(is.null(fixture_ordBiclust), "ordinal Biclustering fixture not available") expect_s3_class(plotScoreField_gg(fixture_ordBiclust, title = FALSE), "gg") expect_s3_class(plotScoreField_gg(fixture_ordBiclust, title = "Custom ScoreField"), "gg") expect_s3_class(plotScoreField_gg(fixture_ordBiclust, show_legend = FALSE), "gg") expect_s3_class(plotScoreField_gg(fixture_ordBiclust, legend_position = "bottom"), "gg") expect_s3_class(plotScoreField_gg(fixture_ordBiclust, text_size = 5), "gg") }) test_that("plotScoreField_gg rejects invalid input", { expect_error(plotScoreField_gg(NULL)) expect_error(plotScoreField_gg(data.frame(x = 1))) # Binary Biclustering should fail (requires 3D FRP) skip_if_not_installed("exametrika") skip_if(is.null(fixture_Biclust), "Biclustering fixture not available") expect_error(plotScoreField_gg(fixture_Biclust)) }) # ============================================================ # --- ratedBiclustering support tests --- # ============================================================ test_that("plotFCRP_gg returns ggplot for rated Biclustering", { skip_if_not_installed("exametrika") skip_if(is.null(fixture_ratedBiclust), "rated Biclustering fixture not available") result <- plotFCRP_gg(fixture_ratedBiclust) expect_s3_class(result, "gg") }) test_that("plotFCRP_gg bar style works for rated Biclustering", { skip_if_not_installed("exametrika") skip_if(is.null(fixture_ratedBiclust), "rated Biclustering fixture not available") result <- plotFCRP_gg(fixture_ratedBiclust, style = "bar") expect_s3_class(result, "gg") }) test_that("plotScoreField_gg returns ggplot for rated Biclustering", { skip_if_not_installed("exametrika") skip_if(is.null(fixture_ratedBiclust), "rated Biclustering fixture not available") result <- plotScoreField_gg(fixture_ratedBiclust) expect_s3_class(result, "gg") }) test_that("plotFRP_gg returns ggplot for rated Biclustering", { skip_if_not_installed("exametrika") skip_if(is.null(fixture_ratedBiclust), "rated Biclustering fixture not available") result <- plotFRP_gg(fixture_ratedBiclust) expect_s3_class(result, "gg") }) test_that("plotTRP_gg returns ggplot for rated Biclustering", { skip_if_not_installed("exametrika") skip_if(is.null(fixture_ratedBiclust), "rated Biclustering fixture not available") result <- plotTRP_gg(fixture_ratedBiclust) expect_s3_class(result, "gg") }) test_that("plotRRV_gg returns ggplot for rated Biclustering", { skip_if_not_installed("exametrika") skip_if(is.null(fixture_ratedBiclust), "rated Biclustering fixture not available") result <- plotRRV_gg(fixture_ratedBiclust) expect_s3_class(result, "gg") }) test_that("plotCRV_gg returns ggplot for rated Biclustering", { skip_if_not_installed("exametrika") skip_if(is.null(fixture_ratedBiclust), "rated Biclustering fixture not available") result <- plotCRV_gg(fixture_ratedBiclust) expect_s3_class(result, "gg") }) test_that("plotArray_gg returns output for rated Biclustering", { skip_if_not_installed("exametrika") skip_if(is.null(fixture_ratedBiclust), "rated Biclustering fixture not available") result <- plotArray_gg(fixture_ratedBiclust) expect_true(!is.null(result)) }) test_that("plotRMP_gg returns list of ggplots for rated Biclustering", { skip_if_not_installed("exametrika") skip_if(is.null(fixture_ratedBiclust), "rated Biclustering fixture not available") result <- plotRMP_gg(fixture_ratedBiclust) expect_type(result, "list") expect_s3_class(result[[1]], "gg") }) test_that("plotLRD_gg returns ggplot for rated Biclustering", { skip_if_not_installed("exametrika") skip_if(is.null(fixture_ratedBiclust), "rated Biclustering fixture not available") result <- plotLRD_gg(fixture_ratedBiclust) expect_s3_class(result, "gg") })