module Test.Hedgehog.Roundtrip.Bech32
  ( roundtrip_Bech32
  )
where

import Cardano.Api

import Hedgehog (Gen, Property)
import Hedgehog qualified as H

roundtrip_Bech32
  :: (SerialiseAsBech32 a, Eq a, Show a)
  => Gen a -> Property
roundtrip_Bech32 :: forall a. (SerialiseAsBech32 a, Eq a, Show a) => Gen a -> Property
roundtrip_Bech32 Gen a
gen =
  HasCallStack => PropertyT IO () -> Property
PropertyT IO () -> Property
H.property (PropertyT IO () -> Property) -> PropertyT IO () -> Property
forall a b. (a -> b) -> a -> b
$ do
    val <- Gen a -> PropertyT IO a
forall (m :: * -> *) a.
(Monad m, Show a, HasCallStack) =>
Gen a -> PropertyT m a
H.forAll Gen a
gen
    H.tripping val serialiseToBech32 deserialiseFromBech32