test_that("remove empty with character", { tmp <- data.frame( a = c(1, 2, 3, NA, 5), b = c(1, NA, 3, NA, 5), c = c(NA, NA, NA, NA, NA), d = c(1, NA, 3, NA, 5) ) expect_identical(empty_columns(tmp), c(c = 3L)) expect_identical(empty_rows(tmp), 4L) expect_identical(dim(remove_empty_columns(tmp)), c(5L, 3L)) expect_identical(dim(remove_empty_rows(tmp)), c(4L, 4L)) expect_identical(dim(remove_empty(tmp)), c(4L, 3L)) expect_snapshot(remove_empty_columns(tmp)) expect_snapshot(remove_empty_rows(tmp)) expect_snapshot(remove_empty(tmp)) }) test_that("remove empty columns with character", { tmp <- data.frame( a = c(1, 2, 3, NA, 5), b = c("", NA, "", NA, ""), c = c(NA, NA, NA, NA, NA), d = c(1, NA, 3, NA, 5), e = c("", "", "", "", ""), stringsAsFactors = FALSE ) expect_identical(empty_columns(tmp), c(b = 2L, c = 3L, e = 5L)) expect_identical(dim(remove_empty_columns(tmp)), c(5L, 2L)) expect_identical(dim(remove_empty(tmp)), c(4L, 2L)) }) test_that("remove empty rows with character", { tmp <- data.frame( a = c(1, "", 3, NA, 5), b = c("", NA, "", NA, ""), c = c(NA, NA, NA, NA, NA), d = c(1, NA, 3, NA, 5), e = c("", "", "", "", ""), f = factor(c("", "", "", "", "")), g = factor(c("", NA, "", NA, "")), stringsAsFactors = FALSE ) expect_identical(empty_rows(tmp), c(2L, 4L)) expect_identical(dim(remove_empty_rows(tmp)), c(3L, 7L)) expect_identical(dim(remove_empty(tmp)), c(3L, 2L)) }) test_that("empty_columns with only NA characters", { tmp <- data.frame( var1 = c(1, 1, 1), var2 = c(NA_character_, NA_character_, NA_character_) ) expect_identical(empty_columns(tmp), c(var2 = 2L)) }) test_that("works with non-ascii chars", { tmp <- data.frame( a = c(1, 2, 3, NA, 5), b = c("", NA, "", NA, ""), c = c(NA, NA, NA, NA, NA), d = c("test", "Se\x96ora", "works fine", "this too", "yeah"), e = c("", "", "", "", ""), stringsAsFactors = FALSE ) expect_identical(empty_columns(tmp), c(b = 2L, c = 3L, e = 5L)) })