diff --git a/tests/testthat/test-smk-mdPatternDS.R b/tests/testthat/test-smk-mdPatternDS.R index 33e65055..f00feb84 100644 --- a/tests/testthat/test-smk-mdPatternDS.R +++ b/tests/testthat/test-smk-mdPatternDS.R @@ -18,14 +18,80 @@ context("mdPatternDS::smk::setup") # Tests # -context("mdPatternDS::smk::sample data.frame") -test_that("mdPatternDS: sample data.frame", { +context("mdPatternDS::smk::sample complete data.frame") +test_that("mdPatternDS: sample complete data.frame", { x_val <- data.frame(v1 = c(0.0, 1.0, 2.0, 3.0, 4.0), v2 = c(4.0, 3.0, 2.0, 1.0, 0.0)) x <- "x_val" res <- mdPatternDS(x) expect_length(res, 3) + expect_length(class(res), 1) + expect_true(all(class(res) %in% c("list"))) + expect_length(class(res$pattern), 2) + expect_true(all(class(res$pattern) %in% c("matrix", "array"))) + + expect_length(colnames(res$pattern), 3) + expect_equal(colnames(res$pattern)[1], "v1") + expect_equal(colnames(res$pattern)[2], "v2") + expect_equal(colnames(res$pattern)[3], "") + expect_length(rownames(res$pattern), 2) + expect_equal(rownames(res$pattern)[1], "5") + expect_equal(rownames(res$pattern)[2], "") + + expect_equal(res$pattern[1, 1], 1) + expect_equal(res$pattern[1, 2], 1) + expect_equal(res$pattern[1, 3], 0) + expect_equal(res$pattern[2, 1], 0) + expect_equal(res$pattern[2, 2], 0) + expect_equal(res$pattern[2, 3], 0) + + expect_length(class(res$valid), 1) + expect_true(all(class(res$valid) %in% c("logical"))) + expect_true(res$valid) + expect_length(class(res$message), 1) + expect_true(all(class(res$message) %in% c("character"))) + expect_equal(res$message, "Valid: all pattern counts meet disclosure requirements") +}) + +context("mdPatternDS::smk::sample incomplete data.frame") +test_that("mdPatternDS: sample incomplete data.frame", { + x_val <- data.frame(v1 = c(0.0, NA, 2.0, 3.0, 4.0), v2 = c(4.0, 3.0, 2.0, 1.0, 0.0)) + x <- "x_val" + + res <- mdPatternDS(x) + + expect_length(res, 3) + expect_length(class(res), 1) + expect_true(all(class(res) %in% c("list"))) + expect_length(class(res$pattern), 2) + expect_true(all(class(res$pattern) %in% c("matrix", "array"))) + + expect_length(colnames(res$pattern), 3) + expect_equal(colnames(res$pattern)[1], "v2") + expect_equal(colnames(res$pattern)[2], "v1") + expect_equal(colnames(res$pattern)[3], "") + expect_length(rownames(res$pattern), 3) + expect_equal(rownames(res$pattern)[1], "4") + expect_equal(rownames(res$pattern)[2], "1") + expect_equal(rownames(res$pattern)[3], "") + + expect_equal(res$pattern[1, 1], 1) + expect_equal(res$pattern[1, 2], 1) + expect_equal(res$pattern[1, 3], 0) + expect_equal(res$pattern[2, 1], 1) + expect_equal(res$pattern[2, 2], 0) + expect_equal(res$pattern[2, 3], 1) + expect_equal(res$pattern[3, 1], 0) + expect_equal(res$pattern[3, 2], 1) + expect_equal(res$pattern[3, 3], 1) + + expect_length(class(res$valid), 1) + expect_true(all(class(res$valid) %in% c("logical"))) + expect_true(res$valid) + expect_length(class(res$message), 1) + expect_true(all(class(res$message) %in% c("character"))) + expect_equal(res$message, "Valid: all pattern counts meet disclosure requirements") }) #