tests/testthat/test-alphord.R

test_that("str_alphord_nums works", {
  strings <- paste0("abc", 1:12)
  expect_equal(
    str_alphord_nums(strings),
    str_c("abc", c(paste0(0, 1:9), 10:12))
  )
  expect_equal(
    str_alphord_nums(c("01abc9def55", "5abc10def777", "99abc4def4")),
    c("01abc09def055", "05abc10def777", "99abc04def004")
  )
  expect_equal(
    str_alphord_nums(c("abc9def55", "abc10def7")),
    c("abc09def55", "abc10def07")
  )
  expect_equal(
    str_alphord_nums(c("abc9def55", "abc10def777", "abc4def4")),
    c("abc09def055", "abc10def777", "abc04def004")
  )
  expect_snapshot_error(
    str_alphord_nums(c("abc9def55", "abc9def5", "abc10xyz7"))
  )
  expect_error(
    str_alphord_nums(c("abc9def55", "9abc10def7")),
    "The strings must all have the same number of numbers."
  )
  expect_snapshot_error(str_alphord_nums(c("0abc9def55g", "abc10def7g0")))
  expect_error(
    str_alphord_nums("abc"),
    "Some of the input strings have no numbers in them."
  )
  expect_equal(str_alphord_nums(1:10), c(paste0(0, 1:9), 10))
  expect_equal(str_alphord_nums(character()), character())
})
rorynolan/strex documentation built on Oct. 12, 2024, 12:32 p.m.