tests/testthat/test-pars.R

test_that("pars.default", {
  expect_identical(pars(matrix(1:4, nrow = 2)), "par")
})

test_that("pars.character", {
  expect_identical(pars(new_term(character(0))), character(0))
  expect_identical(pars(new_term("a")), "a")
  expect_identical(pars(new_term(NA_character_)), NA_character_)
  expect_identical(pars(new_term(c(NA_character_, "a"))), c(NA_character_, "a"))
})

test_that("pars.term", {
  terms <- new_term(c(
    "alpha[1]", "alpha[2]", "beta[1,1]", "beta[2,1]",
    "beta[1,2]", "beta[2,2]", "sigma"
  ))
  expect_identical(pars(terms), c("alpha", "beta", "sigma"))
  expect_identical(pars(terms, scalar = TRUE), "sigma")
})

test_that("pars.term deprecated terms", {
  rlang::local_options(lifecycle_verbosity = "quiet")

  terms <- new_term(c(
    "alpha[1]", "alpha[2]", "beta[1,1]", "beta[2,1]",
    "beta[1,2]", "beta[2,2]", "sigma"
  ))

  lifecycle::expect_deprecated(pars(terms, terms = TRUE))
  lifecycle::expect_deprecated(pars(terms, terms = FALSE))
})

test_that("pars.term", {
  expect_identical(pars(new_term("b")), "b")
  expect_identical(pars(new_term("b"), scalar = TRUE), "b")
  expect_identical(pars(new_term("b[1]")), "b")
  expect_identical(pars(new_term("b[1]"), scalar = TRUE), "b")
  expect_identical(pars(new_term(c("b", "b[1]"))), "b")
  expect_identical(pars(new_term(c("b", "b[1]")), scalar = TRUE), "b")
  expect_identical(pars(new_term(c("b", "b[1]", "b[2]"))), "b")
  expect_identical(pars(new_term(c("b", "b[1]", "b[2]")), scalar = TRUE), character(0))
  expect_identical(pars(new_term(c("b[1]", "b[2]"))), "b")
  expect_identical(pars(new_term(c("b[1]", "b[2]")), scalar = TRUE), character(0))
})

test_that("pars.term missing values", {
  expect_identical(pars(new_term(NA_character_)), NA_character_)
  expect_identical(pars(new_term(c(NA_character_, "a"))), c(NA_character_, "a"))
  expect_identical(pars(new_term(c("a", NA_character_, "a"))), c("a", NA_character_))
  expect_identical(
    pars(new_term(c(NA_character_, "a", NA_character_, "a"))),
    c(NA_character_, "a")
  )

  expect_identical(pars(new_term(NA_character_), scalar = TRUE), NA_character_)
  expect_identical(
    pars(new_term(c(NA_character_, "a")), scalar = TRUE),
    c(NA_character_, "a")
  )
  expect_identical(
    pars(new_term(c("a", NA_character_, "a")), scalar = TRUE),
    c("a", NA_character_)
  )
  expect_identical(
    pars(new_term(c(NA_character_, "a", NA_character_, "a")), scalar = TRUE),
    c(NA_character_, "a")
  )
  expect_identical(
    pars(new_term(c("a[1]", NA_character_, "a")), scalar = TRUE),
    c("a", NA_character_)
  )
  expect_identical(
    pars(new_term(c("a[2]", NA_character_, "a")), scalar = TRUE),
    NA_character_
  )
  expect_identical(
    pars(new_term(c("b[2]", NA_character_, "a")), scalar = TRUE),
    c(NA_character_, "a")
  )
})

test_that("pars scalar = TRUE", {
  expect_identical(pars(new_term(character(0)), scalar = TRUE), character(0))
  expect_identical(pars(new_term("a"), scalar = TRUE), "a")
  expect_identical(pars(new_term(NA_character_), scalar = TRUE), NA_character_)
  expect_identical(pars(new_term(c(NA_character_, "a")), scalar = TRUE), c(NA_character_, "a"))
})

test_that("pars scalar = FALSE", {
  expect_identical(pars(new_term(character(0)), scalar = FALSE), character(0))
  expect_identical(pars(new_term("a"), scalar = FALSE), character(0))
  expect_identical(pars(new_term(NA_character_), scalar = FALSE), NA_character_)
  expect_identical(pars(new_term(c(NA_character_, "a")), scalar = FALSE), c(NA_character_))
})

test_that("pars.default scalar = TRUE", {
  expect_identical(pars(character(0), scalar = TRUE), character(0))
  expect_identical(pars("a", scalar = TRUE), "a")
  expect_identical(pars(c("a", "a"), scalar = TRUE), "a")
  expect_identical(pars(c("b", "a"), scalar = TRUE), c("b", "a"))
  expect_identical(pars(c("b[2]", "a"), scalar = TRUE), "a")
  expect_chk_error(pars(c("b b", "a"), scalar = TRUE), "a")
})

test_that("pars.default scalar = FALSE", {
  expect_identical(pars(character(0), scalar = FALSE), character(0))
  expect_identical(pars("a", scalar = FALSE), character(0))
  expect_identical(pars(c("a", "a"), scalar = FALSE), character(0))
  expect_identical(pars(c("b", "a"), scalar = FALSE), character(0))
  expect_identical(pars(c("b[2]", "a"), scalar = FALSE), "b")
  expect_chk_error(pars(c("b b", "a"), scalar = FALSE), "a")
})

test_that("pars.term scalar = TRUE", {
  terms <- new_term(c(
    "alpha[1]", "alpha[2]", "beta[1,1]", "beta[2,1]",
    "beta[1,2]", "beta[2,2]", "sigma"
  ))
  expect_identical(pars(terms, scalar = TRUE), "sigma")
})

test_that("pars.term scalar = FALSE", {
  terms <- new_term(c(
    "alpha[1]", "alpha[2]", "beta[1,1]", "beta[2,1]",
    "beta[1,2]", "beta[2,2]", "sigma"
  ))
  expect_identical(pars(terms, scalar = FALSE), c("alpha", "beta"))
})

test_that("pars.term scalar = TRUE", {
  expect_identical(pars(new_term("b"), scalar = TRUE), "b")
  expect_identical(pars(new_term("b[1]"), scalar = TRUE), "b")
  expect_identical(pars(new_term(c("b", "b[1]")), scalar = TRUE), "b")
  expect_identical(pars(new_term(c("b", "b[1]", "b[2]"))), "b")
  expect_identical(pars(new_term(c("b", "b[1]", "b[2]")), scalar = TRUE), character(0))
  expect_identical(pars(new_term(c("b[1]", "b[2]")), scalar = TRUE), character(0))
})

test_that("pars.term scalar missing values", {
  expect_identical(pars(new_term(NA_character_), scalar = TRUE), NA_character_)
  expect_identical(pars(new_term(c(NA_character_, "a")), scalar = TRUE), c(NA_character_, "a"))
  expect_identical(pars(new_term(c("a", NA_character_, "a")), scalar = TRUE), c("a", NA_character_))
  expect_identical(
    pars(new_term(c(NA_character_, "a", NA_character_, "a")), scalar = TRUE),
    c(NA_character_, "a")
  )

  expect_identical(
    pars(new_term(c("a[1]", NA_character_, "a")), scalar = TRUE),
    c("a", NA_character_)
  )
  expect_identical(
    pars(new_term(c("a[2]", NA_character_, "a")), scalar = TRUE),
    NA_character_
  )
  expect_identical(
    pars(new_term(c("b[2]", NA_character_, "a")), scalar = TRUE),
    c(NA_character_, "a")
  )
})

test_that("pars.term_rcrd", {
  expect_identical(pars(as_term_rcrd(as_term(c("a[1]", "b[2]")))),
                   c("a", "b"))
  expect_identical(pars(as_term_rcrd(as_term(c("b[1]", "a[2]")))),
                   c("b", "a"))
})

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.