tests/testthat/test-zdd.R

test_that("hashes still work", {
  expect_output(print(zdd(1L)), 'cutsets')
  expect_output(print(zdd0() ), 'ZERO'   )
  expect_output(print(zdd1() ), 'ONE'    )
  node <- zdd(1L)
  expect_true(is_zero(p0(node)) )
  expect_true( is_one(p1(node)) )
  expect_true( is_one(zdd(9, p0=TRUE)) )
  expect_equal(zdd(1), zdd(9, zdd(1), zdd(1)))
  expect_s3_class(node, "zdd")
  expect_error(zddr:::zdd_hash(1.2, p0 = 'not a node', p1 = TRUE))
  expect_error(zddr:::zdd_hash(1L , p0 = 'not a node', p1 = TRUE))
  expect_error(zddr:::zdd_hash(1L , p0 = FALSE, p1 = 'not a node'))
  expect_error(         p0( FALSE ) )
  expect_error(         p0( TRUE  ) )
  expect_error(         p1( FALSE ) )
  expect_error(         p1( TRUE  ) )
  expect_error( as.integer(as_zdd(F)) )
  expect_error( as.integer(as_zdd(T)) )
})

test_that("the zdd store behaves appropriately", {
  reset_zdd_store(keep_protected = FALSE, quiet = TRUE)
  a <- as_zdd(c(1,2,3))
  protect(a)

  reset_zdd_store(keep_protected = TRUE, quiet = TRUE)
  expect_equal(a | 1, as_zdd(1))

  reset_zdd_store(keep_protected = FALSE, quiet = TRUE)
  expect_error(a | 1)
})
jordagaman/zddr documentation built on June 29, 2021, 4:23 a.m.