{-# LANGUAGE TypeApplications #-} module Main where import Cardano.Ledger.Shelley (ShelleyEra) import Test.Cardano.Ledger.Common import Test.Cardano.Ledger.Core.JSON (roundTripJsonEraSpec) import qualified Test.Cardano.Ledger.Shelley.Binary.CddlSpec as Cddl import qualified Test.Cardano.Ledger.Shelley.BinarySpec as Binary import qualified Test.Cardano.Ledger.Shelley.Imp as Imp main :: IO () IO () main = Spec -> IO () ledgerTestMain (Spec -> IO ()) -> Spec -> IO () forall a b. (a -> b) -> a -> b $ String -> Spec -> Spec forall a. HasCallStack => String -> SpecWith a -> SpecWith a describe String "Shelley" (Spec -> Spec) -> Spec -> Spec forall a b. (a -> b) -> a -> b $ do Spec Binary.spec Spec Cddl.spec forall era. (ShelleyEraImp era, InjectRuleFailure "LEDGER" ShelleyUtxoPredFailure era, InjectRuleFailure "LEDGER" ShelleyUtxowPredFailure era) => Spec Imp.spec @ShelleyEra forall era. (HasCallStack, EraTest era) => Spec roundTripJsonEraSpec @ShelleyEra