tests/testthat/test-coerce-from.R

date <- as.Date("2010-10-10")
POSIXct <- as.POSIXct("2010-10-20 CEST")
POSIXlt <- as.POSIXlt("2010-10-15 CEST")
messy <- as_messydate("2010-10-10..2010-10-20")
negative <- min(as_messydate("1000 BC"))

test_that("Coercion from other date classes into messydt works", {
  expect_equal(as.character(as.Date(as_messydate("1000 BC"), max)), "-1000-12-31")
  expect_equal(as.Date(messy, min), date)
  expect_equal(as.POSIXct(messy, max), POSIXct)
  expect_equal(as.POSIXlt(messy, mean), POSIXlt)
  expect_equal(as.Date(as_messydate("2010-10-10"), median), date)
  expect_equal(as.Date(as_messydate("2010-10-10"), random), date)
  expect_equal(as.character(as.Date(as_messydate("1000 BC"), min)), min(negative))
  expect_error(as.POSIXct(as_messydate("-2012"), min))
  expect_error(as.POSIXlt(as_messydate("-2012"), min))
})

test_that("Coercion from other types of negative dates work", {
  expect_equal(max(as_messydate(c("-27", "-14"))),
               c("-0027-12-31", "-0014-12-31"))
  expect_equal(mean(as_messydate(c("-27", "-14"))),
               c("-0027-07-02", "-0014-07-02"))
  expect_equal(min(as_messydate(c("-27", "-14"))),
               c("-0027-01-01", "-0014-01-01"))
})
globalgov/messydates documentation built on April 22, 2024, 3:08 a.m.