test_that("default format captures cases", {
late_night <- hms::hms(seconds = 22 * 3600 + 20 * 60)
expect_equal(parse_time("22:20"), late_night)
expect_equal(parse_time("10:20 pm"), late_night)
expect_equal(parse_time("22:20:05"), hms::as_hms(late_night + 5))
expect_equal(parse_time("10:20:05 pm"), hms::as_hms(late_night + 5))
})
test_that("twelve o'clock is parsed properly", {
morning <- hms::hms(seconds = 0 * 3600 + 1 * 60)
midday <- hms::hms(seconds = 12 * 3600 + 1 * 60)
expect_equal(parse_time("12:01 AM"), morning)
expect_equal(parse_time("12:01 PM"), midday)
expect_equal(parse_time("12:01"), midday)
})
test_that("accepts single digit hour", {
early_morn <- hms::hms(seconds = 1 * 3600 + 20 * 60)
expect_equal(parse_time("1:20 am"), early_morn)
})
test_that("parses NA/empty correctly", {
out <- parse_time(c("NA", ""))
exp <- hms::hms(seconds = c(NA_real_, NA_real_))
expect_equal(out, exp)
expect_equal(
parse_time("TeSt", na = "TeSt"),
hms::hms(seconds = NA_real_)
)
})
test_that("times are guessed as expected", {
expect_equal(guess_parser("12:01"), "time")
expect_equal(
guess_parser("12:01:01"), "time"
)
expect_equal(
guess_parser(c("04:00:00", "04:30:00", "14:00:22")), "time"
)
expect_equal(
guess_parser("25:01:01"), "time"
)
})
test_that("durations", {
expect_warning(parse_time("25:00:00", format = "%H:%M:%S"))
expect_equal(parse_time("25:00:00", format = "%h:%M:%S"), hms::hms(hours = 25))
expect_equal(parse_time("1000000000:00:00", format = "%h:%M:%S"), hms::hms(hours = 1e9))
expect_equal(parse_time("-1:23:45", format = "%h:%M:%S"), hms::as_hms(-hms::hms(45, 23, 1)))
expect_equal(parse_time("-1:23:45.67", format = "%h:%M:%OS"), hms::as_hms(-hms::hms(45.67, 23, 1)))
})
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.