Nothing
# --- write_csv tests ---
test_that("write_csv from node round-trips all types", {
df <- data.frame(a = c(1L, 2L, 3L), b = c(1.5, 2.5, 3.5),
c = c(TRUE, FALSE, TRUE),
d = c("x", "y", "z"), stringsAsFactors = FALSE)
f <- tempfile(fileext = ".vtr")
csv <- tempfile(fileext = ".csv")
on.exit(unlink(c(f, csv)))
write_vtr(df, f)
tbl(f) |> write_csv(csv)
result <- read.csv(csv, stringsAsFactors = FALSE)
expect_equal(result$a, c(1, 2, 3))
expect_equal(result$b, c(1.5, 2.5, 3.5))
expect_equal(result$c, c(TRUE, FALSE, TRUE))
expect_equal(result$d, c("x", "y", "z"))
})
test_that("write_csv handles NAs", {
df <- data.frame(a = c(1L, NA, 3L), b = c(NA, 2.5, NA),
c = c(TRUE, NA, FALSE),
d = c(NA, "y", NA), stringsAsFactors = FALSE)
f <- tempfile(fileext = ".vtr")
csv <- tempfile(fileext = ".csv")
on.exit(unlink(c(f, csv)))
write_vtr(df, f)
tbl(f) |> write_csv(csv)
result <- read.csv(csv, stringsAsFactors = FALSE)
expect_true(is.na(result$a[2]))
expect_true(is.na(result$b[1]))
expect_true(is.na(result$c[2]))
expect_true(is.na(result$d[1]))
expect_equal(result$a[1], 1)
expect_equal(result$d[2], "y")
})
test_that("write_csv quotes strings with commas", {
df <- data.frame(x = c("a,b", "c\"d", "normal"), stringsAsFactors = FALSE)
f <- tempfile(fileext = ".vtr")
csv <- tempfile(fileext = ".csv")
on.exit(unlink(c(f, csv)))
write_vtr(df, f)
tbl(f) |> write_csv(csv)
result <- read.csv(csv, stringsAsFactors = FALSE)
expect_equal(result$x, c("a,b", "c\"d", "normal"))
})
test_that("write_csv quotes strings with newlines", {
df <- data.frame(x = c("line1\nline2", "ok"), stringsAsFactors = FALSE)
f <- tempfile(fileext = ".vtr")
csv <- tempfile(fileext = ".csv")
on.exit(unlink(c(f, csv)))
write_vtr(df, f)
tbl(f) |> write_csv(csv)
result <- read.csv(csv, stringsAsFactors = FALSE)
expect_equal(result$x, c("line1\nline2", "ok"))
})
test_that("write_csv from data.frame works", {
df <- data.frame(a = c(1.0, 2.0), b = c("x", "y"), stringsAsFactors = FALSE)
csv <- tempfile(fileext = ".csv")
on.exit(unlink(csv))
write_csv(df, csv)
result <- read.csv(csv, stringsAsFactors = FALSE)
expect_equal(result$a, c(1, 2))
expect_equal(result$b, c("x", "y"))
})
test_that("write_csv streams after filter", {
df <- data.frame(x = 1:10, y = letters[1:10], stringsAsFactors = FALSE)
f <- tempfile(fileext = ".vtr")
csv <- tempfile(fileext = ".csv")
on.exit(unlink(c(f, csv)))
write_vtr(df, f)
tbl(f) |> filter(x > 7) |> write_csv(csv)
result <- read.csv(csv, stringsAsFactors = FALSE)
expect_equal(nrow(result), 3)
expect_equal(result$y, c("h", "i", "j"))
})
test_that("write_csv streams after mutate", {
df <- data.frame(x = c(1.0, 2.0, 3.0))
f <- tempfile(fileext = ".vtr")
csv <- tempfile(fileext = ".csv")
on.exit(unlink(c(f, csv)))
write_vtr(df, f)
tbl(f) |> mutate(y = x * 10) |> write_csv(csv)
result <- read.csv(csv, stringsAsFactors = FALSE)
expect_equal(result$y, c(10, 20, 30))
})
test_that("write_csv streams after summarise", {
df <- data.frame(g = c("a", "a", "b"), v = c(1.0, 2.0, 3.0),
stringsAsFactors = FALSE)
f <- tempfile(fileext = ".vtr")
csv <- tempfile(fileext = ".csv")
on.exit(unlink(c(f, csv)))
write_vtr(df, f)
tbl(f) |> group_by(g) |> summarise(s = sum(v)) |> write_csv(csv)
result <- read.csv(csv, stringsAsFactors = FALSE)
result <- result[order(result$g), ]
expect_equal(result$g, c("a", "b"))
expect_equal(result$s, c(3, 3))
})
test_that("write_csv empty result", {
df <- data.frame(x = c(1.0, 2.0, 3.0))
f <- tempfile(fileext = ".vtr")
csv <- tempfile(fileext = ".csv")
on.exit(unlink(c(f, csv)))
write_vtr(df, f)
tbl(f) |> filter(x > 100) |> write_csv(csv)
lines <- readLines(csv)
expect_equal(length(lines), 1) # header only
expect_equal(lines[1], "x")
})
test_that("write_csv column names with special chars are quoted", {
df <- data.frame(1.0, 2.0)
names(df) <- c("a,b", "c d")
f <- tempfile(fileext = ".vtr")
csv <- tempfile(fileext = ".csv")
on.exit(unlink(c(f, csv)))
write_vtr(df, f)
tbl(f) |> write_csv(csv)
result <- read.csv(csv, stringsAsFactors = FALSE, check.names = FALSE)
expect_true("a,b" %in% names(result))
expect_true("c d" %in% names(result))
})
Any scripts or data that you put into this service are public.
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.