tests/testthat/test-contradicted.R

context("contradicted")

test_that("is_contradicted_by works", {
  rules <- validator( r1 = x > 1
                    , r2 = x < 0
                    , r3 = x > 2
                    )
  rules_cd <- is_contradicted_by(rules, "r2")
  expect_equal(rules_cd, c("r1", "r3"))
})

test_that("is_contradicted_by works for non-contradicting rule", {
  rules <- validator( r1 = x > 1
                    , r2 = y > 2
                    )
  rules_cd <- is_contradicted_by(rules, "r2")
  expect_equal(rules_cd, character())
})

test_that("is_contradicted_by works for multiple rules (IIS)", {
  rules <- validator( r1 = x > 0
                    , r2 = y > 0
                    , r3 = x + y == -1
                    )
  
  rules_cd <- is_contradicted_by(rules,"r3")
  expect_equal(rules_cd, c("r2","r1"))
})


test_that("is_contradicted_by works for empty rule", {
  rules <- validator( r1 = x > 1
                    , r2 = y > 2
  )
  rules_cd <- is_contradicted_by(rules, NULL)
  expect_equal(rules_cd, character())
})


test_that("is_contradicted_by works on wrong rule", {
  rules <- validator( r1 = x > 1
                    , r2 = y > 2
  )
  expect_warning(rules_cd <- is_contradicted_by(rules, "r3"))
  expect_equal(rules_cd, character())
})

Try the validatetools package in your browser

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

validatetools documentation built on Oct. 1, 2023, 1:06 a.m.