Safe Haskell | Safe-Inferred |
---|---|
Language | Haskell2010 |
This module provides the basic vocabulary for talking about multiplicity, which is the number of times something is allowed to happen. Multiplicities can be any range of natural numbers, with or without an upper bound.
Synopsis
- data Multiplicity
- meetsMultiplicity :: Multiplicity -> Int -> Bool
- feasible :: Multiplicity -> Bool
- once :: Multiplicity
- anyMultiplicity :: Multiplicity
- atLeast :: Multiplicity -> Multiplicity
- atMost :: Multiplicity -> Multiplicity
- between :: Multiplicity -> Multiplicity -> Multiplicity
Documentation
data Multiplicity Source #
An acceptable range of number of times for something to happen.
A multiplicity can have a lower and an upper bound.
Instances
Num Multiplicity Source # | This is an incomplete instance, provided for convenience.
|
Defined in Test.HMock.Multiplicity (+) :: Multiplicity -> Multiplicity -> Multiplicity # (-) :: Multiplicity -> Multiplicity -> Multiplicity # (*) :: Multiplicity -> Multiplicity -> Multiplicity # negate :: Multiplicity -> Multiplicity # abs :: Multiplicity -> Multiplicity # signum :: Multiplicity -> Multiplicity # fromInteger :: Integer -> Multiplicity # | |
Show Multiplicity Source # | |
Defined in Test.HMock.Multiplicity showsPrec :: Int -> Multiplicity -> ShowS # show :: Multiplicity -> String # showList :: [Multiplicity] -> ShowS # | |
Eq Multiplicity Source # | |
Defined in Test.HMock.Multiplicity (==) :: Multiplicity -> Multiplicity -> Bool # (/=) :: Multiplicity -> Multiplicity -> Bool # |
meetsMultiplicity :: Multiplicity -> Int -> Bool Source #
Checks whether a certain number satisfies the Multiplicity
.
feasible :: Multiplicity -> Bool Source #
Checks whether a Multiplicity
is capable of matching any number at all.
>>>
feasible once
True>>>
feasible 0
True>>>
feasible (once - 2)
False
once :: Multiplicity Source #
A Multiplicity
that means exactly once.
>>>
meetsMultiplicity once 0
False>>>
meetsMultiplicity once 1
True>>>
meetsMultiplicity once 2
False
anyMultiplicity :: Multiplicity Source #
A Multiplicity
that means any number of times.
>>> meetsMultiplicity anyMultiplicity 0
True
>>> meetsMultiplicity anyMultiplicity 1
True
>>> meetsMultiplicity anyMultiplicity 10
True
atLeast :: Multiplicity -> Multiplicity Source #
A Multiplicity
that means at least this many times.
>>>
meetsMultiplicity (atLeast 2) 1
False>>>
meetsMultiplicity (atLeast 2) 2
True>>>
meetsMultiplicity (atLeast 2) 3
True
atMost :: Multiplicity -> Multiplicity Source #
A Multiplicity
that means at most this many times.
>>>
meetsMultiplicity (atMost 2) 1
True>>>
meetsMultiplicity (atMost 2) 2
True>>>
meetsMultiplicity (atMost 2) 3
False
between :: Multiplicity -> Multiplicity -> Multiplicity Source #
A Multiplicity
that means any number in this interval, endpoints
included. For example,
means 2 or 3 times, while
between
2 3
is equivalent to between
n nn
.
>>>
meetsMultiplicity (between 2 3) 1
False>>>
meetsMultiplicity (between 2 3) 2
True>>>
meetsMultiplicity (between 2 3) 3
True>>>
meetsMultiplicity (between 2 3) 4
False