{-# LANGUAGE DataKinds #-} {-# LANGUAGE TypeApplications #-} {-# LANGUAGE TypeFamilies #-} {-# OPTIONS_GHC -Wno-orphans #-} module Test.Cardano.Ledger.Babbage.BinarySpec (spec) where import Cardano.Ledger.Alonzo.TxWits (Redeemers, TxDats) import Cardano.Ledger.Babbage import Test.Cardano.Ledger.Alonzo.Binary.RoundTrip (roundTripAlonzoCommonSpec) import Test.Cardano.Ledger.Babbage.Arbitrary () import Test.Cardano.Ledger.Babbage.Era () import Test.Cardano.Ledger.Babbage.TreeDiff () import Test.Cardano.Ledger.Common import Test.Cardano.Ledger.Core.Binary as Binary ( decoderEquivalenceCoreEraTypesSpec, decoderEquivalenceEraSpec, txSizeSpec, ) import Test.Cardano.Ledger.Core.Binary.RoundTrip (RuleListEra (..)) 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. (AlonzoEraTest era, RuleListEra era) => Spec roundTripAlonzoCommonSpec @BabbageEra 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 @BabbageEra forall era t. (Era era, Eq t, ToCBOR t, DecCBOR (Annotator t), Arbitrary t, Show t) => Spec decoderEquivalenceEraSpec @BabbageEra @(TxDats BabbageEra) forall era t. (Era era, Eq t, ToCBOR t, DecCBOR (Annotator t), Arbitrary t, Show t) => Spec decoderEquivalenceEraSpec @BabbageEra @(Redeemers BabbageEra) forall era. (EraTx era, Arbitrary (Tx era), SafeToHash (TxWits era)) => Spec Binary.txSizeSpec @BabbageEra instance RuleListEra BabbageEra where type EraRules BabbageEra = '[ "DELEG" , "DELEGS" , "DELPL" , "LEDGER" , "LEDGERS" , "POOL" , "PPUP" , "UTXO" , "UTXOW" , "UTXOS" ]