hw-hedgehog-0.1.0.0: src/HaskellWorks/Hedgehog.hs
module HaskellWorks.Hedgehog where
import Hedgehog
import Hedgehog.Internal.Property (MonadTest(..), failDiff, failWith)
import Hedgehog.Internal.Source (HasCallStack(..), withFrozenCallStack)
import Hedgehog.Internal.Show
reversed :: Group -> Group
reversed (Group name properties) = Group name (reverse properties)
(/==) :: (MonadTest m, Eq a, Show a, HasCallStack) => a -> a -> m ()
(/==) x y = do
ok <- withFrozenCallStack $ eval (x /= y)
if ok
then success
else withFrozenCallStack $ failDiff x y
(?==) :: (MonadTest m, Eq a, Show a, HasCallStack) => a -> (a -> Bool) -> m ()
(?==) x p = do
r <- withFrozenCallStack $ eval x
if p r
then success
else withFrozenCallStack $ failWith Nothing $ unlines
[ "━━━ Invalid result ━━━"
, showPretty x
]