scalie/test/Test/Data/Map/Implicit.hs

27 lines
1 KiB
Haskell

{-# LANGUAGE Unsafe #-} -- unsafe: I am using TemplateHaskell from a dependency
{-# LANGUAGE TemplateHaskell #-}
{-# LANGUAGE TypeApplications #-}
module Test.Data.Map.Implicit (prop_readShowIdentityRoundtrip, prop_readShowMaybeRoundtrip, runTests) where
import Test.QuickCheck.Roundtrip (roundtrips)
import Text.Show (show)
import Text.Read (read)
import Data.Map.Implicit (ImplicitMap)
import Data.Bool (Bool)
import Language.Scalie.Ast.Definition (Definition)
import Data.Functor.Identity (Identity)
import Test.QuickCheck.All (quickCheckAll)
import System.IO (IO)
import Control.Applicative (pure)
import Data.Maybe (Maybe)
-- | This is testworthy since I have somehow hand-hacked the read/show de/serialization of 'ImplicitMap'
prop_readShowIdentityRoundtrip :: ImplicitMap (Definition Identity) -> Bool
prop_readShowIdentityRoundtrip = roundtrips read show
prop_readShowMaybeRoundtrip :: ImplicitMap (Definition Maybe) -> Bool
prop_readShowMaybeRoundtrip = roundtrips read show
pure []
runTests :: IO Bool
runTests = $quickCheckAll