{-# LANGUAGE ScopedTypeVariables #-} {-# LANGUAGE TypeApplications #-} module Main where import Cardano.Ledger.Allegra (AllegraEra) import Cardano.Ledger.Alonzo (AlonzoEra) import Cardano.Ledger.Mary (MaryEra) import Cardano.Ledger.Shelley (ShelleyEra) import Cardano.Protocol.Crypto (StandardCrypto) import Cardano.Protocol.TPraos.BHeader (BHeader) import Test.Cardano.Ledger.Common import qualified Test.Cardano.Protocol.Binary.BinarySpec as Binary import qualified Test.Cardano.Protocol.Binary.CddlSpec as Cddl import Test.Cardano.Protocol.Binary.RoundTrip import Test.Cardano.Protocol.TPraos.Arbitrary () main :: IO () IO () main = Spec -> IO () ledgerTestMain forall a b. (a -> b) -> a -> b $ forall a. HasCallStack => String -> SpecWith a -> SpecWith a describe String "TPraos" forall a b. (a -> b) -> a -> b $ do Spec Cddl.spec Spec Binary.spec forall a. HasCallStack => String -> SpecWith a -> SpecWith a describe String "RoundTrip" forall a b. (a -> b) -> a -> b $ do forall h era. (Eq h, Show h, DecCBOR h, DecCBOR (Annotator h), EncCBOR h, EraSegWits era, DecCBOR (TxSeq era), Arbitrary (Block h era)) => Spec roundTripBlockSpec @(BHeader StandardCrypto) @ShelleyEra forall h era. (Eq h, Show h, DecCBOR h, DecCBOR (Annotator h), EncCBOR h, EraSegWits era, DecCBOR (TxSeq era), Arbitrary (Block h era)) => Spec roundTripBlockSpec @(BHeader StandardCrypto) @AllegraEra forall h era. (Eq h, Show h, DecCBOR h, DecCBOR (Annotator h), EncCBOR h, EraSegWits era, DecCBOR (TxSeq era), Arbitrary (Block h era)) => Spec roundTripBlockSpec @(BHeader StandardCrypto) @MaryEra forall h era. (Eq h, Show h, DecCBOR h, DecCBOR (Annotator h), EncCBOR h, EraSegWits era, DecCBOR (TxSeq era), Arbitrary (Block h era)) => Spec roundTripBlockSpec @(BHeader StandardCrypto) @AlonzoEra