tests/testthat/test-term-compat.R

test_that("term", {
  rlang::local_options(lifecycle_verbosity = "quiet")

  expect_identical(term(0L), new_term())
  expect_identical(term(), new_term())
  expect_identical(term(0), new_term())
  expect_identical(term(1L), new_term("par"))
  expect_identical(term(2L), new_term(c("par[1]", "par[2]")))

  expect_identical(term(integer(0)), new_term())
  expect_identical(term(1L, "par"), new_term("par"))
  expect_identical(term(3L, "par"), new_term(c("par[1]", "par[2]", "par[3]")))
  expect_identical(
    term(10L, "par"),
    new_term(c(
      "par[1]", "par[2]", "par[3]", "par[4]", "par[5]",
      "par[6]", "par[7]", "par[8]", "par[9]", "par[10]"
    ))
  )
  expect_identical(term(c(1L, 1L), "par"), new_term("par[1,1]"))
  expect_identical(term(c(2L, 1L), "par"), new_term(c("par[1,1]", "par[2,1]")))
  expect_identical(
    term(c(2L, 2L), "par"),
    new_term(c("par[1,1]", "par[2,1]", "par[1,2]", "par[2,2]"))
  )
  expect_identical(
    term(c(2L, 2L, 2L), "par2"),
    new_term(c(
      "par2[1,1,1]", "par2[2,1,1]", "par2[1,2,1]", "par2[2,2,1]",
      "par2[1,1,2]", "par2[2,1,2]", "par2[1,2,2]", "par2[2,2,2]"
    ))
  )
})

test_that("term.list", {
  rlang::local_options(lifecycle_verbosity = "quiet")

  expect_identical(term(list()), new_term())
  expect_chk_error(term(list(1L)))
  expect_identical(term(list(x = 1L)), new_term("x"))
  expect_identical(term(list(x = 0)), new_term())
  expect_identical(term(list(x = 0, y = 1)), new_term("y"))
  expect_identical(term(list(x = 1)), new_term("x"))
  expect_identical(term(list(y = 3)), new_term(c("y[1]", "y[2]", "y[3]")))
  expect_identical(term(list(y = 1, x = 1)), new_term(c("y", "x")))
  expect_identical(term(list(y = 1, x = 2)), new_term(c("y", "x[1]", "x[2]")))
  expect_identical(
    term(list(y = c(2L, 2L), x = 2)),
    new_term(c("y[1,1]", "y[2,1]", "y[1,2]", "y[2,2]", "x[1]", "x[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.