tests/testthat/test-operate_operators.R

test_that("Logical comparisons work", {
  expect_true(as_messydate("2012-06-02") < as_messydate("2012-06-03"))
  # expect_false(as_messydate("2012-06-02") > as_messydate("2012-06-03"))
  # expect_true(as_messydate("2012-06-02") >= as_messydate("2012-06-02"))
  # expect_true(as_messydate("2012-06-02") <= as_messydate("2012-06-02"))
  expect_equal(as_messydate("2012-06-02") >= as_messydate("2012-06-XX"), NA)
  expect_true(as_messydate("2012-06-30") >= as_messydate("2012-06-XX"))
  # expect_equal(as_messydate("2012-06-02") < as_messydate("2012-06-XX"), NA)
  # expect_true(as.Date("2012-06-01") <= as_messydate("2012-06-XX"))
  # expect_true(as.POSIXct("2012-06-01") <= as_messydate("2012-06-XX"))
  # expect_equal(as.Date("2012-06-01") >= as_messydate("2012-06-XX"), NA)
  # expect_equal(as.POSIXct("2012-06-01") >= as_messydate("2012-06-XX"), NA)
  # expect_equal(as_messydate("2012-06-XX") >= as.Date("2012-06-02"), NA)
  # expect_equal(as_messydate("2012-06-XX") >= as.POSIXct("2012-06-02"), NA)
  expect_equal(as_messydate(c("2012-06-02", "2012-06-03")) <
                 as_messydate(c("2012-06-03", "2012-06-03")), c(TRUE, FALSE))
  # expect_equal(as_messydate(c("2012-06-02", "2012-06-03")) <=
  #                as_messydate(c("2012-06-03", "2012-06-03")), c(TRUE, TRUE))
  # expect_equal(as_messydate(c("2012-06-02", "2012-06-03")) >
  #                as_messydate(c("2012-06-03", "2012-06-03")), c(FALSE, FALSE))
  expect_equal(as_messydate(c("2012-06-02", "2012-06-03")) >=
                 as_messydate(c("2012-06-03", "2012-06-03")), c(FALSE, TRUE))
  # expect_true(as_messydate("2012-06-02") < as_messydate("2012-06-03"))
  # expect_true(as_messydate("1000-06-02") < as_messydate("1000-12-03"))
  expect_false(as_messydate("2012") < as_messydate("2000"))
  # expect_false(as_messydate("39") > as_messydate("1000"))
  # expect_true(as_messydate("39") < as_messydate("100"))
  # expect_true(as_messydate("1000") < as_messydate("2000"))
  # expect_true(as_messydate("0039-12-31") < as_messydate("1000-01-01"))
  expect_true(as_messydate("-0001-12-31") <= as_messydate("0001-01-01"))
  expect_false(as_messydate("1 BC") > as_messydate("1 AC"))
  # expect_true(as_messydate("39-01-01") < as_messydate("100-12-01"))
  # expect_true(as_messydate("0079") < as_messydate("0193"))
  # expect_true(as_messydate("79") < as_messydate("193-03"))
  # expect_true(as_messydate("0079-01") < as_messydate("0193-03"))
  expect_false(as_messydate("-0079-01-01") < as_messydate("-0193-03-01"))
})

# d1 <- as.Date(c("2012-01-01", "2012-02-01", "2012-03-01"))
# d2 <- as.Date(c("2012-03-01", "2012-02-01", "2012-01-01"))
# p1 <- as.POSIXct(c("2012-01-01", "2012-02-01", "2012-03-01"))
# p2 <- as.POSIXct(c("2012-03-01", "2012-02-01", "2012-01-01"))
test_that("Logical comparisons don't mess up comparisons between non-messy times", {
  # expect_identical(d1 < d2, c(TRUE, FALSE, FALSE))
  # # expect_identical(d1 > d2, c(FALSE, FALSE, TRUE))
  # # expect_identical(d1 <= d2, c(TRUE, TRUE, FALSE))
  # expect_identical(d1 >= d2, c(FALSE, TRUE, TRUE))
  # expect_identical(p1 < p2, c(TRUE, FALSE, FALSE))
  # # expect_identical(p1 > p2, c(FALSE, FALSE, TRUE))
  # # expect_identical(p1 <= p2, c(TRUE, TRUE, FALSE))
  # expect_identical(p1 >= p2, c(FALSE, TRUE, TRUE))
  # expect_identical(d1 < p2, c(TRUE, FALSE, FALSE))
  # # expect_identical(d1 > p2, c(FALSE, FALSE, TRUE))
  # # expect_identical(d1 <= p2, c(TRUE, TRUE, FALSE))
  # expect_identical(d1 >= p2, c(FALSE, TRUE, TRUE))
  # expect_identical(p1 < d2, c(TRUE, FALSE, FALSE))
  # # expect_identical(p1 > d2, c(FALSE, FALSE, TRUE))
  # # expect_identical(p1 <= d2, c(TRUE, TRUE, FALSE))
  # expect_identical(p1 >= d2, c(FALSE, TRUE, TRUE))
  expect_true(as_messydate("2010-09-10") > "2009")
  # expect_false(as_messydate("2010-09-10") > "2011")
})
globalgov/messydates documentation built on April 17, 2025, 12:49 p.m.