test_that("col_select works", { expect_equal( colnames(vroom( vroom_example("mtcars.csv"), col_select = 1, col_types = list() )), "model" ) expect_equal( colnames(vroom( vroom_example("mtcars.csv"), col_select = 1:3, col_types = list() )), c("model", "mpg", "cyl") ) expect_equal( colnames(vroom( vroom_example("mtcars.csv"), col_select = c(1, 5, 7), col_types = list() )), c("model", "hp", "wt") ) expect_equal( colnames(vroom( vroom_example("mtcars.csv"), col_select = c("model", "hp", "wt"), col_types = list() )), c("model", "hp", "wt") ) expect_equal( colnames(vroom( vroom_example("mtcars.csv"), col_select = c(model:cyl), col_types = list() )), c("model", "mpg", "cyl") ) }) test_that("col_select with negations works", { expect_equal( colnames(vroom( vroom_example("mtcars.csv"), col_select = -1, col_types = list() )), c( "mpg", "cyl", "disp", "hp", "drat", "wt", "qsec", "vs", "am", "gear", "carb" ) ) expect_equal( colnames(vroom( vroom_example("mtcars.csv"), col_select = -(1:3), col_types = list() )), c("disp", "hp", "drat", "wt", "qsec", "vs", "am", "gear", "carb") ) expect_equal( colnames(vroom( vroom_example("mtcars.csv"), col_select = -c(1, 5, 7), col_types = list() )), c("mpg", "cyl", "disp", "drat", "qsec", "vs", "am", "gear", "carb") ) expect_equal( colnames(vroom( vroom_example("mtcars.csv"), col_select = -c(model, hp, wt), col_types = list() )), c("mpg", "cyl", "disp", "drat", "qsec", "vs", "am", "gear", "carb") ) }) test_that("col_select with renaming", { expect_equal( colnames(vroom( vroom_example("mtcars.csv"), col_select = c(car = model, everything()), col_types = list() )), c( "car", "mpg", "cyl", "disp", "hp", "drat", "wt", "qsec", "vs", "am", "gear", "carb" ) ) }) test_that("col_select works with vroom_fwf", { spec <- fwf_empty(test_path("fwf-trailing.txt")) expect_equal( colnames( vroom_fwf( test_path("fwf-trailing.txt"), spec, col_select = c(foo = X1, X2), col_types = list() ) ), c("foo", "X2") ) }) test_that("col_select can select the id column", { expect_named( vroom( vroom_example("mtcars.csv"), id = "path", col_select = c(model, mpg, path), col_types = list() ), c("model", "mpg", "path") ) expect_named( vroom( vroom_example("mtcars.csv"), id = "path", col_select = c(path, model, mpg), col_types = list() ), c("path", "model", "mpg") ) }) test_that("id column is automatically included in col_select (#416)", { expect_named( vroom( vroom_example("mtcars.csv"), id = "path", col_select = c(model, mpg), show_col_types = FALSE ), c("path", "model", "mpg") ) }) test_that("referencing columns by position in col_select works with id column (#455)", { expect_named( vroom( vroom_example("mtcars.csv"), id = "path", col_select = c(1:3), show_col_types = FALSE ), c("path", "model", "mpg", "cyl") ) expect_named( vroom( vroom_example("mtcars.csv"), id = "path", col_select = c(1:3, 6:8), show_col_types = FALSE ), c("path", "model", "mpg", "cyl", "drat", "wt", "qsec") ) }) test_that("col_select works with col_names = FALSE", { res <- vroom( I("foo\tbar\n1\t2\n"), col_names = FALSE, col_select = 1, col_types = list() ) expect_equal(res[[1]], c("foo", "1")) res2 <- vroom( I("foo\tbar\n1\t2\n"), col_names = FALSE, col_select = c(X2), col_types = list() ) expect_equal(res2[[1]], c("bar", "2")) })