# melt_table -------------------------------------------------------------------
test_that("melt_table silently reads ragged last column", {
withr::local_options(lifecycle_verbosity = "quiet")
x <- melt_table("foo bar\n1 2\n3 4\n5 6\n")
expect_equal(x$value[-1:-2], as.character(1:6))
})
test_that("melt_table skips all comment lines", {
withr::local_options(lifecycle_verbosity = "quiet")
x <- melt_table("foo bar\n1 2\n3 4\n5 6\n")
y <- melt_table("#comment1\n#comment2\nfoo bar\n1 2\n3 4\n5 6\n", comment = "#")
expect_equal(x, y)
})
test_that("missing lines are not skipped", {
withr::local_options(lifecycle_verbosity = "quiet")
# first
expect_equal(max(melt_table("a b\n\n\n12 34")$row), 4)
# middle
expect_equal(max(melt_table("a b\n12 34\n\n\n23 45")$row), 5)
# last (trailing \n is ignored)
expect_equal(max(melt_table("a b\n12 34\n\n\n")$row), 4)
})
test_that("melt_table can read from a pipe", {
withr::local_options(lifecycle_verbosity = "quiet")
x <- melt_table(pipe("echo a b c && echo 1 2 3 && echo 4 5 6"))
expect_equal(x$value[-1:-3], as.character(1:6))
})
test_that("melt_table can read a truncated file without crashing", {
withr::local_options(lifecycle_verbosity = "quiet")
expect_warning(expect_error(melt_table("table-crash"), NA))
})
test_that("melt_table returns an empty data.frame on an empty file", {
withr::local_options(lifecycle_verbosity = "quiet")
empty_df <- tibble::tibble(
row = double(), col = double(),
data_type = character(), value = character()
)
expect_true(all.equal(melt_table("empty-file"), empty_df))
})
# melt_table2 -------------------------------------------------------------------
test_that("melt_table2 silently reads ragged columns", {
withr::local_options(lifecycle_verbosity = "quiet")
x <- melt_table2("foo bar\n1 2\n3 4\n5 6\n")
expect_equal(x$value[-1:-2], as.character(1:6))
})
test_that("melt_table2 skips all comment lines", {
withr::local_options(lifecycle_verbosity = "quiet")
x <- melt_table2("foo bar\n1 2\n3 4\n5 6\n")
y <- melt_table2("#comment1\n#comment2\nfoo bar\n1 2\n3 4\n5 6\n", comment = "#")
expect_equal(x, y)
})
test_that("melt_table2 can read from a pipe", {
withr::local_options(lifecycle_verbosity = "quiet")
x <- melt_table2(pipe("echo a b c&& echo 1 2 3&& echo 4 5 6"))
expect_equal(x$value[-1:-3], as.character(1:6))
})
test_that("melt_table2 does not duplicate header rows for leading whitespace", {
withr::local_options(lifecycle_verbosity = "quiet")
x <- melt_table2("foo bar\n1 2\n")
expect_equal(nrow(x), 4L)
expect_equal(x$value[-1:-2], as.character(1:2))
})
test_that("melt_table2 ignores blank lines at the end of a file", {
withr::local_options(lifecycle_verbosity = "quiet")
expect_warning(x <- melt_table2("x y\n1 2\n\n"), NA)
expect_equal(nrow(x), 5L)
expect_equal(x$value[3:4], as.character(1:2))
})
test_that("melt_table2 returns an empty data.frame on an empty file", {
withr::local_options(lifecycle_verbosity = "quiet")
empty_df <- tibble::tibble(
row = double(), col = double(),
data_type = character(), value = character()
)
expect_true(all.equal(melt_table2("empty-file"), empty_df))
})
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.