{-# LANGUAGE OverloadedStrings #-} {-# LANGUAGE TypeApplications #-} module Test.Cardano.Ledger.Mary.Binary.CddlSpec (spec) where import Cardano.Ledger.Core import Cardano.Ledger.Mary (MaryEra) import Cardano.Ledger.Mary.HuddleSpec (maryCDDL) import Test.Cardano.Ledger.Binary.Cuddle import Test.Cardano.Ledger.Common import Test.Cardano.Ledger.Mary.Binary.Annotator () 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 eraProtVerLow @MaryEra 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 maryCDDL (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 MaryEra) Version v Text "value" forall a. (HasCallStack, Eq a, Show a, EncCBOR a, DecCBOR (Annotator a)) => Version -> Text -> SpecWith HuddleEnv huddleRoundTripAnnCborSpec @(TxBody TopTx MaryEra) Version v Text "transaction_body" forall a. (HasCallStack, Eq a, Show a, EncCBOR a, DecCBOR a) => Version -> Text -> SpecWith HuddleEnv huddleRoundTripCborSpec @(TxBody TopTx MaryEra) Version v Text "transaction_body" forall a. (HasCallStack, Eq a, Show a, EncCBOR a, DecCBOR (Annotator a)) => Version -> Text -> SpecWith HuddleEnv huddleRoundTripAnnCborSpec @(TxAuxData MaryEra) Version v Text "auxiliary_data" forall a. (HasCallStack, Eq a, Show a, EncCBOR a, DecCBOR a) => Version -> Text -> SpecWith HuddleEnv huddleRoundTripCborSpec @(TxAuxData MaryEra) Version v Text "auxiliary_data" forall a. (HasCallStack, Eq a, Show a, EncCBOR a, DecCBOR (Annotator a)) => Version -> Text -> SpecWith HuddleEnv huddleRoundTripAnnCborSpec @(Script MaryEra) Version v Text "native_script" forall a. (HasCallStack, Eq a, Show a, EncCBOR a, DecCBOR a) => Version -> Text -> SpecWith HuddleEnv huddleRoundTripCborSpec @(Script MaryEra) Version v Text "native_script" 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 MaryEra) Version v Text "transaction_body" forall a. (HasCallStack, Eq a, Show a, DecCBOR a, DecCBOR (Annotator a)) => Version -> Text -> SpecWith HuddleEnv huddleDecoderEquivalenceSpec @(Script MaryEra) Version v Text "native_script" forall a. (HasCallStack, Eq a, Show a, DecCBOR a, DecCBOR (Annotator a)) => Version -> Text -> SpecWith HuddleEnv huddleDecoderEquivalenceSpec @(TxAuxData MaryEra) Version v Text "auxiliary_data"