text-show-0.3.0.0: tests/Properties/Utils.hs
{-# LANGUAGE NoImplicitPrelude #-}
-----------------------------------------------------------------------------
-- |
-- Module : Properties.Utils
-- Copyright : (C) 2014 Ryan Scott
-- License : BSD-style (see the file LICENSE)
-- Maintainer : Ryan Scott
-- Stability : Experimental
-- Portability : GHC
--
-- @QuickCheck@ property-related utility functions.
----------------------------------------------------------------------------
module Properties.Utils (prop_matchesShow) where
import Data.Text.Lazy.Builder (fromString)
import qualified Prelude as P (Show)
import Prelude hiding (Show)
import Test.QuickCheck (Arbitrary)
import qualified Text.Show.Text as T (Show)
import Text.Show.Text (showbPrec)
-- | Verifies that a type's @Show@ instances coincide for both 'String's and 'Text',
-- irrespective of precedence.
prop_matchesShow :: (P.Show a, T.Show a, Arbitrary a) => Int -> a -> Bool
prop_matchesShow k x = fromString (showsPrec k x "") == showbPrec k x