{-# LANGUAGE LambdaCase #-} {-# LANGUAGE OverloadedStrings #-} {-# LANGUAGE ScopedTypeVariables #-} -- | -- Module: TestUtils -- Copyright: Copyright © 2021 Kadena LLC. -- License: MIT -- Maintainer: Lars Kuhtz -- Stability: experimental -- -- TODO -- module TestUtils ( prop_show_read , prop_json_encode_decode ) where import qualified Data.Aeson as A import Test.QuickCheck -- -------------------------------------------------------------------------- -- -- Generic Utilities prop_show_read :: Eq a => Show a => Read a => Arbitrary a => a -> Property prop_show_read a = read (show a) === a prop_json_encode_decode :: Eq a => Show a => Arbitrary a => A.ToJSON a => A.FromJSON a => a -> Property prop_json_encode_decode a = A.decode (A.encode a) === Just a