packages feed

boolean-normal-forms-0.0.0.1: tests/FreeBooleanTests.hs

module FreeBooleanTests where

import BooleanLaws
import NegableLaws
import SimplifyLaws
import BooleanModelLaws

import FreeBoolean

import Data.Function (on)

import Test.Tasty

tests :: TestTree
tests = testGroup "Free boolean"
  [ monotoneLaws eq
  , nonMonotoneLaws eq
  , negableLaws eq
  , simplifyLaws (undefined :: FreeBoolean (Either Bool Bool))
  , booleanModelLaws (undefined :: FreeBoolean (Either Bool Bool))
  ]

eq :: FreeBoolean Int -> FreeBoolean Int -> Bool
eq = (==) `on` toBoolWith (1==)