{-# LANGUAGE TypeApplications #-} {-# OPTIONS_GHC -Wno-orphans #-} module Test.Consensus.Ledger.Mock.LedgerTables (tests) where import Ouroboros.Consensus.Mock.Ledger import Ouroboros.Consensus.Protocol.PBFT import Test.Consensus.Ledger.Mock.Generators () import Test.LedgerTables import Test.Tasty import Test.Tasty.QuickCheck type Block = SimpleBlock SimpleMockCrypto (SimplePBftExt SimpleMockCrypto PBftMockCrypto) tests :: TestTree tests :: TestTree tests = TestName -> [TestTree] -> TestTree testGroup TestName "LedgerTables" [ TestName -> (LedgerState Block EmptyMK -> LedgerState Block ValuesMK -> Property) -> TestTree forall a. Testable a => TestName -> a -> TestTree testProperty TestName "Stowable laws" (forall blk. (HasLedgerTables LedgerState blk, CanStowLedgerTables (LedgerState blk), Show (TxIn blk), Show (TxOut blk)) => LedgerState blk EmptyMK -> LedgerState blk ValuesMK -> Property prop_stowable_laws @Block) , TestName -> (LedgerState Block EmptyMK -> LedgerTables Block ValuesMK -> Property) -> TestTree forall a. Testable a => TestName -> a -> TestTree testProperty TestName "HasLedgerTables laws" (forall blk. (HasLedgerTables LedgerState blk, Show (TxIn blk), Show (TxOut blk)) => LedgerState blk EmptyMK -> LedgerTables blk ValuesMK -> Property prop_hasledgertables_laws @Block) ]