tests/testthat/test-extractors.r

test_that("base extractors functions", {
    dto <- as_datetimeoffset(c("1970-01-01", "2013-11-23"))
    expect_equal(weekdays(dto), c("Thursday", "Saturday"))
    expect_equal(months(dto, FALSE), c("January", "November"))
    expect_equal(months(dto, TRUE), c("Jan", "Nov"))
    expect_equal(quarters(dto), c("Q1", "Q4"))
    expect_equal(as.numeric(julian(dto)), c(0, 16032))
})

test_that("lubridate extractors functions", {
    skip_if_not_installed("lubridate")
    dto <- as_datetimeoffset(c("1970-01-01", "2013-11-23"))
    expect_equal(lubridate::isoyear(dto), c(1970, 2013))
    expect_equal(lubridate::epiyear(dto), c(1969, 2013))
    expect_equal(lubridate::quarter(dto), c(1L, 4L))
    expect_equal(lubridate::semester(dto), c(1L, 2L))
    expect_equal(lubridate::week(dto), c(1, 47))
    expect_equal(lubridate::isoweek(dto), c(1, 47))
    expect_equal(lubridate::epiweek(dto), c(53, 47))
    expect_equal(lubridate::wday(dto), c(5, 7))
    expect_equal(lubridate::qday(dto), c(1, 54))
    expect_equal(lubridate::yday(dto), c(1, 327))

    dto <- as_datetimeoffset("2013-11-23T11:00:00[America/Los_Angeles]")
    expect_equal(lubridate::am(dto), TRUE)
    expect_equal(lubridate::pm(dto), FALSE)
    expect_equal(as.numeric(lubridate::days_in_month(dto)), 30)
    expect_equal(lubridate::dst(dto), FALSE)
    expect_equal(lubridate::leap_year(dto), FALSE)

    dt <- as_datetimeoffset("1970-01-01")
    lubridate::wday(dt) <- 4
    expect_equal(lubridate::wday(dt), 4)
    lubridate::yday(dt) <- 5
    expect_equal(lubridate::yday(dt), 5)
    lubridate::qday(dt) <- 5
    expect_equal(lubridate::qday(dt), 5)
})

Try the datetimeoffset package in your browser

Any scripts or data that you put into this service are public.

datetimeoffset documentation built on April 4, 2025, 4:42 a.m.