Safe Haskell | Safe-Infered |
---|
Properties for testing that instances of the Ord
class perform
correctly.
p_symmetric
and p_transitive
check the basic properties of the
ordering. In other words, they test the compare
method. p_equal
checks that Ord
agrees with Eq
(that is, compare
returns EQ
when ==
returns True
). The Test.AC.Class.Eq module already
checks that Eq
is reflexive, so if Ord
agrees with Eq
then
Ord
too is reflexive, and we don't need a seperate test for that.
The remaining tests (i.e., p_compare
, p_min
and p_max
) check
for the extraordinarily unlikely case that the various Ord
methods do not agree with each other. (Usually they are implemented
in terms of each other.)
- p_equal :: (Show x, Ord x) => x -> x -> Test
- p_symmetric :: (Show x, Ord x) => x -> x -> Test
- p_transitive :: (Show x, Ord x) => x -> x -> x -> Test
- p_compare :: (Show x, Ord x) => x -> x -> Test
- p_min :: (Show x, Ord x) => x -> x -> Test
- p_max :: (Show x, Ord x) => x -> x -> Test
- p_Ord :: (Show x, Ord x) => [x] -> Test