text-show-instances-3.5: tests/Spec/Data/Functor/TransSpec.hs
{-|
Module: Spec.Data.Functor.TransSpec
Copyright: (C) 2014-2017 Ryan Scott
License: BSD-style (see the file LICENSE)
Maintainer: Ryan Scott
Stability: Provisional
Portability: GHC
@hspec@ tests for functor transformers.
-}
module Spec.Data.Functor.TransSpec (main, spec) where
import Data.Functor.Compose (Compose)
import Data.Functor.Constant (Constant)
import Data.Functor.Product (Product)
import Data.Functor.Reverse (Reverse)
import Data.Functor.Sum (Sum)
import Data.Proxy (Proxy(..))
import Instances.Data.Functor.Trans ()
import Spec.Utils (matchesTextShowSpec)
import Test.Hspec (Spec, describe, hspec, parallel)
import TextShow.Data.Functor.Trans ()
main :: IO ()
main = hspec spec
spec :: Spec
spec = parallel $ do
describe "Compose Maybe (Either Int) Char" $
matchesTextShowSpec (Proxy :: Proxy (Compose Maybe (Either Int) Char))
describe "Constant Int Char" $
matchesTextShowSpec (Proxy :: Proxy (Constant Int Char))
describe "Product Maybe (Either Int) Char" $
matchesTextShowSpec (Proxy :: Proxy (Product Maybe (Either Int) Char))
describe "Reverse Maybe Int" $
matchesTextShowSpec (Proxy :: Proxy (Reverse Maybe Int))
describe "Sum Maybe (Either Int) Char" $
matchesTextShowSpec (Proxy :: Proxy (Sum Maybe (Either Int) Char))