ouroboros-consensus
Safe HaskellSafe-Inferred
LanguageHaskell2010

Test.Consensus.Genesis.TestSuite.SmallKey

Description

Internal module defining the SmallKey utiliy class for TestSuite construction. Exposed through TestSuite re-exports.

Synopsis

Documentation

class SmallKey a Source #

This class is meant to be derived Generically for the construction of TestSuites only. Which is done in basically two settings:

  1. For enumeration types matching the ConformanceTests in a module one-to-one.
  2. For sums of other SmallKey types for the composition of TestSuites.

In essence, deriving an instance of this class is a declaration that the type has a small finite number of values and that allKeys (getAllKeys) constains them all. "Small" here is a performance requirement, meaning that it is feasible to drive an exhaustive construction from its values.

Laws:

Any inhabitant of a SmallKey type must have a finite index in allKeys, which must contain no duplicates. That is, whenever we have an Eq instance for the type, the following should hold:

elem x allKeys ==> length (filter (== x) allKeys) == 1

Minimal complete definition

allKeys

Instances

Instances details
NoSmallKey Int16SmallKey Int16 Source # 
Instance details

Defined in Test.Consensus.Genesis.TestSuite.SmallKey

Methods

allKeys ∷ [Int16]

NoSmallKey Int32SmallKey Int32 Source # 
Instance details

Defined in Test.Consensus.Genesis.TestSuite.SmallKey

Methods

allKeys ∷ [Int32]

NoSmallKey Int64SmallKey Int64 Source # 
Instance details

Defined in Test.Consensus.Genesis.TestSuite.SmallKey

Methods

allKeys ∷ [Int64]

NoSmallKey Int8SmallKey Int8 Source # 
Instance details

Defined in Test.Consensus.Genesis.TestSuite.SmallKey

Methods

allKeys ∷ [Int8]

NoSmallKey Word16SmallKey Word16 Source # 
Instance details

Defined in Test.Consensus.Genesis.TestSuite.SmallKey

Methods

allKeys ∷ [Word16]

NoSmallKey Word32SmallKey Word32 Source # 
Instance details

Defined in Test.Consensus.Genesis.TestSuite.SmallKey

Methods

allKeys ∷ [Word32]

NoSmallKey Word64SmallKey Word64 Source # 
Instance details

Defined in Test.Consensus.Genesis.TestSuite.SmallKey

Methods

allKeys ∷ [Word64]

NoSmallKey Word8SmallKey Word8 Source # 
Instance details

Defined in Test.Consensus.Genesis.TestSuite.SmallKey

Methods

allKeys ∷ [Word8]

SmallKey TestKey Source # 
Instance details

Defined in Test.Consensus.Genesis.Tests

Methods

allKeys ∷ [TestKey]

SmallKey TestKey Source # 
Instance details

Defined in Test.Consensus.Genesis.Tests.CSJ

Methods

allKeys ∷ [TestKey]

SmallKey TestKey Source # 
Instance details

Defined in Test.Consensus.Genesis.Tests.DensityDisconnect

Methods

allKeys ∷ [TestKey]

SmallKey TestKey Source # 
Instance details

Defined in Test.Consensus.Genesis.Tests.LoE

Methods

allKeys ∷ [TestKey]

SmallKey TestKey Source # 
Instance details

Defined in Test.Consensus.Genesis.Tests.LoP

Methods

allKeys ∷ [TestKey]

SmallKey TestKey Source # 
Instance details

Defined in Test.Consensus.Genesis.Tests.LongRangeAttack

Methods

allKeys ∷ [TestKey]

SmallKey TestKey Source # 
Instance details

Defined in Test.Consensus.Genesis.Tests.Uniform

Methods

allKeys ∷ [TestKey]

SmallKey TestKey Source # 
Instance details

Defined in Test.Consensus.PeerSimulator.Tests

Methods

allKeys ∷ [TestKey]

SmallKey TestKey Source # 
Instance details

Defined in Test.Consensus.PeerSimulator.Tests.LinkedThreads

Methods

allKeys ∷ [TestKey]

SmallKey TestKey Source # 
Instance details

Defined in Test.Consensus.PeerSimulator.Tests.Rollback

Methods

allKeys ∷ [TestKey]

SmallKey TestKey Source # 
Instance details

Defined in Test.Consensus.PeerSimulator.Tests.Timeouts

Methods

allKeys ∷ [TestKey]

NoSmallKey TextSmallKey Text Source # 
Instance details

Defined in Test.Consensus.Genesis.TestSuite.SmallKey

Methods

allKeys ∷ [Text]

NoSmallKey IntegerSmallKey Integer Source # 
Instance details

Defined in Test.Consensus.Genesis.TestSuite.SmallKey

Methods

allKeys ∷ [Integer]

SmallKey () Source # 
Instance details

Defined in Test.Consensus.Genesis.TestSuite.SmallKey

Methods

allKeys ∷ [()]

SmallKey Bool Source # 
Instance details

Defined in Test.Consensus.Genesis.TestSuite.SmallKey

Methods

allKeys ∷ [Bool]

NoSmallKey CharSmallKey Char Source # 
Instance details

Defined in Test.Consensus.Genesis.TestSuite.SmallKey

Methods

allKeys ∷ [Char]

NoSmallKey IntSmallKey Int Source # 
Instance details

Defined in Test.Consensus.Genesis.TestSuite.SmallKey

Methods

allKeys ∷ [Int]

NoSmallKey WordSmallKey Word Source # 
Instance details

Defined in Test.Consensus.Genesis.TestSuite.SmallKey

Methods

allKeys ∷ [Word]

(Generic a, AssertNotRecursive a (Rep a), GSmallKey (Rep a)) ⇒ SmallKey (Generically a) Source # 
Instance details

Defined in Test.Consensus.Genesis.TestSuite.SmallKey

Methods

allKeys ∷ [Generically a]

getAllKeysSmallKey k ⇒ [k] Source #