packages feed

hw-balancedparens-0.3.0.5: test/HaskellWorks/Data/BalancedParens/FindCloseNSpec.hs

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

module HaskellWorks.Data.BalancedParens.FindCloseNSpec where

import HaskellWorks.Data.BalancedParens
import HaskellWorks.Data.Bits.Broadword.Type
import HaskellWorks.Hspec.Hedgehog
import Hedgehog
import Test.Hspec

import qualified Hedgehog.Gen   as G
import qualified Hedgehog.Range as R

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

spec :: Spec
spec = describe "HaskellWorks.Data.BalancedParens.FindCloseNSpec" $ do
  it "returns same result as broadword" $ requireProperty $ do
    w <- forAll $ G.word64 R.constantBounded
    p <- forAll $ G.word64 (R.linear 1 64)
    findClose w p === findClose (Broadword w) p