test_that("splitByDate works", {
# check it works w/ Dates
date <- as.Date("2025/01/01")
dummy <- data.frame(date = date + (-5:5), nox = 100 + seq(-50, 50, 10))
splitDate <- splitByDate(dummy, dates = c("2025/01/01"))
expect_equal(nrow(splitDate), nrow(dummy))
expect_s3_class(splitDate$split.by, "factor")
expect_equal(names(splitDate), c("date", "nox", "split.by"))
# check it works w/ Datetimes
date2 <- as.POSIXct("2025/01/01 00:00:00")
dummy2 <- data.frame(date = date2 + (-5:5), nox = 100 + seq(-50, 50, 10))
splitTime <- splitByDate(dummy2, dates = c("2025/01/01 00:00:01"))
expect_equal(nrow(splitDate), nrow(dummy2))
expect_equal(splitDate$split.by, ordered(rep(c("before", "after"), c(6L, 5L)), levels = c("before", "after")))
# Date dataframe, datetime chr input
expect_no_error(splitByDate(dummy, "2025/01/01 01:00:00"))
# Datetime dataframe, date chr input
expect_no_error(splitByDate(dummy2, "2025/01/01"))
# Date dataframe, Date input
expect_no_error(splitByDate(dummy, mean(dummy$date)))
# Datetime dataframe, Datetime input
expect_no_error(splitByDate(dummy2, mean(dummy2$date)))
# Error w/ mismatch
expect_error(splitByDate(dummy, dates = mean(dummy$date), labels = "onelab"))
})
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.