Skip to content

Commit

Permalink
Pass Constants as a parameter to Presets.getEnv
Browse files Browse the repository at this point in the history
for more flexibility in Generators
  • Loading branch information
teodanciu committed Jan 30, 2023
1 parent 3390aa2 commit deb0ac7
Show file tree
Hide file tree
Showing 7 changed files with 25 additions and 19 deletions.
5 changes: 3 additions & 2 deletions eras/shelley/test-suite/bench/BenchValidation.hs
Expand Up @@ -64,6 +64,7 @@ import Test.Cardano.Ledger.Shelley.Generator.Core (GenEnv)

import Cardano.Ledger.Shelley.Core (EraTallyState (..))
import qualified Data.Map.Strict as Map
import Test.Cardano.Ledger.Shelley.Generator.Constants (defaultConstants)
import Test.Cardano.Ledger.Shelley.Generator.EraGen (EraGen, MinLEDGER_STS)
import Test.Cardano.Ledger.Shelley.Generator.Presets (genEnv)
import Test.Cardano.Ledger.Shelley.Rules.Chain (ChainState (..))
Expand Down Expand Up @@ -107,7 +108,7 @@ genValidateInput ::
Int ->
IO (ValidateInput era)
genValidateInput n = do
let ge = genEnv (Proxy :: Proxy era)
let ge = genEnv (Proxy :: Proxy era) defaultConstants
chainstate <- genChainState n ge
block <- genBlock ge chainstate
pure (ValidateInput testGlobals (chainNes chainstate) block)
Expand Down Expand Up @@ -196,7 +197,7 @@ genUpdateInputs ::
Int ->
IO (UpdateInputs (EraCrypto era))
genUpdateInputs utxoSize = do
let ge = genEnv (Proxy :: Proxy era)
let ge = genEnv (Proxy :: Proxy era) defaultConstants
chainstate <- genChainState utxoSize ge
(Block blockheader _) <- genBlock ge chainstate
let ledgerview = currentLedgerView (chainNes chainstate)
Expand Down
Expand Up @@ -43,6 +43,7 @@ import Test.Cardano.Ledger.Shelley.Generator.Constants (
maxMinFeeA,
minGenesisUTxOouts
),
defaultConstants,
)
import Test.Cardano.Ledger.Shelley.Generator.Core (GenEnv (..), ScriptSpace (..))
import Test.Cardano.Ledger.Shelley.Generator.EraGen (EraGen, MinLEDGER_STS)
Expand Down Expand Up @@ -121,7 +122,7 @@ genTriple ::
Int ->
IO (GenEnv era, ChainState era, GenEnv era -> IO (ShelleyTx era))
genTriple proxy n = do
let ge = genEnv proxy
let ge = genEnv proxy defaultConstants
cs <- genChainState n ge
let fun genenv = generate $ genTx genenv ledgerEnv (esLState (nesEs (chainNes cs)))
pure (ge, cs, fun)
Expand Up @@ -45,6 +45,7 @@ import qualified Data.Set as Set
import Test.Cardano.Ledger.Shelley.BenchmarkFunctions (B, B_Crypto)
import Test.Cardano.Ledger.Shelley.Generator.Block (genBlockWithTxGen)
import Test.Cardano.Ledger.Shelley.Generator.Constants (
defaultConstants,
maxGenesisUTxOouts,
minGenesisUTxOouts,
)
Expand Down Expand Up @@ -122,7 +123,7 @@ genChainInEpoch epoch = do
where
err :: Show a => a -> b
err msg = error $ "Panic! applyBlk failed: " <> (show msg)
ge = genEnv (Proxy @B)
ge = genEnv (Proxy @B) defaultConstants
-- Small UTxO set; we just want enough to stake to pools
cs =
(geConstants ge)
Expand Down
Expand Up @@ -58,12 +58,13 @@ genEnv ::
forall era.
(EraGen era) =>
Proxy era ->
Constants ->
GenEnv era
genEnv _ =
genEnv _ constants =
GenEnv
(keySpace defaultConstants)
(keySpace constants)
(scriptSpace @era (genEraTwoPhase3Arg @era) (genEraTwoPhase2Arg @era))
defaultConstants
constants

-- | An Example Script space for use in Trace generators
scriptSpace ::
Expand Down
Expand Up @@ -76,6 +76,7 @@ import Data.Semigroup (Sum (..))
import Data.Sequence.Strict (StrictSeq)
import Lens.Micro
import Lens.Micro.Extras (view)
import Test.Cardano.Ledger.Shelley.Generator.Constants (defaultConstants)
import Test.Cardano.Ledger.Shelley.Generator.Core (GenEnv)
import Test.Cardano.Ledger.Shelley.Generator.EraGen (EraGen)
import Test.Cardano.Ledger.Shelley.Generator.Presets (genEnv)
Expand Down Expand Up @@ -109,12 +110,12 @@ relevantCasesAreCovered = do
let tl = 100
checkCoverage $
forAllBlind
(traceFromInitState @(CHAIN era) testGlobals tl (genEnv p) genesisChainSt)
(traceFromInitState @(CHAIN era) testGlobals tl (genEnv p defaultConstants) genesisChainSt)
relevantCasesAreCoveredForTrace
where
p :: Proxy era
p = Proxy
genesisChainSt = Just $ mkGenesisChainState (genEnv p)
genesisChainSt = Just $ mkGenesisChainState (genEnv p defaultConstants)

relevantCasesAreCoveredForTrace ::
forall era.
Expand Down Expand Up @@ -314,7 +315,7 @@ onlyValidLedgerSignalsAreGenerated =
where
p :: Proxy era
p = Proxy
ge = genEnv p
ge = genEnv p defaultConstants
genesisLedgerSt = Just $ mkGenesisLedgerState ge

-- | Check that the abstract transaction size function
Expand All @@ -333,7 +334,7 @@ propAbstractSizeBoundsBytes = property $ do
forAllTraceFromInitState @(ShelleyLEDGER era)
testGlobals
tl
(genEnv p)
(genEnv p defaultConstants)
genesisLedgerSt
$ \tr -> do
let txs :: [Tx era]
Expand All @@ -342,7 +343,7 @@ propAbstractSizeBoundsBytes = property $ do
where
p :: Proxy era
p = Proxy
genesisLedgerSt = Just $ mkGenesisLedgerState (genEnv p)
genesisLedgerSt = Just $ mkGenesisLedgerState (genEnv p defaultConstants)

-- | Check that the abstract transaction size function
-- is not off by an acceptable order of magnitude.
Expand All @@ -367,7 +368,7 @@ propAbstractSizeNotTooBig = property $ do
forAllTraceFromInitState @(ShelleyLEDGER era)
testGlobals
tl
(genEnv p)
(genEnv p defaultConstants)
genesisLedgerSt
$ \tr -> do
let txs :: [Tx era]
Expand All @@ -376,7 +377,7 @@ propAbstractSizeNotTooBig = property $ do
where
p :: Proxy era
p = Proxy
genesisLedgerSt = Just $ mkGenesisLedgerState (genEnv p)
genesisLedgerSt = Just $ mkGenesisLedgerState (genEnv p defaultConstants)

onlyValidChainSignalsAreGenerated ::
forall era.
Expand All @@ -391,12 +392,12 @@ onlyValidChainSignalsAreGenerated =
onlyValidSignalsAreGeneratedFromInitState @(CHAIN era)
testGlobals
100
(genEnv p)
(genEnv p defaultConstants)
genesisChainSt
where
p :: Proxy era
p = Proxy
genesisChainSt = Just $ mkGenesisChainState (genEnv p)
genesisChainSt = Just $ mkGenesisChainState (genEnv p defaultConstants)

-- | Counts the epochs spanned by this trace
epochsInTrace :: forall era. Era era => [Block (BHeader (EraCrypto era)) era] -> Int
Expand Down
Expand Up @@ -1339,8 +1339,8 @@ forAllChainTrace n prop =
forAllTraceFromInitState
testGlobals
n
(Preset.genEnv p)
(Just $ mkGenesisChainState (Preset.genEnv p))
(Preset.genEnv p defaultConstants)
(Just $ mkGenesisChainState (Preset.genEnv p defaultConstants))
prop
where
p :: Proxy era
Expand Down
Expand Up @@ -32,6 +32,7 @@ import Data.Default.Class (Default)
import Data.Proxy (Proxy)
import GHC.Generics (Generic)
import Test.Cardano.Ledger.AllegraEraGen ()
import Test.Cardano.Ledger.Shelley.Generator.Constants (defaultConstants)
import Test.Cardano.Ledger.Shelley.Generator.Core (GenEnv (..))
import Test.Cardano.Ledger.Shelley.Generator.EraGen (EraGen)
import Test.Cardano.Ledger.Shelley.Generator.Presets (genEnv)
Expand Down Expand Up @@ -79,7 +80,7 @@ generateApplyTxEnvForEra ::
Int ->
ApplyTxEnv era
generateApplyTxEnvForEra eraProxy seed =
let ge = genEnv eraProxy
let ge = genEnv eraProxy defaultConstants
qcSeed = mkQCGen seed
traceGen =
traceFromInitState
Expand Down

0 comments on commit deb0ac7

Please sign in to comment.