test_that("all numeric", { expect_equal( vetiver_type_convert(mtcars, vctrs::vec_slice(mtcars, 0)), tibble::tibble(mtcars) ) }) test_that("NULL ptype, for save_ptype = FALSE", { expect_equal( vetiver_type_convert(chickwts, NULL), chickwts ) }) test_that("missing variables", { expect_snapshot_error( vetiver_type_convert(mtcars[,2:3], vctrs::vec_slice(mtcars, 0)), ) }) ## extra variables are caught by hardhat::scream() test_that("a factor", { chicks <- chickwts chicks$feed <- as.character(chicks$feed) expect_equal( vetiver_type_convert(chicks, vctrs::vec_slice(chickwts, 0)), tibble::tibble(chickwts) ) }) test_that("a factor plus a bad character", { teeth <- ToothGrowth teeth$supp <- as.character(teeth$supp) teeth$dose <- as.character(teeth$dose) expect_equal( vetiver_type_convert(teeth, vctrs::vec_slice(ToothGrowth, 0)), tibble::tibble(ToothGrowth) ) expect_snapshot_error( vetiver_type_convert(tibble::tibble(len = 4.2, supp = "ZZ", dose = 0.1), vctrs::vec_slice(ToothGrowth, 0)) ) }) test_that("a date", { many_dates <- tibble::tibble( x = as.Date("2021-01-01") + 0:10, y = as.Date("1980-02-14") + 0:10, z = as.POSIXct("1950-06-01", tz = "UTC") + 0:10 ) new_data <- tibble::tibble( x = "2021-01-15", y = "1980-03-01", z = "1950-06-01 00:00:15" ) bad_data <- tibble::tibble( x = "potato", y = "1980-03-01", z = "1950-06-01 00:00:15" ) expect_equal( vetiver_type_convert(new_data, vctrs::vec_slice(many_dates, 0)), tibble::tibble( x = as.Date("2021-01-15"), y = as.Date("1980-03-01"), z = as.POSIXct("1950-06-01 00:00:15", tz = "UTC") ) ) expect_snapshot_error( vetiver_type_convert(bad_data, vctrs::vec_slice(many_dates, 0)), ) })