{-# LANGUAGE DataKinds #-} {-# LANGUAGE TypeApplications #-} {-# LANGUAGE TypeFamilies #-} {-# OPTIONS_GHC -Wno-orphans #-} module Test.Cardano.Ledger.Mary.BinarySpec (spec) where import Cardano.Ledger.Mary import Test.Cardano.Ledger.Common import Test.Cardano.Ledger.Core.Binary as Binary (decoderEquivalenceCoreEraTypesSpec, txSizeSpec) import Test.Cardano.Ledger.Core.Binary.RoundTrip (RuleListEra (..)) import Test.Cardano.Ledger.Mary.Arbitrary () import Test.Cardano.Ledger.Mary.Binary.Annotator () import Test.Cardano.Ledger.Mary.Era () import Test.Cardano.Ledger.Mary.TreeDiff () import Test.Cardano.Ledger.Shelley.Binary.RoundTrip (roundTripShelleyCommonSpec) spec :: Spec spec :: Spec spec = do String -> Spec -> Spec forall a. HasCallStack => String -> SpecWith a -> SpecWith a describe String "RoundTrip" (Spec -> Spec) -> Spec -> Spec forall a b. (a -> b) -> a -> b $ do forall era. (ShelleyEraTest era, RuleListEra era) => Spec roundTripShelleyCommonSpec @MaryEra String -> Spec -> Spec forall a. HasCallStack => String -> SpecWith a -> SpecWith a describe String "DecCBOR instances equivalence" (Spec -> Spec) -> Spec -> Spec forall a b. (a -> b) -> a -> b $ do forall era. (EraTx era, Arbitrary (Tx era), Arbitrary (TxBody era), Arbitrary (TxWits era), Arbitrary (TxAuxData era), Arbitrary (Script era), HasCallStack) => Spec Binary.decoderEquivalenceCoreEraTypesSpec @MaryEra forall era. (EraTx era, Arbitrary (Tx era), SafeToHash (TxWits era)) => Spec Binary.txSizeSpec @MaryEra instance RuleListEra MaryEra where type EraRules MaryEra = '[ "DELEG" , "DELEGS" , "DELPL" , "LEDGER" , "LEDGERS" , "POOL" , "PPUP" , "UTXO" , "UTXOW" ]