Safe Haskell | None |
---|---|

Language | Haskell2010 |

## Synopsis

- newtype SmallDiffTime = SmallDiffTime NominalDiffTime
- genLimitedEpochSize ∷ Gen EpochSize
- genLimitedSlotNo ∷ Gen SlotNo
- genSmallEpochNo ∷ Gen EpochNo
- genSmallSlotNo ∷ Gen SlotNo
- genNominalDiffTime50Years ∷ Gen NominalDiffTime
- genUTCTime50Years ∷ Gen UTCTime

# 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

#### Instances

Show SmallDiffTime Source # | |

Defined in Test.Util.Orphans.Arbitrary | |

Arbitrary SmallDiffTime Source # | |

Defined in Test.Util.Orphans.Arbitrary arbitrary ∷ Gen SmallDiffTime shrink ∷ SmallDiffTime → [SmallDiffTime] |

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.

genSmallEpochNo ∷ Gen EpochNo Source #

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.