|
1 | 1 | {-# LANGUAGE FlexibleContexts #-}
|
| 2 | +{-# LANGUAGE RankNTypes #-} |
| 3 | +{-# LANGUAGE ScopedTypeVariables #-} |
| 4 | +{-# LANGUAGE TypeApplications #-} |
2 | 5 |
|
3 | 6 | module Test.Hedgehog.Roundtrip.CBOR
|
4 | 7 | ( roundtrip_CBOR
|
5 | 8 | , roundtrip_CDDL_Tx
|
6 | 9 | ) where
|
7 | 10 |
|
8 | 11 | import Cardano.Api
|
9 |
| -import Hedgehog (Gen, Property) |
10 | 12 |
|
| 13 | +import Data.Proxy (Proxy (..)) |
| 14 | +import Data.Typeable (typeRep) |
| 15 | +import GHC.Stack (HasCallStack) |
| 16 | +import qualified GHC.Stack as GHC |
| 17 | +import Hedgehog (Gen, Property) |
11 | 18 | import qualified Hedgehog as H
|
| 19 | +import qualified Hedgehog.Extras.Test.Base as H |
12 | 20 |
|
13 | 21 | {- HLINT ignore "Use camelCase" -}
|
14 | 22 |
|
15 | 23 | roundtrip_CBOR
|
16 |
| - :: (SerialiseAsCBOR a, Eq a, Show a) |
17 |
| - => AsType a -> Gen a -> Property |
| 24 | + :: forall a. (SerialiseAsCBOR a, Eq a, Show a, HasCallStack) |
| 25 | + => AsType a |
| 26 | + -> Gen a |
| 27 | + -> Property |
18 | 28 | roundtrip_CBOR typeProxy gen =
|
19 | 29 | H.property $ do
|
| 30 | + GHC.withFrozenCallStack $ H.noteShow_ $ typeRep $ Proxy @a |
20 | 31 | val <- H.forAll gen
|
21 | 32 | H.tripping val serialiseToCBOR (deserialiseFromCBOR typeProxy)
|
22 | 33 |
|
23 | 34 |
|
24 | 35 | roundtrip_CDDL_Tx
|
25 |
| - :: IsCardanoEra era => CardanoEra era -> Gen (Tx era) -> Property |
| 36 | + :: (IsCardanoEra era, HasCallStack) |
| 37 | + => CardanoEra era |
| 38 | + -> Gen (Tx era) |
| 39 | + -> Property |
26 | 40 | roundtrip_CDDL_Tx era gen =
|
27 | 41 | H.property $ do
|
| 42 | + GHC.withFrozenCallStack $ H.noteShow_ era |
28 | 43 | val <- H.forAll gen
|
29 | 44 | H.tripping val serialiseTxLedgerCddl (deserialiseTxLedgerCddl era)
|
0 commit comments