tests/testthat/test-cast.R

test_that("cast works", {
  x <- new_weeknumber(1000)
  expect_equal(as_weeknumber(1000), x)
  expect_equal(as_weeknumber("2019-W10"), x)
  expect_equal(as_weeknumber(factor("2019-W10")), x)
  expect_equal(as_weeknumber(x), x)
  expect_equal(as_weeknumber(lubridate::make_date(2019, 3, 7)), x)
  y <- lubridate::make_datetime(2019, 3, 7, 12)
  expect_equal(as_weeknumber(y), x)
  expect_equal(as_weeknumber(as.POSIXlt(y)), x)
})

test_that("round-trip works", {
  x <- as_weeknumber(-1000:1000)
  expect_equal(as_weeknumber(x), x)
  expect_equal(as_weeknumber(as.double(x)), x)
  expect_equal(as_weeknumber(as.integer(x)), x)
  expect_equal(as_weeknumber(as.character(x)), x)
  expect_equal(as_weeknumber(as.factor(x)), x)
  expect_equal(as_weeknumber(as.Date(x)), x)
  expect_equal(as_weeknumber(as.POSIXct(x)), x)
  expect_equal(as_weeknumber(as.POSIXlt(x)), x)
})

test_that("coercion gives correct class or type", {
  x <- as_weeknumber(0)
  expect_s3_class(as_weeknumber(x), "weeknumber")
  expect_type(as.double(x), "double")
  expect_type(as.integer(x), "integer")
  expect_type(as.character(x), "character")
  expect_s3_class(as.factor(x), "factor")
  expect_s3_class(as.Date(x), "Date")
  expect_s3_class(as.POSIXct(x), "POSIXct")
  expect_s3_class(as.POSIXlt(x), "POSIXlt")
})
hmalmedal/weeknumber documentation built on May 13, 2020, 1:52 p.m.