packages feed

explainable-predicates-0.1.2.0: src/Test/Predicates/HUnit.hs

-- | HUnit and Hspec integration for 'Predicate'
module Test.Predicates.HUnit (assertSatisfied, (@?~), shouldSatisfy) where

import Test.HUnit (Assertion, assertFailure)
import Test.Predicates (Predicate (accept, explain))

assertSatisfied :: Predicate a -> a -> Assertion
assertSatisfied predicate val =
  if accept predicate val
    then return ()
    else assertFailure (explain predicate val)

(@?~) :: a -> Predicate a -> Assertion
(@?~) = flip assertSatisfied

shouldSatisfy :: a -> Predicate a -> Assertion
shouldSatisfy = flip assertSatisfied