ouroboros-consensus:unstable-consensus-testlib
Safe HaskellNone
LanguageHaskell2010

Test.Util.Orphans.Arbitrary

Synopsis

Documentation

newtype SmallDiffTime Source #

Wrapper around NominalDiffTime with custom Arbitrary instance

The default Arbitrary instance for NominalDiffTime isn't very useful:

  • It tends to pick huge values
  • It tends not to pick integer values
  • It does not shrink

Our custom instance

  • Picks values between 0 and (1000 * 20 * 10) seconds:
  • Maximum segment length: 1000
  • Maximum slot length: 20 seconds
  • Maximum number of segments: 10
  • With a 0.1 second precision
  • Shrinks

genLimitedEpochSize ∷ Gen EpochSize Source #

The tests for CumulEpochSizes requires that the sum of a list of these values does not overflow.

An epoch size must be > 0.

genLimitedSlotNo ∷ Gen SlotNo Source #

The functions slotAtTime and timeUntilNextSlot suffer from arithmetic overflow for very large values, so generate values that avoid overflow when used in these two functions. The largest value generated is still sufficently large to allow for 5e12 years worth of slots at a slot interval of 20 seconds.

genSmallSlotNo ∷ Gen SlotNo Source #

Generate a small SlotNo for the state machine tests. The runtime of the StateMachine prop_sequential tests is proportional the the upper bound.

Time

genNominalDiffTime50Years ∷ Gen NominalDiffTime Source #

Picks time span between 0 seconds and (roughly) 50 years

Note - Arbitrary instance for NominalDiffTime comes from quickcheck-instances and it uses a much wider timespan.

genUTCTime50Years ∷ Gen UTCTime Source #

Picks moment between dawnOfTime and (roughly) 50 years later

Note - Arbitrary instance for UTCTime comes from quickcheck-instances and it uses a much wider timespan.

Orphan instances

Arbitrary SlotLength Source #

Length between 0.001 and 20 seconds, millisecond granularity

Instance details

Arbitrary SecurityParam Source # 
Instance details

Arbitrary EraParams Source # 
Instance details

Arbitrary SafeZone Source # 
Instance details

Arbitrary Bound Source # 
Instance details

Arbitrary QueryVersion Source # 
Instance details

Arbitrary ClockSkew Source # 
Instance details

Arbitrary NumCoreNodes Source # 
Instance details

Arbitrary ChunkNo Source #

This picks an EpochNo between 0 and 10000

We don't pick larger values because we're not interested in testing overflow due to huge epoch numbers and even huger slot numbers.

Instance details

Arbitrary ChunkSize Source #

Picks a ChunkSize between 1 and 100, and randomly choose to enable EBBs

Instance details

Arbitrary RelativeSlot Source # 
Instance details

Arbitrary ChunkSlot Source # 
Instance details

Arbitrary CacheConfig Source # 
Instance details

Arbitrary SizeInBytes Source # 
Instance details

(All SingleEraBlock (x ': xs), IsNonEmpty xs) ⇒ Arbitrary (MismatchEraInfo (x ': xs)) Source # 
Instance details

Methods

arbitrary ∷ Gen (MismatchEraInfo (x ': xs)) Source #

shrink ∷ MismatchEraInfo (x ': xs) → [MismatchEraInfo (x ': xs)] Source #

SingleEraBlock blk ⇒ Arbitrary (LedgerEraInfo blk) Source # 
Instance details

SingleEraBlock blk ⇒ Arbitrary (SingleEraInfo blk) Source # 
Instance details

(IsNonEmpty xs, SListI xs, All (Compose Arbitrary WrapChainDepState) xs) ⇒ Arbitrary (HardForkChainDepState xs) Source # 
Instance details

Arbitrary a ⇒ Arbitrary (LoE a) Source # 
Instance details

Methods

arbitrary ∷ Gen (LoE a) Source #

shrink ∷ LoE a → [LoE a] Source #

Arbitrary (ApplyTxErr blk) ⇒ Arbitrary (WrapApplyTxErr blk) Source #

Forwarding

Instance details

Arbitrary (ChainDepState (BlockProtocol blk)) ⇒ Arbitrary (WrapChainDepState blk) Source #

Forwarding

Instance details

Arbitrary (HeaderHash blk) ⇒ Arbitrary (WrapHeaderHash blk) Source #

Forwarding

Instance details

Arbitrary (TipInfo blk) ⇒ Arbitrary (WrapTipInfo blk) Source #

Forwarding

Instance details

Arbitrary (Flag symbol) Source # 
Instance details

Methods

arbitrary ∷ Gen (Flag symbol) Source #

shrink ∷ Flag symbol → [Flag symbol] Source #

Arbitrary a ⇒ Arbitrary (I a) Source #

Forwarding

Instance details

Methods

arbitrary ∷ Gen (I a) Source #

shrink ∷ I a → [I a] Source #

Arbitrary (f blk) ⇒ Arbitrary (Current f blk) Source # 
Instance details

Methods

arbitrary ∷ Gen (Current f blk) Source #

shrink ∷ Current f blk → [Current f blk] Source #

(IsNonEmpty xs, SListI xs, All (Compose Arbitrary (Flip LedgerState mk)) xs) ⇒ Arbitrary (LedgerState (HardForkBlock xs) mk) Source # 
Instance details

Arbitrary (K Past blk) Source # 
Instance details

Methods

arbitrary ∷ Gen (K Past blk) Source #

shrink ∷ K Past blk → [K Past blk] Source #

(All (Compose Arbitrary f) xs, IsNonEmpty xs) ⇒ Arbitrary (NS f xs) Source # 
Instance details

Methods

arbitrary ∷ Gen (NS f xs) Source #

shrink ∷ NS f xs → [NS f xs] Source #

Arbitrary (SomeBlockQuery (BlockQuery blk)) ⇒ Arbitrary (SomeSecond Query blk) Source # 
Instance details

(IsNonEmpty xs, All (Compose Arbitrary f) (x ': xs), All (Compose Arbitrary g) (x ': xs)) ⇒ Arbitrary (Mismatch f g (x ': xs)) Source # 
Instance details

Methods

arbitrary ∷ Gen (Mismatch f g (x ': xs)) Source #

shrink ∷ Mismatch f g (x ': xs) → [Mismatch f g (x ': xs)] Source #

(IsNonEmpty xs, All (Compose Arbitrary f) xs, All (Compose Arbitrary g) xs) ⇒ Arbitrary (Telescope g f xs) Source # 
Instance details

Methods

arbitrary ∷ Gen (Telescope g f xs) Source #

shrink ∷ Telescope g f xs → [Telescope g f xs] Source #

Arbitrary (f y x) ⇒ Arbitrary (Flip f x y) Source # 
Instance details

Methods

arbitrary ∷ Gen (Flip f x y) Source #

shrink ∷ Flip f x y → [Flip f x y] Source #