# Setup ---- data <- mock_adat() data$a <- LETTERS[1:6L] data$d <- as.character(1:6) data$b <- paste0(data$a, "-", data$d) # Testing ---- test_that("separate() method produces expected output", { new <- separate(data, b, into = c("b", "c")) expect_s3_class(new, "soma_adat") expect_true(is_intact_attr(new)) expect_equal(class(new), class(data)) expect_equal(dim(new), dim(data) + c(0, 1L)) # 1 new column expect_true("c" %in% names(new)) expect_true("b" %in% names(new)) expect_equal(rownames(new), rownames(data)) expect_equal(new$a, new$b) expect_equal(new$c, new$d) expect_true(is.soma_adat(new)) }) test_that("lazy eval works identically among 3 main inputs for `col=`", { x <- separate(data, "b", into = c("b", "c")) # quoted string v <- "b" y <- separate(data, v, into = c("b", "c")) # variable z <- separate(data, b, into = c("b", "c")) # unquoted string expect_equal(x, y) expect_equal(x, z) expect_equal(y, z) }) test_that("unite() method produces expected output", { new <- unite(data, "combo", c("a", "d"), sep = "-") expect_s3_class(new, "soma_adat") expect_true(is_intact_attr(new)) expect_equal(class(new), class(data)) expect_equal(dim(new), dim(data) + c(0, -1L)) # 1 less column expect_true("combo" %in% names(new)) expect_false("a" %in% names(new)) expect_false("d" %in% names(new)) expect_equal(rownames(new), rownames(data)) expect_equal(new$combo, new$b) expect_true(is.soma_adat(new)) })