# read_table ------------------------------------------------------------------- test_that("read_table silently reads ragged last column", { x <- read_table("foo bar\n1 2\n3 4\n5 6\n") expect_equal(x$foo, c(1, 3, 5)) }) test_that("read_table skips all comment lines", { x <- read_table("foo bar\n1 2\n3 4\n5 6\n") y <- read_table("#comment1\n#comment2\nfoo bar\n1 2\n3 4\n5 6\n", comment = "#") expect_equal(x[], y[], ignore_attr = FALSE) }) test_that("read_table can read from a pipe (552)", { x <- read_table(pipe("echo a b c && echo 1 2 3 && echo 4 5 6")) expect_equal(x$a, c(1, 4)) }) test_that("read_table can read a truncated file without crashing (740)", { expect_error( suppressWarnings( read_table(test_path("table-crash"), col_names = FALSE) ), NA ) }) # read_table2 ------------------------------------------------------------------- test_that("read_table silently reads ragged columns", { x <- read_table("foo bar\n1 2\n3 4\n5 6\n") expect_equal(x$foo, c(1, 3, 5)) }) test_that("read_table skips all comment lines", { x <- read_table("foo bar\n1 2\n3 4\n5 6\n") y <- read_table("#comment1\n#comment2\nfoo bar\n1 2\n3 4\n5 6\n", comment = "#") expect_equal(x[], y[]) }) test_that("read_table skips even more comment lines", { x <- read_table("foo bar\n1 2\n3 4\n5 6\n") y <- read_table("#comment1\n#comment2\nfoo bar # comment\n1 2 # comment\n3 4\n5 6\n #comment \n", comment = "#") expect_equal(x[], y[]) }) test_that("read_table can read from a pipe (552)", { x <- read_table(pipe("echo a b c && echo 1 2 3 && echo 4 5 6")) expect_equal(x$a, c(1, 4)) }) test_that("read_table does not duplicate header rows for leading whitespace (747)", { x <- read_table("\nfoo bar\n1 2") expect_equal(nrow(x), 1) expect_equal(x$foo, 1) }) test_that("read_table ignores blank lines at the end of a file (657)", { expect_warning(x <- read_table("x y\n1 2\n\n"), NA) expect_equal(nrow(x), 1) expect_equal(x$x, 1) }) test_that("read_table ignores unpaired quotes when skipping (#1180)", { res <- tibble::as_tibble(read_table('dummy"\nvar1 var2 var3\n1 2 3\n4 5 6\n', skip = 1)) expect_equal(res, tibble::tibble(var1 = c(1, 4), var2 = c(2, 5), var3 = c(3, 6))) })