Safe Haskell | Safe-Infered |
---|

Properties for testing that instances of the `Eq`

class perform
correctly.

`p_reflexive`

, `p_symmetric`

and `p_transitive`

check the basic
properties of an equity relation. In other words, they test the
`==`

method. `p_not_equal`

checks for the extraordinarily unlikely
case of `==`

and `/=`

not agreeing on equity. (The default
implementation of `/=`

automatically guarantees that this test
will pass, and that's what most people presumably use.)

- p_reflexive :: (Show x, Eq x) => x -> Test
- p_symmetric :: (Show x, Eq x) => x -> x -> Test
- p_transitive :: (Show x, Eq x) => x -> x -> x -> Test
- p_not_equal :: (Show x, Eq x) => x -> x -> Test
- p_Eq :: (Show x, Eq x) => [x] -> Test

# Documentation

p_reflexive :: (Show x, Eq x) => x -> TestSource

Check that `x == x`

.

p_symmetric :: (Show x, Eq x) => x -> x -> TestSource

Check that if `x == y`

then `y == x`

as well.

p_transitive :: (Show x, Eq x) => x -> x -> x -> TestSource

Check that if `x == y`

and `y == z`

then `x == z`

.

p_not_equal :: (Show x, Eq x) => x -> x -> TestSource

Check that `x /= y`

is the same as `not (x == y)`

.