tests/testthat/test-repair-terms.R

test_that("repair_terms", {
  expect_error(repair_terms(NA_character_), "`x` must inherit from S3 class 'term'.",
    class = "chk_error"
  )
  expect_identical(repair_terms(new_term()), new_term())
  expect_identical(repair_terms(NA_term_), NA_term_)
  expect_identical(repair_terms(new_term("")), NA_term_)
  expect_identical(repair_terms(new_term("a.a")), new_term("a.a"))
  expect_identical(repair_terms(new_term("a.")), new_term("a."))
  expect_identical(repair_terms(new_term(".a")), NA_term_)
  expect_identical(repair_terms(new_term("a_a")), new_term("a_a"))
  expect_identical(repair_terms(new_term("a_")), new_term("a_"))
  expect_identical(repair_terms(new_term("_a")), NA_term_)
  expect_identical(repair_terms(new_term("[1]")), NA_term_)
  expect_identical(repair_terms(new_term("b[]")), NA_term_)
  expect_identical(repair_terms(new_term("b[0]")), NA_term_)
  expect_identical(repair_terms(new_term("b[1,]")), NA_term_)
  expect_identical(repair_terms(new_term("a")), new_term("a"))
  expect_identical(repair_terms(new_term("a ")), new_term("a"))
  expect_identical(repair_terms(new_term("a [2]")), new_term("a[2]"))
  expect_identical(
    repair_terms(new_term(c("b [  3 ]", "a [2]"))),
    new_term(c("b[3]", "a[2]"))
  )
  expect_identical(repair_terms(new_term(c("a", ""))), new_term(c("a", NA)))
  expect_identical(repair_terms(new_term(c("a[1]", ""))), new_term(c("a", NA)))

  expect_identical(repair_terms(new_term(c("a[1]", "a[1]"))), new_term(c("a", "a")))
  expect_identical(repair_terms(new_term(c("a[2]", "a[1]"))), new_term(c("a[2]", "a[1]")))
  expect_identical(repair_terms(new_term(c("a[2]", "a"))), new_term(c("a[2]", "a[1]")))

  expect_identical(repair_terms(new_term(c("a[2,1]", "a"))), new_term(c("a[2,1]", "a[1]")))
})

test_that("repair_terms missing values", {
  expect_identical(repair_terms(NA_term_), NA_term_)
  expect_identical(repair_terms(c(NA_term_, new_term("a"))), new_term(c(NA_term_, "a")))
  expect_identical(repair_terms(new_term(c("a", NA_term_, "a"))), new_term(c("a", NA_term_, "a")))
  expect_identical(
    repair_terms(new_term(c(NA_character_, "a", NA_character_, "a"))),
    new_term(c(NA_term_, "a", NA_term_, "a"))
  )
})

test_that("repair_terms normalize = FALSE", {
  expect_identical(repair_terms(as_term(c("a", "a[2]"))),
                   as_term(c("a[1]", "a[2]")))
  expect_identical(repair_terms(as_term(c("a", "a[2]")), normalize = FALSE),
                   as_term(c("a", "a[2]")))
  expect_identical(repair_terms(as_term(c("a", "b[2]"))),
                   as_term(c("a", "b[2]")))
  expect_identical(repair_terms(as_term(c("a", "b[2]")), normalize = FALSE),
                   as_term(c("a", "b[2]")))
  expect_identical(repair_terms(as_term(c("a[1]", "b[2]"))),
                   as_term(c("a", "b[2]")))
  expect_identical(repair_terms(as_term(c("a[1]", "b[2]")), normalize = FALSE),
                   as_term(c("a[1]", "b[2]")))
  expect_identical(repair_terms(as_term(c("a", "b[2]"))),
                   as_term(c("a", "b[2]")))
  expect_identical(repair_terms(as_term(c("a", "b[2]")), normalize = FALSE),
                   as_term(c("a", "b[2]")))
})

Try the term package in your browser

Any scripts or data that you put into this service are public.

term documentation built on Sept. 29, 2022, 5:14 p.m.