test_that("seconds settor correctly performs simple updates", {
poslt <- as.POSIXlt("2010-02-03 13:45:59",
tz = "UTC", format
= "%Y-%m-%d %H:%M:%S"
)
posct <- as.POSIXct(poslt)
date <- as.Date(poslt)
second(poslt) <- 10
second(posct) <- 10
second(date) <- 10
expect_equal(second(poslt), 10)
expect_equal(second(posct), 10)
expect_equal(second(date), 10)
})
test_that("seconds settor rolls over as expected", {
poslt <- as.POSIXlt("2010-12-31 23:59:59",
tz = "UTC", format
= "%Y-%m-%d %H:%M:%S"
)
posct <- as.POSIXct(poslt)
date <- as.Date(poslt)
second(poslt) <- 69
second(posct) <- 69
second(date) <- 69
expect_equal(second(poslt), 9)
expect_equal(minute(poslt), 0)
expect_equal(hour(poslt), 0)
expect_equal(mday(poslt), 1)
expect_equal(wday(poslt), 7)
expect_equal(yday(poslt), 1)
expect_equal(month(poslt), 1)
expect_equal(year(poslt), 2011)
expect_equal(tz(poslt), "UTC")
expect_equal(second(posct), 9)
expect_equal(minute(posct), 0)
expect_equal(hour(posct), 0)
expect_equal(mday(posct), 1)
expect_equal(wday(posct), 7)
expect_equal(yday(posct), 1)
expect_equal(month(posct), 1)
expect_equal(year(posct), 2011)
expect_equal(tz(posct), "UTC")
expect_equal(second(date), 9)
expect_equal(minute(date), 1)
expect_equal(hour(date), 0)
expect_equal(mday(date), 31)
expect_equal(wday(date), 6)
expect_equal(yday(date), 365)
expect_equal(month(date), 12)
expect_equal(year(date), 2010)
expect_equal(tz(date), "UTC")
})
test_that("seconds settor does not change time zone", {
poslt <- as.POSIXlt("2010-02-14 01:59:59",
tz = "GMT", format
= "%Y-%m-%d %H:%M:%S"
)
posct <- as.POSIXct(poslt)
date <- as.Date(poslt)
second(poslt) <- 1
second(posct) <- 1
second(date) <- 1
expect_match(tz(poslt), "GMT")
expect_match(tz(posct), "GMT")
expect_match(tz(date), "UTC")
second(poslt) <- 69
second(posct) <- 69
second(date) <- 69
expect_match(tz(poslt), "GMT")
expect_match(tz(posct), "GMT")
expect_match(tz(date), "UTC")
})
test_that("seconds settor returns NA for spring dst gap", {
poslt <- as.POSIXlt("2010-03-14 01:59:59", tz = "UTC", format = "%Y-%m-%d %H:%M:%S")
poslt <- force_tz(poslt, tzone = "America/New_York")
posxct <- as.POSIXct(poslt)
second(poslt) <- 69
second(posxct) <- 69
expect_true(is.na(poslt))
expect_true(is.na(posxct))
})
test_that("seconds settor retains object class for datetimes", {
poslt <- as.POSIXlt("2010-02-14 01:59:59",
tz = "GMT", format
= "%Y-%m-%d %H:%M:%S"
)
posct <- as.POSIXct(poslt)
second(poslt) <- 10
second(posct) <- 10
expect_s3_class(poslt, "POSIXlt")
expect_s3_class(posct, "POSIXct")
second(poslt) <- 70
second(posct) <- 70
expect_s3_class(poslt, "POSIXlt")
expect_s3_class(posct, "POSIXct")
})
test_that("seconds settor makes POSTXct from Date", {
date <- as.Date("2010-02-14", tz = "GMT", format = "%Y-%m-%d")
second(date) <- 10
expect_s3_class(date, "POSIXct")
second(date) <- 70
expect_s3_class(date, "POSIXct")
})
test_that("minutes settor correctly performs simple updates", {
poslt <- as.POSIXlt("2010-02-03 13:45:59",
tz = "UTC", format
= "%Y-%m-%d %H:%M:%S"
)
posct <- as.POSIXct(poslt)
date <- as.Date(poslt)
minute(poslt) <- 10
minute(posct) <- 10
minute(date) <- 10
expect_equal(minute(poslt), 10)
expect_equal(minute(posct), 10)
expect_equal(minute(date), 10)
})
test_that("minutes settor rolls over as expected", {
poslt <- as.POSIXlt("2010-12-31 23:59:59",
tz = "UTC", format
= "%Y-%m-%d %H:%M:%S"
)
posct <- as.POSIXct(poslt)
date <- as.Date(poslt)
minute(poslt) <- 69
minute(posct) <- 69
minute(date) <- 69
expect_equal(second(poslt), 59)
expect_equal(minute(poslt), 9)
expect_equal(hour(poslt), 0)
expect_equal(mday(poslt), 1)
expect_equal(wday(poslt), 7)
expect_equal(yday(poslt), 1)
expect_equal(month(poslt), 1)
expect_equal(year(poslt), 2011)
expect_equal(tz(poslt), "UTC")
expect_equal(second(posct), 59)
expect_equal(minute(posct), 9)
expect_equal(hour(posct), 0)
expect_equal(mday(posct), 1)
expect_equal(wday(posct), 7)
expect_equal(yday(posct), 1)
expect_equal(month(posct), 1)
expect_equal(year(posct), 2011)
expect_equal(tz(posct), "UTC")
expect_equal(second(date), 0)
expect_equal(minute(date), 9)
expect_equal(hour(date), 1)
expect_equal(mday(date), 31)
expect_equal(wday(date), 6)
expect_equal(yday(date), 365)
expect_equal(month(date), 12)
expect_equal(year(date), 2010)
expect_equal(tz(date), "UTC")
})
test_that("minutes settor does not change time zone", {
poslt <- as.POSIXlt("2010-02-14 01:59:59",
tz = "GMT", format
= "%Y-%m-%d %H:%M:%S"
)
posct <- as.POSIXct(poslt)
date <- as.Date(poslt)
minute(poslt) <- 1
minute(posct) <- 1
minute(date) <- 1
expect_match(tz(poslt), "GMT")
expect_match(tz(posct), "GMT")
expect_match(tz(date), "UTC")
minute(poslt) <- 70
minute(posct) <- 70
minute(date) <- 70
expect_match(tz(poslt), "GMT")
expect_match(tz(posct), "GMT")
expect_match(tz(date), "UTC")
})
test_that("minutes settor returns NA for spring dst gap", {
poslt <- as.POSIXlt("2010-03-14 01:59:59",
tz = "UTC", format
= "%Y-%m-%d %H:%M:%S"
)
poslt <- force_tz(poslt, tzone = "America/New_York")
posct <- as.POSIXct(poslt)
minute(poslt) <- 70
minute(posct) <- 70
expect_true(is.na(poslt))
expect_true(is.na(posct))
})
test_that("minutes settor retains object class for datetimes", {
poslt <- as.POSIXlt("2010-02-14 01:59:59",
tz = "GMT", format
= "%Y-%m-%d %H:%M:%S"
)
posct <- as.POSIXct(poslt)
minute(poslt) <- 1
minute(posct) <- 1
expect_s3_class(poslt, "POSIXlt")
expect_s3_class(posct, "POSIXct")
minute(poslt) <- 70
minute(posct) <- 70
expect_s3_class(poslt, "POSIXlt")
expect_s3_class(posct, "POSIXct")
})
test_that("minutes settor makes POSIXct from Date", {
date <- as.Date("2010-02-14", tz = "GMT", format = "%Y-%m-%d")
minute(date) <- 70
expect_s3_class(date, "POSIXct")
})
test_that("hours settor correctly performs simple updates", {
poslt <- as.POSIXlt("2010-02-03 13:45:59", tz = "UTC", format = "%Y-%m-%d %H:%M:%S")
posct <- as.POSIXct(poslt)
date <- as.Date(poslt)
hour(poslt) <- 10
hour(posct) <- 10
hour(date) <- 10
expect_equal(hour(poslt), 10)
expect_equal(hour(posct), 10)
expect_equal(hour(date), 10)
})
test_that("hours settor rolls over as expected", {
poslt <- as.POSIXlt("2010-12-31 23:59:59", tz = "UTC", format = "%Y-%m-%d %H:%M:%S")
posct <- as.POSIXct(poslt)
date <- as.Date(poslt)
hour(poslt) <- 25
hour(posct) <- 25
hour(date) <- 25
expect_equal(second(poslt), 59)
expect_equal(minute(poslt), 59)
expect_equal(hour(poslt), 1)
expect_equal(mday(poslt), 1)
expect_equal(wday(poslt), 7)
expect_equal(yday(poslt), 1)
expect_equal(month(poslt), 1)
expect_equal(year(poslt), 2011)
expect_equal(tz(poslt), "UTC")
expect_equal(second(posct), 59)
expect_equal(minute(posct), 59)
expect_equal(hour(posct), 1)
expect_equal(mday(posct), 1)
expect_equal(wday(posct), 7)
expect_equal(yday(posct), 1)
expect_equal(month(posct), 1)
expect_equal(year(posct), 2011)
expect_equal(tz(posct), "UTC")
expect_equal(second(date), 0)
expect_equal(minute(date), 0)
expect_equal(hour(date), 1)
expect_equal(mday(date), 1)
expect_equal(wday(date), 7)
expect_equal(yday(date), 1)
expect_equal(month(date), 01)
expect_equal(year(date), 2011)
expect_equal(tz(date), "UTC")
})
test_that("hours settor does not change time zone", {
poslt <- as.POSIXlt("2010-02-14 01:59:59", tz = "GMT", format = "%Y-%m-%d %H:%M:%S")
posct <- as.POSIXct(poslt)
date <- as.Date(poslt)
hour(poslt) <- 1
hour(posct) <- 1
hour(date) <- 1
expect_match(tz(poslt), "GMT")
expect_match(tz(posct), "GMT")
expect_match(tz(date), "UTC")
hour(poslt) <- 70
hour(posct) <- 70
hour(date) <- 70
expect_match(tz(poslt), "GMT")
expect_match(tz(posct), "GMT")
expect_match(tz(date), "UTC")
})
test_that("hours settor returns NA for spring dst gap", {
poslt <- as.POSIXlt("2010-03-14 01:59:59", tz = "UTC", format = "%Y-%m-%d %H:%M:%S")
poslt <- force_tz(poslt, tzone = "America/New_York")
posct <- as.POSIXct(poslt)
hour(poslt) <- 2
hour(posct) <- 2
expect_true(is.na(poslt))
expect_true(is.na(posct))
})
test_that("hours settor retains object class for datetimes", {
poslt <- as.POSIXlt("2010-02-14 01:59:59", tz = "GMT", format = "%Y-%m-%d %H:%M:%S")
posct <- as.POSIXct(poslt)
hour(poslt) <- 2
hour(posct) <- 2
expect_s3_class(poslt, "POSIXlt")
expect_s3_class(posct, "POSIXct")
hour(poslt) <- 25
hour(posct) <- 25
expect_s3_class(poslt, "POSIXlt")
expect_s3_class(posct, "POSIXct")
})
test_that("hours settor makes POSIXct from Date", {
date <- as.Date("2010-02-14", tz = "GMT", format = "%Y-%m-%d")
hour(date) <- 2
expect_s3_class(date, "POSIXct")
hour(date) <- 25
expect_s3_class(date, "POSIXct")
})
test_that("mdays settor correctly performs simple updates", {
poslt <- as.POSIXlt("2010-02-03 13:45:59",
tz = "UTC", format
= "%Y-%m-%d %H:%M:%S"
)
posct <- as.POSIXct(poslt)
date <- as.Date(poslt)
mday(poslt) <- 10
mday(posct) <- 10
mday(date) <- 10
expect_equal(mday(poslt), 10)
expect_equal(mday(posct), 10)
expect_equal(mday(date), 10)
expect_equal(yday(poslt), 41)
expect_equal(yday(posct), 41)
expect_equal(yday(date), 41)
expect_equal(wday(poslt), 4)
expect_equal(wday(posct), 4)
expect_equal(wday(date), 4)
})
test_that("mdays settor rolls over as expected", {
poslt <- as.POSIXlt("2010-12-31 23:59:59",
tz = "UTC", format
= "%Y-%m-%d %H:%M:%S"
)
posct <- as.POSIXct(poslt)
date <- as.Date(poslt)
mday(poslt) <- 32
mday(posct) <- 32
mday(date) <- 32
expect_equal(second(poslt), 59)
expect_equal(minute(poslt), 59)
expect_equal(hour(poslt), 23)
expect_equal(mday(poslt), 1)
expect_equal(wday(poslt), 7)
expect_equal(yday(poslt), 1)
expect_equal(month(poslt), 1)
expect_equal(year(poslt), 2011)
expect_equal(tz(poslt), "UTC")
expect_equal(second(posct), 59)
expect_equal(minute(posct), 59)
expect_equal(hour(posct), 23)
expect_equal(mday(posct), 1)
expect_equal(wday(posct), 7)
expect_equal(yday(posct), 1)
expect_equal(month(posct), 1)
expect_equal(year(posct), 2011)
expect_equal(tz(posct), "UTC")
expect_equal(second(date), 0)
expect_equal(minute(date), 0)
expect_equal(hour(date), 0)
expect_equal(mday(date), 1)
expect_equal(wday(date), 7)
expect_equal(yday(date), 1)
expect_equal(month(date), 1)
expect_equal(year(date), 2011)
expect_equal(tz(date), "UTC")
})
test_that("mdays settor does not change time zone", {
poslt <- as.POSIXlt("2010-02-14 01:59:59",
tz = "GMT", format
= "%Y-%m-%d %H:%M:%S"
)
posct <- as.POSIXct(poslt)
date <- as.Date(poslt)
mday(poslt) <- 1
mday(posct) <- 1
mday(date) <- 1
expect_match(tz(poslt), "GMT")
expect_match(tz(posct), "GMT")
expect_match(tz(date), "UTC")
mday(poslt) <- 32
mday(posct) <- 32
mday(date) <- 32
expect_match(tz(poslt), "GMT")
expect_match(tz(posct), "GMT")
expect_match(tz(date), "UTC")
})
test_that("mdays settor returns NA for spring dst gap", {
poslt <- as.POSIXlt("2010-03-13 02:59:59",
tz = "UTC", format
= "%Y-%m-%d %H:%M:%S"
)
poslt <- force_tz(poslt, tzone = "America/New_York")
posct <- as.POSIXct(poslt)
mday(poslt) <- 14
mday(posct) <- 14
expect_true(is.na(poslt))
expect_true(is.na(posct))
})
test_that("mdays settor retains object class", {
poslt <- as.POSIXlt("2010-02-14 01:59:59",
tz = "GMT", format
= "%Y-%m-%d %H:%M:%S"
)
posct <- as.POSIXct(poslt)
date <- as.Date(poslt)
mday(poslt) <- 3
mday(posct) <- 3
mday(date) <- 3
expect_s3_class(poslt, "POSIXlt")
expect_s3_class(posct, "POSIXct")
expect_s3_class(date, "Date")
mday(poslt) <- 32
mday(posct) <- 32
mday(date) <- 32
expect_s3_class(poslt, "POSIXlt")
expect_s3_class(posct, "POSIXct")
expect_s3_class(date, "Date")
})
test_that("ydays settor correctly performs simple updates", {
poslt <- as.POSIXlt("2010-02-03 13:45:59",
tz = "UTC", format
= "%Y-%m-%d %H:%M:%S"
)
posct <- as.POSIXct(poslt)
date <- as.Date(poslt)
yday(poslt) <- 41
yday(posct) <- 41
yday(date) <- 41
expect_equal(yday(poslt), 41)
expect_equal(yday(posct), 41)
expect_equal(yday(date), 41)
expect_equal(mday(poslt), 10)
expect_equal(mday(posct), 10)
expect_equal(mday(date), 10)
expect_equal(wday(poslt), 4)
expect_equal(wday(posct), 4)
expect_equal(wday(date), 4)
})
test_that("ydays settor rolls over as expected", {
poslt <- as.POSIXlt("2010-12-31 23:59:59",
tz = "UTC", format
= "%Y-%m-%d %H:%M:%S"
)
posct <- as.POSIXct(poslt)
date <- as.Date(poslt)
yday(poslt) <- 366
yday(posct) <- 366
yday(date) <- 366
expect_equal(second(poslt), 59)
expect_equal(minute(poslt), 59)
expect_equal(hour(poslt), 23)
expect_equal(mday(poslt), 1)
expect_equal(wday(poslt), 7)
expect_equal(yday(poslt), 1)
expect_equal(month(poslt), 1)
expect_equal(year(poslt), 2011)
expect_equal(tz(poslt), "UTC")
expect_equal(second(posct), 59)
expect_equal(minute(posct), 59)
expect_equal(hour(posct), 23)
expect_equal(mday(posct), 1)
expect_equal(wday(posct), 7)
expect_equal(yday(posct), 1)
expect_equal(month(posct), 1)
expect_equal(year(posct), 2011)
expect_equal(tz(posct), "UTC")
expect_equal(second(date), 0)
expect_equal(minute(date), 0)
expect_equal(hour(date), 0)
expect_equal(mday(date), 1)
expect_equal(wday(date), 7)
expect_equal(yday(date), 1)
expect_equal(month(date), 1)
expect_equal(year(date), 2011)
expect_equal(tz(date), "UTC")
})
test_that("ydays settor does not change time zone", {
poslt <- as.POSIXlt("2010-02-14 01:59:59",
tz = "GMT", format
= "%Y-%m-%d %H:%M:%S"
)
posct <- as.POSIXct(poslt)
date <- as.Date(poslt)
yday(poslt) <- 1
yday(posct) <- 1
yday(date) <- 1
expect_match(tz(poslt), "GMT")
expect_match(tz(posct), "GMT")
expect_match(tz(date), "UTC")
yday(poslt) <- 366
yday(posct) <- 366
yday(date) <- 366
expect_match(tz(poslt), "GMT")
expect_match(tz(posct), "GMT")
expect_match(tz(date), "UTC")
})
test_that("ydays settor returns NA for spring dst gap", {
poslt <- as.POSIXlt("2010-03-13 02:59:59",
tz = "UTC", format
= "%Y-%m-%d %H:%M:%S"
)
poslt <- force_tz(poslt, tzone = "America/New_York")
posct <- as.POSIXct(poslt)
yday(poslt) <- 73
yday(posct) <- 73
expect_true(is.na(poslt))
expect_true(is.na(posct))
})
test_that("ydays settor retains object class", {
poslt <- as.POSIXlt("2010-02-14 01:59:59",
tz = "GMT", format
= "%Y-%m-%d %H:%M:%S"
)
posct <- as.POSIXct(poslt)
date <- as.Date(poslt)
yday(poslt) <- 3
yday(posct) <- 3
yday(date) <- 3
expect_s3_class(poslt, "POSIXlt")
expect_s3_class(posct, "POSIXct")
expect_s3_class(date, "Date")
yday(poslt) <- 366
yday(posct) <- 366
yday(date) <- 366
expect_s3_class(poslt, "POSIXlt")
expect_s3_class(posct, "POSIXct")
expect_s3_class(date, "Date")
})
test_that("wdays settor correctly performs simple updates", {
poslt <- as.POSIXlt("2010-02-03 13:45:59",
tz = "UTC", format
= "%Y-%m-%d %H:%M:%S"
)
posct <- as.POSIXct(poslt)
date <- as.Date(poslt)
wday(poslt) <- 5
wday(posct) <- 5
wday(date) <- 5
expect_equal(wday(poslt), 5)
expect_equal(wday(posct), 5)
expect_equal(wday(date), 5)
expect_equal(mday(poslt), 4)
expect_equal(mday(posct), 4)
expect_equal(mday(date), 4)
expect_equal(mday(poslt), 4)
expect_equal(mday(posct), 4)
expect_equal(mday(date), 4)
})
test_that("wdays settor rolls over as expected", {
poslt <- as.POSIXlt("2010-12-31 23:59:59",
tz = "UTC", format
= "%Y-%m-%d %H:%M:%S"
)
posct <- as.POSIXct(poslt)
date <- as.Date(poslt)
wday(poslt) <- 8
wday(posct) <- 8
wday(date) <- 8
expect_equal(second(poslt), 59)
expect_equal(minute(poslt), 59)
expect_equal(hour(poslt), 23)
expect_equal(mday(poslt), 2)
expect_equal(wday(poslt), 1)
expect_equal(yday(poslt), 2)
expect_equal(month(poslt), 1)
expect_equal(year(poslt), 2011)
expect_equal(tz(poslt), "UTC")
expect_equal(second(posct), 59)
expect_equal(minute(posct), 59)
expect_equal(hour(posct), 23)
expect_equal(mday(posct), 2)
expect_equal(wday(posct), 1)
expect_equal(yday(posct), 2)
expect_equal(month(posct), 1)
expect_equal(year(posct), 2011)
expect_equal(tz(posct), "UTC")
expect_equal(second(date), 0)
expect_equal(minute(date), 0)
expect_equal(hour(date), 0)
expect_equal(mday(date), 2)
expect_equal(wday(date), 1)
expect_equal(yday(date), 2)
expect_equal(month(date), 1)
expect_equal(year(date), 2011)
expect_equal(tz(date), "UTC")
})
test_that("wdays settor does not change time zone", {
poslt <- as.POSIXlt("2010-02-14 01:59:59",
tz = "GMT", format
= "%Y-%m-%d %H:%M:%S"
)
posct <- as.POSIXct(poslt)
date <- as.Date(poslt)
wday(poslt) <- 2
wday(posct) <- 2
wday(date) <- 2
expect_match(tz(poslt), "GMT")
expect_match(tz(posct), "GMT")
expect_match(tz(date), "UTC")
wday(poslt) <- 8
wday(posct) <- 8
wday(date) <- 8
expect_match(tz(poslt), "GMT")
expect_match(tz(posct), "GMT")
expect_match(tz(date), "UTC")
})
test_that("wdays settor returns NA for spring dst gap", {
poslt <- as.POSIXlt("2010-03-13 02:59:59",
tz = "UTC", format
= "%Y-%m-%d %H:%M:%S"
)
poslt <- force_tz(poslt, tzone = "America/New_York")
posct <- as.POSIXct(poslt)
wday(poslt) <- 8
wday(posct) <- 8
expect_true(is.na(poslt))
expect_true(is.na(posct))
})
test_that("wdays settor retains object class", {
poslt <- as.POSIXlt("2010-02-14 01:59:59",
tz = "GMT", format
= "%Y-%m-%d %H:%M:%S"
)
posct <- as.POSIXct(poslt)
date <- as.Date(poslt)
wday(poslt) <- 3
wday(posct) <- 3
wday(date) <- 3
expect_s3_class(poslt, "POSIXlt")
expect_s3_class(posct, "POSIXct")
expect_s3_class(date, "Date")
wday(poslt) <- 8
wday(posct) <- 8
wday(date) <- 8
expect_s3_class(poslt, "POSIXlt")
expect_s3_class(posct, "POSIXct")
expect_s3_class(date, "Date")
})
test_that("months settor correctly performs simple updates", {
poslt <- as.POSIXlt("2010-02-03 13:45:59",
tz = "UTC", format
= "%Y-%m-%d %H:%M:%S"
)
posct <- as.POSIXct(poslt)
date <- as.Date(poslt)
month(poslt) <- 5
month(posct) <- 5
month(date) <- 5
expect_equal(month(poslt), 5)
expect_equal(month(posct), 5)
expect_equal(month(date), 5)
})
test_that("months settor rolls over as expected", {
poslt <- as.POSIXlt("2010-12-31 23:59:59",
tz = "UTC", format
= "%Y-%m-%d %H:%M:%S"
)
posct <- as.POSIXct(poslt)
date <- as.Date(poslt)
month(poslt) <- 13
month(posct) <- 13
month(date) <- 13
expect_equal(second(poslt), 59)
expect_equal(minute(poslt), 59)
expect_equal(hour(poslt), 23)
expect_equal(mday(poslt), 31)
expect_equal(wday(poslt), 2)
expect_equal(yday(poslt), 31)
expect_equal(month(poslt), 1)
expect_equal(year(poslt), 2011)
expect_equal(tz(poslt), "UTC")
expect_equal(second(posct), 59)
expect_equal(minute(posct), 59)
expect_equal(hour(posct), 23)
expect_equal(mday(posct), 31)
expect_equal(wday(posct), 2)
expect_equal(yday(posct), 31)
expect_equal(month(posct), 1)
expect_equal(year(posct), 2011)
expect_equal(tz(posct), "UTC")
expect_equal(second(date), 0)
expect_equal(minute(date), 0)
expect_equal(hour(date), 0)
expect_equal(mday(date), 31)
expect_equal(wday(date), 2)
expect_equal(yday(date), 31)
expect_equal(month(date), 1)
expect_equal(year(date), 2011)
expect_equal(tz(date), "UTC")
})
test_that("months settor does not change time zone", {
poslt <- as.POSIXlt("2010-02-14 01:59:59",
tz = "GMT", format
= "%Y-%m-%d %H:%M:%S"
)
posct <- as.POSIXct(poslt)
date <- as.Date(poslt)
month(poslt) <- 1
month(posct) <- 1
month(date) <- 1
expect_match(tz(poslt), "GMT")
expect_match(tz(posct), "GMT")
expect_match(tz(date), "UTC")
month(poslt) <- 13
month(posct) <- 13
month(date) <- 13
expect_match(tz(poslt), "GMT")
expect_match(tz(posct), "GMT")
expect_match(tz(date), "UTC")
})
test_that("months settor returns NA for spring dst gap", {
poslt <- as.POSIXlt("2010-02-14 02:59:59",
tz = "UTC", format
= "%Y-%m-%d %H:%M:%S"
)
poslt <- force_tz(poslt, tzone = "America/New_York")
posct <- as.POSIXct(poslt)
month(poslt) <- 3
month(posct) <- 3
expect_true(is.na(poslt))
expect_true(is.na(posct))
})
test_that("months settor retains object class", {
poslt <- as.POSIXlt("2010-02-14 01:59:59",
tz = "GMT", format
= "%Y-%m-%d %H:%M:%S"
)
posct <- as.POSIXct(poslt)
date <- as.Date(poslt)
month(poslt) <- 1
month(posct) <- 1
month(date) <- 1
expect_s3_class(poslt, "POSIXlt")
expect_s3_class(posct, "POSIXct")
expect_s3_class(date, "Date")
month(poslt) <- 13
month(posct) <- 13
month(date) <- 13
expect_s3_class(poslt, "POSIXlt")
expect_s3_class(posct, "POSIXct")
expect_s3_class(date, "Date")
})
test_that("years settor correctly performs simple updates", {
poslt <- as.POSIXlt("2010-02-03 13:45:59",
tz = "UTC", format
= "%Y-%m-%d %H:%M:%S"
)
posct <- as.POSIXct(poslt)
date <- as.Date(poslt)
year(poslt) <- 2000
year(posct) <- 2000
year(date) <- 2000
expect_equal(year(poslt), 2000)
expect_equal(year(posct), 2000)
expect_equal(year(date), 2000)
})
test_that("years settor does not change time zone", {
poslt <- as.POSIXlt("2010-02-14 01:59:59",
tz = "GMT", format
= "%Y-%m-%d %H:%M:%S"
)
posct <- as.POSIXct(poslt)
date <- as.Date(poslt)
year(poslt) <- 2000
year(posct) <- 2000
year(date) <- 2000
expect_match(tz(poslt), "GMT")
expect_match(tz(posct), "GMT")
expect_match(tz(date), "UTC")
})
test_that("years settor returns NA for spring dst gap", {
poslt <- as.POSIXlt("2009-03-14 02:59:59",
tz = "UTC", format
= "%Y-%m-%d %H:%M:%S"
)
poslt <- force_tz(poslt, tzone = "America/New_York")
posct <- as.POSIXct(poslt)
year(poslt) <- 2010
year(posct) <- 2010
expect_true(is.na(poslt))
expect_true(is.na(posct))
})
test_that("years settor retains object class", {
poslt <- as.POSIXlt("2010-02-14 01:59:59",
tz = "GMT", format
= "%Y-%m-%d %H:%M:%S"
)
posct <- as.POSIXct(poslt)
date <- as.Date(poslt)
year(poslt) <- 2000
year(posct) <- 2000
year(date) <- 2000
expect_s3_class(poslt, "POSIXlt")
expect_s3_class(posct, "POSIXct")
expect_s3_class(date, "Date")
})
test_that("dates settor correctly performs simple updates", {
poslt <- as.POSIXlt("2010-02-03 13:45:59",
tz = "UTC", format
= "%Y-%m-%d %H:%M:%S"
)
posct <- as.POSIXct(poslt)
date <- as.Date(poslt)
date(poslt) <- as.Date("2000-01-01")
date(posct) <- as.Date("2000-01-01")
date(date) <- as.Date("2000-01-01")
expect_equal(date(poslt), as.Date("2000-01-01"))
expect_equal(date(posct), as.Date("2000-01-01"))
expect_equal(date(date), as.Date("2000-01-01"))
})
test_that("dates settor does not change time zone", {
poslt <- as.POSIXlt("2010-02-14 01:59:59",
tz = "GMT", format
= "%Y-%m-%d %H:%M:%S"
)
posct <- as.POSIXct(poslt)
date <- as.Date(poslt)
date(poslt) <- as.Date("2000-01-01")
date(posct) <- as.Date("2000-01-01")
date(date) <- as.Date("2000-01-01")
expect_match(tz(poslt), "GMT")
expect_match(tz(posct), "GMT")
expect_match(tz(date), "UTC")
})
test_that("dates settor returns NA for spring dst gap", {
poslt <- as.POSIXlt("2009-03-14 02:59:59",
tz = "UTC", format
= "%Y-%m-%d %H:%M:%S"
)
poslt <- force_tz(poslt, tzone = "America/New_York")
posct <- as.POSIXct(poslt)
date(poslt) <- as.Date("2010-03-14")
date(posct) <- as.Date("2010-03-14")
expect_true(is.na(poslt))
expect_true(is.na(posct))
})
test_that("dates settor retains object class", {
poslt <- as.POSIXlt("2010-02-14 01:59:59",
tz = "GMT", format
= "%Y-%m-%d %H:%M:%S"
)
posct <- as.POSIXct(poslt)
date <- as.Date(poslt)
date(poslt) <- as.Date("2000-01-01")
date(posct) <- as.Date("2000-01-01")
date(date) <- as.Date("2000-01-01")
expect_s3_class(poslt, "POSIXlt")
expect_s3_class(posct, "POSIXct")
expect_s3_class(date, "Date")
})
test_that("time zone settor correctly performs simple updates", {
posct <- ymd_hms("2010-02-03 13:45:59", tz = "UTC")
poslt <- as.POSIXlt(posct)
date <- as.Date(posct)
tz(poslt) <- "GMT"
tz(posct) <- "GMT"
tz(date) <- "GMT"
expect_s3_class(poslt, "POSIXlt")
expect_s3_class(posct, "POSIXct")
expect_s3_class(date, "POSIXct")
expect_match(tz(poslt), "GMT")
expect_match(tz(posct), "GMT")
expect_match(tz(date), "GMT")
})
test_that("time zone settor returns NA for spring dst gap", {
poslt <- as.POSIXlt("2010-03-14 02:30:59",
tz = "UTC", format
= "%Y-%m-%d %H:%M:%S"
)
posct <- as.POSIXct(poslt)
tz(poslt) <- "America/New_York"
tz(posct) <- "America/New_York"
expect_true(is.na(poslt))
expect_true(is.na(posct))
})
test_that("settors handle vectors", {
poslt <- as.POSIXlt(c("2010-02-14 01:59:59", "2010-02-15 01:59:59", "2010-02-16 01:59:59"),
tz = "UTC", format = "%Y-%m-%d %H:%M:%S"
)
posct <- as.POSIXct(poslt)
date <- as.Date(poslt)
second(poslt) <- 1
second(posct) <- 1
second(date) <- 1
expect_equal(second(poslt), c(1, 1, 1))
expect_equal(second(posct), c(1, 1, 1))
expect_equal(second(date), c(1, 1, 1))
minute(poslt) <- 1
minute(posct) <- 1
minute(date) <- 1
expect_equal(minute(poslt), c(1, 1, 1))
expect_equal(minute(posct), c(1, 1, 1))
expect_equal(minute(date), c(1, 1, 1))
hour(poslt) <- 1
hour(posct) <- 1
hour(date) <- 1
expect_equal(hour(poslt), c(1, 1, 1))
expect_equal(hour(posct), c(1, 1, 1))
expect_equal(hour(date), c(1, 1, 1))
mday(poslt) <- 1
mday(posct) <- 1
mday(date) <- 1
expect_equal(mday(poslt), c(1, 1, 1))
expect_equal(mday(posct), c(1, 1, 1))
expect_equal(mday(date), c(1, 1, 1))
wday(poslt) <- 1
wday(posct) <- 1
wday(date) <- 1
expect_equal(wday(poslt), c(1, 1, 1))
expect_equal(wday(posct), c(1, 1, 1))
expect_equal(wday(date), c(1, 1, 1))
yday(poslt) <- 1
yday(posct) <- 1
yday(date) <- 1
expect_equal(yday(poslt), c(1, 1, 1))
expect_equal(yday(posct), c(1, 1, 1))
expect_equal(yday(date), c(1, 1, 1))
week(poslt) <- 2
week(posct) <- 2
week(date) <- 2
expect_equal(week(poslt), c(2, 2, 2))
expect_equal(week(posct), c(2, 2, 2))
expect_equal(week(date), c(2, 2, 2))
month(poslt) <- 10
month(posct) <- 10
month(date) <- 10
expect_equal(month(poslt), c(10, 10, 10))
expect_equal(month(posct), c(10, 10, 10))
expect_equal(month(date), c(10, 10, 10))
year(poslt) <- 2001
year(posct) <- 2001
year(date) <- 2001
expect_equal(year(poslt), c(2001, 2001, 2001))
expect_equal(year(posct), c(2001, 2001, 2001))
expect_equal(year(date), c(2001, 2001, 2001))
date(poslt) <- as.Date("2001-01-01")
date(posct) <- as.Date("2001-01-01")
date(date) <- as.Date("2001-01-01")
expect_equal(date(poslt), as.Date(c("2001-01-01", "2001-01-01", "2001-01-01")))
expect_equal(date(posct), as.Date(c("2001-01-01", "2001-01-01", "2001-01-01")))
expect_equal(date(date), as.Date(c("2001-01-01", "2001-01-01", "2001-01-01")))
tz(poslt) <- "GMT"
tz(posct) <- "GMT"
tz(date) <- "GMT" # date has been made POSIXlt with sec, etc
expect_match(tz(poslt), "GMT")
expect_match(tz(posct), "GMT")
expect_match(tz(date), "GMT")
})
test_that("qdays settors correctly performs simple updates and rolls over as expected", {
poslt <- as.POSIXlt(c("2010-02-14 01:59:59", "2010-04-15 01:59:59", "2010-10-16
01:59:59"), tz = "UTC", format = "%Y-%m-%d %H:%M:%S")
posct <- as.POSIXct(poslt)
date <- as.Date(poslt)
qday(poslt) <- 2
qday(posct) <- 2
qday(date) <- 2
expect_equal(month(poslt), c(1, 4, 10))
expect_equal(month(posct), c(1, 4, 10))
expect_equal(month(date), c(1, 4, 10))
expect_equal(mday(poslt), c(2, 2, 2))
expect_equal(mday(posct), c(2, 2, 2))
expect_equal(mday(date), c(2, 2, 2))
qday(poslt) <- 95
qday(posct) <- 95
qday(date) <- 95
expect_equal(month(poslt), c(4, 7, 1))
expect_equal(month(posct), c(4, 7, 1))
expect_equal(month(date), c(4, 7, 1))
expect_equal(mday(poslt), c(5, 4, 3))
expect_equal(mday(posct), c(5, 4, 3))
expect_equal(mday(date), c(5, 4, 3))
expect_equal(year(poslt), c(2010, 2010, 2011))
expect_equal(year(posct), c(2010, 2010, 2011))
expect_equal(year(date), c(2010, 2010, 2011))
})
test_that("year<- and month<- roll but produce NAs on invalid days", {
dd <- ymd(c("2020-02-29", "2020-03-31"))
pp <- ymd(c("2020-02-29", "2020-03-31"), tz = "America/New_York")
dd1 <- dd
year(dd1) <- 2021
expect_equal(dd1, ymd(c(NA, "2021-03-31")))
dd1 <- dd
month(dd1) <- 4
expect_equal(dd1, ymd(c("2020-04-29", NA)))
dd1 <- dd
month(dd1) <- 15
expect_equal(dd1, ymd(c("2021-03-29", "2021-03-31")))
dd1 <- dd
month(dd1) <- 14
expect_equal(dd1, ymd(c(NA, NA)))
dd1 <- dd
yday(dd1) <- 370
expect_equal(dd1, ymd(c("2021-01-04", "2021-01-04")))
dd1 <- dd
day(dd1) <- c(30, 32)
expect_equal(dd1, ymd(c("2020-03-01", "2020-04-01")))
# update recycles instead of producing NAs
expect_equal(
update(dd, months = 4),
ymd(c("2020-04-29", "2020-05-01")))
expect_equal(
update(dd, days = 31),
ymd(c("2020-03-02", "2020-03-31")))
expect_equal(
update(dd, months = 4, days = 32),
ymd(c("2020-05-02", "2020-05-02")))
expect_equal(
update(pp, months = 4),
ymd(c("2020-04-29", "2020-05-01"), tz = "America/New_York"))
expect_equal(
update(pp, days = 31),
ymd(c("2020-03-02", "2020-03-31"), tz = "America/New_York"))
expect_equal(
update(pp, months = 4, days = 32),
ymd(c("2020-05-02", "2020-05-02"), tz = "America/New_York"))
})
test_that("year<- update rolls over dates but not update", {
x <- ymd("2020-02-29")
expect_equal(update(x, years = 2019), ymd("2019-03-01"))
year(x) <- 2017
expect_equal(x, NA_Date_)
x <- ymd("2020-02-29", tz = "America/New_York")
expect_equal(update(x, years = 2019), ymd("2019-03-01", tz = "America/New_York"))
year(x) <- 2017
expect_equal(x, with_tz(NA_POSIXct_, "America/New_York"))
})
test_that("day<- rolls over", {
x <- ymd("2017-02-20")
expect_equal(update(x, days = 29), ymd("2017-03-01"))
expect_equal(update(x, days = 100), ymd("2017-05-11"))
day(x) <- 29
expect_equal(x, ymd("2017-03-01"))
x <- ymd("2017-02-20")
day(x) <- 100
expect_equal(x, ymd("2017-05-11"))
x <- ymd("2017-02-20", tz = "America/New_York")
expect_equal(update(x, mdays = 29), ymd("2017-03-01", tz = "America/New_York"))
expect_equal(update(x, mdays = 100), ymd("2017-05-11", tz = "America/New_York"))
day(x) <- 29
expect_equal(x, ymd("2017-03-01", tz = "America/New_York"))
x <- ymd("2017-02-20", tz = "America/New_York")
day(x) <- 100
expect_equal(x, ymd("2017-05-11", tz = "America/New_York"))
})
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.