tests/testthat/test-misc.R

test_that("id_date_sequence works", {
  seq1 <- seq(as.Date("2018-01-01"), as.Date("2025-01-01"), by = "year")
  df1 <- data.frame(date = seq1)
  df2 <- data.frame(date = seq1[-4])

  expect_error(df1$id <- id_date_sequence(df1$date, "year"), NA)
  expect_length(unique(df1$id), 1L)

  expect_error(df2$id <- id_date_sequence(df2$date, "year"), NA)
  expect_length(unique(df2$id), 2L)

  expect_error(df2$id <- id_date_sequence(df2$date, "year"), NA)
  expect_error(df2$id <- id_date_sequence(df2$date, "month"), NA)
  expect_error(df2$id <- id_date_sequence(df2$date, "week"), NA)
  expect_error(df2$id <- id_date_sequence(df2$date, "day"), NA)
  expect_error(df2$id <- id_date_sequence(df2$date, "foo"),
               "Did not recognize time period")
})

test_that("id_date_sequence works with integer year dates", {

  yr <- c(2002:2005, 2007:2010)
  expect_equal(
    id_date_sequence(yr),
    c(rep(1L, 4), rep(2L, 4))
  )

  # rejects years before G&W start and non-sensical years
  expect_error(id_date_sequence(1814))
  expect_error(id_date_sequence(10000))

  # but 9999 works
  expect_error(id_date_sequence(9999), NA)

})


test_that("country_names works with COW list (#23)", {

  expect_equal(country_names(946, list = "COW"), "Kiribati")
  expect_equal(country_names(970, list = "GW"), "Kiribati")
  expect_equal(country_names(970, list = "COW"), "Nauru")

})
andybega/states documentation built on Sept. 11, 2023, 4:04 p.m.