packages feed

PrimitiveArray-0.9.0.0: tests/SmallCheck.hs

module SmallCheck where

import Control.Applicative
import Data.Bits
import Data.List (nub, sort, group, maximumBy)
import Data.Ord (comparing)
import Data.Word (Word)
import Debug.Trace
import Test.SmallCheck
import Test.Tasty
import Test.Tasty.SmallCheck
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. The @xs@ lists are fairly small.

prop_PointL_I_unique (xs :: [PointL I]) = uniquenessTest (LtPointL 0) (LtPointL $ maximum $ map fromPointL 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



smallcheck_tests = $(testGroupGenerator)