context("test-features") www_usage <- as_tsibble(WWWusage) lung_deaths_long <- as_tsibble(cbind(mdeaths, fdeaths)) lung_deaths_wide <- as_tsibble(cbind(mdeaths, fdeaths), pivot_longer = FALSE) first <- function(x) c(first = x[1]) last <- function(x) c(last = x[length(x)]) test_that("features()", { expect_error( features(lung_deaths_wide, vars(mdeaths, fdeaths), first), "only supports a single variable" ) expect_message( features(lung_deaths_wide, features = list(first, last)), "Feature variable not specified, automatically selected \\`.var = mdeaths\\`" ) %>% colnames() %>% expect_equal(c("first", "last")) features(lung_deaths_wide, mdeaths, features = list(a = mean, b = min, max)) %>% colnames() %>% expect_equal(c("a", "b", "...3")) }) test_that("Scoped variants of features()", { ft_at <- features_at(lung_deaths_wide, vars(mdeaths:fdeaths), list(first, last)) expect_equal( substr(colnames(ft_at), 1, 7), c(rep("mdeaths", 2), rep("fdeaths", 2)) ) ft_if <- features_if(lung_deaths_wide, is.numeric, list(first, last)) expect_identical( ft_at, ft_if ) ft_all <- features_all(lung_deaths_wide, list(first, last)) expect_identical( ft_if, ft_all ) })