{-# LANGUAGE TypeApplications #-}

module Test.Consensus.Byron.LedgerTables (tests) where

import Ouroboros.Consensus.Byron.Ledger
import Test.Consensus.Byron.Generators ()
import Test.LedgerTables
import Test.Tasty
import Test.Tasty.QuickCheck

tests :: TestTree
tests :: TestTree
tests =
  TestName -> [TestTree] -> TestTree
testGroup
    TestName
"LedgerTables"
    [ TestName
-> (LedgerState ByronBlock EmptyMK
    -> LedgerState ByronBlock ValuesMK -> Property)
-> TestTree
forall a. Testable a => TestName -> a -> TestTree
testProperty TestName
"Stowable laws" (forall blk.
(HasLedgerTables (LedgerState blk),
 CanStowLedgerTables (LedgerState blk)) =>
LedgerState blk EmptyMK -> LedgerState blk ValuesMK -> Property
prop_stowable_laws @ByronBlock)
    , TestName
-> (LedgerState ByronBlock EmptyMK
    -> LedgerTables (LedgerState ByronBlock) ValuesMK -> Property)
-> TestTree
forall a. Testable a => TestName -> a -> TestTree
testProperty TestName
"HasLedgerTables laws" (forall blk.
HasLedgerTables (LedgerState blk) =>
LedgerState blk EmptyMK
-> LedgerTables (LedgerState blk) ValuesMK -> Property
prop_hasledgertables_laws @ByronBlock)
    ]