{-# LANGUAGE OverloadedStrings #-} {-# LANGUAGE TypeApplications #-} module Test.Cardano.Ledger.Alonzo.Binary.CddlSpec (spec) where import Cardano.Ledger.Allegra.Scripts import Cardano.Ledger.Alonzo (AlonzoEra) import Cardano.Ledger.Alonzo.HuddleSpec (alonzoCDDL) import Cardano.Ledger.Alonzo.Scripts (CostModels) import Cardano.Ledger.Alonzo.TxWits (AlonzoTxWits, Redeemers) import Cardano.Ledger.Core import Cardano.Ledger.MempoolTx (MempoolTx) import Cardano.Ledger.Plutus.Data (Data) import Test.Cardano.Ledger.Alonzo.Binary.Annotator () import Test.Cardano.Ledger.Binary.Cuddle ( huddleDecoderEquivalenceSpec, huddleRoundTripAnnCborSpec, huddleRoundTripCborSpec, noTwiddle, specWithHuddle, ) import Test.Cardano.Ledger.Common spec :: Spec spec :: Spec spec = String -> Spec -> Spec forall a. HasCallStack => String -> SpecWith a -> SpecWith a describe String "CDDL" (Spec -> Spec) -> Spec -> Spec forall a b. (a -> b) -> a -> b $ do let v :: Version v = forall era. Era era => Version eraProtVerHigh @AlonzoEra String -> Spec -> Spec forall a. HasCallStack => String -> SpecWith a -> SpecWith a describe String "Huddle" (Spec -> Spec) -> Spec -> Spec forall a b. (a -> b) -> a -> b $ Huddle -> SpecWith HuddleEnv -> Spec specWithHuddle Huddle alonzoCDDL (SpecWith HuddleEnv -> Spec) -> (SpecWith HuddleEnv -> SpecWith HuddleEnv) -> SpecWith HuddleEnv -> Spec forall b c a. (b -> c) -> (a -> b) -> a -> c . SpecWith HuddleEnv -> SpecWith HuddleEnv noTwiddle (SpecWith HuddleEnv -> Spec) -> SpecWith HuddleEnv -> Spec forall a b. (a -> b) -> a -> b $ do forall a. (HasCallStack, Eq a, Show a, EncCBOR a, DecCBOR a) => Version -> Text -> SpecWith HuddleEnv huddleRoundTripCborSpec @(Value AlonzoEra) Version v Text "coin" forall a. (HasCallStack, Eq a, Show a, EncCBOR a, DecCBOR (Annotator a)) => Version -> Text -> SpecWith HuddleEnv huddleRoundTripAnnCborSpec @(TxBody TopTx AlonzoEra) Version v Text "transaction_body" forall a. (HasCallStack, Eq a, Show a, EncCBOR a, DecCBOR a) => Version -> Text -> SpecWith HuddleEnv huddleRoundTripCborSpec @(TxBody TopTx AlonzoEra) Version v Text "transaction_body" forall a. (HasCallStack, Eq a, Show a, EncCBOR a, DecCBOR (Annotator a)) => Version -> Text -> SpecWith HuddleEnv huddleRoundTripAnnCborSpec @(TxAuxData AlonzoEra) Version v Text "auxiliary_data" forall a. (HasCallStack, Eq a, Show a, EncCBOR a, DecCBOR a) => Version -> Text -> SpecWith HuddleEnv huddleRoundTripCborSpec @(TxAuxData AlonzoEra) Version v Text "auxiliary_data" forall a. (HasCallStack, Eq a, Show a, EncCBOR a, DecCBOR (Annotator a)) => Version -> Text -> SpecWith HuddleEnv huddleRoundTripAnnCborSpec @(Timelock AlonzoEra) Version v Text "native_script" forall a. (HasCallStack, Eq a, Show a, EncCBOR a, DecCBOR a) => Version -> Text -> SpecWith HuddleEnv huddleRoundTripCborSpec @(Timelock AlonzoEra) Version v Text "native_script" forall a. (HasCallStack, Eq a, Show a, EncCBOR a, DecCBOR (Annotator a)) => Version -> Text -> SpecWith HuddleEnv huddleRoundTripAnnCborSpec @(Data AlonzoEra) Version v Text "plutus_data" forall a. (HasCallStack, Eq a, Show a, EncCBOR a, DecCBOR a) => Version -> Text -> SpecWith HuddleEnv huddleRoundTripCborSpec @(Data AlonzoEra) Version v Text "plutus_data" forall a. (HasCallStack, Eq a, Show a, EncCBOR a, DecCBOR a) => Version -> Text -> SpecWith HuddleEnv huddleRoundTripCborSpec @(TxOut AlonzoEra) Version v Text "transaction_output" forall a. (HasCallStack, Eq a, Show a, EncCBOR a, DecCBOR (Annotator a)) => Version -> Text -> SpecWith HuddleEnv huddleRoundTripAnnCborSpec @(AlonzoTxWits AlonzoEra) Version v Text "transaction_witness_set" forall a. (HasCallStack, Eq a, Show a, EncCBOR a, DecCBOR a) => Version -> Text -> SpecWith HuddleEnv huddleRoundTripCborSpec @(AlonzoTxWits AlonzoEra) Version v Text "transaction_witness_set" forall a. (HasCallStack, Eq a, Show a, EncCBOR a, DecCBOR a) => Version -> Text -> SpecWith HuddleEnv huddleRoundTripCborSpec @(PParamsUpdate AlonzoEra) Version v Text "protocol_param_update" forall a. (HasCallStack, Eq a, Show a, EncCBOR a, DecCBOR (Annotator a)) => Version -> Text -> SpecWith HuddleEnv huddleRoundTripAnnCborSpec @(Redeemers AlonzoEra) Version v Text "redeemers" forall a. (HasCallStack, Eq a, Show a, EncCBOR a, DecCBOR a) => Version -> Text -> SpecWith HuddleEnv huddleRoundTripCborSpec @(Redeemers AlonzoEra) Version v Text "redeemers" forall a. (HasCallStack, Eq a, Show a, EncCBOR a, DecCBOR (Annotator a)) => Version -> Text -> SpecWith HuddleEnv huddleRoundTripAnnCborSpec @(MempoolTx AlonzoEra) Version v Text "transaction" forall a. (HasCallStack, Eq a, Show a, EncCBOR a, DecCBOR a) => Version -> Text -> SpecWith HuddleEnv huddleRoundTripCborSpec @(MempoolTx AlonzoEra) Version v Text "transaction" forall a. (HasCallStack, Eq a, Show a, EncCBOR a, DecCBOR a) => Version -> Text -> SpecWith HuddleEnv huddleRoundTripCborSpec @CostModels Version v Text "cost_models" String -> SpecWith HuddleEnv -> SpecWith HuddleEnv forall a. HasCallStack => String -> SpecWith a -> SpecWith a describe String "DecCBOR instances equivalence via CDDL" (SpecWith HuddleEnv -> SpecWith HuddleEnv) -> SpecWith HuddleEnv -> SpecWith HuddleEnv forall a b. (a -> b) -> a -> b $ do forall a. (HasCallStack, Eq a, Show a, DecCBOR a, DecCBOR (Annotator a)) => Version -> Text -> SpecWith HuddleEnv huddleDecoderEquivalenceSpec @(TxBody TopTx AlonzoEra) Version v Text "transaction_body" forall a. (HasCallStack, Eq a, Show a, DecCBOR a, DecCBOR (Annotator a)) => Version -> Text -> SpecWith HuddleEnv huddleDecoderEquivalenceSpec @(TxAuxData AlonzoEra) Version v Text "auxiliary_data" forall a. (HasCallStack, Eq a, Show a, DecCBOR a, DecCBOR (Annotator a)) => Version -> Text -> SpecWith HuddleEnv huddleDecoderEquivalenceSpec @(Timelock AlonzoEra) Version v Text "native_script" forall a. (HasCallStack, Eq a, Show a, DecCBOR a, DecCBOR (Annotator a)) => Version -> Text -> SpecWith HuddleEnv huddleDecoderEquivalenceSpec @(Data AlonzoEra) Version v Text "plutus_data" forall a. (HasCallStack, Eq a, Show a, DecCBOR a, DecCBOR (Annotator a)) => Version -> Text -> SpecWith HuddleEnv huddleDecoderEquivalenceSpec @(AlonzoTxWits AlonzoEra) Version v Text "transaction_witness_set" forall a. (HasCallStack, Eq a, Show a, DecCBOR a, DecCBOR (Annotator a)) => Version -> Text -> SpecWith HuddleEnv huddleDecoderEquivalenceSpec @(Redeemers AlonzoEra) Version v Text "redeemers" forall a. (HasCallStack, Eq a, Show a, DecCBOR a, DecCBOR (Annotator a)) => Version -> Text -> SpecWith HuddleEnv huddleDecoderEquivalenceSpec @(MempoolTx AlonzoEra) Version v Text "transaction"