packages feed

hw-balancedparens-0.3.1.0: test/HaskellWorks/Data/BalancedParens/Broadword/Word8Spec.hs

{-# LANGUAGE OverloadedStrings   #-}
{-# LANGUAGE ScopedTypeVariables #-}

module HaskellWorks.Data.BalancedParens.Broadword.Word8Spec where

import Control.Monad
import HaskellWorks.Data.Bits.BitShow
import HaskellWorks.Hspec.Hedgehog
import Hedgehog
import Test.Hspec

import qualified HaskellWorks.Data.BalancedParens.Broadword.Word8     as W8
import qualified HaskellWorks.Data.BalancedParens.Internal.Slow.Word8 as SW8

{-# ANN module ("HLint: ignore Redundant do"        :: String) #-}
{-# ANN module ("HLint: ignore Reduce duplication"  :: String) #-}

spec :: Spec
spec = describe "HaskellWorks.Data.BalancedParens.Broadword.Word8Spec" $ do
  describe "findCloseFar" $ do
    forM_ [0 .. 8] $ \p0 -> do
      forM_ [0 .. 0xff] $ \w0 -> do
        it ("word " <> bitShow w0) $ requireTest $ do
          p <- forAll $ pure p0
          w <- forAll $ pure w0
          W8.findCloseFar p w === SW8.findCloseFar p w