{-# LANGUAGE DataKinds #-} {-# LANGUAGE TypeApplications #-} {-# LANGUAGE TypeFamilies #-} {-# OPTIONS_GHC -Wno-orphans #-} module Test.Cardano.Ledger.Allegra.BinarySpec (spec) where import Cardano.Ledger.Allegra import Test.Cardano.Ledger.Allegra.Arbitrary () import Test.Cardano.Ledger.Allegra.Binary.Annotator () import Test.Cardano.Ledger.Allegra.TreeDiff () 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.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. (EraTx era, EraGov era, EraStake era, Eq (StashedAVVMAddresses era), Show (StashedAVVMAddresses era), EncCBOR (StashedAVVMAddresses era), DecCBOR (StashedAVVMAddresses era), Arbitrary (StashedAVVMAddresses era), Arbitrary (Tx era), Arbitrary (TxBody era), Arbitrary (TxOut era), Arbitrary (TxCert era), Arbitrary (TxWits era), Arbitrary (TxAuxData era), Arbitrary (Value era), Arbitrary (CompactForm (Value era)), Arbitrary (Script era), Arbitrary (GovState era), Arbitrary (PParams era), Arbitrary (PParamsUpdate era), Arbitrary (InstantStake era), RuleListEra era, EraCertState era, Arbitrary (CertState era), DecCBOR (Script era), DecCBOR (TxAuxData era), DecCBOR (TxWits era), DecCBOR (TxBody era), DecCBOR (Tx era)) => Spec roundTripShelleyCommonSpec @AllegraEra 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 @AllegraEra forall era. (EraTx era, Arbitrary (Tx era), SafeToHash (TxWits era)) => Spec Binary.txSizeSpec @AllegraEra instance RuleListEra AllegraEra where type EraRules AllegraEra = '[ "DELEG" , "DELEGS" , "DELPL" , "LEDGER" , "LEDGERS" , "POOL" , "PPUP" , "UTXO" , "UTXOW" ]