library(testthat) library(recipes) n <- 20 set.seed(752) as_fact <- data.frame( numbers = rnorm(n), fact = factor(sample(letters[1:3], n, replace = TRUE)), ord = factor(sample(LETTERS[22:26], n, replace = TRUE), ordered = TRUE ) ) as_str <- as_fact as_str$fact <- as.character(as_str$fact) as_str$ord <- as.character(as_str$ord) test_that("strings_as_factors = FALSE", { rec1 <- recipe(~., data = as_fact) %>% step_center(numbers) rec1 <- prep(rec1, training = as_fact, strings_as_factors = FALSE, verbose = FALSE ) rec1_as_fact <- bake(rec1, new_data = as_fact) expect_snapshot(rec1_as_str <- bake(rec1, new_data = as_str)) expect_equal(as_fact$fact, rec1_as_fact$fact) expect_equal(as_fact$ord, rec1_as_fact$ord) expect_equal(as_str$fact, rec1_as_str$fact) expect_equal(as_str$ord, rec1_as_str$ord) }) test_that("strings_as_factors = TRUE", { rec2 <- recipe(~., data = as_fact) %>% step_center(numbers) rec2 <- prep(rec2, training = as_fact, strings_as_factors = TRUE, verbose = FALSE ) rec2_as_fact <- bake(rec2, new_data = as_fact) expect_snapshot(rec2_as_str <- bake(rec2, new_data = as_str)) expect_equal(as_fact$fact, rec2_as_fact$fact) expect_equal(as_fact$ord, rec2_as_fact$ord) expect_equal(as_fact$fact, rec2_as_str$fact) expect_equal(as_fact$ord, rec2_as_str$ord) })