1library(recipes) 2library(testthat) 3 4# ------------------------------------------------------------------------------ 5 6n <- 200 7 8set.seed(8575) 9ex_dat <- data.frame( 10 w = sample(letters[1:3], size = n, replace = TRUE), 11 x = rnorm(n), 12 z = rep(1:10, each = 20) 13) 14 15rec <- recipe(~ ., data = ex_dat) 16 17test_that('basic functionality', { 18 ex_1 <- rec %>% 19 step_num2factor(z, levels = rev(LETTERS[1:10])) %>% 20 prep(ex_dat) %>% 21 juice() 22 expect_true(inherits(ex_1$w, "factor")) 23 expect_true(inherits(ex_1$x, "numeric")) 24 expect_true(inherits(ex_1$z, "factor")) 25 expect_equal(levels(ex_1$z), rev(LETTERS[1:10])) 26 27 ex_2 <- rec %>% 28 step_num2factor(z, ordered = TRUE, levels = rev(LETTERS[1:10])) %>% 29 prep(ex_dat) %>% 30 juice 31 expect_true(inherits(ex_2$w, "factor")) 32 expect_true(inherits(ex_2$x, "numeric")) 33 expect_true(inherits(ex_2$z, "ordered")) 34 expect_equal(levels(ex_1$z), rev(LETTERS[1:10])) 35}) 36 37test_that('bad args', { 38 expect_error( 39 rec %>% 40 step_num2factor(w, x, levels = c("one", "two")) %>% 41 prep(ex_dat), 42 "All columns selected for the step should be numeric" 43 ) 44 expect_error( 45 rec %>% 46 step_num2factor(w, x) %>% 47 prep(ex_dat), 48 "Please provide a character vector of" 49 ) 50}) 51 52 53test_that('printing', { 54 ex_3 <- rec %>% 55 step_num2factor(z, levels = letters) %>% 56 prep(ex_dat, strings_as_factors = FALSE) 57 expect_output(print(ex_3)) 58 expect_output(prep(ex_3, training = ex_dat, verbose = TRUE)) 59}) 60 61 62