{-# LANGUAGE DataKinds #-}
{-# LANGUAGE TypeApplications #-}

module Test.Util.ChainUpdates.Tests (tests) where

import Cardano.Ledger.BaseTypes (knownNonZeroBounded)
import Ouroboros.Consensus.Config
import Test.Tasty
import Test.Tasty.QuickCheck
import Test.Util.ChainUpdates

tests :: TestTree
tests :: TestTree
tests =
  TestName -> [TestTree] -> TestTree
testGroup
    TestName
"Test.Util.ChainUpdates"
    [ TestName -> Property -> TestTree
forall a. Testable a => TestName -> a -> TestTree
testProperty TestName
"genChainUpdates" (Property -> TestTree) -> Property -> TestTree
forall a b. (a -> b) -> a -> b
$ SecurityParam -> Int -> Property
prop_genChainUpdates SecurityParam
k Int
updatesToGenerate
    ]
 where
  k :: SecurityParam
k = NonZero Word64 -> SecurityParam
SecurityParam (NonZero Word64 -> SecurityParam)
-> NonZero Word64 -> SecurityParam
forall a b. (a -> b) -> a -> b
$ forall (n :: Natural) a.
(KnownNat n, 1 <= n, WithinBounds n a, Num a) =>
NonZero a
knownNonZeroBounded @3
  updatesToGenerate :: Int
updatesToGenerate = Int
100