tomland-1.3.3.3: test/Test/Toml/Codec/Combinator/Set.hs
module Test.Toml.Codec.Combinator.Set
( setSpec
) where
import Test.Hspec (Spec, describe, parallel)
import Test.Toml.Codec.Combinator.Common (codecRoundtrip)
import qualified Data.HashSet as HashSet
import qualified Data.Set as Set
import qualified Test.Toml.Gen as Gen
import qualified Toml.Codec.BiMap.Conversion as Toml
import qualified Toml.Codec.Combinator.Primitive as Toml
import qualified Toml.Codec.Combinator.Set as Toml
setSpec :: Spec
setSpec = parallel $ describe "Combinator.Set: Roundtrip tests" $ do
codecRoundtrip "IntSet (Array) " Toml.arrayIntSet Gen.genIntSet
codecRoundtrip "IntSet (Table) " (Toml.intSet $ Toml.int "a") Gen.genIntSet
codecRoundtrip "Set Int (Array) " (Toml.arraySetOf Toml._Int) (Gen.genSet Gen.genInt)
codecRoundtrip "Set Int (Table) "
(Toml.set $ Toml.int "a")
(Set.fromList <$> Gen.genSmallList Gen.genInt)
codecRoundtrip "HashSet Text (Array)"
(Toml.arrayHashSetOf Toml._Text)
(HashSet.fromList <$> Gen.genSmallList Gen.genText)
codecRoundtrip "HashSet Text (Table)"
(Toml.hashSet $ Toml.text "a")
(HashSet.fromList <$> Gen.genSmallList Gen.genText)