test_that("is.instant/is.timepoint works as expected", {
expect_false(is.instant(234))
expect_true(is.instant(as.POSIXct("2008-08-03 13:01:59", tz = "UTC")))
expect_true(is.instant(as.POSIXlt("2008-08-03 13:01:59", tz = "UTC")))
expect_true(is.instant(Sys.Date()))
expect_false(is.instant(minutes(1)))
expect_true(is.timespan(interval(
as.POSIXct("2008-08-03 13:01:59", tz = "UTC"),
as.POSIXct("2009-08-03 13:01:59", tz = "UTC")
)))
})
test_that("now() handles time zone input correctly", {
nt <- now("UTC")
st <- Sys.time()
expect_identical(
floor_date(nt, "minute"),
floor_date(as.POSIXct(format(as.POSIXct(st), tz = "UTC"), tz = "UTC"), "minute")
)
})
## test_that("today() works correctly", {
## ## Sys.Date is not correct
## ## expect_identical(today(), Sys.Date())
## })
test_that("make_datetime returns same values as ISOdatetime", {
set.seed(1000)
N <- 1e4
y <- as.integer(runif(N, 1800, 2200))
m <- as.integer(runif(N, 1, 12))
d <- as.integer(runif(N, 1, 28))
H <- as.integer(runif(N, 0, 23))
M <- as.integer(runif(N, 0, 59))
S <- runif(N, 0, 59)
out1 <- ISOdatetime(y, m, d, H, M, S, tz = "UTC")
out2 <- make_datetime(y, m, d, H, M, S)
expect_equal(out1, out2)
S <- as.integer(runif(N, 0, 59))
out1 <- ISOdatetime(y, m, d, H, M, S, tz = "UTC")
out2 <- make_datetime(y, m, d, H, M, S)
expect_equal(out1, out2)
out3 <- make_date(y, m, d)
expect_equal(as.Date(out1), out3)
})
test_that("make_datetime replicates as expected", {
expect_equal(
make_datetime(year = 1999, month = c(11, 12), day = 22, sec = c(10, 11)),
as.POSIXct(c("1999-11-22 00:00:10 UTC", "1999-12-22 00:00:11 UTC"), tz = "UTC")
)
expect_equal(
make_datetime(year = c(1999, 2000, 3000), month = c(11, 12), day = 22, sec = c(10, 11, 13, 13)),
ymd_hms(c("1999-11-22 00:00:10", "2000-12-22 00:00:11", "3000-11-22 00:00:13", "1999-12-22 00:00:13"), tz = "UTC")
)
expect_equal(
make_datetime(
year = c(1999, 2000, 3000), month = c(11, 12), day = 22, sec = c(10, 11, 13, 13),
tz = "America/New_York"
),
ymd_hms(c("1999-11-22 00:00:10", "2000-12-22 00:00:11", "3000-11-22 00:00:13", "1999-12-22 00:00:13"),
tz = "America/New_York"
)
)
})
test_that("make_datetime propagates NAs as expected", {
expect_equal(
make_datetime(year = 1999, month = c(11, NA), day = 22, sec = c(10, 11, NA)),
as.POSIXct(c("1999-11-22 00:00:10 UTC", NA, NA), tz = "UTC")
)
})
test_that("make_datetime rolls over month boundary", {
expect_equal(make_datetime(month = 1, day = 31, hour = 24), ymd("1970-02-01", tz = "UTC"))
expect_equal(
make_datetime(month = 1, day = 31, hour = 25, min = 61, sec = 61),
ymd_hms("1970-02-01 02:02:01", tz = "UTC"))
})
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.