{-# 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.Plutus.Data (Data) import Test.Cardano.Ledger.Alonzo.Binary.Annotator () import Test.Cardano.Ledger.Binary.Cuddle ( huddleDecoderEquivalenceSpec, huddleRoundTripAnnCborSpec, huddleRoundTripCborSpec, 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 (CTreeRoot MonoReferenced) -> Spec specWithHuddle Huddle alonzoCDDL (SpecWith (CTreeRoot MonoReferenced) -> Spec) -> SpecWith (CTreeRoot MonoReferenced) -> Spec forall a b. (a -> b) -> a -> b $ do forall a. (HasCallStack, Eq a, Show a, EncCBOR a, DecCBOR a) => Version -> Text -> SpecWith (CTreeRoot MonoReferenced) huddleRoundTripCborSpec @(Value AlonzoEra) Version v Text "coin" forall a. (HasCallStack, Eq a, Show a, EncCBOR a, DecCBOR (Annotator a)) => Version -> Text -> SpecWith (CTreeRoot MonoReferenced) huddleRoundTripAnnCborSpec @(TxBody TopTx AlonzoEra) Version v Text "transaction_body" forall a. (HasCallStack, Eq a, Show a, EncCBOR a, DecCBOR a) => Version -> Text -> SpecWith (CTreeRoot MonoReferenced) huddleRoundTripCborSpec @(TxBody TopTx AlonzoEra) Version v Text "transaction_body" forall a. (HasCallStack, Eq a, Show a, EncCBOR a, DecCBOR (Annotator a)) => Version -> Text -> SpecWith (CTreeRoot MonoReferenced) huddleRoundTripAnnCborSpec @(TxAuxData AlonzoEra) Version v Text "auxiliary_data" forall a. (HasCallStack, Eq a, Show a, EncCBOR a, DecCBOR a) => Version -> Text -> SpecWith (CTreeRoot MonoReferenced) huddleRoundTripCborSpec @(TxAuxData AlonzoEra) Version v Text "auxiliary_data" forall a. (HasCallStack, Eq a, Show a, EncCBOR a, DecCBOR (Annotator a)) => Version -> Text -> SpecWith (CTreeRoot MonoReferenced) huddleRoundTripAnnCborSpec @(Timelock AlonzoEra) Version v Text "native_script" forall a. (HasCallStack, Eq a, Show a, EncCBOR a, DecCBOR a) => Version -> Text -> SpecWith (CTreeRoot MonoReferenced) huddleRoundTripCborSpec @(Timelock AlonzoEra) Version v Text "native_script" forall a. (HasCallStack, Eq a, Show a, EncCBOR a, DecCBOR (Annotator a)) => Version -> Text -> SpecWith (CTreeRoot MonoReferenced) huddleRoundTripAnnCborSpec @(Data AlonzoEra) Version v Text "plutus_data" forall a. (HasCallStack, Eq a, Show a, EncCBOR a, DecCBOR a) => Version -> Text -> SpecWith (CTreeRoot MonoReferenced) huddleRoundTripCborSpec @(Data AlonzoEra) Version v Text "plutus_data" forall a. (HasCallStack, Eq a, Show a, EncCBOR a, DecCBOR a) => Version -> Text -> SpecWith (CTreeRoot MonoReferenced) huddleRoundTripCborSpec @(TxOut AlonzoEra) Version v Text "transaction_output" forall a. (HasCallStack, Eq a, Show a, EncCBOR a, DecCBOR (Annotator a)) => Version -> Text -> SpecWith (CTreeRoot MonoReferenced) huddleRoundTripAnnCborSpec @(AlonzoTxWits AlonzoEra) Version v Text "transaction_witness_set" forall a. (HasCallStack, Eq a, Show a, EncCBOR a, DecCBOR a) => Version -> Text -> SpecWith (CTreeRoot MonoReferenced) huddleRoundTripCborSpec @(AlonzoTxWits AlonzoEra) Version v Text "transaction_witness_set" forall a. (HasCallStack, Eq a, Show a, EncCBOR a, DecCBOR a) => Version -> Text -> SpecWith (CTreeRoot MonoReferenced) huddleRoundTripCborSpec @(PParamsUpdate AlonzoEra) Version v Text "protocol_param_update" forall a. (HasCallStack, Eq a, Show a, EncCBOR a, DecCBOR (Annotator a)) => Version -> Text -> SpecWith (CTreeRoot MonoReferenced) huddleRoundTripAnnCborSpec @(Redeemers AlonzoEra) Version v Text "redeemers" forall a. (HasCallStack, Eq a, Show a, EncCBOR a, DecCBOR a) => Version -> Text -> SpecWith (CTreeRoot MonoReferenced) huddleRoundTripCborSpec @(Redeemers AlonzoEra) Version v Text "redeemers" forall a. (HasCallStack, Eq a, Show a, EncCBOR a, DecCBOR (Annotator a)) => Version -> Text -> SpecWith (CTreeRoot MonoReferenced) huddleRoundTripAnnCborSpec @(Tx TopTx AlonzoEra) Version v Text "transaction" forall a. (HasCallStack, Eq a, Show a, EncCBOR a, DecCBOR a) => Version -> Text -> SpecWith (CTreeRoot MonoReferenced) huddleRoundTripCborSpec @(Tx TopTx AlonzoEra) Version v Text "transaction" forall a. (HasCallStack, Eq a, Show a, EncCBOR a, DecCBOR a) => Version -> Text -> SpecWith (CTreeRoot MonoReferenced) huddleRoundTripCborSpec @CostModels Version v Text "cost_models" String -> SpecWith (CTreeRoot MonoReferenced) -> SpecWith (CTreeRoot MonoReferenced) forall a. HasCallStack => String -> SpecWith a -> SpecWith a describe String "DecCBOR instances equivalence via CDDL" (SpecWith (CTreeRoot MonoReferenced) -> SpecWith (CTreeRoot MonoReferenced)) -> SpecWith (CTreeRoot MonoReferenced) -> SpecWith (CTreeRoot MonoReferenced) forall a b. (a -> b) -> a -> b $ do forall a. (HasCallStack, Eq a, Show a, DecCBOR a, DecCBOR (Annotator a)) => Version -> Text -> SpecWith (CTreeRoot MonoReferenced) huddleDecoderEquivalenceSpec @(TxBody TopTx AlonzoEra) Version v Text "transaction_body" forall a. (HasCallStack, Eq a, Show a, DecCBOR a, DecCBOR (Annotator a)) => Version -> Text -> SpecWith (CTreeRoot MonoReferenced) huddleDecoderEquivalenceSpec @(TxAuxData AlonzoEra) Version v Text "auxiliary_data" forall a. (HasCallStack, Eq a, Show a, DecCBOR a, DecCBOR (Annotator a)) => Version -> Text -> SpecWith (CTreeRoot MonoReferenced) huddleDecoderEquivalenceSpec @(Timelock AlonzoEra) Version v Text "native_script" forall a. (HasCallStack, Eq a, Show a, DecCBOR a, DecCBOR (Annotator a)) => Version -> Text -> SpecWith (CTreeRoot MonoReferenced) huddleDecoderEquivalenceSpec @(Data AlonzoEra) Version v Text "plutus_data" forall a. (HasCallStack, Eq a, Show a, DecCBOR a, DecCBOR (Annotator a)) => Version -> Text -> SpecWith (CTreeRoot MonoReferenced) huddleDecoderEquivalenceSpec @(AlonzoTxWits AlonzoEra) Version v Text "transaction_witness_set" forall a. (HasCallStack, Eq a, Show a, DecCBOR a, DecCBOR (Annotator a)) => Version -> Text -> SpecWith (CTreeRoot MonoReferenced) huddleDecoderEquivalenceSpec @(Redeemers AlonzoEra) Version v Text "redeemers" forall a. (HasCallStack, Eq a, Show a, DecCBOR a, DecCBOR (Annotator a)) => Version -> Text -> SpecWith (CTreeRoot MonoReferenced) huddleDecoderEquivalenceSpec @(Tx TopTx AlonzoEra) Version v Text "transaction"