Nothing
# --- year/month/day extraction from Date ---
test_that("year extracts year from Date column", {
df <- data.frame(d = as.Date(c("2020-03-15", "2021-12-01", "1999-06-30")))
f <- tempfile(fileext = ".vtr")
on.exit(unlink(f))
write_vtr(df, f)
result <- tbl(f) |> mutate(y = year(d)) |> collect()
expect_equal(result$y, c(2020, 2021, 1999))
})
test_that("month extracts month from Date column", {
df <- data.frame(d = as.Date(c("2020-03-15", "2021-12-01")))
f <- tempfile(fileext = ".vtr")
on.exit(unlink(f))
write_vtr(df, f)
result <- tbl(f) |> mutate(m = month(d)) |> collect()
expect_equal(result$m, c(3, 12))
})
test_that("day extracts day from Date column", {
df <- data.frame(d = as.Date(c("2020-03-15", "2021-12-01")))
f <- tempfile(fileext = ".vtr")
on.exit(unlink(f))
write_vtr(df, f)
result <- tbl(f) |> mutate(dy = day(d)) |> collect()
expect_equal(result$dy, c(15, 1))
})
# --- date filtering with as.Date literal ---
test_that("filter with as.Date literal works", {
df <- data.frame(d = as.Date(c("2019-01-01", "2020-06-15", "2021-12-31")),
x = c(1.0, 2.0, 3.0))
f <- tempfile(fileext = ".vtr")
on.exit(unlink(f))
write_vtr(df, f)
result <- tbl(f) |> filter(d >= as.Date("2020-01-01")) |> collect()
expect_equal(nrow(result), 2)
expect_equal(result$x, c(2, 3))
})
# --- as.Date from string column ---
test_that("as.Date converts string column to date numeric", {
df <- data.frame(s = c("2020-01-15", "2021-06-30"), stringsAsFactors = FALSE)
f <- tempfile(fileext = ".vtr")
on.exit(unlink(f))
write_vtr(df, f)
result <- tbl(f) |> mutate(d = as.Date(s)) |> collect()
expected <- as.double(as.Date(c("2020-01-15", "2021-06-30")))
expect_equal(result$d, expected)
})
# --- NA handling in date functions ---
test_that("year handles NA dates", {
df <- data.frame(d = as.Date(c("2020-03-15", NA)))
f <- tempfile(fileext = ".vtr")
on.exit(unlink(f))
write_vtr(df, f)
result <- tbl(f) |> mutate(y = year(d)) |> collect()
expect_equal(result$y[1], 2020)
expect_true(is.na(result$y[2]))
})
# --- POSIXct extraction ---
test_that("hour/minute/second extract from POSIXct", {
df <- data.frame(t = as.POSIXct(c("2020-03-15 14:30:45", "2021-12-01 08:15:00"), tz = "UTC"))
f <- tempfile(fileext = ".vtr")
on.exit(unlink(f))
write_vtr(df, f)
result <- tbl(f) |> mutate(h = hour(t), mi = minute(t), s = second(t)) |> collect()
expect_equal(result$h, c(14, 8))
expect_equal(result$mi, c(30, 15))
expect_equal(result$s, c(45, 0))
})
# --- date arithmetic ---
test_that("date arithmetic works (add days)", {
df <- data.frame(d = as.Date(c("2020-01-01", "2020-06-15")))
f <- tempfile(fileext = ".vtr")
on.exit(unlink(f))
write_vtr(df, f)
result <- tbl(f) |> mutate(d2 = d + 30) |> collect()
expected <- as.double(as.Date(c("2020-01-01", "2020-06-15")) + 30)
expect_equal(result$d2, expected)
})
# --- group_by with year ---
test_that("group_by year works with Date column", {
df <- data.frame(
d = as.Date(c("2020-03-15", "2020-07-01", "2021-01-15", "2021-06-30")),
x = c(1.0, 2.0, 3.0, 4.0)
)
f <- tempfile(fileext = ".vtr")
on.exit(unlink(f))
write_vtr(df, f)
result <- tbl(f) |>
mutate(yr = year(d)) |>
group_by(yr) |>
summarise(total = sum(x)) |>
collect()
expect_equal(result$total[result$yr == 2020], 3)
expect_equal(result$total[result$yr == 2021], 7)
})
# --- as.POSIXct literal in filter ---
test_that("filter with as.POSIXct literal works", {
df <- data.frame(
t = as.POSIXct(c("2020-01-01 00:00:00", "2020-06-15 12:00:00", "2021-01-01 00:00:00"), tz = "UTC"),
x = c(1.0, 2.0, 3.0)
)
f <- tempfile(fileext = ".vtr")
on.exit(unlink(f))
write_vtr(df, f)
result <- tbl(f) |> filter(t >= as.POSIXct("2020-06-01", tz = "UTC")) |> collect()
expect_equal(nrow(result), 2)
})
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.