1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38
|
{-# LANGUAGE TypeApplications #-}
module Data.GenValidity.Containers.SetSpec where
import Data.GenValidity
import Data.GenValidity.Set
import Data.Set (Set)
import Data.Validity.Containers
import Test.Hspec
import Test.QuickCheck
import Test.Validity
spec :: Spec
spec = do
describe "genSetOf" $
it "produces valid sets" $
genGeneratesValid
(genSetOf @Rational genValid)
genValidSpec @(Set Int)
genValidSpec @(Set Rational)
describe "genSeperate" $ do
it "generates values that are seperate" $
forAll (genSeperate genValid) $
\ls -> distinctOrd (ls :: [Int])
it "generates values that are seperate" $
forAll (genSeperate genValid) $
\ls -> distinctOrd (ls :: [Int])
describe "genSeperateFor" $ do
it "generates values that are seperate" $
forAllValid $ \ls ->
forAll (genSeperateFor genValid ls) $ \tups -> distinctOrd (map fst (tups :: [(Int, Int)]))
it "generates values that are seperate" $
forAllValid $ \ls ->
forAll (genSeperateFor genValid ls) $ \tups -> distinctOrd (map fst (tups :: [(Int, Int)]))
describe "genValidSeperateFor" $
it "generates values that are seperate" $
forAllValid $ \ls ->
forAll (genValidSeperateFor ls) $ \tups -> distinctOrd (map fst (tups :: [(Int, Int)]))
|