{- | Module : Test.SDP.Eq Copyright : (c) Andrey Mulik 2019 License : BSD-style Maintainer : work.a.mulik@gmail.com Portability : portable @Test.SDP.Eq@ provides basic test suite for 'Eq' instances. -} module Test.SDP.Eq ( -- * Eq test TestEq, eqTest ) where default () -------------------------------------------------------------------------------- -- | TestEq is service type synonym for more comfortable quickCheck using. type TestEq l = l -> l -> l -> Bool -------------------------------------------------------------------------------- -- | eqTest is basic test suite for 'Eq' instances. eqTest :: (Eq l) => l -> l -> l -> Bool eqTest xs ys zs = and [ -- transitive (xs == ys && ys == zs) <= (xs == zs), -- symmetric (xs == ys) == (ys == xs), -- reflexive xs == xs ]