module QuickCheck where import Data.List (maximumBy) import Data.Ord (comparing) import Test.QuickCheck import Test.Tasty.QuickCheck import Test.Tasty.TH import Data.PrimitiveArray.Index.Class import Data.PrimitiveArray.Index.EdgeBoundary import Data.PrimitiveArray.Index.IOC import Data.PrimitiveArray.Index.Point import Data.PrimitiveArray.Index.Set import Data.PrimitiveArray.Index.Subword import Common -- * Uniqueness tests prop_PointL_I_unique (xs :: [PointL I]) = uniquenessTest (pointLI 0) (maximum xs) xs prop_Subword_I_unique (xs :: [Subword I]) = uniquenessTest (subword 0 0) (maximumBy (comparing fromSubwordSnd) xs) xs prop_EdgeBoundary_I_unique (xs :: [EdgeBoundary I]) = uniquenessTest (0 :-> 0) (maximumBy (comparing fromEdgeBoundarySnd) xs) xs quickcheck_tests = $(testGroupGenerator)