leancheck 0.7.0 → 0.7.1
raw patch · 177 files changed
+1947/−1026 lines, 177 filesPVP: major bump suggested
API removals or changes: PVP suggests a major version bump
API changes (from Hackage documentation)
+ Test.LeanCheck: mapCons :: (Listable a, Listable b) => ([(a, b)] -> c) -> [[c]]
+ Test.LeanCheck.Error: (+|) :: [a] -> [a] -> [a]
+ Test.LeanCheck.Error: (==>) :: Bool -> Bool -> Bool
+ Test.LeanCheck.Error: (><) :: [[a]] -> [[b]] -> [[(a, b)]]
+ Test.LeanCheck.Error: (\/) :: [[a]] -> [[a]] -> [[a]]
+ Test.LeanCheck.Error: (\\//) :: [[a]] -> [[a]] -> [[a]]
+ Test.LeanCheck.Error: addWeight :: [[a]] -> Int -> [[a]]
+ Test.LeanCheck.Error: bagCons :: Listable a => ([a] -> b) -> [[b]]
+ Test.LeanCheck.Error: bagsOf :: [[a]] -> [[[a]]]
+ Test.LeanCheck.Error: check :: Testable a => a -> IO ()
+ Test.LeanCheck.Error: checkFor :: Testable a => Int -> a -> IO ()
+ Test.LeanCheck.Error: checkResult :: Testable a => a -> IO Bool
+ Test.LeanCheck.Error: checkResultFor :: Testable a => Int -> a -> IO Bool
+ Test.LeanCheck.Error: class Listable a
+ Test.LeanCheck.Error: class Testable a
+ Test.LeanCheck.Error: concatMapT :: (a -> [[b]]) -> [[a]] -> [[b]]
+ Test.LeanCheck.Error: concatT :: [[[[a]]]] -> [[a]]
+ Test.LeanCheck.Error: cons0 :: a -> [[a]]
+ Test.LeanCheck.Error: cons1 :: Listable a => (a -> b) -> [[b]]
+ Test.LeanCheck.Error: cons10 :: (Listable a, Listable b, Listable c, Listable d, Listable e, Listable f, Listable g, Listable h, Listable i, Listable j) => (a -> b -> c -> d -> e -> f -> g -> h -> i -> j -> k) -> [[k]]
+ Test.LeanCheck.Error: cons11 :: (Listable a, Listable b, Listable c, Listable d, Listable e, Listable f, Listable g, Listable h, Listable i, Listable j, Listable k) => (a -> b -> c -> d -> e -> f -> g -> h -> i -> j -> k -> l) -> [[l]]
+ Test.LeanCheck.Error: cons12 :: (Listable a, Listable b, Listable c, Listable d, Listable e, Listable f, Listable g, Listable h, Listable i, Listable j, Listable k, Listable l) => (a -> b -> c -> d -> e -> f -> g -> h -> i -> j -> k -> l -> m) -> [[m]]
+ Test.LeanCheck.Error: cons2 :: (Listable a, Listable b) => (a -> b -> c) -> [[c]]
+ Test.LeanCheck.Error: cons3 :: (Listable a, Listable b, Listable c) => (a -> b -> c -> d) -> [[d]]
+ Test.LeanCheck.Error: cons4 :: (Listable a, Listable b, Listable c, Listable d) => (a -> b -> c -> d -> e) -> [[e]]
+ Test.LeanCheck.Error: cons5 :: (Listable a, Listable b, Listable c, Listable d, Listable e) => (a -> b -> c -> d -> e -> f) -> [[f]]
+ Test.LeanCheck.Error: cons6 :: (Listable a, Listable b, Listable c, Listable d, Listable e, Listable f) => (a -> b -> c -> d -> e -> f -> g) -> [[g]]
+ Test.LeanCheck.Error: cons7 :: (Listable a, Listable b, Listable c, Listable d, Listable e, Listable f, Listable g) => (a -> b -> c -> d -> e -> f -> g -> h) -> [[h]]
+ Test.LeanCheck.Error: cons8 :: (Listable a, Listable b, Listable c, Listable d, Listable e, Listable f, Listable g, Listable h) => (a -> b -> c -> d -> e -> f -> g -> h -> i) -> [[i]]
+ Test.LeanCheck.Error: cons9 :: (Listable a, Listable b, Listable c, Listable d, Listable e, Listable f, Listable g, Listable h, Listable i) => (a -> b -> c -> d -> e -> f -> g -> h -> i -> j) -> [[j]]
+ Test.LeanCheck.Error: delay :: [[a]] -> [[a]]
+ Test.LeanCheck.Error: deleteT :: Eq a => a -> [[a]] -> [[a]]
+ Test.LeanCheck.Error: deriveListable :: Name -> DecsQ
+ Test.LeanCheck.Error: deriveListableCascading :: Name -> DecsQ
+ Test.LeanCheck.Error: filterT :: (a -> Bool) -> [[a]] -> [[a]]
+ Test.LeanCheck.Error: infixr 0 ==>
+ Test.LeanCheck.Error: infixr 5 +|
+ Test.LeanCheck.Error: infixr 7 \\//
+ Test.LeanCheck.Error: infixr 8 ><
+ Test.LeanCheck.Error: list :: Listable a => [a]
+ Test.LeanCheck.Error: listIntegral :: (Enum a, Num a) => [a]
+ Test.LeanCheck.Error: listsOf :: [[a]] -> [[[a]]]
+ Test.LeanCheck.Error: listsOfLength :: Int -> [[a]] -> [[[a]]]
+ Test.LeanCheck.Error: mapCons :: (Listable a, Listable b) => ([(a, b)] -> c) -> [[c]]
+ Test.LeanCheck.Error: mapT :: (a -> b) -> [[a]] -> [[b]]
+ Test.LeanCheck.Error: noDupListCons :: Listable a => ([a] -> b) -> [[b]]
+ Test.LeanCheck.Error: noDupListsOf :: [[a]] -> [[[a]]]
+ Test.LeanCheck.Error: normalizeT :: [[a]] -> [[a]]
+ Test.LeanCheck.Error: ofWeight :: [[a]] -> Int -> [[a]]
+ Test.LeanCheck.Error: product3With :: (a -> b -> c -> d) -> [[a]] -> [[b]] -> [[c]] -> [[d]]
+ Test.LeanCheck.Error: productMaybeWith :: (a -> b -> Maybe c) -> [[a]] -> [[b]] -> [[c]]
+ Test.LeanCheck.Error: productWith :: (a -> b -> c) -> [[a]] -> [[b]] -> [[c]]
+ Test.LeanCheck.Error: products :: [[[a]]] -> [[[a]]]
+ Test.LeanCheck.Error: reset :: [[a]] -> [[a]]
+ Test.LeanCheck.Error: setCons :: Listable a => ([a] -> b) -> [[b]]
+ Test.LeanCheck.Error: setsOf :: [[a]] -> [[[a]]]
+ Test.LeanCheck.Error: suchThat :: [[a]] -> (a -> Bool) -> [[a]]
+ Test.LeanCheck.Error: tiers :: Listable a => [[a]]
+ Test.LeanCheck.Error: tiersFractional :: Fractional a => [[a]]
+ Test.LeanCheck.Error: toTiers :: [a] -> [[a]]
+ Test.LeanCheck.Tiers: mapCons :: (Listable a, Listable b) => ([(a, b)] -> c) -> [[c]]
+ Test.LeanCheck.Tiers: maps :: [[a]] -> [[b]] -> [[[(a, b)]]]
+ Test.LeanCheck.Utils.Operators: okNum :: (Eq a, Num a) => a -> a -> a -> Bool
+ Test.LeanCheck.Utils.TypeBinding: rational :: Rational
+ Test.LeanCheck.Utils.Types: Map :: [(a, b)] -> Map a b
+ Test.LeanCheck.Utils.Types: instance (GHC.Classes.Eq a, GHC.Classes.Eq b) => GHC.Classes.Eq (Test.LeanCheck.Utils.Types.Map a b)
+ Test.LeanCheck.Utils.Types: instance (GHC.Classes.Ord a, GHC.Classes.Ord b) => GHC.Classes.Ord (Test.LeanCheck.Utils.Types.Map a b)
+ Test.LeanCheck.Utils.Types: instance (GHC.Read.Read a, GHC.Read.Read b) => GHC.Read.Read (Test.LeanCheck.Utils.Types.Map a b)
+ Test.LeanCheck.Utils.Types: instance (GHC.Show.Show a, GHC.Show.Show b) => GHC.Show.Show (Test.LeanCheck.Utils.Types.Map a b)
+ Test.LeanCheck.Utils.Types: instance (Test.LeanCheck.Core.Listable a, Test.LeanCheck.Core.Listable b) => Test.LeanCheck.Core.Listable (Test.LeanCheck.Utils.Types.Map a b)
+ Test.LeanCheck.Utils.Types: newtype Map a b
- Test.LeanCheck: class Listable a where tiers = toTiers list list = concat tiers
+ Test.LeanCheck: class Listable a
- Test.LeanCheck.Core: class Listable a where tiers = toTiers list list = concat tiers
+ Test.LeanCheck.Core: class Listable a
- Test.LeanCheck.Function.Listable.FunListable: class FunListable a where validResults x = not . invalidResults x invalidResults x = not . validResults x
+ Test.LeanCheck.Function.Listable.FunListable: class FunListable a
- Test.LeanCheck.Function.ShowFunction: class Listable a where tiers = toTiers list list = concat tiers
+ Test.LeanCheck.Function.ShowFunction: class Listable a
Files
- .gitignore +1/−0
- .travis.yml +26/−3
- LICENSE +1/−1
- Makefile +33/−38
- README.md +3/−0
- TODO.md +1/−6
- bench/tiers.hs +11/−4
- eg/test-bool.hs +1/−1
- eg/test-list.hs +1/−1
- eg/test-sort.hs +1/−1
- leancheck.cabal +4/−4
- mk/depend.mk +7/−0
- mk/ghcdeps +1/−1
- mk/haddock-i +1/−1
- mk/haskell.mk +61/−16
- src/Test/LeanCheck.hs +2/−1
- src/Test/LeanCheck/Basic.hs +1/−1
- src/Test/LeanCheck/Core.hs +1/−1
- src/Test/LeanCheck/Derive.hs +28/−2
- src/Test/LeanCheck/Error.hs +1/−1
- src/Test/LeanCheck/Function.hs +1/−1
- src/Test/LeanCheck/Function/CoListable.hs +1/−1
- src/Test/LeanCheck/Function/Eq.hs +1/−1
- src/Test/LeanCheck/Function/Listable.hs +1/−1
- src/Test/LeanCheck/Function/Listable/CoListable.hs +1/−1
- src/Test/LeanCheck/Function/Listable/FunListable.hs +1/−1
- src/Test/LeanCheck/Function/Listable/ListsOfPairs.hs +1/−1
- src/Test/LeanCheck/Function/Listable/Mixed.hs +1/−1
- src/Test/LeanCheck/Function/Listable/Periodic.hs +1/−1
- src/Test/LeanCheck/Function/ListsOfPairs.hs +5/−5
- src/Test/LeanCheck/Function/Show.hs +1/−1
- src/Test/LeanCheck/Function/ShowFunction.hs +1/−1
- src/Test/LeanCheck/IO.hs +16/−9
- src/Test/LeanCheck/Stats.hs +40/−4
- src/Test/LeanCheck/Tiers.hs +25/−1
- src/Test/LeanCheck/Utils.hs +1/−1
- src/Test/LeanCheck/Utils/Operators.hs +16/−1
- src/Test/LeanCheck/Utils/TypeBinding.hs +5/−1
- src/Test/LeanCheck/Utils/Types.hs +6/−2
- stack.yaml +1/−1
- tests/Test.hs +1/−6
- tests/diff/tiers-BagBool.out +8/−8
- tests/diff/tiers-BagNat.out +8/−8
- tests/diff/tiers-BagNat2.out +8/−8
- tests/diff/tiers-BagNat3.out +8/−8
- tests/diff/tiers-BagU.out +8/−8
- tests/diff/tiers-Bool.out +6/−6
- tests/diff/tiers-Bools.out +8/−8
- tests/diff/tiers-Char.out +8/−8
- tests/diff/tiers-Int,Int,Int.out +8/−8
- tests/diff/tiers-Int,Int.out +8/−8
- tests/diff/tiers-Int.out +8/−8
- tests/diff/tiers-Integer.out +8/−8
- tests/diff/tiers-Ints.out +8/−8
- tests/diff/tiers-MapBoolBool.out +21/−0
- tests/diff/tiers-MapNat2Nat2.out +22/−0
- tests/diff/tiers-MapNat3Nat3.out +84/−0
- tests/diff/tiers-MapNatNat.out +571/−0
- tests/diff/tiers-MapUU.out +12/−0
- tests/diff/tiers-Nat,Nat,Nat.out +8/−8
- tests/diff/tiers-Nat,Nat.out +8/−8
- tests/diff/tiers-Nat.out +8/−8
- tests/diff/tiers-Nats.out +8/−8
- tests/diff/tiers-NoDupBool.out +8/−8
- tests/diff/tiers-NoDupNat.out +8/−8
- tests/diff/tiers-NoDupNat2.out +8/−8
- tests/diff/tiers-NoDupNat3.out +8/−8
- tests/diff/tiers-NoDupU.out +5/−5
- tests/diff/tiers-SetBool.out +8/−8
- tests/diff/tiers-SetNat.out +8/−8
- tests/diff/tiers-SetNat2.out +7/−7
- tests/diff/tiers-SetNat3.out +8/−8
- tests/diff/tiers-SetU.out +5/−5
- tests/diff/tiers-String.out +8/−8
- tests/diff/tiers-U,Us.out +8/−8
- tests/diff/tiers-Us,Us.out +8/−8
- tests/diff/tiers-Us.out +8/−8
- tests/diff/tiers-colistable-Bool-Bool.out +8/−8
- tests/diff/tiers-colistable-Bool-MBool.out +8/−8
- tests/diff/tiers-colistable-Bool-U.out +7/−7
- tests/diff/tiers-colistable-Bools-Bools.out +8/−8
- tests/diff/tiers-colistable-Int-Int-Int.out +8/−8
- tests/diff/tiers-colistable-Int-Int.out +8/−8
- tests/diff/tiers-colistable-Ints-Ints.out +8/−8
- tests/diff/tiers-colistable-MBool-Bool.out +8/−8
- tests/diff/tiers-colistable-MBool-MBool.out +8/−8
- tests/diff/tiers-colistable-Nat,Nat-Nat.out +8/−8
- tests/diff/tiers-colistable-Nat-Nat-Nat.out +8/−8
- tests/diff/tiers-colistable-Nat-Nat.out +8/−8
- tests/diff/tiers-colistable-Nat-U.out +8/−8
- tests/diff/tiers-colistable-Nat2-Nat2.out +8/−8
- tests/diff/tiers-colistable-Nat2-Nat3.out +8/−8
- tests/diff/tiers-colistable-Nat3-Nat2.out +8/−8
- tests/diff/tiers-colistable-Nat3-Nat3.out +8/−8
- tests/diff/tiers-colistable-Nats-Nats.out +8/−8
- tests/diff/tiers-colistable-U-Bool.out +8/−8
- tests/diff/tiers-colistable-U-Nat.out +8/−8
- tests/diff/tiers-colistable-U-U.out +6/−6
- tests/diff/tiers-colistable-Us-Us.out +8/−8
- tests/diff/tiers-funlistable-Bool-Bool.out +8/−8
- tests/diff/tiers-funlistable-Bool-MBool.out +8/−8
- tests/diff/tiers-funlistable-Bool-U.out +7/−7
- tests/diff/tiers-funlistable-Bools-Bools.out +8/−8
- tests/diff/tiers-funlistable-Int-Int-Int.out +3/−3
- tests/diff/tiers-funlistable-Int-Int.out +3/−3
- tests/diff/tiers-funlistable-Ints-Ints.out +8/−8
- tests/diff/tiers-funlistable-MBool-Bool.out +8/−8
- tests/diff/tiers-funlistable-MBool-MBool.out +8/−8
- tests/diff/tiers-funlistable-Nat,Nat-Nat.out +3/−3
- tests/diff/tiers-funlistable-Nat-Nat-Nat.out +3/−3
- tests/diff/tiers-funlistable-Nat-Nat.out +3/−3
- tests/diff/tiers-funlistable-Nat-U.out +3/−3
- tests/diff/tiers-funlistable-Nat2-Nat2.out +3/−3
- tests/diff/tiers-funlistable-Nat2-Nat3.out +3/−3
- tests/diff/tiers-funlistable-Nat3-Nat2.out +3/−3
- tests/diff/tiers-funlistable-Nat3-Nat3.out +3/−3
- tests/diff/tiers-funlistable-Nats-Nats.out +8/−8
- tests/diff/tiers-funlistable-U-Bool.out +8/−8
- tests/diff/tiers-funlistable-U-Nat.out +8/−8
- tests/diff/tiers-funlistable-U-U.out +6/−6
- tests/diff/tiers-funlistable-Us-Us.out +8/−8
- tests/diff/tiers-listsofpairs-Bool-Bool.out +8/−8
- tests/diff/tiers-listsofpairs-Bool-MBool.out +8/−8
- tests/diff/tiers-listsofpairs-Bool-U.out +7/−7
- tests/diff/tiers-listsofpairs-Bools-Bools.out +8/−8
- tests/diff/tiers-listsofpairs-Int-Int-Int.out +8/−8
- tests/diff/tiers-listsofpairs-Int-Int.out +8/−8
- tests/diff/tiers-listsofpairs-Ints-Ints.out +8/−8
- tests/diff/tiers-listsofpairs-MBool-Bool.out +8/−8
- tests/diff/tiers-listsofpairs-MBool-MBool.out +8/−8
- tests/diff/tiers-listsofpairs-Nat,Nat-Nat.out +8/−8
- tests/diff/tiers-listsofpairs-Nat-Nat-Nat.out +8/−8
- tests/diff/tiers-listsofpairs-Nat-Nat.out +8/−8
- tests/diff/tiers-listsofpairs-Nat-U.out +8/−8
- tests/diff/tiers-listsofpairs-Nat2-Nat2.out +8/−8
- tests/diff/tiers-listsofpairs-Nat2-Nat3.out +8/−8
- tests/diff/tiers-listsofpairs-Nat3-Nat2.out +8/−8
- tests/diff/tiers-listsofpairs-Nat3-Nat3.out +8/−8
- tests/diff/tiers-listsofpairs-Nats-Nats.out +8/−8
- tests/diff/tiers-listsofpairs-U-Bool.out +8/−8
- tests/diff/tiers-listsofpairs-U-Nat.out +8/−8
- tests/diff/tiers-listsofpairs-U-U.out +6/−6
- tests/diff/tiers-listsofpairs-Us-Us.out +8/−8
- tests/diff/tiers-mixed-Bool-Bool.out +8/−8
- tests/diff/tiers-mixed-Bool-MBool.out +8/−8
- tests/diff/tiers-mixed-Bool-U.out +8/−8
- tests/diff/tiers-mixed-Bools-Bools.out +8/−8
- tests/diff/tiers-mixed-Int-Int-Int.out +8/−8
- tests/diff/tiers-mixed-Int-Int.out +8/−8
- tests/diff/tiers-mixed-Ints-Ints.out +8/−8
- tests/diff/tiers-mixed-MBool-Bool.out +8/−8
- tests/diff/tiers-mixed-MBool-MBool.out +8/−8
- tests/diff/tiers-mixed-Nat,Nat-Nat.out +8/−8
- tests/diff/tiers-mixed-Nat-Nat-Nat.out +8/−8
- tests/diff/tiers-mixed-Nat-Nat.out +8/−8
- tests/diff/tiers-mixed-Nat-U.out +8/−8
- tests/diff/tiers-mixed-Nat2-Nat2.out +8/−8
- tests/diff/tiers-mixed-Nat2-Nat3.out +8/−8
- tests/diff/tiers-mixed-Nat3-Nat2.out +8/−8
- tests/diff/tiers-mixed-Nat3-Nat3.out +8/−8
- tests/diff/tiers-mixed-Nats-Nats.out +8/−8
- tests/diff/tiers-mixed-U-Bool.out +8/−8
- tests/diff/tiers-mixed-U-Nat.out +8/−8
- tests/diff/tiers-mixed-U-U.out +8/−8
- tests/diff/tiers-mixed-Us-Us.out +8/−8
- tests/diff/tiers.out +3/−3
- tests/test-derive.hs +1/−1
- tests/test-error.hs +1/−1
- tests/test-fun.hs +1/−1
- tests/test-funshow.hs +1/−1
- tests/test-io.hs +1/−1
- tests/test-operators.hs +12/−1
- tests/test-sdist +1/−1
- tests/test-stats.hs +13/−3
- tests/test-tiers.hs +2/−1
- tests/test-types.hs +1/−1
- tests/test.hs +3/−2
.gitignore view
@@ -42,5 +42,6 @@ doc/*.js doc/*.png doc/*.gif+doc/*.json mk/toplibs README.html
.travis.yml view
@@ -1,4 +1,8 @@ # .travis.yml file for LeanCheck+#+# Copyright: (c) 2017-2018 Rudy Matela+# License: 3-Clause BSD (see the file LICENSE)+# Maintainer: Rudy Matela <rudy@matela.com.br> language: c # not really @@ -33,23 +37,35 @@ - stack --no-terminal --skip-ghc-check test matrix:+ allow_failures:+ - ghc: 'head' include: - ghc: 'head' env: GHCVER=head CABALVER=head addons: {apt: {packages: [ghc-head, cabal-install-head], sources: hvr-ghc}}+ - ghc: '8.4'+ env: GHCVER=8.4.2 CABALVER=2.2+ addons: {apt: {packages: [ghc-8.4.2, cabal-install-2.2], sources: hvr-ghc}} - ghc: '8.2'- env: GHCVER=8.2.1 CABALVER=2.0- addons: {apt: {packages: [ghc-8.2.1, cabal-install-2.0], sources: hvr-ghc}}+ env: GHCVER=8.2.2 CABALVER=2.0+ addons: {apt: {packages: [ghc-8.2.2, cabal-install-2.0], sources: hvr-ghc}} - ghc: '8.0' env: GHCVER=8.0.2 CABALVER=1.24 addons: {apt: {packages: [ghc-8.0.2, cabal-install-1.24], sources: hvr-ghc}} - ghc: '7.10' env: GHCVER=7.10.3 CABALVER=1.22 addons: {apt: {packages: [ghc-7.10.3, cabal-install-1.22], sources: hvr-ghc}}+ # we only support stack with GHC >= 7.10 - ghc: '7.8' env: GHCVER=7.8.4 CABALVER=1.18 addons: {apt: {packages: [ghc-7.8.4, cabal-install-1.18], sources: hvr-ghc}}- # stack is only supported on GHC >= 7.8+ before_install:+ - export PATH=/opt/ghc/$GHCVER/bin:/opt/cabal/$CABALVER/bin:$PATH+ - ghc --version+ - cabal --version+ script:+ - make GHCFLAGS=-O2 && make test GHCFLAGS=-O2 && make haddock HADDOCKFLAGS=+ - cabal test - ghc: '7.6' env: GHCVER=7.6.3 CABALVER=1.18 addons: {apt: {packages: [ghc-7.6.3, cabal-install-1.18], sources: hvr-ghc}}@@ -70,3 +86,10 @@ script: - make GHCFLAGS=-O2 && make test GHCFLAGS=-O2 && make haddock HADDOCKFLAGS= - cabal test+ - ghc: 'hugs'+ env: GHCVER=hugs+ addons: {apt: {packages: [hugs]}}+ before_install:+ - echo ":version" | hugs+ script:+ - make hugs-test
LICENSE view
@@ -1,4 +1,4 @@-Copyright (c) 2015-2017, Rudy Matela+Copyright (c) 2015-2018, Rudy Matela All rights reserved.
Makefile view
@@ -1,6 +1,6 @@ # Makefile for LeanCheck #-# Copyright: (c) 2015-2017 Rudy Matela+# Copyright: (c) 2015-2018 Rudy Matela # License: 3-Clause BSD (see the file LICENSE) # Maintainer: Rudy Matela <rudy@matela.com.br> TESTS = tests/test \@@ -25,21 +25,16 @@ bench/tiers-listsofpairs \ bench/tiers-mixed \ bench/tiers-LISTHS = find src mk -name \*.hs-LISTOBJS = $(LISTHS) | sed -e 's/.hs$$/.o/'-ALLHS = $(shell $(LISTHS))-ALLOBJS = $(shell $(LISTOBJS))-OBJS = src/Test/LeanCheck.o \- src/Test/LeanCheck/Function.o \- src/Test/LeanCheck/Error.o GHCIMPORTDIRS = src:tests # -dynamic is needed only for src/Test/LeanCheck/Derive.hs and tests/test-derive.hs GHCFLAGS = -dynamic -O2 HADDOCKFLAGS = --no-print-missing-docs+HUGSIMPORTDIRS = .:./src:./tests:./etc/hugs-backports:/usr/lib/hugs/packages/*+HUGSFLAGS = -98 -h32M -all: $(OBJS)+all: mk/toplibs -all-all: $(ALLOBJS)+all-all: mk/All.o test: $(patsubst %,%.test,$(TESTS)) diff-test @@ -59,20 +54,27 @@ clean: clean-hi-o clean-haddock rm -f bench/tiers-colistable.hs rm -f bench/tiers-listsofpairs.hs- rm -f bench/tiers-funlistable rm -f bench/tiers-funlistable.hs+ rm -f bench/tiers-mixed.hs rm -f $(TESTS) $(BENCHS) $(EGS) mk/toplibs ghci: mk/All.ghci -install:- @echo "use \`cabal install' instead"+hugs: src/Test/LeanCheck.hugs -list-hs:- $(LISTHS)+hugs-test: \+ tests/test-fun.runhugs \+ tests/test-io.runhugs \+ tests/test-operators.runhugs \+ tests/test-stats.runhugs \+ tests/test-tiers.runhugs \+ tests/test.runhugs+# tests/test-error.runhugs # TODO: make this pass+# tests/test-funshow.runhugs # TODO: make this pass+# tests/test-types.runhugs # TODO: make this pass -list-objs:- $(LISTOBJS)+install:+ @echo "use \`cabal install' instead" test-sdist: ./tests/test-sdist@@ -80,14 +82,16 @@ test-via-stack: stack test -legacy-test: # needs ghc-8.0 .. ghc-7.8 installed as such+legacy-test: # needs ghc-8.2 .. ghc-7.8 installed as such+ make clean && make test GHC=ghc-8.2 GHCFLAGS="-Werror -dynamic" make clean && make test GHC=ghc-8.0 GHCFLAGS="-Werror -dynamic" make clean && make test GHC=ghc-7.10 GHCFLAGS="-Werror -dynamic" make clean && make test GHC=ghc-7.8 GHCFLAGS="-Werror -dynamic" make clean && make test legacy-test-via-cabal: # needs similarly named cabal wrappers- cabal clean && cabal-ghc-8.0 configure && cabal-ghc-7.10 test+ cabal clean && cabal-ghc-8.2 configure && cabal-ghc-8.2 test+ cabal clean && cabal-ghc-8.0 configure && cabal-ghc-8.0 test cabal clean && cabal-ghc-7.10 configure && cabal-ghc-7.10 test cabal clean && cabal-ghc-7.8 configure && cabal-ghc-7.8 test cabal clean && cabal test@@ -103,25 +107,6 @@ pandoc doc/tutorial.md -o doc/tutorial.html pandoc doc/data-invariant.md -o doc/data-invariant.html -haddock: doc/index.html--clean-haddock:- rm -f doc/*.{html,css,js,png,gif} README.html--upload-haddock:- @echo "use \`cabal upload -d' instead"- @echo "(but 1st: cabal install --only-dependencies --enable-documentation)"- @echo "(to just compile docs: cabal haddock --for-hackage)"- @echo "(on Arch Linux, use: cabal haddock --for-hackage --haddock-options=--optghc=-dynamic)"--doc/index.html: $(ALLHS)- ./mk/haddock-i base template-haskell | xargs \- haddock --html -odoc $(ALLHS) $(HADDOCKFLAGS) --title=leancheck- @echo 'NOTE: please ensure that there are *only* 7'- @echo ' undocumented functions on Test.LeanCheck'- @echo ' as "OPTIONS_HADDOCK prune" is active'- @echo ' to hide cons6...cons12'- # NOTE: (very hacky!) the following target allows parallel compilation (-jN) of # eg and tests programs so long as they don't share dependencies _not_ stored # in src/ and tests/. Runnable binaries should depend on mk/toplibs instead of@@ -169,6 +154,11 @@ ./bench/tiers "NoDup Nat" | diff -rud tests/diff/tiers-NoDupNat.out - ./bench/tiers "NoDup Nat2" | diff -rud tests/diff/tiers-NoDupNat2.out - ./bench/tiers "NoDup Nat3" | diff -rud tests/diff/tiers-NoDupNat3.out -+ ./bench/tiers "Map Bool Bool" | diff -rud tests/diff/tiers-MapBoolBool.out -+ ./bench/tiers "Map () ()" | diff -rud tests/diff/tiers-MapUU.out -+ ./bench/tiers "Map Nat Nat" | diff -rud tests/diff/tiers-MapNatNat.out -+ ./bench/tiers "Map Nat2 Nat2" | diff -rud tests/diff/tiers-MapNat2Nat2.out -+ ./bench/tiers "Map Nat3 Nat3" | diff -rud tests/diff/tiers-MapNat3Nat3.out - update-diff-test-tiers: bench/tiers # simple types@@ -208,6 +198,11 @@ ./bench/tiers "NoDup Nat" > tests/diff/tiers-NoDupNat.out ./bench/tiers "NoDup Nat2" > tests/diff/tiers-NoDupNat2.out ./bench/tiers "NoDup Nat3" > tests/diff/tiers-NoDupNat3.out+ ./bench/tiers "Map Bool Bool" > tests/diff/tiers-MapBoolBool.out+ ./bench/tiers "Map () ()" > tests/diff/tiers-MapUU.out+ ./bench/tiers "Map Nat Nat" > tests/diff/tiers-MapNatNat.out+ ./bench/tiers "Map Nat2 Nat2" > tests/diff/tiers-MapNat2Nat2.out+ ./bench/tiers "Map Nat3 Nat3" > tests/diff/tiers-MapNat3Nat3.out prepare-depend: bench/tiers-listsofpairs.hs \ bench/tiers-colistable.hs \
README.md view
@@ -153,6 +153,8 @@ [tutorial on property-based testing with LeanCheck] \(`doc/tutorial.md` in the source repository). +LeanCheck is subject to a chapter in a [PhD Thesis (2017)].+ [LeanCheck's Haddock documentation]: https://hackage.haskell.org/package/leancheck/docs/Test-LeanCheck.html [tutorial on property-based testing with LeanCheck]: https://github.com/rudymatela/leancheck/blob/master/doc/tutorial.md @@ -171,6 +173,7 @@ [Feat]: https://hackage.haskell.org/package/testing-feat [SmallCheck]: https://hackage.haskell.org/package/smallcheck [QuickCheck]: https://hackage.haskell.org/package/QuickCheck+[PhD Thesis (2017)]: https://matela.com.br/paper/rudy-phd-thesis-2017.pdf [symbol `>`]: https://www.haskell.org/haddock/doc/html/ch03s08.html#idm140354810780208
TODO.md view
@@ -7,11 +7,6 @@ misc ---- -* improve `mk/haskell.mk`: pass ALLHS and LIBHS instead of HSS- By making that distinction, haskell.mk will be able to handle Haddock.- It will also be clearer what each parameter means.- Note that ALLHS and LIBHS are not (but could be) the final names.- * parameterize number of tests in test programs and add slow-test target @@ -26,7 +21,7 @@ other improvements ------------------ -* implement `classStatsT` and `conditionStatsT`+* implement `conditionStatsT` (see `classStatsT`) later
bench/tiers.hs view
@@ -1,6 +1,6 @@ -- tiers.hs -- prints tiers of values up to a certain point ----- Copyright (c) 2015-2017 Rudy Matela.+-- Copyright (c) 2015-2018 Rudy Matela. -- Distributed under the 3-Clause BSD licence (see the file LICENSE). import Test.LeanCheck import Test.LeanCheck.Utils.Types@@ -50,9 +50,6 @@ put :: (Show a, Eq a, Listable a) => String -> Int -> a -> IO () put t n a = do- putStrLn $ "tiers :: [" ++ t ++ "] ="- printTiers n $ tiers `asTypeOf` [[a]]- putStrLn $ "" putStrLn $ "map length (tiers :: [[ " ++ t ++ " ]]) = " ++ showDotsLongerThan n (map length $ tiers `asTypeOf` [[a]]) putStrLn $ ""@@ -64,6 +61,9 @@ putStrLn $ "" putStrLn $ "ratioRepetitions (list :: [ " ++ t ++ " ]) = " ++ show (ratioRepetitions . concat . take n $ tiers `asTypeOf` [[a]])+ putStrLn $ ""+ putStrLn $ "tiers :: [" ++ t ++ "] ="+ printTiers n $ tiers `asTypeOf` [[a]] u :: a u = undefined@@ -105,6 +105,8 @@ "([()],[()])" -> put t n (u :: ([()],[()]) ) "([Bool],[Bool])" -> put t n (u :: ([Bool],[Bool]) ) "([Int],[Int])" -> put t n (u :: ([Int],[Int]) )+ -- lists of lists+ "[[Int]]" -> put t n (u :: [[Int]] ) -- functions "()->()" -> put t n (u :: () -> () ) "()->Bool" -> put t n (u :: () -> Bool )@@ -149,5 +151,10 @@ "NoDup Nat" -> put t n (u :: NoDup Nat ) "NoDup Nat2" -> put t n (u :: NoDup Nat2 ) "NoDup Nat3" -> put t n (u :: NoDup Nat3 )+ "Map Bool Bool" -> put t n (u :: Map Bool Bool )+ "Map () ()" -> put t n (u :: Map () () )+ "Map Nat Nat" -> put t n (u :: Map Nat Nat )+ "Map Nat2 Nat2" -> put t n (u :: Map Nat2 Nat2 )+ "Map Nat3 Nat3" -> put t n (u :: Map Nat3 Nat3 ) -- unhandled _ -> putStrLn $ "unknown/unhandled type `" ++ t ++ "'"
eg/test-bool.hs view
@@ -1,6 +1,6 @@ -- test-bool.hs -- example program, testing Bool fns using LeanCheck ----- Copyright (c) 2017 Rudy Matela.+-- Copyright (c) 2017-2018 Rudy Matela. -- Distributed under the 3-Clause BSD licence (see the file LICENSE). import Test.LeanCheck import Test.LeanCheck.Function
eg/test-list.hs view
@@ -1,6 +1,6 @@ -- test-list.hs -- example program, testing Data.List using LeanCheck ----- Copyright (c) 2017 Rudy Matela.+-- Copyright (c) 2017-2018 Rudy Matela. -- Distributed under the 3-Clause BSD licence (see the file LICENSE). import Test.LeanCheck import Data.List
eg/test-sort.hs view
@@ -1,6 +1,6 @@ -- test-sort.hs -- example program, testing sort using LeanCheck ----- Copyright (c) 2017 Rudy Matela.+-- Copyright (c) 2017-2018 Rudy Matela. -- Distributed under the 3-Clause BSD licence (see the file LICENSE). import Test.LeanCheck
leancheck.cabal view
@@ -11,7 +11,7 @@ -- this cabal file too complicated. -- Rudy name: leancheck-version: 0.7.0+version: 0.7.1 synopsis: Cholesterol-free property-based testing description: LeanCheck is a simple enumerative property-based testing library.@@ -33,7 +33,7 @@ maintainer: Rudy Matela <rudy@matela.com.br> category: Testing build-type: Simple-cabal-version: >=1.18+cabal-version: 1.18 extra-doc-files: README.md , CREDITS.md@@ -59,7 +59,7 @@ , mk/Toplibs.hs , tests/diff/*.out , tests/diff/eg/*.out-tested-with: GHC==8.2, GHC==8.0, GHC==7.10, GHC==7.8, GHC==7.6, GHC==7.4+tested-with: GHC==8.4, GHC==8.2, GHC==8.0, GHC==7.10, GHC==7.8, GHC==7.6, GHC==7.4 source-repository head@@ -69,7 +69,7 @@ source-repository this type: git location: https://github.com/rudymatela/leancheck- tag: v0.7.0+ tag: v0.7.1 library exposed-modules: Test.LeanCheck
mk/depend.mk view
@@ -182,6 +182,8 @@ src/Test/LeanCheck/Core.hs \ src/Test/LeanCheck/Basic.hs \ eg/test-sort.hs+etc/hugs-backports/Data/Function.o: \+ etc/hugs-backports/Data/Function.hs mk/All.o: \ src/Test/LeanCheck/Utils/Types.hs \ src/Test/LeanCheck/Utils/TypeBinding.hs \@@ -215,6 +217,11 @@ src/Test/LeanCheck/Core.hs \ src/Test/LeanCheck/Basic.hs \ mk/Toplibs.hs+Setup.o: \+ Setup.hs+Setup: \+ Setup.hs \+ mk/toplibs src/Test/LeanCheck/Basic.o: \ src/Test/LeanCheck/Core.hs \ src/Test/LeanCheck/Basic.hs
mk/ghcdeps view
@@ -2,7 +2,7 @@ # # ghcdeps: generate Haskell make dependencies for compiling with GHC. #-# Copyright (c) 2015-2017 Rudy Matela.+# Copyright (c) 2015-2018 Rudy Matela. # Distributed under the 3-Clause BSD licence. # # From a list of files provided on standard input,
mk/haddock-i view
@@ -2,7 +2,7 @@ # # haddock-i: list haddock's -i parameters. #-# Copyright (c) 2015-2017 Rudy Matela.+# Copyright (c) 2015-2018 Rudy Matela. # Distributed under the 3-Clause BSD licence. # # $ haddock-i <package1> <package2> ... <packageN>
mk/haskell.mk view
@@ -1,6 +1,6 @@ # Implicit rules for compiling Haskell code. #-# Copyright (c) 2015-2017 Rudy Matela.+# Copyright (c) 2015-2018 Rudy Matela. # Distributed under the 3-Clause BSD licence. # # You can optionally configure the "Configuration variables" below in your main@@ -19,24 +19,34 @@ GHCIMPORTDIRS ?= GHCFLAGS ?= GHC ?= ghc+GHCCMD = $(GHC) -i$(GHCIMPORTDIRS) $(GHCFLAGS) +# Hugs Parameters+HUGSIMPORTDIRS ?= "/usr/lib/hugs/packages/*"+HUGSFLAGS ?=+CPPHS_HUGS ?= cpphs-hugs --noline -D__HUGS__+HUGS ?= hugs+RUNHUGS ?= runhugs+HUGSCMD = $(HUGS) -F"$(CPPHS_HUGS)" -P$(HUGSIMPORTDIRS) $(HUGSFLAGS)+RUNHUGSCMD = $(RUNHUGS) -F"$(CPPHS_HUGS)" -P$(HUGSIMPORTDIRS) $(HUGSFLAGS)++ # Makefile where to keep the dependencies DEPMK ?= mk/depend.mk -# By default, excludes dist and Setup.hs, so that a Makefile can coexist nicely-# in a cabalized project. Also excludes .stack-work.-HSS ?= $(shell find \( -path "./dist" -o -path "./Setup.hs" -o -path "./.stack-work" \) -prune \- -o -name "*.*hs" -print)-# You can override HSS in your main Makefile-# It should include all Haskell sources to be compiled by different targets-# (even those that are not a dependency to all)-# It will be used to generate dependencies and for cleaning objects+# LIB_HSS: all library Haskell files+# ALL_HSS: all Haskell files+# You can override ALL/LIB_HSS in your main Makefile+LIST_LIB_HSS ?= find src -name "*.hs"+LIST_ALL_HSS ?= find \( -path "./dist" -o -path "./.stack-work" \) -prune \+ -o -name "*.*hs" -print+LIB_HSS ?= $(shell $(LIST_LIB_HSS))+ALL_HSS ?= $(shell $(LIST_ALL_HSS)) +PKGNAME = $(shell cat *.cabal | grep "^name:" | sed -e "s/name: *//") # Implicit rules-GHCCMD = $(GHC) -i$(GHCIMPORTDIRS) $(GHCFLAGS)- %.hi %.o: %.hs $(GHCCMD) $< && touch $@ @@ -47,19 +57,54 @@ %.ghci: %.hs $(GHCCMD) -O0 --interactive $< +.PHONY: %.hugs+%.hugs: %.hs+ $(HUGSCMD) $< +.PHONY: %.runhugs+%.runhugs: %.hs+ $(RUNHUGSCMD) $<++ # Cleaning rule (add as a clean dependency) .PHONY: clean-hi-o clean-hi-o:- find $(HSS) | sed -e 's/hs$$/o/' | xargs rm -f- find $(HSS) | sed -e 's/hs$$/hi/' | xargs rm -f- find $(HSS) | sed -e 's/hs$$/dyn_o/' | xargs rm -f- find $(HSS) | sed -e 's/hs$$/dyn_hi/' | xargs rm -f+ find $(ALL_HSS) | sed -e 's/hs$$/o/' | xargs rm -f+ find $(ALL_HSS) | sed -e 's/hs$$/hi/' | xargs rm -f+ find $(ALL_HSS) | sed -e 's/hs$$/dyn_o/' | xargs rm -f+ find $(ALL_HSS) | sed -e 's/hs$$/dyn_hi/' | xargs rm -f # Update dependency file .PHONY: depend depend:- find $(HSS) | ./mk/ghcdeps -i$(GHCIMPORTDIRS) $(GHCFLAGS) > $(DEPMK)+ find $(ALL_HSS) | ./mk/ghcdeps -i$(GHCIMPORTDIRS) $(GHCFLAGS) > $(DEPMK)++# haddock rules+haddock: doc/index.html++clean-haddock:+ rm -f doc/*.{html,css,js,png,gif,json} README.html++upload-haddock:+ @echo "use \`cabal upload -d' instead"+ @echo "(but 1st: cabal install --only-dependencies --enable-documentation)"+ @echo "(to just compile docs: cabal haddock --for-hackage)"+ @echo "(on Arch Linux, use: cabal haddock --for-hackage --haddock-options=--optghc=-dynamic)"++doc/index.html: $(LIB_HSS)+ ./mk/haddock-i base template-haskell | xargs \+ haddock --html -odoc $(LIB_HSS) $(HADDOCKFLAGS) --title=$(PKGNAME)++# lists all Haskell source files+list-all-hss:+ @find $(ALL_HSS)++# lists library Haskell source files+list-lib-hss:+ @find $(LIB_HSS)++show-pkgname:+ @echo $(PKGNAME) include $(DEPMK)
src/Test/LeanCheck.hs view
@@ -1,7 +1,7 @@ {-# OPTIONS_HADDOCK prune #-} -- | -- Module : Test.LeanCheck--- Copyright : (c) 2015-2017 Rudy Matela+-- Copyright : (c) 2015-2018 Rudy Matela -- License : 3-Clause BSD (see the file LICENSE) -- Maintainer : Rudy Matela <rudy@matela.com.br> --@@ -102,6 +102,7 @@ , setCons , bagCons , noDupListCons+ , mapCons -- ** Products of tiers , product3With
src/Test/LeanCheck/Basic.hs view
@@ -1,6 +1,6 @@ -- | -- Module : Test.LeanCheck.Basic--- Copyright : (c) 2015-2017 Rudy Matela+-- Copyright : (c) 2015-2018 Rudy Matela -- License : 3-Clause BSD (see the file LICENSE) -- Maintainer : Rudy Matela <rudy@matela.com.br> --
src/Test/LeanCheck/Core.hs view
@@ -1,6 +1,6 @@ -- | -- Module : Test.LeanCheck.Core--- Copyright : (c) 2015-2017 Rudy Matela+-- Copyright : (c) 2015-2018 Rudy Matela -- License : 3-Clause BSD (see the file LICENSE) -- Maintainer : Rudy Matela <rudy@matela.com.br> --
src/Test/LeanCheck/Derive.hs view
@@ -1,7 +1,7 @@ {-# LANGUAGE TemplateHaskell, CPP #-} -- | -- Module : Test.LeanCheck.Derive--- Copyright : (c) 2015-2017 Rudy Matela+-- Copyright : (c) 2015-2018 Rudy Matela -- License : 3-Clause BSD (see the file LICENSE) -- Maintainer : Rudy Matela <rudy@matela.com.br> --@@ -11,7 +11,7 @@ -- This is an experimental module for deriving 'Listable' instances. -- -- Needs GHC and Template Haskell--- (tested on GHC 7.4, 7.6, 7.8, 7.10 and 8.0).+-- (tested on GHC 7.4, 7.6, 7.8, 7.10, 8.0, 8.2 and 8.4). -- -- If LeanCheck does not compile under later GHCs, this module is probably the -- culprit.@@ -24,6 +24,8 @@ ) where +#ifdef __GLASGOW_HASKELL__+ import Language.Haskell.TH import Test.LeanCheck.Basic import Control.Monad (unless, liftM, liftM2, filterM)@@ -297,3 +299,27 @@ nubMerges :: Ord a => [[a]] -> [a] nubMerges = foldr nubMerge []++#else+-- When using Hugs or other compiler without Template Haskell++errorNotGHC :: a+errorNotGHC = error "Only defined when using GHC"++deriveListable :: a+deriveListable = errorNotGHC++deriveListableIfNeeded :: a+deriveListableIfNeeded = errorNotGHC++deriveListableCascading :: a+deriveListableCascading = errorNotGHC++deriveTiers :: a+deriveTiers = errorNotGHC++deriveList :: a+deriveList = errorNotGHC++-- closing #ifdef __GLASGOW_HASKELL__+#endif
src/Test/LeanCheck/Error.hs view
@@ -1,6 +1,6 @@ -- | -- Module : Test.LeanCheck.Error--- Copyright : (c) 2015-2017 Rudy Matela+-- Copyright : (c) 2015-2018 Rudy Matela -- License : 3-Clause BSD (see the file LICENSE) -- Maintainer : Rudy Matela <rudy@matela.com.br> --
src/Test/LeanCheck/Function.hs view
@@ -1,6 +1,6 @@ -- | -- Module : Test.LeanCheck.Function--- Copyright : (c) 2015-2017 Rudy Matela+-- Copyright : (c) 2015-2018 Rudy Matela -- License : 3-Clause BSD (see the file LICENSE) -- Maintainer : Rudy Matela <rudy@matela.com.br> --
src/Test/LeanCheck/Function/CoListable.hs view
@@ -1,6 +1,6 @@ -- | -- Module : Test.LeanCheck.Function.CoListable--- Copyright : (c) 2015-2017 Rudy Matela+-- Copyright : (c) 2015-2018 Rudy Matela -- License : 3-Clause BSD (see the file LICENSE) -- Maintainer : Rudy Matela <rudy@matela.com.br> --
src/Test/LeanCheck/Function/Eq.hs view
@@ -1,6 +1,6 @@ -- | -- Module : Test.LeanCheck.Function.Eq--- Copyright : (c) 2015-2017 Rudy Matela+-- Copyright : (c) 2015-2018 Rudy Matela -- License : 3-Clause BSD (see the file LICENSE) -- Maintainer : Rudy Matela <rudy@matela.com.br> --
src/Test/LeanCheck/Function/Listable.hs view
@@ -1,6 +1,6 @@ -- | -- Module : Test.LeanCheck.Function.Listable--- Copyright : (c) 2015-2017 Rudy Matela+-- Copyright : (c) 2015-2018 Rudy Matela -- License : 3-Clause BSD (see the file LICENSE) -- Maintainer : Rudy Matela <rudy@matela.com.br> --
src/Test/LeanCheck/Function/Listable/CoListable.hs view
@@ -1,6 +1,6 @@ -- | -- Module : Test.LeanCheck.Function.Listable.CoListable--- Copyright : (c) 2015-2017 Rudy Matela+-- Copyright : (c) 2015-2018 Rudy Matela -- License : 3-Clause BSD (see the file LICENSE) -- Maintainer : Rudy Matela <rudy@matela.com.br> --
src/Test/LeanCheck/Function/Listable/FunListable.hs view
@@ -1,6 +1,6 @@ -- | -- Module : Test.LeanCheck.FunListable--- Copyright : (c) 2015-2017 Rudy Matela+-- Copyright : (c) 2015-2018 Rudy Matela -- License : 3-Clause BSD (see the file LICENSE) -- Maintainer : Rudy Matela <rudy@matela.com.br> --
src/Test/LeanCheck/Function/Listable/ListsOfPairs.hs view
@@ -1,6 +1,6 @@ -- | -- Module : Test.LeanCheck.Function.ListsOfPairs--- Copyright : (c) 2015-2017 Rudy Matela+-- Copyright : (c) 2015-2018 Rudy Matela -- License : 3-Clause BSD (see the file LICENSE) -- Maintainer : Rudy Matela <rudy@matela.com.br> --
src/Test/LeanCheck/Function/Listable/Mixed.hs view
@@ -1,6 +1,6 @@ -- | -- Module : Test.LeanCheck.Function.Mixed--- Copyright : (c) 2015-2017 Rudy Matela+-- Copyright : (c) 2015-2018 Rudy Matela -- License : 3-Clause BSD (see the file LICENSE) -- Maintainer : Rudy Matela <rudy@matela.com.br> --
src/Test/LeanCheck/Function/Listable/Periodic.hs view
@@ -1,6 +1,6 @@ -- | -- Module : Test.LeanCheck.Function.Periodic--- Copyright : (c) 2015-2017 Rudy Matela+-- Copyright : (c) 2015-2018 Rudy Matela -- License : 3-Clause BSD (see the file LICENSE) -- Maintainer : Rudy Matela <rudy@matela.com.br> --
src/Test/LeanCheck/Function/ListsOfPairs.hs view
@@ -1,6 +1,6 @@ -- | -- Module : Test.LeanCheck.Function.ListsOfPairs--- Copyright : (c) 2015-2017 Rudy Matela+-- Copyright : (c) 2015-2018 Rudy Matela -- License : 3-Clause BSD (see the file LICENSE) -- Maintainer : Rudy Matela <rudy@matela.com.br> --@@ -43,15 +43,15 @@ -- they represent exceptions to a constant function, -- hence the name 'exceptionPairs'. exceptionPairs :: [[a]] -> [[b]] -> [[ [(a,b)] ]]-exceptionPairs xss yss = concatMapT (`excep` yss) (incompleteSetsOf xss)+exceptionPairs xss yss = concatMapT exceptionsFor (incompleteSetsOf xss) where- excep :: [a] -> [[b]] -> [[ [(a,b)] ]]- excep xs sbs = zip xs `mapT` products (const sbs `map` xs)+--exceptionsFor :: [a] -> [[ [(a,b)] ]]+ exceptionsFor xs = zip xs `mapT` products (const yss `map` xs) -- incompleteSetsOf is needed, instead of setsOf, because mutating *all* values -- of a constant function makes no sense (we would have already enumerated that -- function anyway). As of 2c23c1a, it makes no difference whether -- incompleteSetsOf is used instead of setsOf for types with less than 12--- values.+-- values because of the finite guard on `-->>`. -- | Returns tiers of sets excluding the universe set. --
src/Test/LeanCheck/Function/Show.hs view
@@ -1,6 +1,6 @@ -- | -- Module : Test.LeanCheck.Function.Show--- Copyright : (c) 2015-2017 Rudy Matela+-- Copyright : (c) 2015-2018 Rudy Matela -- License : 3-Clause BSD (see the file LICENSE) -- Maintainer : Rudy Matela <rudy@matela.com.br> --
src/Test/LeanCheck/Function/ShowFunction.hs view
@@ -1,6 +1,6 @@ -- | -- Module : Test.LeanCheck.Function.ShowFunction--- Copyright : (c) 2015-2017 Rudy Matela+-- Copyright : (c) 2015-2018 Rudy Matela -- License : 3-Clause BSD (see the file LICENSE) -- Maintainer : Rudy Matela <rudy@matela.com.br> --
src/Test/LeanCheck/IO.hs view
@@ -1,6 +1,6 @@ -- | -- Module : Test.LeanCheck.IO--- Copyright : (c) 2015-2017 Rudy Matela+-- Copyright : (c) 2015-2018 Rudy Matela -- License : 3-Clause BSD (see the file LICENSE) -- Maintainer : Rudy Matela <rudy@matela.com.br> --@@ -24,7 +24,13 @@ import Test.LeanCheck.Core import Data.Maybe (listToMaybe) import Data.List (find)+#ifdef __GLASGOW_HASKELL__ import Control.Exception (SomeException, catch, evaluate)+#else+-- on Hugs+import Control.Exception (Exception, catch, evaluate)+type SomeException = Exception+#endif -- | Checks a property printing results on 'stdout' --@@ -69,8 +75,8 @@ | Exception Int [String] String deriving (Eq, Show) -resultsIO :: Testable a => Int -> a -> IO [Result]-resultsIO n = sequence . zipWith torio [1..] . take n . results+resultsIO :: Testable a => Int -> a -> [IO Result]+resultsIO n = zipWith torio [1..] . take n . results where tor i (_,True) = OK i tor i (as,False) = Falsified i as@@ -79,12 +85,13 @@ in return (Exception i as (show e)) resultIO :: Testable a => Int -> a -> IO Result-resultIO n p = do- rs <- resultsIO n p- return . maybe (last rs) id- $ find isFailure rs- where isFailure (OK _) = False- isFailure _ = True+resultIO n = computeResult . resultsIO n+ where+ computeResult [] = error "resultIO: no results, empty Listable enumeration?"+ computeResult [r] = r+ computeResult (r:rs) = r >>= \r -> case r of+ (OK _) -> computeResult rs+ _ -> return r showResult :: Int -> Result -> String showResult m (OK n) = "+++ OK, passed " ++ show n ++ " tests"
src/Test/LeanCheck/Stats.hs view
@@ -1,6 +1,7 @@+{-# LANGUAGE CPP #-} -- | -- Module : Test.LeanCheck.Stats--- Copyright : (c) 2017 Rudy Matela+-- Copyright : (c) 2017-2018 Rudy Matela -- License : 3-Clause BSD (see the file LICENSE) -- Maintainer : Rudy Matela <rudy@matela.com.br> --@@ -25,8 +26,23 @@ import Test.LeanCheck.Core import Data.Function (on)+#ifndef __HUGS__ import Data.List (intercalate, transpose)+#else+import Data.List (transpose) +intercalate :: [a] -> [[a]] -> [a]+intercalate xs xss = concat (intersperse xs xss)+ where+ intersperse :: a -> [a] -> [a]+ intersperse _ [] = []+ intersperse sep (x:xs) = x : prependToAll sep xs+ where+ prependToAll :: a -> [a] -> [a]+ prependToAll _ [] = []+ prependToAll sep (x:xs) = sep : x : prependToAll sep xs+#endif+ classStats :: (Listable a, Show b) => Int -> (a -> b) -> IO () classStats n f = putStrLn . table " "@@ -40,9 +56,21 @@ , show (100 * n `div` len) ++ "%" ] --- TODO: implement this classStatsT :: (Listable a, Show b) => Int -> (a -> b) -> IO ()-classStatsT = error "classStatsT: not implemented yet, use classStats for now"+classStatsT n f = putStrLn+ . table " "+ . (heading:)+ . ([" "]:)+ . map showCounts+ . prependTotal+ . countsTOn (unquote . show . f)+ $ take n tiers+ where+ heading = "" : "tot " : map show [0..(n-1)]+ showCounts (s,n,ns) = (s ++ ":") : (show n ++ " ") : map show ns+ (_,n,ns) -+- (_,n',ns') = ("tot", n + n', zipWith (+) ns ns')+ totalizeCounts = foldr (-+-) (undefined, 0, repeat 0)+ prependTotal cs = totalizeCounts cs : cs conditionStats :: Listable a => Int -> [(String,a->Bool)] -> IO () conditionStats n = putStrLn . table " " . map show1@@ -57,7 +85,7 @@ -- TODO: implement this conditionStatsT :: Listable a => Int -> [(String,a->Bool)] -> IO ()-conditionStatsT = error "conditionsStatsT: not implemented yet, use classStats for now"+conditionStatsT = error "conditionsStatsT: not implemented yet, use conditionStats for now" classify :: Eq a => [a] -> [[a]] classify = classifyBy (==)@@ -82,6 +110,14 @@ countsOn :: Eq b => (a -> b) -> [a] -> [(b,Int)] countsOn f = map (\xs -> (f $ head xs, length xs)) . classifyOn f++countsT :: Eq a => [[a]] -> [(a,Int,[Int])]+countsT xss = [(x,n,map (count x) xss) | (x,n) <- counts (concat xss)]+ where+ count x = length . filter (== x)++countsTOn :: Eq b => (a -> b) -> [[a]] -> [(b,Int,[Int])]+countsTOn f = countsT . mapT f headLength :: [a] -> (a,Int) headLength xs = (head xs, length xs)
src/Test/LeanCheck/Tiers.hs view
@@ -1,6 +1,6 @@ -- | -- Module : Test.LeanCheck.Tiers--- Copyright : (c) 2015-2017 Rudy Matela+-- Copyright : (c) 2015-2018 Rudy Matela -- License : 3-Clause BSD (see the file LICENSE) -- Maintainer : Rudy Matela <rudy@matela.com.br> --@@ -18,6 +18,7 @@ listCons , setCons , bagCons+ , mapCons , noDupListCons , maybeCons0@@ -35,6 +36,7 @@ , setsOf , noDupListsOf , products+ , maps , listsOfLength -- * Tiers of pairs@@ -108,6 +110,19 @@ setCons :: Listable a => ([a] -> b) -> [[b]] setCons = (`mapT` setsOf tiers) +-- | Given a constructor that takes a map of elements (encoded as a list),+-- lists tiers of applications of this constructor+--+-- So long as the underlying 'Listable' enumerations have no repetitions,+-- this will generate no repetitions.+--+-- This allows defining an efficient implementation of `tiers` that does not+-- repeat maps given by:+--+-- > tiers = mapCons fromList+mapCons :: (Listable a, Listable b) => ([(a,b)] -> c) -> [[c]]+mapCons = (`mapT` maps tiers tiers)+ -- | Given a constructor that takes a list with no duplicate elements, -- return tiers of applications of this constructor. noDupListCons :: Listable a => ([a] -> b) -> [[b]]@@ -355,6 +370,15 @@ -- > tiers = mapT fromList $ setsOf tiers setsOf :: [[a]] -> [[[a]]] setsOf = ([[]]:) . concatT . setChoicesWith (\x xss -> mapT (x:) (setsOf xss))++-- | Takes as arguments tiers of source and target values;+-- returns tiers of maps from the source to the target encoded as lists+-- without repetition.+maps :: [[a]] -> [[b]] -> [[[(a,b)]]]+maps xss yss = concatMapT mapsFor (setsOf xss)+ where+--mapsFor :: [a] -> [[ [(a,b)] ]]+ mapsFor xs = zip xs `mapT` products (const yss `map` xs) -- | Lists tiers of choices. -- Choices are pairs of values and tiers excluding that value.
src/Test/LeanCheck/Utils.hs view
@@ -1,6 +1,6 @@ -- | -- Module : Test.LeanCheck.Utils--- Copyright : (c) 2015-2017 Rudy Matela+-- Copyright : (c) 2015-2018 Rudy Matela -- License : 3-Clause BSD (see the file LICENSE) -- Maintainer : Rudy Matela <rudy@matela.com.br> --
src/Test/LeanCheck/Utils/Operators.hs view
@@ -1,6 +1,6 @@ -- | -- Module : Test.LeanCheck.Utils.Operators--- Copyright : (c) 2015-2017 Rudy Matela+-- Copyright : (c) 2015-2018 Rudy Matela -- License : 3-Clause BSD (see the file LICENSE) -- Maintainer : Rudy Matela <rudy@matela.com.br> --@@ -52,6 +52,7 @@ , okEq , okOrd , okEqOrd+ , okNum ) where @@ -228,6 +229,20 @@ okEqOrd x y z = okEq x y z && okOrd x y z && (x == y) == (x `compare` y == EQ) -- consistent instances++okNum :: (Eq a, Num a) => a -> a -> a -> Bool+okNum x y z = commutative (+) x y+ && commutative (*) x y+ && associative (+) x y z+ && associative (*) x y z+ && distributive (*) (+) x y z+ && idempotent (+0) x+ && idempotent (*1) x+ && idempotent abs x+ && idempotent signum x+ && negate (negate x) == x+ && abs x * signum x == x+ && x - x == 0 -- | Equal under, a ternary operator with the same fixity as '=='. --
src/Test/LeanCheck/Utils/TypeBinding.hs view
@@ -1,6 +1,6 @@ -- | -- Module : Test.LeanCheck.Utils.TypeBinding--- Copyright : (c) 2015-2017 Rudy Matela+-- Copyright : (c) 2015-2018 Rudy Matela -- License : 3-Clause BSD (see the file LICENSE) -- Maintainer : Rudy Matela <rudy@matela.com.br> --@@ -91,6 +91,7 @@ , bool , int, integer , float, double+ , rational , char, string , ordering , mayb, eith@@ -281,6 +282,9 @@ double :: Double double = undefinedOf "double"++rational :: Rational+rational = undefinedOf "rational" bool :: Bool bool = undefinedOf "bool"
src/Test/LeanCheck/Utils/Types.hs view
@@ -1,6 +1,6 @@ -- | -- Module : Test.LeanCheck.Utils.Types--- Copyright : (c) 2015-2017 Rudy Matela+-- Copyright : (c) 2015-2018 Rudy Matela -- License : 3-Clause BSD (see the file LICENSE) -- Maintainer : Rudy Matela <rudy@matela.com.br> --@@ -58,13 +58,14 @@ , NoDup (..) , Bag (..) , Set (..)+ , Map (..) ) where -- TODO: Add Ix and Bits instances import Test.LeanCheck (Listable(..), listIntegral) import Test.LeanCheck.Core ((+|),cons1)-import Test.LeanCheck.Tiers (noDupListCons, setCons, bagCons)+import Test.LeanCheck.Tiers (noDupListCons, setCons, bagCons, mapCons) import Data.Ratio ((%)) narrowU :: Int -> Int -> Int@@ -460,10 +461,13 @@ newtype NoDup a = NoDup [a] deriving (Show, Read, Eq, Ord) newtype Bag a = Bag [a] deriving (Show, Read, Eq, Ord) newtype Set a = Set [a] deriving (Show, Read, Eq, Ord)+newtype Map a b = Map [(a,b)] deriving (Show, Read, Eq, Ord) instance Listable a => Listable (NoDup a) where tiers = noDupListCons NoDup instance Listable a => Listable (Bag a) where tiers = bagCons Bag instance Listable a => Listable (Set a) where tiers = setCons Set+instance (Listable a, Listable b)+ => Listable (Map a b) where tiers = mapCons Map -- | 'X' type to be wrapped around integer types for an e-'X'-treme integer -- enumeration. See the 'Listable' instance for 'X'. Use 'X' when
stack.yaml view
@@ -3,7 +3,7 @@ # resolver: nightly-2015-09-21 # resolver: ghc-7.10.2-resolver: lts-9.0+resolver: lts-11.11 packages: - .
tests/Test.hs view
@@ -1,6 +1,6 @@ -- | -- Module : Test--- Copyright : (c) 2015-2017 Rudy Matela+-- Copyright : (c) 2015-2018 Rudy Matela -- License : 3-Clause BSD (see the file LICENSE) -- Maintainer : Rudy Matela <rudy@matela.com.br> --@@ -15,7 +15,6 @@ , tNatTripleOrd , tNatQuadrupleOrd , tNatQuintupleOrd- , tNatSixtupleOrd , tNatListOrd , tListsOfNatOrd , tPairEqParams@@ -104,10 +103,6 @@ tNatQuintupleOrd :: Int -> Bool tNatQuintupleOrd n = n `tStrictlyOrderedBy` comparing sum' `thn` compare where sum' (x,y,z,w,v) = x+y+z+w+v :: Nat--tNatSixtupleOrd :: Int -> Bool-tNatSixtupleOrd n = n `tStrictlyOrderedBy` comparing sum' `thn` compare- where sum' (x,y,z,w,v,u) = x+y+z+w+v+u :: Nat tNatListOrd :: Int -> Bool tNatListOrd n = n `tStrictlyOrderedBy` comparing sum' `thn` compare
tests/diff/tiers-BagBool.out view
@@ -1,3 +1,11 @@+map length (tiers :: [[ Bag Bool ]]) = [1,2,3,4,5,6,7,8,9,10,11,12,...]++length (list :: [ Bag Bool ]) = Infinity++allUnique (list :: [ Bag Bool ]) = True++ratioRepetitions (list :: [ Bag Bool ]) = 0 % 1+ tiers :: [Bag Bool] = [ [Bag []] , [ Bag [False]@@ -90,11 +98,3 @@ ] , ... ]--map length (tiers :: [[ Bag Bool ]]) = [1,2,3,4,5,6,7,8,9,10,11,12,...]--length (list :: [ Bag Bool ]) = Infinity--allUnique (list :: [ Bag Bool ]) = True--ratioRepetitions (list :: [ Bag Bool ]) = 0 % 1
tests/diff/tiers-BagNat.out view
@@ -1,3 +1,11 @@+map length (tiers :: [[ Bag Nat ]]) = [1,1,2,3,5,7,11,15,22,30,42,56,...]++length (list :: [ Bag Nat ]) = Infinity++allUnique (list :: [ Bag Nat ]) = True++ratioRepetitions (list :: [ Bag Nat ]) = 0 % 1+ tiers :: [Bag Nat] = [ [Bag []] , [Bag [0]]@@ -206,11 +214,3 @@ ] , ... ]--map length (tiers :: [[ Bag Nat ]]) = [1,1,2,3,5,7,11,15,22,30,42,56,...]--length (list :: [ Bag Nat ]) = Infinity--allUnique (list :: [ Bag Nat ]) = True--ratioRepetitions (list :: [ Bag Nat ]) = 0 % 1
tests/diff/tiers-BagNat2.out view
@@ -1,3 +1,11 @@+map length (tiers :: [[ Bag Nat2 ]]) = [1,1,2,2,3,3,4,4,5,5,6,6,...]++length (list :: [ Bag Nat2 ]) = Infinity++allUnique (list :: [ Bag Nat2 ]) = True++ratioRepetitions (list :: [ Bag Nat2 ]) = 0 % 1+ tiers :: [Bag Nat2] = [ [Bag []] , [Bag [0]]@@ -53,11 +61,3 @@ ] , ... ]--map length (tiers :: [[ Bag Nat2 ]]) = [1,1,2,2,3,3,4,4,5,5,6,6,...]--length (list :: [ Bag Nat2 ]) = Infinity--allUnique (list :: [ Bag Nat2 ]) = True--ratioRepetitions (list :: [ Bag Nat2 ]) = 0 % 1
tests/diff/tiers-BagNat3.out view
@@ -1,3 +1,11 @@+map length (tiers :: [[ Bag Nat3 ]]) = [1,1,2,3,4,5,7,8,10,12,14,16,...]++length (list :: [ Bag Nat3 ]) = Infinity++allUnique (list :: [ Bag Nat3 ]) = True++ratioRepetitions (list :: [ Bag Nat3 ]) = 0 % 1+ tiers :: [Bag Nat3] = [ [Bag []] , [Bag [0]]@@ -94,11 +102,3 @@ ] , ... ]--map length (tiers :: [[ Bag Nat3 ]]) = [1,1,2,3,4,5,7,8,10,12,14,16,...]--length (list :: [ Bag Nat3 ]) = Infinity--allUnique (list :: [ Bag Nat3 ]) = True--ratioRepetitions (list :: [ Bag Nat3 ]) = 0 % 1
tests/diff/tiers-BagU.out view
@@ -1,3 +1,11 @@+map length (tiers :: [[ Bag () ]]) = [1,1,1,1,1,1,1,1,1,1,1,1,...]++length (list :: [ Bag () ]) = Infinity++allUnique (list :: [ Bag () ]) = True++ratioRepetitions (list :: [ Bag () ]) = 0 % 1+ tiers :: [Bag ()] = [ [Bag []] , [Bag [()]]@@ -13,11 +21,3 @@ , [Bag [(),(),(),(),(),(),(),(),(),(),()]] , ... ]--map length (tiers :: [[ Bag () ]]) = [1,1,1,1,1,1,1,1,1,1,1,1,...]--length (list :: [ Bag () ]) = Infinity--allUnique (list :: [ Bag () ]) = True--ratioRepetitions (list :: [ Bag () ]) = 0 % 1
tests/diff/tiers-Bool.out view
@@ -1,9 +1,3 @@-tiers :: [Bool] =- [ [ False- , True- ]- ]- map length (tiers :: [[ Bool ]]) = [2] length (list :: [ Bool ]) = 2@@ -11,3 +5,9 @@ allUnique (list :: [ Bool ]) = True ratioRepetitions (list :: [ Bool ]) = 0 % 1++tiers :: [Bool] =+ [ [ False+ , True+ ]+ ]
tests/diff/tiers-Bools.out view
@@ -1,3 +1,11 @@+map length (tiers :: [[ [Bool] ]]) = [1,2,4,8,16,32,...]++length (list :: [ [Bool] ]) = Infinity++allUnique (list :: [ [Bool] ]) = True++ratioRepetitions (list :: [ [Bool] ]) = 0 % 1+ tiers :: [[Bool]] = [ [[]] , [ [False]@@ -69,11 +77,3 @@ ] , ... ]--map length (tiers :: [[ [Bool] ]]) = [1,2,4,8,16,32,...]--length (list :: [ [Bool] ]) = Infinity--allUnique (list :: [ [Bool] ]) = True--ratioRepetitions (list :: [ [Bool] ]) = 0 % 1
tests/diff/tiers-Char.out view
@@ -1,3 +1,11 @@+map length (tiers :: [[ Char ]]) = [1,1,1,1,1,1,1,1,1,1,1,1,...]++length (list :: [ Char ]) = Infinity++allUnique (list :: [ Char ]) = True++ratioRepetitions (list :: [ Char ]) = 0 % 1+ tiers :: [Char] = [ ['a'] , [' ']@@ -13,11 +21,3 @@ , ['!'] , ... ]--map length (tiers :: [[ Char ]]) = [1,1,1,1,1,1,1,1,1,1,1,1,...]--length (list :: [ Char ]) = Infinity--allUnique (list :: [ Char ]) = True--ratioRepetitions (list :: [ Char ]) = 0 % 1
tests/diff/tiers-Int,Int,Int.out view
@@ -1,3 +1,11 @@+map length (tiers :: [[ (Int,Int,Int) ]]) = [1,3,6,10,15,21,...]++length (list :: [ (Int,Int,Int) ]) = Infinity++allUnique (list :: [ (Int,Int,Int) ]) = True++ratioRepetitions (list :: [ (Int,Int,Int) ]) = 0 % 1+ tiers :: [(Int,Int,Int)] = [ [(0,0,0)] , [ (0,0,1)@@ -62,11 +70,3 @@ ] , ... ]--map length (tiers :: [[ (Int,Int,Int) ]]) = [1,3,6,10,15,21,...]--length (list :: [ (Int,Int,Int) ]) = Infinity--allUnique (list :: [ (Int,Int,Int) ]) = True--ratioRepetitions (list :: [ (Int,Int,Int) ]) = 0 % 1
tests/diff/tiers-Int,Int.out view
@@ -1,3 +1,11 @@+map length (tiers :: [[ (Int,Int) ]]) = [1,2,3,4,5,6,7,8,9,10,11,12,...]++length (list :: [ (Int,Int) ]) = Infinity++allUnique (list :: [ (Int,Int) ]) = True++ratioRepetitions (list :: [ (Int,Int) ]) = 0 % 1+ tiers :: [(Int,Int)] = [ [(0,0)] , [ (0,1)@@ -90,11 +98,3 @@ ] , ... ]--map length (tiers :: [[ (Int,Int) ]]) = [1,2,3,4,5,6,7,8,9,10,11,12,...]--length (list :: [ (Int,Int) ]) = Infinity--allUnique (list :: [ (Int,Int) ]) = True--ratioRepetitions (list :: [ (Int,Int) ]) = 0 % 1
tests/diff/tiers-Int.out view
@@ -1,3 +1,11 @@+map length (tiers :: [[ Int ]]) = [1,1,1,1,1,1,1,1,1,1,1,1,...]++length (list :: [ Int ]) = Infinity++allUnique (list :: [ Int ]) = True++ratioRepetitions (list :: [ Int ]) = 0 % 1+ tiers :: [Int] = [ [0] , [1]@@ -13,11 +21,3 @@ , [6] , ... ]--map length (tiers :: [[ Int ]]) = [1,1,1,1,1,1,1,1,1,1,1,1,...]--length (list :: [ Int ]) = Infinity--allUnique (list :: [ Int ]) = True--ratioRepetitions (list :: [ Int ]) = 0 % 1
tests/diff/tiers-Integer.out view
@@ -1,3 +1,11 @@+map length (tiers :: [[ Integer ]]) = [1,1,1,1,1,1,1,1,1,1,1,1,...]++length (list :: [ Integer ]) = Infinity++allUnique (list :: [ Integer ]) = True++ratioRepetitions (list :: [ Integer ]) = 0 % 1+ tiers :: [Integer] = [ [0] , [1]@@ -13,11 +21,3 @@ , [6] , ... ]--map length (tiers :: [[ Integer ]]) = [1,1,1,1,1,1,1,1,1,1,1,1,...]--length (list :: [ Integer ]) = Infinity--allUnique (list :: [ Integer ]) = True--ratioRepetitions (list :: [ Integer ]) = 0 % 1
tests/diff/tiers-Ints.out view
@@ -1,3 +1,11 @@+map length (tiers :: [[ [Int] ]]) = [1,1,2,4,8,16,...]++length (list :: [ [Int] ]) = Infinity++allUnique (list :: [ [Int] ]) = True++ratioRepetitions (list :: [ [Int] ]) = 0 % 1+ tiers :: [[Int]] = [ [[]] , [[0]]@@ -37,11 +45,3 @@ ] , ... ]--map length (tiers :: [[ [Int] ]]) = [1,1,2,4,8,16,...]--length (list :: [ [Int] ]) = Infinity--allUnique (list :: [ [Int] ]) = True--ratioRepetitions (list :: [ [Int] ]) = 0 % 1
+ tests/diff/tiers-MapBoolBool.out view
@@ -0,0 +1,21 @@+map length (tiers :: [[ Map Bool Bool ]]) = [1,4,4]++length (list :: [ Map Bool Bool ]) = 9++allUnique (list :: [ Map Bool Bool ]) = True++ratioRepetitions (list :: [ Map Bool Bool ]) = 0 % 1++tiers :: [Map Bool Bool] =+ [ [Map []]+ , [ Map [(False,False)]+ , Map [(False,True)]+ , Map [(True,False)]+ , Map [(True,True)]+ ]+ , [ Map [(False,False),(True,False)]+ , Map [(False,False),(True,True)]+ , Map [(False,True),(True,False)]+ , Map [(False,True),(True,True)]+ ]+ ]
+ tests/diff/tiers-MapNat2Nat2.out view
@@ -0,0 +1,22 @@+map length (tiers :: [[ Map Nat2 Nat2 ]]) = [1,1,2,2,2,1]++length (list :: [ Map Nat2 Nat2 ]) = 9++allUnique (list :: [ Map Nat2 Nat2 ]) = True++ratioRepetitions (list :: [ Map Nat2 Nat2 ]) = 0 % 1++tiers :: [Map Nat2 Nat2] =+ [ [Map []]+ , [Map [(0,0)]]+ , [ Map [(0,1)]+ , Map [(1,0)]+ ]+ , [ Map [(1,1)]+ , Map [(0,0),(1,0)]+ ]+ , [ Map [(0,0),(1,1)]+ , Map [(0,1),(1,0)]+ ]+ , [Map [(0,1),(1,1)]]+ ]
+ tests/diff/tiers-MapNat3Nat3.out view
@@ -0,0 +1,84 @@+map length (tiers :: [[ Map Nat3 Nat3 ]]) = [1,1,2,4,5,7,8,9,9,8,6,3,...]++length (list :: [ Map Nat3 Nat3 ]) = Infinity++allUnique (list :: [ Map Nat3 Nat3 ]) = True++ratioRepetitions (list :: [ Map Nat3 Nat3 ]) = 0 % 1++tiers :: [Map Nat3 Nat3] =+ [ [Map []]+ , [Map [(0,0)]]+ , [ Map [(0,1)]+ , Map [(1,0)]+ ]+ , [ Map [(0,2)]+ , Map [(1,1)]+ , Map [(0,0),(1,0)]+ , Map [(2,0)]+ ]+ , [ Map [(1,2)]+ , Map [(0,0),(1,1)]+ , Map [(0,1),(1,0)]+ , Map [(2,1)]+ , Map [(0,0),(2,0)]+ ]+ , [ Map [(0,0),(1,2)]+ , Map [(0,1),(1,1)]+ , Map [(0,2),(1,0)]+ , Map [(2,2)]+ , Map [(0,0),(2,1)]+ , Map [(0,1),(2,0)]+ , Map [(1,0),(2,0)]+ ]+ , [ Map [(0,1),(1,2)]+ , Map [(0,2),(1,1)]+ , Map [(0,0),(2,2)]+ , Map [(0,1),(2,1)]+ , Map [(0,2),(2,0)]+ , Map [(1,0),(2,1)]+ , Map [(1,1),(2,0)]+ , Map [(0,0),(1,0),(2,0)]+ ]+ , [ Map [(0,2),(1,2)]+ , Map [(0,1),(2,2)]+ , Map [(0,2),(2,1)]+ , Map [(1,0),(2,2)]+ , Map [(1,1),(2,1)]+ , Map [(1,2),(2,0)]+ , Map [(0,0),(1,0),(2,1)]+ , Map [(0,0),(1,1),(2,0)]+ , Map [(0,1),(1,0),(2,0)]+ ]+ , [ Map [(0,2),(2,2)]+ , Map [(1,1),(2,2)]+ , Map [(1,2),(2,1)]+ , Map [(0,0),(1,0),(2,2)]+ , Map [(0,0),(1,1),(2,1)]+ , Map [(0,0),(1,2),(2,0)]+ , Map [(0,1),(1,0),(2,1)]+ , Map [(0,1),(1,1),(2,0)]+ , Map [(0,2),(1,0),(2,0)]+ ]+ , [ Map [(1,2),(2,2)]+ , Map [(0,0),(1,1),(2,2)]+ , Map [(0,0),(1,2),(2,1)]+ , Map [(0,1),(1,0),(2,2)]+ , Map [(0,1),(1,1),(2,1)]+ , Map [(0,1),(1,2),(2,0)]+ , Map [(0,2),(1,0),(2,1)]+ , Map [(0,2),(1,1),(2,0)]+ ]+ , [ Map [(0,0),(1,2),(2,2)]+ , Map [(0,1),(1,1),(2,2)]+ , Map [(0,1),(1,2),(2,1)]+ , Map [(0,2),(1,0),(2,2)]+ , Map [(0,2),(1,1),(2,1)]+ , Map [(0,2),(1,2),(2,0)]+ ]+ , [ Map [(0,1),(1,2),(2,2)]+ , Map [(0,2),(1,1),(2,2)]+ , Map [(0,2),(1,2),(2,1)]+ ]+ , ...+ ]
+ tests/diff/tiers-MapNatNat.out view
@@ -0,0 +1,571 @@+map length (tiers :: [[ Map Nat Nat ]]) = [1,1,2,4,7,12,20,33,53,84,131,202,...]++length (list :: [ Map Nat Nat ]) = Infinity++allUnique (list :: [ Map Nat Nat ]) = True++ratioRepetitions (list :: [ Map Nat Nat ]) = 0 % 1++tiers :: [Map Nat Nat] =+ [ [Map []]+ , [Map [(0,0)]]+ , [ Map [(0,1)]+ , Map [(1,0)]+ ]+ , [ Map [(0,2)]+ , Map [(1,1)]+ , Map [(0,0),(1,0)]+ , Map [(2,0)]+ ]+ , [ Map [(0,3)]+ , Map [(1,2)]+ , Map [(0,0),(1,1)]+ , Map [(0,1),(1,0)]+ , Map [(2,1)]+ , Map [(0,0),(2,0)]+ , Map [(3,0)]+ ]+ , [ Map [(0,4)]+ , Map [(1,3)]+ , Map [(0,0),(1,2)]+ , Map [(0,1),(1,1)]+ , Map [(0,2),(1,0)]+ , Map [(2,2)]+ , Map [(0,0),(2,1)]+ , Map [(0,1),(2,0)]+ , Map [(3,1)]+ , Map [(0,0),(3,0)]+ , Map [(1,0),(2,0)]+ , Map [(4,0)]+ ]+ , [ Map [(0,5)]+ , Map [(1,4)]+ , Map [(0,0),(1,3)]+ , Map [(0,1),(1,2)]+ , Map [(0,2),(1,1)]+ , Map [(0,3),(1,0)]+ , Map [(2,3)]+ , Map [(0,0),(2,2)]+ , Map [(0,1),(2,1)]+ , Map [(0,2),(2,0)]+ , Map [(3,2)]+ , Map [(0,0),(3,1)]+ , Map [(0,1),(3,0)]+ , Map [(1,0),(2,1)]+ , Map [(1,1),(2,0)]+ , Map [(4,1)]+ , Map [(0,0),(1,0),(2,0)]+ , Map [(0,0),(4,0)]+ , Map [(1,0),(3,0)]+ , Map [(5,0)]+ ]+ , [ Map [(0,6)]+ , Map [(1,5)]+ , Map [(0,0),(1,4)]+ , Map [(0,1),(1,3)]+ , Map [(0,2),(1,2)]+ , Map [(0,3),(1,1)]+ , Map [(0,4),(1,0)]+ , Map [(2,4)]+ , Map [(0,0),(2,3)]+ , Map [(0,1),(2,2)]+ , Map [(0,2),(2,1)]+ , Map [(0,3),(2,0)]+ , Map [(3,3)]+ , Map [(0,0),(3,2)]+ , Map [(0,1),(3,1)]+ , Map [(0,2),(3,0)]+ , Map [(1,0),(2,2)]+ , Map [(1,1),(2,1)]+ , Map [(1,2),(2,0)]+ , Map [(4,2)]+ , Map [(0,0),(1,0),(2,1)]+ , Map [(0,0),(1,1),(2,0)]+ , Map [(0,1),(1,0),(2,0)]+ , Map [(0,0),(4,1)]+ , Map [(0,1),(4,0)]+ , Map [(1,0),(3,1)]+ , Map [(1,1),(3,0)]+ , Map [(5,1)]+ , Map [(0,0),(1,0),(3,0)]+ , Map [(0,0),(5,0)]+ , Map [(1,0),(4,0)]+ , Map [(2,0),(3,0)]+ , Map [(6,0)]+ ]+ , [ Map [(0,7)]+ , Map [(1,6)]+ , Map [(0,0),(1,5)]+ , Map [(0,1),(1,4)]+ , Map [(0,2),(1,3)]+ , Map [(0,3),(1,2)]+ , Map [(0,4),(1,1)]+ , Map [(0,5),(1,0)]+ , Map [(2,5)]+ , Map [(0,0),(2,4)]+ , Map [(0,1),(2,3)]+ , Map [(0,2),(2,2)]+ , Map [(0,3),(2,1)]+ , Map [(0,4),(2,0)]+ , Map [(3,4)]+ , Map [(0,0),(3,3)]+ , Map [(0,1),(3,2)]+ , Map [(0,2),(3,1)]+ , Map [(0,3),(3,0)]+ , Map [(1,0),(2,3)]+ , Map [(1,1),(2,2)]+ , Map [(1,2),(2,1)]+ , Map [(1,3),(2,0)]+ , Map [(4,3)]+ , Map [(0,0),(1,0),(2,2)]+ , Map [(0,0),(1,1),(2,1)]+ , Map [(0,0),(1,2),(2,0)]+ , Map [(0,1),(1,0),(2,1)]+ , Map [(0,1),(1,1),(2,0)]+ , Map [(0,2),(1,0),(2,0)]+ , Map [(0,0),(4,2)]+ , Map [(0,1),(4,1)]+ , Map [(0,2),(4,0)]+ , Map [(1,0),(3,2)]+ , Map [(1,1),(3,1)]+ , Map [(1,2),(3,0)]+ , Map [(5,2)]+ , Map [(0,0),(1,0),(3,1)]+ , Map [(0,0),(1,1),(3,0)]+ , Map [(0,1),(1,0),(3,0)]+ , Map [(0,0),(5,1)]+ , Map [(0,1),(5,0)]+ , Map [(1,0),(4,1)]+ , Map [(1,1),(4,0)]+ , Map [(2,0),(3,1)]+ , Map [(2,1),(3,0)]+ , Map [(6,1)]+ , Map [(0,0),(1,0),(4,0)]+ , Map [(0,0),(2,0),(3,0)]+ , Map [(0,0),(6,0)]+ , Map [(1,0),(5,0)]+ , Map [(2,0),(4,0)]+ , Map [(7,0)]+ ]+ , [ Map [(0,8)]+ , Map [(1,7)]+ , Map [(0,0),(1,6)]+ , Map [(0,1),(1,5)]+ , Map [(0,2),(1,4)]+ , Map [(0,3),(1,3)]+ , Map [(0,4),(1,2)]+ , Map [(0,5),(1,1)]+ , Map [(0,6),(1,0)]+ , Map [(2,6)]+ , Map [(0,0),(2,5)]+ , Map [(0,1),(2,4)]+ , Map [(0,2),(2,3)]+ , Map [(0,3),(2,2)]+ , Map [(0,4),(2,1)]+ , Map [(0,5),(2,0)]+ , Map [(3,5)]+ , Map [(0,0),(3,4)]+ , Map [(0,1),(3,3)]+ , Map [(0,2),(3,2)]+ , Map [(0,3),(3,1)]+ , Map [(0,4),(3,0)]+ , Map [(1,0),(2,4)]+ , Map [(1,1),(2,3)]+ , Map [(1,2),(2,2)]+ , Map [(1,3),(2,1)]+ , Map [(1,4),(2,0)]+ , Map [(4,4)]+ , Map [(0,0),(1,0),(2,3)]+ , Map [(0,0),(1,1),(2,2)]+ , Map [(0,0),(1,2),(2,1)]+ , Map [(0,0),(1,3),(2,0)]+ , Map [(0,1),(1,0),(2,2)]+ , Map [(0,1),(1,1),(2,1)]+ , Map [(0,1),(1,2),(2,0)]+ , Map [(0,2),(1,0),(2,1)]+ , Map [(0,2),(1,1),(2,0)]+ , Map [(0,3),(1,0),(2,0)]+ , Map [(0,0),(4,3)]+ , Map [(0,1),(4,2)]+ , Map [(0,2),(4,1)]+ , Map [(0,3),(4,0)]+ , Map [(1,0),(3,3)]+ , Map [(1,1),(3,2)]+ , Map [(1,2),(3,1)]+ , Map [(1,3),(3,0)]+ , Map [(5,3)]+ , Map [(0,0),(1,0),(3,2)]+ , Map [(0,0),(1,1),(3,1)]+ , Map [(0,0),(1,2),(3,0)]+ , Map [(0,1),(1,0),(3,1)]+ , Map [(0,1),(1,1),(3,0)]+ , Map [(0,2),(1,0),(3,0)]+ , Map [(0,0),(5,2)]+ , Map [(0,1),(5,1)]+ , Map [(0,2),(5,0)]+ , Map [(1,0),(4,2)]+ , Map [(1,1),(4,1)]+ , Map [(1,2),(4,0)]+ , Map [(2,0),(3,2)]+ , Map [(2,1),(3,1)]+ , Map [(2,2),(3,0)]+ , Map [(6,2)]+ , Map [(0,0),(1,0),(4,1)]+ , Map [(0,0),(1,1),(4,0)]+ , Map [(0,1),(1,0),(4,0)]+ , Map [(0,0),(2,0),(3,1)]+ , Map [(0,0),(2,1),(3,0)]+ , Map [(0,1),(2,0),(3,0)]+ , Map [(0,0),(6,1)]+ , Map [(0,1),(6,0)]+ , Map [(1,0),(5,1)]+ , Map [(1,1),(5,0)]+ , Map [(2,0),(4,1)]+ , Map [(2,1),(4,0)]+ , Map [(7,1)]+ , Map [(0,0),(1,0),(5,0)]+ , Map [(0,0),(2,0),(4,0)]+ , Map [(0,0),(7,0)]+ , Map [(1,0),(2,0),(3,0)]+ , Map [(1,0),(6,0)]+ , Map [(2,0),(5,0)]+ , Map [(3,0),(4,0)]+ , Map [(8,0)]+ ]+ , [ Map [(0,9)]+ , Map [(1,8)]+ , Map [(0,0),(1,7)]+ , Map [(0,1),(1,6)]+ , Map [(0,2),(1,5)]+ , Map [(0,3),(1,4)]+ , Map [(0,4),(1,3)]+ , Map [(0,5),(1,2)]+ , Map [(0,6),(1,1)]+ , Map [(0,7),(1,0)]+ , Map [(2,7)]+ , Map [(0,0),(2,6)]+ , Map [(0,1),(2,5)]+ , Map [(0,2),(2,4)]+ , Map [(0,3),(2,3)]+ , Map [(0,4),(2,2)]+ , Map [(0,5),(2,1)]+ , Map [(0,6),(2,0)]+ , Map [(3,6)]+ , Map [(0,0),(3,5)]+ , Map [(0,1),(3,4)]+ , Map [(0,2),(3,3)]+ , Map [(0,3),(3,2)]+ , Map [(0,4),(3,1)]+ , Map [(0,5),(3,0)]+ , Map [(1,0),(2,5)]+ , Map [(1,1),(2,4)]+ , Map [(1,2),(2,3)]+ , Map [(1,3),(2,2)]+ , Map [(1,4),(2,1)]+ , Map [(1,5),(2,0)]+ , Map [(4,5)]+ , Map [(0,0),(1,0),(2,4)]+ , Map [(0,0),(1,1),(2,3)]+ , Map [(0,0),(1,2),(2,2)]+ , Map [(0,0),(1,3),(2,1)]+ , Map [(0,0),(1,4),(2,0)]+ , Map [(0,1),(1,0),(2,3)]+ , Map [(0,1),(1,1),(2,2)]+ , Map [(0,1),(1,2),(2,1)]+ , Map [(0,1),(1,3),(2,0)]+ , Map [(0,2),(1,0),(2,2)]+ , Map [(0,2),(1,1),(2,1)]+ , Map [(0,2),(1,2),(2,0)]+ , Map [(0,3),(1,0),(2,1)]+ , Map [(0,3),(1,1),(2,0)]+ , Map [(0,4),(1,0),(2,0)]+ , Map [(0,0),(4,4)]+ , Map [(0,1),(4,3)]+ , Map [(0,2),(4,2)]+ , Map [(0,3),(4,1)]+ , Map [(0,4),(4,0)]+ , Map [(1,0),(3,4)]+ , Map [(1,1),(3,3)]+ , Map [(1,2),(3,2)]+ , Map [(1,3),(3,1)]+ , Map [(1,4),(3,0)]+ , Map [(5,4)]+ , Map [(0,0),(1,0),(3,3)]+ , Map [(0,0),(1,1),(3,2)]+ , Map [(0,0),(1,2),(3,1)]+ , Map [(0,0),(1,3),(3,0)]+ , Map [(0,1),(1,0),(3,2)]+ , Map [(0,1),(1,1),(3,1)]+ , Map [(0,1),(1,2),(3,0)]+ , Map [(0,2),(1,0),(3,1)]+ , Map [(0,2),(1,1),(3,0)]+ , Map [(0,3),(1,0),(3,0)]+ , Map [(0,0),(5,3)]+ , Map [(0,1),(5,2)]+ , Map [(0,2),(5,1)]+ , Map [(0,3),(5,0)]+ , Map [(1,0),(4,3)]+ , Map [(1,1),(4,2)]+ , Map [(1,2),(4,1)]+ , Map [(1,3),(4,0)]+ , Map [(2,0),(3,3)]+ , Map [(2,1),(3,2)]+ , Map [(2,2),(3,1)]+ , Map [(2,3),(3,0)]+ , Map [(6,3)]+ , Map [(0,0),(1,0),(4,2)]+ , Map [(0,0),(1,1),(4,1)]+ , Map [(0,0),(1,2),(4,0)]+ , Map [(0,1),(1,0),(4,1)]+ , Map [(0,1),(1,1),(4,0)]+ , Map [(0,2),(1,0),(4,0)]+ , Map [(0,0),(2,0),(3,2)]+ , Map [(0,0),(2,1),(3,1)]+ , Map [(0,0),(2,2),(3,0)]+ , Map [(0,1),(2,0),(3,1)]+ , Map [(0,1),(2,1),(3,0)]+ , Map [(0,2),(2,0),(3,0)]+ , Map [(0,0),(6,2)]+ , Map [(0,1),(6,1)]+ , Map [(0,2),(6,0)]+ , Map [(1,0),(5,2)]+ , Map [(1,1),(5,1)]+ , Map [(1,2),(5,0)]+ , Map [(2,0),(4,2)]+ , Map [(2,1),(4,1)]+ , Map [(2,2),(4,0)]+ , Map [(7,2)]+ , Map [(0,0),(1,0),(5,1)]+ , Map [(0,0),(1,1),(5,0)]+ , Map [(0,1),(1,0),(5,0)]+ , Map [(0,0),(2,0),(4,1)]+ , Map [(0,0),(2,1),(4,0)]+ , Map [(0,1),(2,0),(4,0)]+ , Map [(0,0),(7,1)]+ , Map [(0,1),(7,0)]+ , Map [(1,0),(2,0),(3,1)]+ , Map [(1,0),(2,1),(3,0)]+ , Map [(1,1),(2,0),(3,0)]+ , Map [(1,0),(6,1)]+ , Map [(1,1),(6,0)]+ , Map [(2,0),(5,1)]+ , Map [(2,1),(5,0)]+ , Map [(3,0),(4,1)]+ , Map [(3,1),(4,0)]+ , Map [(8,1)]+ , Map [(0,0),(1,0),(2,0),(3,0)]+ , Map [(0,0),(1,0),(6,0)]+ , Map [(0,0),(2,0),(5,0)]+ , Map [(0,0),(3,0),(4,0)]+ , Map [(0,0),(8,0)]+ , Map [(1,0),(2,0),(4,0)]+ , Map [(1,0),(7,0)]+ , Map [(2,0),(6,0)]+ , Map [(3,0),(5,0)]+ , Map [(9,0)]+ ]+ , [ Map [(0,10)]+ , Map [(1,9)]+ , Map [(0,0),(1,8)]+ , Map [(0,1),(1,7)]+ , Map [(0,2),(1,6)]+ , Map [(0,3),(1,5)]+ , Map [(0,4),(1,4)]+ , Map [(0,5),(1,3)]+ , Map [(0,6),(1,2)]+ , Map [(0,7),(1,1)]+ , Map [(0,8),(1,0)]+ , Map [(2,8)]+ , Map [(0,0),(2,7)]+ , Map [(0,1),(2,6)]+ , Map [(0,2),(2,5)]+ , Map [(0,3),(2,4)]+ , Map [(0,4),(2,3)]+ , Map [(0,5),(2,2)]+ , Map [(0,6),(2,1)]+ , Map [(0,7),(2,0)]+ , Map [(3,7)]+ , Map [(0,0),(3,6)]+ , Map [(0,1),(3,5)]+ , Map [(0,2),(3,4)]+ , Map [(0,3),(3,3)]+ , Map [(0,4),(3,2)]+ , Map [(0,5),(3,1)]+ , Map [(0,6),(3,0)]+ , Map [(1,0),(2,6)]+ , Map [(1,1),(2,5)]+ , Map [(1,2),(2,4)]+ , Map [(1,3),(2,3)]+ , Map [(1,4),(2,2)]+ , Map [(1,5),(2,1)]+ , Map [(1,6),(2,0)]+ , Map [(4,6)]+ , Map [(0,0),(1,0),(2,5)]+ , Map [(0,0),(1,1),(2,4)]+ , Map [(0,0),(1,2),(2,3)]+ , Map [(0,0),(1,3),(2,2)]+ , Map [(0,0),(1,4),(2,1)]+ , Map [(0,0),(1,5),(2,0)]+ , Map [(0,1),(1,0),(2,4)]+ , Map [(0,1),(1,1),(2,3)]+ , Map [(0,1),(1,2),(2,2)]+ , Map [(0,1),(1,3),(2,1)]+ , Map [(0,1),(1,4),(2,0)]+ , Map [(0,2),(1,0),(2,3)]+ , Map [(0,2),(1,1),(2,2)]+ , Map [(0,2),(1,2),(2,1)]+ , Map [(0,2),(1,3),(2,0)]+ , Map [(0,3),(1,0),(2,2)]+ , Map [(0,3),(1,1),(2,1)]+ , Map [(0,3),(1,2),(2,0)]+ , Map [(0,4),(1,0),(2,1)]+ , Map [(0,4),(1,1),(2,0)]+ , Map [(0,5),(1,0),(2,0)]+ , Map [(0,0),(4,5)]+ , Map [(0,1),(4,4)]+ , Map [(0,2),(4,3)]+ , Map [(0,3),(4,2)]+ , Map [(0,4),(4,1)]+ , Map [(0,5),(4,0)]+ , Map [(1,0),(3,5)]+ , Map [(1,1),(3,4)]+ , Map [(1,2),(3,3)]+ , Map [(1,3),(3,2)]+ , Map [(1,4),(3,1)]+ , Map [(1,5),(3,0)]+ , Map [(5,5)]+ , Map [(0,0),(1,0),(3,4)]+ , Map [(0,0),(1,1),(3,3)]+ , Map [(0,0),(1,2),(3,2)]+ , Map [(0,0),(1,3),(3,1)]+ , Map [(0,0),(1,4),(3,0)]+ , Map [(0,1),(1,0),(3,3)]+ , Map [(0,1),(1,1),(3,2)]+ , Map [(0,1),(1,2),(3,1)]+ , Map [(0,1),(1,3),(3,0)]+ , Map [(0,2),(1,0),(3,2)]+ , Map [(0,2),(1,1),(3,1)]+ , Map [(0,2),(1,2),(3,0)]+ , Map [(0,3),(1,0),(3,1)]+ , Map [(0,3),(1,1),(3,0)]+ , Map [(0,4),(1,0),(3,0)]+ , Map [(0,0),(5,4)]+ , Map [(0,1),(5,3)]+ , Map [(0,2),(5,2)]+ , Map [(0,3),(5,1)]+ , Map [(0,4),(5,0)]+ , Map [(1,0),(4,4)]+ , Map [(1,1),(4,3)]+ , Map [(1,2),(4,2)]+ , Map [(1,3),(4,1)]+ , Map [(1,4),(4,0)]+ , Map [(2,0),(3,4)]+ , Map [(2,1),(3,3)]+ , Map [(2,2),(3,2)]+ , Map [(2,3),(3,1)]+ , Map [(2,4),(3,0)]+ , Map [(6,4)]+ , Map [(0,0),(1,0),(4,3)]+ , Map [(0,0),(1,1),(4,2)]+ , Map [(0,0),(1,2),(4,1)]+ , Map [(0,0),(1,3),(4,0)]+ , Map [(0,1),(1,0),(4,2)]+ , Map [(0,1),(1,1),(4,1)]+ , Map [(0,1),(1,2),(4,0)]+ , Map [(0,2),(1,0),(4,1)]+ , Map [(0,2),(1,1),(4,0)]+ , Map [(0,3),(1,0),(4,0)]+ , Map [(0,0),(2,0),(3,3)]+ , Map [(0,0),(2,1),(3,2)]+ , Map [(0,0),(2,2),(3,1)]+ , Map [(0,0),(2,3),(3,0)]+ , Map [(0,1),(2,0),(3,2)]+ , Map [(0,1),(2,1),(3,1)]+ , Map [(0,1),(2,2),(3,0)]+ , Map [(0,2),(2,0),(3,1)]+ , Map [(0,2),(2,1),(3,0)]+ , Map [(0,3),(2,0),(3,0)]+ , Map [(0,0),(6,3)]+ , Map [(0,1),(6,2)]+ , Map [(0,2),(6,1)]+ , Map [(0,3),(6,0)]+ , Map [(1,0),(5,3)]+ , Map [(1,1),(5,2)]+ , Map [(1,2),(5,1)]+ , Map [(1,3),(5,0)]+ , Map [(2,0),(4,3)]+ , Map [(2,1),(4,2)]+ , Map [(2,2),(4,1)]+ , Map [(2,3),(4,0)]+ , Map [(7,3)]+ , Map [(0,0),(1,0),(5,2)]+ , Map [(0,0),(1,1),(5,1)]+ , Map [(0,0),(1,2),(5,0)]+ , Map [(0,1),(1,0),(5,1)]+ , Map [(0,1),(1,1),(5,0)]+ , Map [(0,2),(1,0),(5,0)]+ , Map [(0,0),(2,0),(4,2)]+ , Map [(0,0),(2,1),(4,1)]+ , Map [(0,0),(2,2),(4,0)]+ , Map [(0,1),(2,0),(4,1)]+ , Map [(0,1),(2,1),(4,0)]+ , Map [(0,2),(2,0),(4,0)]+ , Map [(0,0),(7,2)]+ , Map [(0,1),(7,1)]+ , Map [(0,2),(7,0)]+ , Map [(1,0),(2,0),(3,2)]+ , Map [(1,0),(2,1),(3,1)]+ , Map [(1,0),(2,2),(3,0)]+ , Map [(1,1),(2,0),(3,1)]+ , Map [(1,1),(2,1),(3,0)]+ , Map [(1,2),(2,0),(3,0)]+ , Map [(1,0),(6,2)]+ , Map [(1,1),(6,1)]+ , Map [(1,2),(6,0)]+ , Map [(2,0),(5,2)]+ , Map [(2,1),(5,1)]+ , Map [(2,2),(5,0)]+ , Map [(3,0),(4,2)]+ , Map [(3,1),(4,1)]+ , Map [(3,2),(4,0)]+ , Map [(8,2)]+ , Map [(0,0),(1,0),(2,0),(3,1)]+ , Map [(0,0),(1,0),(2,1),(3,0)]+ , Map [(0,0),(1,1),(2,0),(3,0)]+ , Map [(0,1),(1,0),(2,0),(3,0)]+ , Map [(0,0),(1,0),(6,1)]+ , Map [(0,0),(1,1),(6,0)]+ , Map [(0,1),(1,0),(6,0)]+ , Map [(0,0),(2,0),(5,1)]+ , Map [(0,0),(2,1),(5,0)]+ , Map [(0,1),(2,0),(5,0)]+ , Map [(0,0),(3,0),(4,1)]+ , Map [(0,0),(3,1),(4,0)]+ , Map [(0,1),(3,0),(4,0)]+ , Map [(0,0),(8,1)]+ , Map [(0,1),(8,0)]+ , Map [(1,0),(2,0),(4,1)]+ , Map [(1,0),(2,1),(4,0)]+ , Map [(1,1),(2,0),(4,0)]+ , Map [(1,0),(7,1)]+ , Map [(1,1),(7,0)]+ , Map [(2,0),(6,1)]+ , Map [(2,1),(6,0)]+ , Map [(3,0),(5,1)]+ , Map [(3,1),(5,0)]+ , Map [(9,1)]+ , Map [(0,0),(1,0),(2,0),(4,0)]+ , Map [(0,0),(1,0),(7,0)]+ , Map [(0,0),(2,0),(6,0)]+ , Map [(0,0),(3,0),(5,0)]+ , Map [(0,0),(9,0)]+ , Map [(1,0),(2,0),(5,0)]+ , Map [(1,0),(3,0),(4,0)]+ , Map [(1,0),(8,0)]+ , Map [(2,0),(7,0)]+ , Map [(3,0),(6,0)]+ , Map [(4,0),(5,0)]+ , Map [(10,0)]+ ]+ , ...+ ]
+ tests/diff/tiers-MapUU.out view
@@ -0,0 +1,12 @@+map length (tiers :: [[ Map () () ]]) = [1,1]++length (list :: [ Map () () ]) = 2++allUnique (list :: [ Map () () ]) = True++ratioRepetitions (list :: [ Map () () ]) = 0 % 1++tiers :: [Map () ()] =+ [ [Map []]+ , [Map [((),())]]+ ]
tests/diff/tiers-Nat,Nat,Nat.out view
@@ -1,3 +1,11 @@+map length (tiers :: [[ (Nat,Nat,Nat) ]]) = [1,3,6,10,15,21,...]++length (list :: [ (Nat,Nat,Nat) ]) = Infinity++allUnique (list :: [ (Nat,Nat,Nat) ]) = True++ratioRepetitions (list :: [ (Nat,Nat,Nat) ]) = 0 % 1+ tiers :: [(Nat,Nat,Nat)] = [ [(0,0,0)] , [ (0,0,1)@@ -62,11 +70,3 @@ ] , ... ]--map length (tiers :: [[ (Nat,Nat,Nat) ]]) = [1,3,6,10,15,21,...]--length (list :: [ (Nat,Nat,Nat) ]) = Infinity--allUnique (list :: [ (Nat,Nat,Nat) ]) = True--ratioRepetitions (list :: [ (Nat,Nat,Nat) ]) = 0 % 1
tests/diff/tiers-Nat,Nat.out view
@@ -1,3 +1,11 @@+map length (tiers :: [[ (Nat,Nat) ]]) = [1,2,3,4,5,6,7,8,9,10,11,12,...]++length (list :: [ (Nat,Nat) ]) = Infinity++allUnique (list :: [ (Nat,Nat) ]) = True++ratioRepetitions (list :: [ (Nat,Nat) ]) = 0 % 1+ tiers :: [(Nat,Nat)] = [ [(0,0)] , [ (0,1)@@ -90,11 +98,3 @@ ] , ... ]--map length (tiers :: [[ (Nat,Nat) ]]) = [1,2,3,4,5,6,7,8,9,10,11,12,...]--length (list :: [ (Nat,Nat) ]) = Infinity--allUnique (list :: [ (Nat,Nat) ]) = True--ratioRepetitions (list :: [ (Nat,Nat) ]) = 0 % 1
tests/diff/tiers-Nat.out view
@@ -1,3 +1,11 @@+map length (tiers :: [[ Nat ]]) = [1,1,1,1,1,1,1,1,1,1,1,1,...]++length (list :: [ Nat ]) = Infinity++allUnique (list :: [ Nat ]) = True++ratioRepetitions (list :: [ Nat ]) = 0 % 1+ tiers :: [Nat] = [ [0] , [1]@@ -13,11 +21,3 @@ , [11] , ... ]--map length (tiers :: [[ Nat ]]) = [1,1,1,1,1,1,1,1,1,1,1,1,...]--length (list :: [ Nat ]) = Infinity--allUnique (list :: [ Nat ]) = True--ratioRepetitions (list :: [ Nat ]) = 0 % 1
tests/diff/tiers-Nats.out view
@@ -1,3 +1,11 @@+map length (tiers :: [[ [Nat] ]]) = [1,1,2,4,8,16,...]++length (list :: [ [Nat] ]) = Infinity++allUnique (list :: [ [Nat] ]) = True++ratioRepetitions (list :: [ [Nat] ]) = 0 % 1+ tiers :: [[Nat]] = [ [[]] , [[0]]@@ -37,11 +45,3 @@ ] , ... ]--map length (tiers :: [[ [Nat] ]]) = [1,1,2,4,8,16,...]--length (list :: [ [Nat] ]) = Infinity--allUnique (list :: [ [Nat] ]) = True--ratioRepetitions (list :: [ [Nat] ]) = 0 % 1
tests/diff/tiers-NoDupBool.out view
@@ -1,3 +1,11 @@+map length (tiers :: [[ NoDup Bool ]]) = [1,2,2]++length (list :: [ NoDup Bool ]) = 5++allUnique (list :: [ NoDup Bool ]) = True++ratioRepetitions (list :: [ NoDup Bool ]) = 0 % 1+ tiers :: [NoDup Bool] = [ [NoDup []] , [ NoDup [False]@@ -7,11 +15,3 @@ , NoDup [True,False] ] ]--map length (tiers :: [[ NoDup Bool ]]) = [1,2,2]--length (list :: [ NoDup Bool ]) = 5--allUnique (list :: [ NoDup Bool ]) = True--ratioRepetitions (list :: [ NoDup Bool ]) = 0 % 1
tests/diff/tiers-NoDupNat.out view
@@ -1,3 +1,11 @@+map length (tiers :: [[ NoDup Nat ]]) = [1,1,1,3,3,5,11,13,19,27,57,65,...]++length (list :: [ NoDup Nat ]) = Infinity++allUnique (list :: [ NoDup Nat ]) = True++ratioRepetitions (list :: [ NoDup Nat ]) = 0 % 1+ tiers :: [NoDup Nat] = [ [NoDup []] , [NoDup [0]]@@ -216,11 +224,3 @@ ] , ... ]--map length (tiers :: [[ NoDup Nat ]]) = [1,1,1,3,3,5,11,13,19,27,57,65,...]--length (list :: [ NoDup Nat ]) = Infinity--allUnique (list :: [ NoDup Nat ]) = True--ratioRepetitions (list :: [ NoDup Nat ]) = 0 % 1
tests/diff/tiers-NoDupNat2.out view
@@ -1,3 +1,11 @@+map length (tiers :: [[ NoDup Nat2 ]]) = [1,1,1,2]++length (list :: [ NoDup Nat2 ]) = 5++allUnique (list :: [ NoDup Nat2 ]) = True++ratioRepetitions (list :: [ NoDup Nat2 ]) = 0 % 1+ tiers :: [NoDup Nat2] = [ [NoDup []] , [NoDup [0]]@@ -6,11 +14,3 @@ , NoDup [1,0] ] ]--map length (tiers :: [[ NoDup Nat2 ]]) = [1,1,1,2]--length (list :: [ NoDup Nat2 ]) = 5--allUnique (list :: [ NoDup Nat2 ]) = True--ratioRepetitions (list :: [ NoDup Nat2 ]) = 0 % 1
tests/diff/tiers-NoDupNat3.out view
@@ -1,3 +1,11 @@+map length (tiers :: [[ NoDup Nat3 ]]) = [1,1,1,3,2,2,6]++length (list :: [ NoDup Nat3 ]) = Infinity++allUnique (list :: [ NoDup Nat3 ]) = True++ratioRepetitions (list :: [ NoDup Nat3 ]) = 0 % 1+ tiers :: [NoDup Nat3] = [ [NoDup []] , [NoDup [0]]@@ -20,11 +28,3 @@ , NoDup [2,1,0] ] ]--map length (tiers :: [[ NoDup Nat3 ]]) = [1,1,1,3,2,2,6]--length (list :: [ NoDup Nat3 ]) = Infinity--allUnique (list :: [ NoDup Nat3 ]) = True--ratioRepetitions (list :: [ NoDup Nat3 ]) = 0 % 1
tests/diff/tiers-NoDupU.out view
@@ -1,8 +1,3 @@-tiers :: [NoDup ()] =- [ [NoDup []]- , [NoDup [()]]- ]- map length (tiers :: [[ NoDup () ]]) = [1,1] length (list :: [ NoDup () ]) = 2@@ -10,3 +5,8 @@ allUnique (list :: [ NoDup () ]) = True ratioRepetitions (list :: [ NoDup () ]) = 0 % 1++tiers :: [NoDup ()] =+ [ [NoDup []]+ , [NoDup [()]]+ ]
tests/diff/tiers-SetBool.out view
@@ -1,11 +1,3 @@-tiers :: [Set Bool] =- [ [Set []]- , [ Set [False]- , Set [True]- ]- , [Set [False,True]]- ]- map length (tiers :: [[ Set Bool ]]) = [1,2,1] length (list :: [ Set Bool ]) = 4@@ -13,3 +5,11 @@ allUnique (list :: [ Set Bool ]) = True ratioRepetitions (list :: [ Set Bool ]) = 0 % 1++tiers :: [Set Bool] =+ [ [Set []]+ , [ Set [False]+ , Set [True]+ ]+ , [Set [False,True]]+ ]
tests/diff/tiers-SetNat.out view
@@ -1,3 +1,11 @@+map length (tiers :: [[ Set Nat ]]) = [1,1,1,2,2,3,4,5,6,8,10,12,...]++length (list :: [ Set Nat ]) = Infinity++allUnique (list :: [ Set Nat ]) = True++ratioRepetitions (list :: [ Set Nat ]) = 0 % 1+ tiers :: [Set Nat] = [ [Set []] , [Set [0]]@@ -65,11 +73,3 @@ ] , ... ]--map length (tiers :: [[ Set Nat ]]) = [1,1,1,2,2,3,4,5,6,8,10,12,...]--length (list :: [ Set Nat ]) = Infinity--allUnique (list :: [ Set Nat ]) = True--ratioRepetitions (list :: [ Set Nat ]) = 0 % 1
tests/diff/tiers-SetNat2.out view
@@ -1,10 +1,3 @@-tiers :: [Set Nat2] =- [ [Set []]- , [Set [0]]- , [Set [1]]- , [Set [0,1]]- ]- map length (tiers :: [[ Set Nat2 ]]) = [1,1,1,1] length (list :: [ Set Nat2 ]) = 4@@ -12,3 +5,10 @@ allUnique (list :: [ Set Nat2 ]) = True ratioRepetitions (list :: [ Set Nat2 ]) = 0 % 1++tiers :: [Set Nat2] =+ [ [Set []]+ , [Set [0]]+ , [Set [1]]+ , [Set [0,1]]+ ]
tests/diff/tiers-SetNat3.out view
@@ -1,3 +1,11 @@+map length (tiers :: [[ Set Nat3 ]]) = [1,1,1,2,1,1,1]++length (list :: [ Set Nat3 ]) = 8++allUnique (list :: [ Set Nat3 ]) = True++ratioRepetitions (list :: [ Set Nat3 ]) = 0 % 1+ tiers :: [Set Nat3] = [ [Set []] , [Set [0]]@@ -9,11 +17,3 @@ , [Set [1,2]] , [Set [0,1,2]] ]--map length (tiers :: [[ Set Nat3 ]]) = [1,1,1,2,1,1,1]--length (list :: [ Set Nat3 ]) = 8--allUnique (list :: [ Set Nat3 ]) = True--ratioRepetitions (list :: [ Set Nat3 ]) = 0 % 1
tests/diff/tiers-SetU.out view
@@ -1,8 +1,3 @@-tiers :: [Set ()] =- [ [Set []]- , [Set [()]]- ]- map length (tiers :: [[ Set () ]]) = [1,1] length (list :: [ Set () ]) = 2@@ -10,3 +5,8 @@ allUnique (list :: [ Set () ]) = True ratioRepetitions (list :: [ Set () ]) = 0 % 1++tiers :: [Set ()] =+ [ [Set []]+ , [Set [()]]+ ]
tests/diff/tiers-String.out view
@@ -1,3 +1,11 @@+map length (tiers :: [[ String ]]) = [1,1,2,4,8,16,...]++length (list :: [ String ]) = Infinity++allUnique (list :: [ String ]) = True++ratioRepetitions (list :: [ String ]) = 0 % 1+ tiers :: [String] = [ [""] , ["a"]@@ -37,11 +45,3 @@ ] , ... ]--map length (tiers :: [[ String ]]) = [1,1,2,4,8,16,...]--length (list :: [ String ]) = Infinity--allUnique (list :: [ String ]) = True--ratioRepetitions (list :: [ String ]) = 0 % 1
tests/diff/tiers-U,Us.out view
@@ -1,3 +1,11 @@+map length (tiers :: [[ [((),())] ]]) = [1,1,1,1,1,1,1,1,1,1,1,1,...]++length (list :: [ [((),())] ]) = Infinity++allUnique (list :: [ [((),())] ]) = True++ratioRepetitions (list :: [ [((),())] ]) = 0 % 1+ tiers :: [[((),())]] = [ [[]] , [[((),())]]@@ -13,11 +21,3 @@ , [[((),()),((),()),((),()),((),()),((),()),((),()),((),()),((),()),((),()),((),()),((),())]] , ... ]--map length (tiers :: [[ [((),())] ]]) = [1,1,1,1,1,1,1,1,1,1,1,1,...]--length (list :: [ [((),())] ]) = Infinity--allUnique (list :: [ [((),())] ]) = True--ratioRepetitions (list :: [ [((),())] ]) = 0 % 1
tests/diff/tiers-Us,Us.out view
@@ -1,3 +1,11 @@+map length (tiers :: [[ ([()],[()]) ]]) = [1,2,3,4,5,6,7,8,9,10,11,12,...]++length (list :: [ ([()],[()]) ]) = Infinity++allUnique (list :: [ ([()],[()]) ]) = True++ratioRepetitions (list :: [ ([()],[()]) ]) = 0 % 1+ tiers :: [([()],[()])] = [ [([],[])] , [ ([],[()])@@ -90,11 +98,3 @@ ] , ... ]--map length (tiers :: [[ ([()],[()]) ]]) = [1,2,3,4,5,6,7,8,9,10,11,12,...]--length (list :: [ ([()],[()]) ]) = Infinity--allUnique (list :: [ ([()],[()]) ]) = True--ratioRepetitions (list :: [ ([()],[()]) ]) = 0 % 1
tests/diff/tiers-Us.out view
@@ -1,3 +1,11 @@+map length (tiers :: [[ [()] ]]) = [1,1,1,1,1,1,1,1,1,1,1,1,...]++length (list :: [ [()] ]) = Infinity++allUnique (list :: [ [()] ]) = True++ratioRepetitions (list :: [ [()] ]) = 0 % 1+ tiers :: [[()]] = [ [[]] , [[()]]@@ -13,11 +21,3 @@ , [[(),(),(),(),(),(),(),(),(),(),()]] , ... ]--map length (tiers :: [[ [()] ]]) = [1,1,1,1,1,1,1,1,1,1,1,1,...]--length (list :: [ [()] ]) = Infinity--allUnique (list :: [ [()] ]) = True--ratioRepetitions (list :: [ [()] ]) = 0 % 1
tests/diff/tiers-colistable-Bool-Bool.out view
@@ -1,3 +1,11 @@+map length (tiers :: [[ Bool->Bool ]]) = [4]++length (list :: [ Bool->Bool ]) = 4++allUnique (list :: [ Bool->Bool ]) = True++ratioRepetitions (list :: [ Bool->Bool ]) = 0 % 1+ tiers :: [Bool->Bool] = [ [ \x -> case x of False -> False@@ -13,11 +21,3 @@ True -> True ] ]--map length (tiers :: [[ Bool->Bool ]]) = [4]--length (list :: [ Bool->Bool ]) = 4--allUnique (list :: [ Bool->Bool ]) = True--ratioRepetitions (list :: [ Bool->Bool ]) = 0 % 1
tests/diff/tiers-colistable-Bool-MBool.out view
@@ -1,3 +1,11 @@+map length (tiers :: [[ Bool->Maybe Bool ]]) = [1,4,4]++length (list :: [ Bool->Maybe Bool ]) = 9++allUnique (list :: [ Bool->Maybe Bool ]) = True++ratioRepetitions (list :: [ Bool->Maybe Bool ]) = 0 % 1+ tiers :: [Bool->Maybe Bool] = [ [ \x -> case x of False -> Nothing@@ -30,11 +38,3 @@ True -> Just True ] ]--map length (tiers :: [[ Bool->Maybe Bool ]]) = [1,4,4]--length (list :: [ Bool->Maybe Bool ]) = 9--allUnique (list :: [ Bool->Maybe Bool ]) = True--ratioRepetitions (list :: [ Bool->Maybe Bool ]) = 0 % 1
tests/diff/tiers-colistable-Bool-U.out view
@@ -1,10 +1,3 @@-tiers :: [Bool->()] =- [ [ \x -> case x of- False -> ()- True -> ()- ]- ]- map length (tiers :: [[ Bool->() ]]) = [1] length (list :: [ Bool->() ]) = 1@@ -12,3 +5,10 @@ allUnique (list :: [ Bool->() ]) = True ratioRepetitions (list :: [ Bool->() ]) = 0 % 1++tiers :: [Bool->()] =+ [ [ \x -> case x of+ False -> ()+ True -> ()+ ]+ ]
tests/diff/tiers-colistable-Bools-Bools.out view
@@ -1,3 +1,11 @@+map length (tiers :: [[ [Bool]->[Bool] ]]) = [1,3,12,57,...]++length (list :: [ [Bool]->[Bool] ]) = Infinity++allUnique (list :: [ [Bool]->[Bool] ]) = False++ratioRepetitions (list :: [ [Bool]->[Bool] ]) = 16 % 73+ tiers :: [[Bool]->[Bool]] = [ [ \x -> case x of [] -> []@@ -735,11 +743,3 @@ ] , ... ]--map length (tiers :: [[ [Bool]->[Bool] ]]) = [1,3,12,57,...]--length (list :: [ [Bool]->[Bool] ]) = Infinity--allUnique (list :: [ [Bool]->[Bool] ]) = False--ratioRepetitions (list :: [ [Bool]->[Bool] ]) = 16 % 73
tests/diff/tiers-colistable-Int-Int-Int.out view
@@ -1,3 +1,11 @@+map length (tiers :: [[ Int->Int->Int ]]) = [1,3,11,46,...]++length (list :: [ Int->Int->Int ]) = Infinity++allUnique (list :: [ Int->Int->Int ]) = False++ratioRepetitions (list :: [ Int->Int->Int ]) = 37 % 61+ tiers :: [Int->Int->Int] = [ [ \x y -> case (x,y) of (0,0) -> 0@@ -615,11 +623,3 @@ ] , ... ]--map length (tiers :: [[ Int->Int->Int ]]) = [1,3,11,46,...]--length (list :: [ Int->Int->Int ]) = Infinity--allUnique (list :: [ Int->Int->Int ]) = False--ratioRepetitions (list :: [ Int->Int->Int ]) = 37 % 61
tests/diff/tiers-colistable-Int-Int.out view
@@ -1,3 +1,11 @@+map length (tiers :: [[ Int->Int ]]) = [1,2,5,15,51,188,...]++length (list :: [ Int->Int ]) = Infinity++allUnique (list :: [ Int->Int ]) = False++ratioRepetitions (list :: [ Int->Int ]) = 96 % 131+ tiers :: [Int->Int] = [ [ \x -> case x of 0 -> 0@@ -2627,11 +2635,3 @@ ] , ... ]--map length (tiers :: [[ Int->Int ]]) = [1,2,5,15,51,188,...]--length (list :: [ Int->Int ]) = Infinity--allUnique (list :: [ Int->Int ]) = False--ratioRepetitions (list :: [ Int->Int ]) = 96 % 131
tests/diff/tiers-colistable-Ints-Ints.out view
@@ -1,3 +1,11 @@+map length (tiers :: [[ [Int]->[Int] ]]) = [1,2,6,21,...]++length (list :: [ [Int]->[Int] ]) = Infinity++allUnique (list :: [ [Int]->[Int] ]) = False++ratioRepetitions (list :: [ [Int]->[Int] ]) = 2 % 5+ tiers :: [[Int]->[Int]] = [ [ \x -> case x of [] -> []@@ -305,11 +313,3 @@ ] , ... ]--map length (tiers :: [[ [Int]->[Int] ]]) = [1,2,6,21,...]--length (list :: [ [Int]->[Int] ]) = Infinity--allUnique (list :: [ [Int]->[Int] ]) = False--ratioRepetitions (list :: [ [Int]->[Int] ]) = 2 % 5
tests/diff/tiers-colistable-MBool-Bool.out view
@@ -1,3 +1,11 @@+map length (tiers :: [[ Maybe Bool->Bool ]]) = [8]++length (list :: [ Maybe Bool->Bool ]) = 8++allUnique (list :: [ Maybe Bool->Bool ]) = True++ratioRepetitions (list :: [ Maybe Bool->Bool ]) = 0 % 1+ tiers :: [Maybe Bool->Bool] = [ [ \x -> case x of Nothing -> False@@ -33,11 +41,3 @@ Just True -> True ] ]--map length (tiers :: [[ Maybe Bool->Bool ]]) = [8]--length (list :: [ Maybe Bool->Bool ]) = 8--allUnique (list :: [ Maybe Bool->Bool ]) = True--ratioRepetitions (list :: [ Maybe Bool->Bool ]) = 0 % 1
tests/diff/tiers-colistable-MBool-MBool.out view
@@ -1,3 +1,11 @@+map length (tiers :: [[ Maybe Bool->Maybe Bool ]]) = [1,6,12,8]++length (list :: [ Maybe Bool->Maybe Bool ]) = Infinity++allUnique (list :: [ Maybe Bool->Maybe Bool ]) = True++ratioRepetitions (list :: [ Maybe Bool->Maybe Bool ]) = 0 % 1+ tiers :: [Maybe Bool->Maybe Bool] = [ [ \x -> case x of Nothing -> Nothing@@ -112,11 +120,3 @@ Just True -> Just True ] ]--map length (tiers :: [[ Maybe Bool->Maybe Bool ]]) = [1,6,12,8]--length (list :: [ Maybe Bool->Maybe Bool ]) = Infinity--allUnique (list :: [ Maybe Bool->Maybe Bool ]) = True--ratioRepetitions (list :: [ Maybe Bool->Maybe Bool ]) = 0 % 1
tests/diff/tiers-colistable-Nat,Nat-Nat.out view
@@ -1,3 +1,11 @@+map length (tiers :: [[ (Nat,Nat)->Nat ]]) = [1,3,11,46,...]++length (list :: [ (Nat,Nat)->Nat ]) = Infinity++allUnique (list :: [ (Nat,Nat)->Nat ]) = False++ratioRepetitions (list :: [ (Nat,Nat)->Nat ]) = 37 % 61+ tiers :: [(Nat,Nat)->Nat] = [ [ \x -> case x of (0,0) -> 0@@ -615,11 +623,3 @@ ] , ... ]--map length (tiers :: [[ (Nat,Nat)->Nat ]]) = [1,3,11,46,...]--length (list :: [ (Nat,Nat)->Nat ]) = Infinity--allUnique (list :: [ (Nat,Nat)->Nat ]) = False--ratioRepetitions (list :: [ (Nat,Nat)->Nat ]) = 37 % 61
tests/diff/tiers-colistable-Nat-Nat-Nat.out view
@@ -1,3 +1,11 @@+map length (tiers :: [[ Nat->Nat->Nat ]]) = [1,3,11,46,...]++length (list :: [ Nat->Nat->Nat ]) = Infinity++allUnique (list :: [ Nat->Nat->Nat ]) = False++ratioRepetitions (list :: [ Nat->Nat->Nat ]) = 37 % 61+ tiers :: [Nat->Nat->Nat] = [ [ \x y -> case (x,y) of (0,0) -> 0@@ -615,11 +623,3 @@ ] , ... ]--map length (tiers :: [[ Nat->Nat->Nat ]]) = [1,3,11,46,...]--length (list :: [ Nat->Nat->Nat ]) = Infinity--allUnique (list :: [ Nat->Nat->Nat ]) = False--ratioRepetitions (list :: [ Nat->Nat->Nat ]) = 37 % 61
tests/diff/tiers-colistable-Nat-Nat.out view
@@ -1,3 +1,11 @@+map length (tiers :: [[ Nat->Nat ]]) = [1,2,5,15,51,188,...]++length (list :: [ Nat->Nat ]) = Infinity++allUnique (list :: [ Nat->Nat ]) = False++ratioRepetitions (list :: [ Nat->Nat ]) = 82 % 131+ tiers :: [Nat->Nat] = [ [ \x -> case x of 0 -> 0@@ -2627,11 +2635,3 @@ ] , ... ]--map length (tiers :: [[ Nat->Nat ]]) = [1,2,5,15,51,188,...]--length (list :: [ Nat->Nat ]) = Infinity--allUnique (list :: [ Nat->Nat ]) = False--ratioRepetitions (list :: [ Nat->Nat ]) = 82 % 131
tests/diff/tiers-colistable-Nat-U.out view
@@ -1,3 +1,11 @@+map length (tiers :: [[ Nat->() ]]) = [1,1,2,5,14,42,...]++length (list :: [ Nat->() ]) = Infinity++allUnique (list :: [ Nat->() ]) = False++ratioRepetitions (list :: [ Nat->() ]) = 64 % 65+ tiers :: [Nat->()] = [ [ \x -> case x of 0 -> ()@@ -657,11 +665,3 @@ ] , ... ]--map length (tiers :: [[ Nat->() ]]) = [1,1,2,5,14,42,...]--length (list :: [ Nat->() ]) = Infinity--allUnique (list :: [ Nat->() ]) = False--ratioRepetitions (list :: [ Nat->() ]) = 64 % 65
tests/diff/tiers-colistable-Nat2-Nat2.out view
@@ -1,3 +1,11 @@+map length (tiers :: [[ Nat2->Nat2 ]]) = [1,2,1]++length (list :: [ Nat2->Nat2 ]) = 4++allUnique (list :: [ Nat2->Nat2 ]) = True++ratioRepetitions (list :: [ Nat2->Nat2 ]) = 0 % 1+ tiers :: [Nat2->Nat2] = [ [ \x -> case x of 0 -> 0@@ -15,11 +23,3 @@ 1 -> 1 ] ]--map length (tiers :: [[ Nat2->Nat2 ]]) = [1,2,1]--length (list :: [ Nat2->Nat2 ]) = 4--allUnique (list :: [ Nat2->Nat2 ]) = True--ratioRepetitions (list :: [ Nat2->Nat2 ]) = 0 % 1
tests/diff/tiers-colistable-Nat2-Nat3.out view
@@ -1,3 +1,11 @@+map length (tiers :: [[ Nat2->Nat3 ]]) = [1,2,3,2,1]++length (list :: [ Nat2->Nat3 ]) = 9++allUnique (list :: [ Nat2->Nat3 ]) = True++ratioRepetitions (list :: [ Nat2->Nat3 ]) = 0 % 1+ tiers :: [Nat2->Nat3] = [ [ \x -> case x of 0 -> 0@@ -32,11 +40,3 @@ 1 -> 2 ] ]--map length (tiers :: [[ Nat2->Nat3 ]]) = [1,2,3,2,1]--length (list :: [ Nat2->Nat3 ]) = 9--allUnique (list :: [ Nat2->Nat3 ]) = True--ratioRepetitions (list :: [ Nat2->Nat3 ]) = 0 % 1
tests/diff/tiers-colistable-Nat3-Nat2.out view
@@ -1,3 +1,11 @@+map length (tiers :: [[ Nat3->Nat2 ]]) = [1,3,3,1]++length (list :: [ Nat3->Nat2 ]) = 8++allUnique (list :: [ Nat3->Nat2 ]) = True++ratioRepetitions (list :: [ Nat3->Nat2 ]) = 0 % 1+ tiers :: [Nat3->Nat2] = [ [ \x -> case x of 0 -> 0@@ -36,11 +44,3 @@ 2 -> 1 ] ]--map length (tiers :: [[ Nat3->Nat2 ]]) = [1,3,3,1]--length (list :: [ Nat3->Nat2 ]) = 8--allUnique (list :: [ Nat3->Nat2 ]) = True--ratioRepetitions (list :: [ Nat3->Nat2 ]) = 0 % 1
tests/diff/tiers-colistable-Nat3-Nat3.out view
@@ -1,3 +1,11 @@+map length (tiers :: [[ Nat3->Nat3 ]]) = [1,3,6,7,6,3,1]++length (list :: [ Nat3->Nat3 ]) = Infinity++allUnique (list :: [ Nat3->Nat3 ]) = True++ratioRepetitions (list :: [ Nat3->Nat3 ]) = 0 % 1+ tiers :: [Nat3->Nat3] = [ [ \x -> case x of 0 -> 0@@ -115,11 +123,3 @@ 2 -> 2 ] ]--map length (tiers :: [[ Nat3->Nat3 ]]) = [1,3,6,7,6,3,1]--length (list :: [ Nat3->Nat3 ]) = Infinity--allUnique (list :: [ Nat3->Nat3 ]) = True--ratioRepetitions (list :: [ Nat3->Nat3 ]) = 0 % 1
tests/diff/tiers-colistable-Nats-Nats.out view
@@ -1,3 +1,11 @@+map length (tiers :: [[ [Nat]->[Nat] ]]) = [1,2,6,21,...]++length (list :: [ [Nat]->[Nat] ]) = Infinity++allUnique (list :: [ [Nat]->[Nat] ]) = False++ratioRepetitions (list :: [ [Nat]->[Nat] ]) = 2 % 5+ tiers :: [[Nat]->[Nat]] = [ [ \x -> case x of [] -> []@@ -305,11 +313,3 @@ ] , ... ]--map length (tiers :: [[ [Nat]->[Nat] ]]) = [1,2,6,21,...]--length (list :: [ [Nat]->[Nat] ]) = Infinity--allUnique (list :: [ [Nat]->[Nat] ]) = False--ratioRepetitions (list :: [ [Nat]->[Nat] ]) = 2 % 5
tests/diff/tiers-colistable-U-Bool.out view
@@ -1,11 +1,3 @@-tiers :: [()->Bool] =- [ [ \x -> case x of- () -> False- , \x -> case x of- () -> True- ]- ]- map length (tiers :: [[ ()->Bool ]]) = [2] length (list :: [ ()->Bool ]) = 2@@ -13,3 +5,11 @@ allUnique (list :: [ ()->Bool ]) = True ratioRepetitions (list :: [ ()->Bool ]) = 0 % 1++tiers :: [()->Bool] =+ [ [ \x -> case x of+ () -> False+ , \x -> case x of+ () -> True+ ]+ ]
tests/diff/tiers-colistable-U-Nat.out view
@@ -1,3 +1,11 @@+map length (tiers :: [[ ()->Nat ]]) = [1,1,1,1,1,1,...]++length (list :: [ ()->Nat ]) = Infinity++allUnique (list :: [ ()->Nat ]) = True++ratioRepetitions (list :: [ ()->Nat ]) = 0 % 1+ tiers :: [()->Nat] = [ [ \x -> case x of () -> 0@@ -19,11 +27,3 @@ ] , ... ]--map length (tiers :: [[ ()->Nat ]]) = [1,1,1,1,1,1,...]--length (list :: [ ()->Nat ]) = Infinity--allUnique (list :: [ ()->Nat ]) = True--ratioRepetitions (list :: [ ()->Nat ]) = 0 % 1
tests/diff/tiers-colistable-U-U.out view
@@ -1,9 +1,3 @@-tiers :: [()->()] =- [ [ \x -> case x of- () -> ()- ]- ]- map length (tiers :: [[ ()->() ]]) = [1] length (list :: [ ()->() ]) = 1@@ -11,3 +5,9 @@ allUnique (list :: [ ()->() ]) = True ratioRepetitions (list :: [ ()->() ]) = 0 % 1++tiers :: [()->()] =+ [ [ \x -> case x of+ () -> ()+ ]+ ]
tests/diff/tiers-colistable-Us-Us.out view
@@ -1,3 +1,11 @@+map length (tiers :: [[ [()]->[()] ]]) = [1,2,4,8,...]++length (list :: [ [()]->[()] ]) = Infinity++allUnique (list :: [ [()]->[()] ]) = False++ratioRepetitions (list :: [ [()]->[()] ]) = 1 % 3+ tiers :: [[()]->[()]] = [ [ \x -> case x of [] -> []@@ -155,11 +163,3 @@ ] , ... ]--map length (tiers :: [[ [()]->[()] ]]) = [1,2,4,8,...]--length (list :: [ [()]->[()] ]) = Infinity--allUnique (list :: [ [()]->[()] ]) = False--ratioRepetitions (list :: [ [()]->[()] ]) = 1 % 3
tests/diff/tiers-funlistable-Bool-Bool.out view
@@ -1,3 +1,11 @@+map length (tiers :: [[ Bool->Bool ]]) = [4]++length (list :: [ Bool->Bool ]) = 4++allUnique (list :: [ Bool->Bool ]) = True++ratioRepetitions (list :: [ Bool->Bool ]) = 0 % 1+ tiers :: [Bool->Bool] = [ [ \x -> case x of False -> False@@ -13,11 +21,3 @@ True -> True ] ]--map length (tiers :: [[ Bool->Bool ]]) = [4]--length (list :: [ Bool->Bool ]) = 4--allUnique (list :: [ Bool->Bool ]) = True--ratioRepetitions (list :: [ Bool->Bool ]) = 0 % 1
tests/diff/tiers-funlistable-Bool-MBool.out view
@@ -1,3 +1,11 @@+map length (tiers :: [[ Bool->Maybe Bool ]]) = [1,4,4]++length (list :: [ Bool->Maybe Bool ]) = 9++allUnique (list :: [ Bool->Maybe Bool ]) = True++ratioRepetitions (list :: [ Bool->Maybe Bool ]) = 0 % 1+ tiers :: [Bool->Maybe Bool] = [ [ \x -> case x of False -> Nothing@@ -30,11 +38,3 @@ True -> Just True ] ]--map length (tiers :: [[ Bool->Maybe Bool ]]) = [1,4,4]--length (list :: [ Bool->Maybe Bool ]) = 9--allUnique (list :: [ Bool->Maybe Bool ]) = True--ratioRepetitions (list :: [ Bool->Maybe Bool ]) = 0 % 1
tests/diff/tiers-funlistable-Bool-U.out view
@@ -1,10 +1,3 @@-tiers :: [Bool->()] =- [ [ \x -> case x of- False -> ()- True -> ()- ]- ]- map length (tiers :: [[ Bool->() ]]) = [1] length (list :: [ Bool->() ]) = 1@@ -12,3 +5,10 @@ allUnique (list :: [ Bool->() ]) = True ratioRepetitions (list :: [ Bool->() ]) = 0 % 1++tiers :: [Bool->()] =+ [ [ \x -> case x of+ False -> ()+ True -> ()+ ]+ ]
tests/diff/tiers-funlistable-Bools-Bools.out view
@@ -1,3 +1,11 @@+map length (tiers :: [[ [Bool]->[Bool] ]]) = [1,2,4,8,...]++length (list :: [ [Bool]->[Bool] ]) = Infinity++allUnique (list :: [ [Bool]->[Bool] ]) = True++ratioRepetitions (list :: [ [Bool]->[Bool] ]) = 0 % 1+ tiers :: [[Bool]->[Bool]] = [ [ \x -> case x of [] -> []@@ -155,11 +163,3 @@ ] , ... ]--map length (tiers :: [[ [Bool]->[Bool] ]]) = [1,2,4,8,...]--length (list :: [ [Bool]->[Bool] ]) = Infinity--allUnique (list :: [ [Bool]->[Bool] ]) = True--ratioRepetitions (list :: [ [Bool]->[Bool] ]) = 0 % 1
tests/diff/tiers-funlistable-Int-Int-Int.out view
@@ -1,6 +1,3 @@-tiers :: [Int->Int->Int] =- [[]]- map length (tiers :: [[ Int->Int->Int ]]) = [0] length (list :: [ Int->Int->Int ]) = 0@@ -8,3 +5,6 @@ allUnique (list :: [ Int->Int->Int ]) = True ratioRepetitions (list :: [ Int->Int->Int ]) = 0 % 1++tiers :: [Int->Int->Int] =+ [[]]
tests/diff/tiers-funlistable-Int-Int.out view
@@ -1,6 +1,3 @@-tiers :: [Int->Int] =- [[]]- map length (tiers :: [[ Int->Int ]]) = [0] length (list :: [ Int->Int ]) = 0@@ -8,3 +5,6 @@ allUnique (list :: [ Int->Int ]) = True ratioRepetitions (list :: [ Int->Int ]) = 0 % 1++tiers :: [Int->Int] =+ [[]]
tests/diff/tiers-funlistable-Ints-Ints.out view
@@ -1,3 +1,11 @@+map length (tiers :: [[ [Int]->[Int] ]]) = [1,1,2,4,...]++length (list :: [ [Int]->[Int] ]) = Infinity++allUnique (list :: [ [Int]->[Int] ]) = True++ratioRepetitions (list :: [ [Int]->[Int] ]) = 0 % 1+ tiers :: [[Int]->[Int]] = [ [ \x -> case x of [] -> []@@ -85,11 +93,3 @@ ] , ... ]--map length (tiers :: [[ [Int]->[Int] ]]) = [1,1,2,4,...]--length (list :: [ [Int]->[Int] ]) = Infinity--allUnique (list :: [ [Int]->[Int] ]) = True--ratioRepetitions (list :: [ [Int]->[Int] ]) = 0 % 1
tests/diff/tiers-funlistable-MBool-Bool.out view
@@ -1,3 +1,11 @@+map length (tiers :: [[ Maybe Bool->Bool ]]) = [8]++length (list :: [ Maybe Bool->Bool ]) = 8++allUnique (list :: [ Maybe Bool->Bool ]) = True++ratioRepetitions (list :: [ Maybe Bool->Bool ]) = 0 % 1+ tiers :: [Maybe Bool->Bool] = [ [ \x -> case x of Nothing -> False@@ -33,11 +41,3 @@ Just True -> True ] ]--map length (tiers :: [[ Maybe Bool->Bool ]]) = [8]--length (list :: [ Maybe Bool->Bool ]) = 8--allUnique (list :: [ Maybe Bool->Bool ]) = True--ratioRepetitions (list :: [ Maybe Bool->Bool ]) = 0 % 1
tests/diff/tiers-funlistable-MBool-MBool.out view
@@ -1,3 +1,11 @@+map length (tiers :: [[ Maybe Bool->Maybe Bool ]]) = [1,6,12,8]++length (list :: [ Maybe Bool->Maybe Bool ]) = Infinity++allUnique (list :: [ Maybe Bool->Maybe Bool ]) = True++ratioRepetitions (list :: [ Maybe Bool->Maybe Bool ]) = 0 % 1+ tiers :: [Maybe Bool->Maybe Bool] = [ [ \x -> case x of Nothing -> Nothing@@ -112,11 +120,3 @@ Just True -> Just True ] ]--map length (tiers :: [[ Maybe Bool->Maybe Bool ]]) = [1,6,12,8]--length (list :: [ Maybe Bool->Maybe Bool ]) = Infinity--allUnique (list :: [ Maybe Bool->Maybe Bool ]) = True--ratioRepetitions (list :: [ Maybe Bool->Maybe Bool ]) = 0 % 1
tests/diff/tiers-funlistable-Nat,Nat-Nat.out view
@@ -1,6 +1,3 @@-tiers :: [(Nat,Nat)->Nat] =- [[]]- map length (tiers :: [[ (Nat,Nat)->Nat ]]) = [0] length (list :: [ (Nat,Nat)->Nat ]) = 0@@ -8,3 +5,6 @@ allUnique (list :: [ (Nat,Nat)->Nat ]) = True ratioRepetitions (list :: [ (Nat,Nat)->Nat ]) = 0 % 1++tiers :: [(Nat,Nat)->Nat] =+ [[]]
tests/diff/tiers-funlistable-Nat-Nat-Nat.out view
@@ -1,6 +1,3 @@-tiers :: [Nat->Nat->Nat] =- [[]]- map length (tiers :: [[ Nat->Nat->Nat ]]) = [0] length (list :: [ Nat->Nat->Nat ]) = 0@@ -8,3 +5,6 @@ allUnique (list :: [ Nat->Nat->Nat ]) = True ratioRepetitions (list :: [ Nat->Nat->Nat ]) = 0 % 1++tiers :: [Nat->Nat->Nat] =+ [[]]
tests/diff/tiers-funlistable-Nat-Nat.out view
@@ -1,6 +1,3 @@-tiers :: [Nat->Nat] =- [[]]- map length (tiers :: [[ Nat->Nat ]]) = [0] length (list :: [ Nat->Nat ]) = 0@@ -8,3 +5,6 @@ allUnique (list :: [ Nat->Nat ]) = True ratioRepetitions (list :: [ Nat->Nat ]) = 0 % 1++tiers :: [Nat->Nat] =+ [[]]
tests/diff/tiers-funlistable-Nat-U.out view
@@ -1,6 +1,3 @@-tiers :: [Nat->()] =- [[]]- map length (tiers :: [[ Nat->() ]]) = [0] length (list :: [ Nat->() ]) = 0@@ -8,3 +5,6 @@ allUnique (list :: [ Nat->() ]) = True ratioRepetitions (list :: [ Nat->() ]) = 0 % 1++tiers :: [Nat->()] =+ [[]]
tests/diff/tiers-funlistable-Nat2-Nat2.out view
@@ -1,6 +1,3 @@-tiers :: [Nat2->Nat2] =- [[]]- map length (tiers :: [[ Nat2->Nat2 ]]) = [0] length (list :: [ Nat2->Nat2 ]) = 0@@ -8,3 +5,6 @@ allUnique (list :: [ Nat2->Nat2 ]) = True ratioRepetitions (list :: [ Nat2->Nat2 ]) = 0 % 1++tiers :: [Nat2->Nat2] =+ [[]]
tests/diff/tiers-funlistable-Nat2-Nat3.out view
@@ -1,6 +1,3 @@-tiers :: [Nat2->Nat3] =- [[]]- map length (tiers :: [[ Nat2->Nat3 ]]) = [0] length (list :: [ Nat2->Nat3 ]) = 0@@ -8,3 +5,6 @@ allUnique (list :: [ Nat2->Nat3 ]) = True ratioRepetitions (list :: [ Nat2->Nat3 ]) = 0 % 1++tiers :: [Nat2->Nat3] =+ [[]]
tests/diff/tiers-funlistable-Nat3-Nat2.out view
@@ -1,6 +1,3 @@-tiers :: [Nat3->Nat2] =- [[]]- map length (tiers :: [[ Nat3->Nat2 ]]) = [0] length (list :: [ Nat3->Nat2 ]) = 0@@ -8,3 +5,6 @@ allUnique (list :: [ Nat3->Nat2 ]) = True ratioRepetitions (list :: [ Nat3->Nat2 ]) = 0 % 1++tiers :: [Nat3->Nat2] =+ [[]]
tests/diff/tiers-funlistable-Nat3-Nat3.out view
@@ -1,6 +1,3 @@-tiers :: [Nat3->Nat3] =- [[]]- map length (tiers :: [[ Nat3->Nat3 ]]) = [0] length (list :: [ Nat3->Nat3 ]) = 0@@ -8,3 +5,6 @@ allUnique (list :: [ Nat3->Nat3 ]) = True ratioRepetitions (list :: [ Nat3->Nat3 ]) = 0 % 1++tiers :: [Nat3->Nat3] =+ [[]]
tests/diff/tiers-funlistable-Nats-Nats.out view
@@ -1,3 +1,11 @@+map length (tiers :: [[ [Nat]->[Nat] ]]) = [1,1,2,4,...]++length (list :: [ [Nat]->[Nat] ]) = Infinity++allUnique (list :: [ [Nat]->[Nat] ]) = True++ratioRepetitions (list :: [ [Nat]->[Nat] ]) = 0 % 1+ tiers :: [[Nat]->[Nat]] = [ [ \x -> case x of [] -> []@@ -85,11 +93,3 @@ ] , ... ]--map length (tiers :: [[ [Nat]->[Nat] ]]) = [1,1,2,4,...]--length (list :: [ [Nat]->[Nat] ]) = Infinity--allUnique (list :: [ [Nat]->[Nat] ]) = True--ratioRepetitions (list :: [ [Nat]->[Nat] ]) = 0 % 1
tests/diff/tiers-funlistable-U-Bool.out view
@@ -1,11 +1,3 @@-tiers :: [()->Bool] =- [ [ \x -> case x of- () -> False- , \x -> case x of- () -> True- ]- ]- map length (tiers :: [[ ()->Bool ]]) = [2] length (list :: [ ()->Bool ]) = 2@@ -13,3 +5,11 @@ allUnique (list :: [ ()->Bool ]) = True ratioRepetitions (list :: [ ()->Bool ]) = 0 % 1++tiers :: [()->Bool] =+ [ [ \x -> case x of+ () -> False+ , \x -> case x of+ () -> True+ ]+ ]
tests/diff/tiers-funlistable-U-Nat.out view
@@ -1,3 +1,11 @@+map length (tiers :: [[ ()->Nat ]]) = [1,1,1,1,1,1,...]++length (list :: [ ()->Nat ]) = Infinity++allUnique (list :: [ ()->Nat ]) = True++ratioRepetitions (list :: [ ()->Nat ]) = 0 % 1+ tiers :: [()->Nat] = [ [ \x -> case x of () -> 0@@ -19,11 +27,3 @@ ] , ... ]--map length (tiers :: [[ ()->Nat ]]) = [1,1,1,1,1,1,...]--length (list :: [ ()->Nat ]) = Infinity--allUnique (list :: [ ()->Nat ]) = True--ratioRepetitions (list :: [ ()->Nat ]) = 0 % 1
tests/diff/tiers-funlistable-U-U.out view
@@ -1,9 +1,3 @@-tiers :: [()->()] =- [ [ \x -> case x of- () -> ()- ]- ]- map length (tiers :: [[ ()->() ]]) = [1] length (list :: [ ()->() ]) = 1@@ -11,3 +5,9 @@ allUnique (list :: [ ()->() ]) = True ratioRepetitions (list :: [ ()->() ]) = 0 % 1++tiers :: [()->()] =+ [ [ \x -> case x of+ () -> ()+ ]+ ]
tests/diff/tiers-funlistable-Us-Us.out view
@@ -1,3 +1,11 @@+map length (tiers :: [[ [()]->[()] ]]) = [1,1,1,1,...]++length (list :: [ [()]->[()] ]) = Infinity++allUnique (list :: [ [()]->[()] ]) = True++ratioRepetitions (list :: [ [()]->[()] ]) = 0 % 1+ tiers :: [[()]->[()]] = [ [ \x -> case x of [] -> []@@ -45,11 +53,3 @@ ] , ... ]--map length (tiers :: [[ [()]->[()] ]]) = [1,1,1,1,...]--length (list :: [ [()]->[()] ]) = Infinity--allUnique (list :: [ [()]->[()] ]) = True--ratioRepetitions (list :: [ [()]->[()] ]) = 0 % 1
tests/diff/tiers-listsofpairs-Bool-Bool.out view
@@ -1,3 +1,11 @@+map length (tiers :: [[ Bool->Bool ]]) = [4]++length (list :: [ Bool->Bool ]) = 4++allUnique (list :: [ Bool->Bool ]) = True++ratioRepetitions (list :: [ Bool->Bool ]) = 0 % 1+ tiers :: [Bool->Bool] = [ [ \x -> case x of False -> False@@ -13,11 +21,3 @@ True -> True ] ]--map length (tiers :: [[ Bool->Bool ]]) = [4]--length (list :: [ Bool->Bool ]) = 4--allUnique (list :: [ Bool->Bool ]) = True--ratioRepetitions (list :: [ Bool->Bool ]) = 0 % 1
tests/diff/tiers-listsofpairs-Bool-MBool.out view
@@ -1,3 +1,11 @@+map length (tiers :: [[ Bool->Maybe Bool ]]) = [1,4,4]++length (list :: [ Bool->Maybe Bool ]) = 9++allUnique (list :: [ Bool->Maybe Bool ]) = True++ratioRepetitions (list :: [ Bool->Maybe Bool ]) = 0 % 1+ tiers :: [Bool->Maybe Bool] = [ [ \x -> case x of False -> Nothing@@ -30,11 +38,3 @@ True -> Just True ] ]--map length (tiers :: [[ Bool->Maybe Bool ]]) = [1,4,4]--length (list :: [ Bool->Maybe Bool ]) = 9--allUnique (list :: [ Bool->Maybe Bool ]) = True--ratioRepetitions (list :: [ Bool->Maybe Bool ]) = 0 % 1
tests/diff/tiers-listsofpairs-Bool-U.out view
@@ -1,10 +1,3 @@-tiers :: [Bool->()] =- [ [ \x -> case x of- False -> ()- True -> ()- ]- ]- map length (tiers :: [[ Bool->() ]]) = [1] length (list :: [ Bool->() ]) = 1@@ -12,3 +5,10 @@ allUnique (list :: [ Bool->() ]) = True ratioRepetitions (list :: [ Bool->() ]) = 0 % 1++tiers :: [Bool->()] =+ [ [ \x -> case x of+ False -> ()+ True -> ()+ ]+ ]
tests/diff/tiers-listsofpairs-Bools-Bools.out view
@@ -1,3 +1,11 @@+map length (tiers :: [[ [Bool]->[Bool] ]]) = [1,2,8,26,...]++length (list :: [ [Bool]->[Bool] ]) = Infinity++allUnique (list :: [ [Bool]->[Bool] ]) = True++ratioRepetitions (list :: [ [Bool]->[Bool] ]) = 0 % 1+ tiers :: [[Bool]->[Bool]] = [ [ \x -> case x of [] -> []@@ -375,11 +383,3 @@ ] , ... ]--map length (tiers :: [[ [Bool]->[Bool] ]]) = [1,2,8,26,...]--length (list :: [ [Bool]->[Bool] ]) = Infinity--allUnique (list :: [ [Bool]->[Bool] ]) = True--ratioRepetitions (list :: [ [Bool]->[Bool] ]) = 0 % 1
tests/diff/tiers-listsofpairs-Int-Int-Int.out view
@@ -1,3 +1,11 @@+map length (tiers :: [[ Int->Int->Int ]]) = [1,1,5,13,...]++length (list :: [ Int->Int->Int ]) = Infinity++allUnique (list :: [ Int->Int->Int ]) = True++ratioRepetitions (list :: [ Int->Int->Int ]) = 0 % 1+ tiers :: [Int->Int->Int] = [ [ \x y -> case (x,y) of (0,0) -> 0@@ -205,11 +213,3 @@ ] , ... ]--map length (tiers :: [[ Int->Int->Int ]]) = [1,1,5,13,...]--length (list :: [ Int->Int->Int ]) = Infinity--allUnique (list :: [ Int->Int->Int ]) = True--ratioRepetitions (list :: [ Int->Int->Int ]) = 0 % 1
tests/diff/tiers-listsofpairs-Int-Int.out view
@@ -1,3 +1,11 @@+map length (tiers :: [[ Int->Int ]]) = [1,1,3,5,10,16,...]++length (list :: [ Int->Int ]) = Infinity++allUnique (list :: [ Int->Int ]) = True++ratioRepetitions (list :: [ Int->Int ]) = 0 % 1+ tiers :: [Int->Int] = [ [ \x -> case x of 0 -> 0@@ -367,11 +375,3 @@ ] , ... ]--map length (tiers :: [[ Int->Int ]]) = [1,1,3,5,10,16,...]--length (list :: [ Int->Int ]) = Infinity--allUnique (list :: [ Int->Int ]) = True--ratioRepetitions (list :: [ Int->Int ]) = 0 % 1
tests/diff/tiers-listsofpairs-Ints-Ints.out view
@@ -1,3 +1,11 @@+map length (tiers :: [[ [Int]->[Int] ]]) = [1,1,4,10,...]++length (list :: [ [Int]->[Int] ]) = Infinity++allUnique (list :: [ [Int]->[Int] ]) = True++ratioRepetitions (list :: [ [Int]->[Int] ]) = 0 % 1+ tiers :: [[Int]->[Int]] = [ [ \x -> case x of [] -> []@@ -165,11 +173,3 @@ ] , ... ]--map length (tiers :: [[ [Int]->[Int] ]]) = [1,1,4,10,...]--length (list :: [ [Int]->[Int] ]) = Infinity--allUnique (list :: [ [Int]->[Int] ]) = True--ratioRepetitions (list :: [ [Int]->[Int] ]) = 0 % 1
tests/diff/tiers-listsofpairs-MBool-Bool.out view
@@ -1,3 +1,11 @@+map length (tiers :: [[ Maybe Bool->Bool ]]) = [8]++length (list :: [ Maybe Bool->Bool ]) = 8++allUnique (list :: [ Maybe Bool->Bool ]) = True++ratioRepetitions (list :: [ Maybe Bool->Bool ]) = 0 % 1+ tiers :: [Maybe Bool->Bool] = [ [ \x -> case x of Nothing -> False@@ -33,11 +41,3 @@ Just True -> True ] ]--map length (tiers :: [[ Maybe Bool->Bool ]]) = [8]--length (list :: [ Maybe Bool->Bool ]) = 8--allUnique (list :: [ Maybe Bool->Bool ]) = True--ratioRepetitions (list :: [ Maybe Bool->Bool ]) = 0 % 1
tests/diff/tiers-listsofpairs-MBool-MBool.out view
@@ -1,3 +1,11 @@+map length (tiers :: [[ Maybe Bool->Maybe Bool ]]) = [1,6,12,8]++length (list :: [ Maybe Bool->Maybe Bool ]) = Infinity++allUnique (list :: [ Maybe Bool->Maybe Bool ]) = True++ratioRepetitions (list :: [ Maybe Bool->Maybe Bool ]) = 0 % 1+ tiers :: [Maybe Bool->Maybe Bool] = [ [ \x -> case x of Nothing -> Nothing@@ -112,11 +120,3 @@ Just True -> Just True ] ]--map length (tiers :: [[ Maybe Bool->Maybe Bool ]]) = [1,6,12,8]--length (list :: [ Maybe Bool->Maybe Bool ]) = Infinity--allUnique (list :: [ Maybe Bool->Maybe Bool ]) = True--ratioRepetitions (list :: [ Maybe Bool->Maybe Bool ]) = 0 % 1
tests/diff/tiers-listsofpairs-Nat,Nat-Nat.out view
@@ -1,3 +1,11 @@+map length (tiers :: [[ (Nat,Nat)->Nat ]]) = [1,1,3,7,...]++length (list :: [ (Nat,Nat)->Nat ]) = Infinity++allUnique (list :: [ (Nat,Nat)->Nat ]) = True++ratioRepetitions (list :: [ (Nat,Nat)->Nat ]) = 0 % 1+ tiers :: [(Nat,Nat)->Nat] = [ [ \x -> case x of (0,0) -> 0@@ -125,11 +133,3 @@ ] , ... ]--map length (tiers :: [[ (Nat,Nat)->Nat ]]) = [1,1,3,7,...]--length (list :: [ (Nat,Nat)->Nat ]) = Infinity--allUnique (list :: [ (Nat,Nat)->Nat ]) = True--ratioRepetitions (list :: [ (Nat,Nat)->Nat ]) = 0 % 1
tests/diff/tiers-listsofpairs-Nat-Nat-Nat.out view
@@ -1,3 +1,11 @@+map length (tiers :: [[ Nat->Nat->Nat ]]) = [1,1,5,13,...]++length (list :: [ Nat->Nat->Nat ]) = Infinity++allUnique (list :: [ Nat->Nat->Nat ]) = True++ratioRepetitions (list :: [ Nat->Nat->Nat ]) = 0 % 1+ tiers :: [Nat->Nat->Nat] = [ [ \x y -> case (x,y) of (0,0) -> 0@@ -205,11 +213,3 @@ ] , ... ]--map length (tiers :: [[ Nat->Nat->Nat ]]) = [1,1,5,13,...]--length (list :: [ Nat->Nat->Nat ]) = Infinity--allUnique (list :: [ Nat->Nat->Nat ]) = True--ratioRepetitions (list :: [ Nat->Nat->Nat ]) = 0 % 1
tests/diff/tiers-listsofpairs-Nat-Nat.out view
@@ -1,3 +1,11 @@+map length (tiers :: [[ Nat->Nat ]]) = [1,1,3,5,10,16,...]++length (list :: [ Nat->Nat ]) = Infinity++allUnique (list :: [ Nat->Nat ]) = True++ratioRepetitions (list :: [ Nat->Nat ]) = 0 % 1+ tiers :: [Nat->Nat] = [ [ \x -> case x of 0 -> 0@@ -367,11 +375,3 @@ ] , ... ]--map length (tiers :: [[ Nat->Nat ]]) = [1,1,3,5,10,16,...]--length (list :: [ Nat->Nat ]) = Infinity--allUnique (list :: [ Nat->Nat ]) = True--ratioRepetitions (list :: [ Nat->Nat ]) = 0 % 1
tests/diff/tiers-listsofpairs-Nat-U.out view
@@ -1,3 +1,11 @@+map length (tiers :: [[ Nat->() ]]) = [1,0,0,0,0,0,...]++length (list :: [ Nat->() ]) = 1++allUnique (list :: [ Nat->() ]) = True++ratioRepetitions (list :: [ Nat->() ]) = 0 % 1+ tiers :: [Nat->()] = [ [ \x -> case x of 0 -> ()@@ -17,11 +25,3 @@ , [] , ... ]--map length (tiers :: [[ Nat->() ]]) = [1,0,0,0,0,0,...]--length (list :: [ Nat->() ]) = 1--allUnique (list :: [ Nat->() ]) = True--ratioRepetitions (list :: [ Nat->() ]) = 0 % 1
tests/diff/tiers-listsofpairs-Nat2-Nat2.out view
@@ -1,3 +1,11 @@+map length (tiers :: [[ Nat2->Nat2 ]]) = [1,2,1]++length (list :: [ Nat2->Nat2 ]) = 4++allUnique (list :: [ Nat2->Nat2 ]) = True++ratioRepetitions (list :: [ Nat2->Nat2 ]) = 0 % 1+ tiers :: [Nat2->Nat2] = [ [ \x -> case x of 0 -> 0@@ -15,11 +23,3 @@ 1 -> 1 ] ]--map length (tiers :: [[ Nat2->Nat2 ]]) = [1,2,1]--length (list :: [ Nat2->Nat2 ]) = 4--allUnique (list :: [ Nat2->Nat2 ]) = True--ratioRepetitions (list :: [ Nat2->Nat2 ]) = 0 % 1
tests/diff/tiers-listsofpairs-Nat2-Nat3.out view
@@ -1,3 +1,11 @@+map length (tiers :: [[ Nat2->Nat3 ]]) = [1,2,3,2,1]++length (list :: [ Nat2->Nat3 ]) = 9++allUnique (list :: [ Nat2->Nat3 ]) = True++ratioRepetitions (list :: [ Nat2->Nat3 ]) = 0 % 1+ tiers :: [Nat2->Nat3] = [ [ \x -> case x of 0 -> 0@@ -32,11 +40,3 @@ 1 -> 2 ] ]--map length (tiers :: [[ Nat2->Nat3 ]]) = [1,2,3,2,1]--length (list :: [ Nat2->Nat3 ]) = 9--allUnique (list :: [ Nat2->Nat3 ]) = True--ratioRepetitions (list :: [ Nat2->Nat3 ]) = 0 % 1
tests/diff/tiers-listsofpairs-Nat3-Nat2.out view
@@ -1,3 +1,11 @@+map length (tiers :: [[ Nat3->Nat2 ]]) = [1,3,3,1]++length (list :: [ Nat3->Nat2 ]) = 8++allUnique (list :: [ Nat3->Nat2 ]) = True++ratioRepetitions (list :: [ Nat3->Nat2 ]) = 0 % 1+ tiers :: [Nat3->Nat2] = [ [ \x -> case x of 0 -> 0@@ -36,11 +44,3 @@ 2 -> 1 ] ]--map length (tiers :: [[ Nat3->Nat2 ]]) = [1,3,3,1]--length (list :: [ Nat3->Nat2 ]) = 8--allUnique (list :: [ Nat3->Nat2 ]) = True--ratioRepetitions (list :: [ Nat3->Nat2 ]) = 0 % 1
tests/diff/tiers-listsofpairs-Nat3-Nat3.out view
@@ -1,3 +1,11 @@+map length (tiers :: [[ Nat3->Nat3 ]]) = [1,3,6,7,6,3,1]++length (list :: [ Nat3->Nat3 ]) = Infinity++allUnique (list :: [ Nat3->Nat3 ]) = True++ratioRepetitions (list :: [ Nat3->Nat3 ]) = 0 % 1+ tiers :: [Nat3->Nat3] = [ [ \x -> case x of 0 -> 0@@ -115,11 +123,3 @@ 2 -> 2 ] ]--map length (tiers :: [[ Nat3->Nat3 ]]) = [1,3,6,7,6,3,1]--length (list :: [ Nat3->Nat3 ]) = Infinity--allUnique (list :: [ Nat3->Nat3 ]) = True--ratioRepetitions (list :: [ Nat3->Nat3 ]) = 0 % 1
tests/diff/tiers-listsofpairs-Nats-Nats.out view
@@ -1,3 +1,11 @@+map length (tiers :: [[ [Nat]->[Nat] ]]) = [1,1,4,10,...]++length (list :: [ [Nat]->[Nat] ]) = Infinity++allUnique (list :: [ [Nat]->[Nat] ]) = True++ratioRepetitions (list :: [ [Nat]->[Nat] ]) = 0 % 1+ tiers :: [[Nat]->[Nat]] = [ [ \x -> case x of [] -> []@@ -165,11 +173,3 @@ ] , ... ]--map length (tiers :: [[ [Nat]->[Nat] ]]) = [1,1,4,10,...]--length (list :: [ [Nat]->[Nat] ]) = Infinity--allUnique (list :: [ [Nat]->[Nat] ]) = True--ratioRepetitions (list :: [ [Nat]->[Nat] ]) = 0 % 1
tests/diff/tiers-listsofpairs-U-Bool.out view
@@ -1,11 +1,3 @@-tiers :: [()->Bool] =- [ [ \x -> case x of- () -> False- , \x -> case x of- () -> True- ]- ]- map length (tiers :: [[ ()->Bool ]]) = [2] length (list :: [ ()->Bool ]) = 2@@ -13,3 +5,11 @@ allUnique (list :: [ ()->Bool ]) = True ratioRepetitions (list :: [ ()->Bool ]) = 0 % 1++tiers :: [()->Bool] =+ [ [ \x -> case x of+ () -> False+ , \x -> case x of+ () -> True+ ]+ ]
tests/diff/tiers-listsofpairs-U-Nat.out view
@@ -1,3 +1,11 @@+map length (tiers :: [[ ()->Nat ]]) = [1,1,1,1,1,1,...]++length (list :: [ ()->Nat ]) = Infinity++allUnique (list :: [ ()->Nat ]) = True++ratioRepetitions (list :: [ ()->Nat ]) = 0 % 1+ tiers :: [()->Nat] = [ [ \x -> case x of () -> 0@@ -19,11 +27,3 @@ ] , ... ]--map length (tiers :: [[ ()->Nat ]]) = [1,1,1,1,1,1,...]--length (list :: [ ()->Nat ]) = Infinity--allUnique (list :: [ ()->Nat ]) = True--ratioRepetitions (list :: [ ()->Nat ]) = 0 % 1
tests/diff/tiers-listsofpairs-U-U.out view
@@ -1,9 +1,3 @@-tiers :: [()->()] =- [ [ \x -> case x of- () -> ()- ]- ]- map length (tiers :: [[ ()->() ]]) = [1] length (list :: [ ()->() ]) = 1@@ -11,3 +5,9 @@ allUnique (list :: [ ()->() ]) = True ratioRepetitions (list :: [ ()->() ]) = 0 % 1++tiers :: [()->()] =+ [ [ \x -> case x of+ () -> ()+ ]+ ]
tests/diff/tiers-listsofpairs-Us-Us.out view
@@ -1,3 +1,11 @@+map length (tiers :: [[ [()]->[()] ]]) = [1,1,3,5,...]++length (list :: [ [()]->[()] ]) = Infinity++allUnique (list :: [ [()]->[()] ]) = True++ratioRepetitions (list :: [ [()]->[()] ]) = 0 % 1+ tiers :: [[()]->[()]] = [ [ \x -> case x of [] -> []@@ -105,11 +113,3 @@ ] , ... ]--map length (tiers :: [[ [()]->[()] ]]) = [1,1,3,5,...]--length (list :: [ [()]->[()] ]) = Infinity--allUnique (list :: [ [()]->[()] ]) = True--ratioRepetitions (list :: [ [()]->[()] ]) = 0 % 1
tests/diff/tiers-mixed-Bool-Bool.out view
@@ -1,3 +1,11 @@+map length (tiers :: [[ Bool->Bool ]]) = [8]++length (list :: [ Bool->Bool ]) = 8++allUnique (list :: [ Bool->Bool ]) = False++ratioRepetitions (list :: [ Bool->Bool ]) = 1 % 2+ tiers :: [Bool->Bool] = [ [ \x -> case x of False -> False@@ -25,11 +33,3 @@ True -> True ] ]--map length (tiers :: [[ Bool->Bool ]]) = [8]--length (list :: [ Bool->Bool ]) = 8--allUnique (list :: [ Bool->Bool ]) = False--ratioRepetitions (list :: [ Bool->Bool ]) = 1 % 2
tests/diff/tiers-mixed-Bool-MBool.out view
@@ -1,3 +1,11 @@+map length (tiers :: [[ Bool->Maybe Bool ]]) = [2,8,8]++length (list :: [ Bool->Maybe Bool ]) = Infinity++allUnique (list :: [ Bool->Maybe Bool ]) = False++ratioRepetitions (list :: [ Bool->Maybe Bool ]) = 1 % 2+ tiers :: [Bool->Maybe Bool] = [ [ \x -> case x of False -> Nothing@@ -57,11 +65,3 @@ True -> Just True ] ]--map length (tiers :: [[ Bool->Maybe Bool ]]) = [2,8,8]--length (list :: [ Bool->Maybe Bool ]) = Infinity--allUnique (list :: [ Bool->Maybe Bool ]) = False--ratioRepetitions (list :: [ Bool->Maybe Bool ]) = 1 % 2
tests/diff/tiers-mixed-Bool-U.out view
@@ -1,3 +1,11 @@+map length (tiers :: [[ Bool->() ]]) = [2]++length (list :: [ Bool->() ]) = 2++allUnique (list :: [ Bool->() ]) = False++ratioRepetitions (list :: [ Bool->() ]) = 1 % 2+ tiers :: [Bool->()] = [ [ \x -> case x of False -> ()@@ -7,11 +15,3 @@ True -> () ] ]--map length (tiers :: [[ Bool->() ]]) = [2]--length (list :: [ Bool->() ]) = 2--allUnique (list :: [ Bool->() ]) = False--ratioRepetitions (list :: [ Bool->() ]) = 1 % 2
tests/diff/tiers-mixed-Bools-Bools.out view
@@ -1,3 +1,11 @@+map length (tiers :: [[ [Bool]->[Bool] ]]) = [2,5,20,83,...]++length (list :: [ [Bool]->[Bool] ]) = Infinity++allUnique (list :: [ [Bool]->[Bool] ]) = False++ratioRepetitions (list :: [ [Bool]->[Bool] ]) = 43 % 110+ tiers :: [[Bool]->[Bool]] = [ [ \x -> case x of [] -> []@@ -1105,11 +1113,3 @@ ] , ... ]--map length (tiers :: [[ [Bool]->[Bool] ]]) = [2,5,20,83,...]--length (list :: [ [Bool]->[Bool] ]) = Infinity--allUnique (list :: [ [Bool]->[Bool] ]) = False--ratioRepetitions (list :: [ [Bool]->[Bool] ]) = 43 % 110
tests/diff/tiers-mixed-Int-Int-Int.out view
@@ -1,3 +1,11 @@+map length (tiers :: [[ Int->Int->Int ]]) = [4,12,58,287,...]++length (list :: [ Int->Int->Int ]) = Infinity++allUnique (list :: [ Int->Int->Int ]) = False++ratioRepetitions (list :: [ Int->Int->Int ]) = 315 % 361+ tiers :: [Int->Int->Int] = [ [ \x y -> case (x,y) of (0,0) -> 0@@ -3615,11 +3623,3 @@ ] , ... ]--map length (tiers :: [[ Int->Int->Int ]]) = [4,12,58,287,...]--length (list :: [ Int->Int->Int ]) = Infinity--allUnique (list :: [ Int->Int->Int ]) = False--ratioRepetitions (list :: [ Int->Int->Int ]) = 315 % 361
tests/diff/tiers-mixed-Int-Int.out view
@@ -1,3 +1,11 @@+map length (tiers :: [[ Int->Int ]]) = [2,3,8,20,61,204,...]++length (list :: [ Int->Int ]) = Infinity++allUnique (list :: [ Int->Int ]) = False++ratioRepetitions (list :: [ Int->Int ]) = 211 % 298+ tiers :: [Int->Int] = [ [ \x -> case x of 0 -> 0@@ -2987,11 +2995,3 @@ ] , ... ]--map length (tiers :: [[ Int->Int ]]) = [2,3,8,20,61,204,...]--length (list :: [ Int->Int ]) = Infinity--allUnique (list :: [ Int->Int ]) = False--ratioRepetitions (list :: [ Int->Int ]) = 211 % 298
tests/diff/tiers-mixed-Ints-Ints.out view
@@ -1,3 +1,11 @@+map length (tiers :: [[ [Int]->[Int] ]]) = [2,3,10,31,...]++length (list :: [ [Int]->[Int] ]) = Infinity++allUnique (list :: [ [Int]->[Int] ]) = False++ratioRepetitions (list :: [ [Int]->[Int] ]) = 13 % 23+ tiers :: [[Int]->[Int]] = [ [ \x -> case x of [] -> []@@ -465,11 +473,3 @@ ] , ... ]--map length (tiers :: [[ [Int]->[Int] ]]) = [2,3,10,31,...]--length (list :: [ [Int]->[Int] ]) = Infinity--allUnique (list :: [ [Int]->[Int] ]) = False--ratioRepetitions (list :: [ [Int]->[Int] ]) = 13 % 23
tests/diff/tiers-mixed-MBool-Bool.out view
@@ -1,3 +1,11 @@+map length (tiers :: [[ Maybe Bool->Bool ]]) = [16]++length (list :: [ Maybe Bool->Bool ]) = Infinity++allUnique (list :: [ Maybe Bool->Bool ]) = False++ratioRepetitions (list :: [ Maybe Bool->Bool ]) = 1 % 2+ tiers :: [Maybe Bool->Bool] = [ [ \x -> case x of Nothing -> False@@ -65,11 +73,3 @@ Just True -> True ] ]--map length (tiers :: [[ Maybe Bool->Bool ]]) = [16]--length (list :: [ Maybe Bool->Bool ]) = Infinity--allUnique (list :: [ Maybe Bool->Bool ]) = False--ratioRepetitions (list :: [ Maybe Bool->Bool ]) = 1 % 2
tests/diff/tiers-mixed-MBool-MBool.out view
@@ -1,3 +1,11 @@+map length (tiers :: [[ Maybe Bool->Maybe Bool ]]) = [2,12,24,16]++length (list :: [ Maybe Bool->Maybe Bool ]) = Infinity++allUnique (list :: [ Maybe Bool->Maybe Bool ]) = False++ratioRepetitions (list :: [ Maybe Bool->Maybe Bool ]) = 1 % 2+ tiers :: [Maybe Bool->Maybe Bool] = [ [ \x -> case x of Nothing -> Nothing@@ -220,11 +228,3 @@ Just True -> Just True ] ]--map length (tiers :: [[ Maybe Bool->Maybe Bool ]]) = [2,12,24,16]--length (list :: [ Maybe Bool->Maybe Bool ]) = Infinity--allUnique (list :: [ Maybe Bool->Maybe Bool ]) = False--ratioRepetitions (list :: [ Maybe Bool->Maybe Bool ]) = 1 % 2
tests/diff/tiers-mixed-Nat,Nat-Nat.out view
@@ -1,3 +1,11 @@+map length (tiers :: [[ (Nat,Nat)->Nat ]]) = [2,4,14,53,...]++length (list :: [ (Nat,Nat)->Nat ]) = Infinity++allUnique (list :: [ (Nat,Nat)->Nat ]) = False++ratioRepetitions (list :: [ (Nat,Nat)->Nat ]) = 41 % 73+ tiers :: [(Nat,Nat)->Nat] = [ [ \x -> case x of (0,0) -> 0@@ -735,11 +743,3 @@ ] , ... ]--map length (tiers :: [[ (Nat,Nat)->Nat ]]) = [2,4,14,53,...]--length (list :: [ (Nat,Nat)->Nat ]) = Infinity--allUnique (list :: [ (Nat,Nat)->Nat ]) = False--ratioRepetitions (list :: [ (Nat,Nat)->Nat ]) = 41 % 73
tests/diff/tiers-mixed-Nat-Nat-Nat.out view
@@ -1,3 +1,11 @@+map length (tiers :: [[ Nat->Nat->Nat ]]) = [4,12,58,287,...]++length (list :: [ Nat->Nat->Nat ]) = Infinity++allUnique (list :: [ Nat->Nat->Nat ]) = False++ratioRepetitions (list :: [ Nat->Nat->Nat ]) = 313 % 361+ tiers :: [Nat->Nat->Nat] = [ [ \x y -> case (x,y) of (0,0) -> 0@@ -3615,11 +3623,3 @@ ] , ... ]--map length (tiers :: [[ Nat->Nat->Nat ]]) = [4,12,58,287,...]--length (list :: [ Nat->Nat->Nat ]) = Infinity--allUnique (list :: [ Nat->Nat->Nat ]) = False--ratioRepetitions (list :: [ Nat->Nat->Nat ]) = 313 % 361
tests/diff/tiers-mixed-Nat-Nat.out view
@@ -1,3 +1,11 @@+map length (tiers :: [[ Nat->Nat ]]) = [2,3,8,20,61,204,...]++length (list :: [ Nat->Nat ]) = Infinity++allUnique (list :: [ Nat->Nat ]) = False++ratioRepetitions (list :: [ Nat->Nat ]) = 85 % 149+ tiers :: [Nat->Nat] = [ [ \x -> case x of 0 -> 0@@ -2987,11 +2995,3 @@ ] , ... ]--map length (tiers :: [[ Nat->Nat ]]) = [2,3,8,20,61,204,...]--length (list :: [ Nat->Nat ]) = Infinity--allUnique (list :: [ Nat->Nat ]) = False--ratioRepetitions (list :: [ Nat->Nat ]) = 85 % 149
tests/diff/tiers-mixed-Nat-U.out view
@@ -1,3 +1,11 @@+map length (tiers :: [[ Nat->() ]]) = [2,1,2,5,14,42,...]++length (list :: [ Nat->() ]) = Infinity++allUnique (list :: [ Nat->() ]) = False++ratioRepetitions (list :: [ Nat->() ]) = 65 % 66+ tiers :: [Nat->()] = [ [ \x -> case x of 0 -> ()@@ -667,11 +675,3 @@ ] , ... ]--map length (tiers :: [[ Nat->() ]]) = [2,1,2,5,14,42,...]--length (list :: [ Nat->() ]) = Infinity--allUnique (list :: [ Nat->() ]) = False--ratioRepetitions (list :: [ Nat->() ]) = 65 % 66
tests/diff/tiers-mixed-Nat2-Nat2.out view
@@ -1,3 +1,11 @@+map length (tiers :: [[ Nat2->Nat2 ]]) = [2,4,2]++length (list :: [ Nat2->Nat2 ]) = 8++allUnique (list :: [ Nat2->Nat2 ]) = False++ratioRepetitions (list :: [ Nat2->Nat2 ]) = 1 % 2+ tiers :: [Nat2->Nat2] = [ [ \x -> case x of 0 -> 0@@ -27,11 +35,3 @@ 1 -> 1 ] ]--map length (tiers :: [[ Nat2->Nat2 ]]) = [2,4,2]--length (list :: [ Nat2->Nat2 ]) = 8--allUnique (list :: [ Nat2->Nat2 ]) = False--ratioRepetitions (list :: [ Nat2->Nat2 ]) = 1 % 2
tests/diff/tiers-mixed-Nat2-Nat3.out view
@@ -1,3 +1,11 @@+map length (tiers :: [[ Nat2->Nat3 ]]) = [2,4,6,4,2]++length (list :: [ Nat2->Nat3 ]) = Infinity++allUnique (list :: [ Nat2->Nat3 ]) = False++ratioRepetitions (list :: [ Nat2->Nat3 ]) = 1 % 2+ tiers :: [Nat2->Nat3] = [ [ \x -> case x of 0 -> 0@@ -59,11 +67,3 @@ 1 -> 2 ] ]--map length (tiers :: [[ Nat2->Nat3 ]]) = [2,4,6,4,2]--length (list :: [ Nat2->Nat3 ]) = Infinity--allUnique (list :: [ Nat2->Nat3 ]) = False--ratioRepetitions (list :: [ Nat2->Nat3 ]) = 1 % 2
tests/diff/tiers-mixed-Nat3-Nat2.out view
@@ -1,3 +1,11 @@+map length (tiers :: [[ Nat3->Nat2 ]]) = [2,6,6,2]++length (list :: [ Nat3->Nat2 ]) = Infinity++allUnique (list :: [ Nat3->Nat2 ]) = False++ratioRepetitions (list :: [ Nat3->Nat2 ]) = 1 % 2+ tiers :: [Nat3->Nat2] = [ [ \x -> case x of 0 -> 0@@ -68,11 +76,3 @@ 2 -> 1 ] ]--map length (tiers :: [[ Nat3->Nat2 ]]) = [2,6,6,2]--length (list :: [ Nat3->Nat2 ]) = Infinity--allUnique (list :: [ Nat3->Nat2 ]) = False--ratioRepetitions (list :: [ Nat3->Nat2 ]) = 1 % 2
tests/diff/tiers-mixed-Nat3-Nat3.out view
@@ -1,3 +1,11 @@+map length (tiers :: [[ Nat3->Nat3 ]]) = [2,6,12,14,12,6,2]++length (list :: [ Nat3->Nat3 ]) = Infinity++allUnique (list :: [ Nat3->Nat3 ]) = False++ratioRepetitions (list :: [ Nat3->Nat3 ]) = 1 % 2+ tiers :: [Nat3->Nat3] = [ [ \x -> case x of 0 -> 0@@ -223,11 +231,3 @@ 2 -> 2 ] ]--map length (tiers :: [[ Nat3->Nat3 ]]) = [2,6,12,14,12,6,2]--length (list :: [ Nat3->Nat3 ]) = Infinity--allUnique (list :: [ Nat3->Nat3 ]) = False--ratioRepetitions (list :: [ Nat3->Nat3 ]) = 1 % 2
tests/diff/tiers-mixed-Nats-Nats.out view
@@ -1,3 +1,11 @@+map length (tiers :: [[ [Nat]->[Nat] ]]) = [2,3,10,31,...]++length (list :: [ [Nat]->[Nat] ]) = Infinity++allUnique (list :: [ [Nat]->[Nat] ]) = False++ratioRepetitions (list :: [ [Nat]->[Nat] ]) = 13 % 23+ tiers :: [[Nat]->[Nat]] = [ [ \x -> case x of [] -> []@@ -465,11 +473,3 @@ ] , ... ]--map length (tiers :: [[ [Nat]->[Nat] ]]) = [2,3,10,31,...]--length (list :: [ [Nat]->[Nat] ]) = Infinity--allUnique (list :: [ [Nat]->[Nat] ]) = False--ratioRepetitions (list :: [ [Nat]->[Nat] ]) = 13 % 23
tests/diff/tiers-mixed-U-Bool.out view
@@ -1,3 +1,11 @@+map length (tiers :: [[ ()->Bool ]]) = [4]++length (list :: [ ()->Bool ]) = 4++allUnique (list :: [ ()->Bool ]) = False++ratioRepetitions (list :: [ ()->Bool ]) = 1 % 2+ tiers :: [()->Bool] = [ [ \x -> case x of () -> False@@ -9,11 +17,3 @@ () -> True ] ]--map length (tiers :: [[ ()->Bool ]]) = [4]--length (list :: [ ()->Bool ]) = 4--allUnique (list :: [ ()->Bool ]) = False--ratioRepetitions (list :: [ ()->Bool ]) = 1 % 2
tests/diff/tiers-mixed-U-Nat.out view
@@ -1,3 +1,11 @@+map length (tiers :: [[ ()->Nat ]]) = [2,2,2,2,2,2,...]++length (list :: [ ()->Nat ]) = Infinity++allUnique (list :: [ ()->Nat ]) = False++ratioRepetitions (list :: [ ()->Nat ]) = 1 % 2+ tiers :: [()->Nat] = [ [ \x -> case x of () -> 0@@ -31,11 +39,3 @@ ] , ... ]--map length (tiers :: [[ ()->Nat ]]) = [2,2,2,2,2,2,...]--length (list :: [ ()->Nat ]) = Infinity--allUnique (list :: [ ()->Nat ]) = False--ratioRepetitions (list :: [ ()->Nat ]) = 1 % 2
tests/diff/tiers-mixed-U-U.out view
@@ -1,11 +1,3 @@-tiers :: [()->()] =- [ [ \x -> case x of- () -> ()- , \x -> case x of- () -> ()- ]- ]- map length (tiers :: [[ ()->() ]]) = [2] length (list :: [ ()->() ]) = 2@@ -13,3 +5,11 @@ allUnique (list :: [ ()->() ]) = False ratioRepetitions (list :: [ ()->() ]) = 1 % 2++tiers :: [()->()] =+ [ [ \x -> case x of+ () -> ()+ , \x -> case x of+ () -> ()+ ]+ ]
tests/diff/tiers-mixed-Us-Us.out view
@@ -1,3 +1,11 @@+map length (tiers :: [[ [()]->[()] ]]) = [2,3,7,13,...]++length (list :: [ [()]->[()] ]) = Infinity++allUnique (list :: [ [()]->[()] ]) = False++ratioRepetitions (list :: [ [()]->[()] ]) = 14 % 25+ tiers :: [[()]->[()]] = [ [ \x -> case x of [] -> []@@ -255,11 +263,3 @@ ] , ... ]--map length (tiers :: [[ [()]->[()] ]]) = [2,3,7,13,...]--length (list :: [ [()]->[()] ]) = Infinity--allUnique (list :: [ [()]->[()] ]) = False--ratioRepetitions (list :: [ [()]->[()] ]) = 14 % 25
tests/diff/tiers.out view
@@ -1,6 +1,3 @@-tiers :: [()] =- [[()]]- map length (tiers :: [[ () ]]) = [1] length (list :: [ () ]) = 1@@ -8,3 +5,6 @@ allUnique (list :: [ () ]) = True ratioRepetitions (list :: [ () ]) = 0 % 1++tiers :: [()] =+ [[()]]
tests/test-derive.hs view
@@ -1,4 +1,4 @@--- Copyright (c) 2015-2017 Rudy Matela.+-- Copyright (c) 2015-2018 Rudy Matela. -- Distributed under the 3-Clause BSD licence (see the file LICENSE). {-# LANGUAGE TemplateHaskell, CPP #-} import Test
tests/test-error.hs view
@@ -1,4 +1,4 @@--- Copyright (c) 2015-2017 Rudy Matela.+-- Copyright (c) 2015-2018 Rudy Matela. -- Distributed under the 3-Clause BSD licence (see the file LICENSE). import Test ()
tests/test-fun.hs view
@@ -1,4 +1,4 @@--- Copyright (c) 2015-2017 Rudy Matela.+-- Copyright (c) 2015-2018 Rudy Matela. -- Distributed under the 3-Clause BSD licence (see the file LICENSE). import Test
tests/test-funshow.hs view
@@ -1,4 +1,4 @@--- Copyright (c) 2015-2017 Rudy Matela.+-- Copyright (c) 2015-2018 Rudy Matela. -- Distributed under the 3-Clause BSD licence (see the file LICENSE). import Test
tests/test-io.hs view
@@ -1,4 +1,4 @@--- Copyright (c) 2015-2017 Rudy Matela.+-- Copyright (c) 2015-2018 Rudy Matela. -- Distributed under the 3-Clause BSD licence (see the file LICENSE). import Test import Test.LeanCheck.IO
tests/test-operators.hs view
@@ -1,4 +1,4 @@--- Copyright (c) 2015-2017 Rudy Matela.+-- Copyright (c) 2015-2018 Rudy Matela. -- Distributed under the 3-Clause BSD licence (see the file LICENSE). import Test @@ -108,7 +108,15 @@ , holds n $ okEqOrd -:> [bool] , holds n $ okEqOrd -:> float -- fails if NaN is included in enumeration , holds n $ okEqOrd -:> double -- fails if NaN is included in enumeration+ , holds n $ okEqOrd -:> rational + , holds n $ okNum -:> int+ , holds n $ okNum -:> integer+-- NOTE: the following two fail on Hugs due to a bug on Hugs.+--, holds n $ \x y z -> none isInfinite [x,y,z] ==> okNum x y (z -: float)+--, holds n $ \x y z -> none isInfinite [x,y,z] ==> okNum x y (z -: double)+ , holds n $ okNum -:> rational+ , holds n $ idempotent id -:> int , holds n $ idempotent abs -:> int , holds n $ idempotent sort -:> [bool]@@ -124,3 +132,6 @@ , fails n $ neverIdentity abs -:> int , fails n $ neverIdentity negate -:> int ]++none :: (a -> Bool) -> [a] -> Bool+none p = not . or . map p
tests/test-sdist view
@@ -2,7 +2,7 @@ # # test-sdist: tests the package generated by "cabal sdist". #-# Copyright (c) 2015-2017 Rudy Matela.+# Copyright (c) 2015-2018 Rudy Matela. # Distributed under the 3-Clause BSD licence. # # TODO: also run "make test"
tests/test-stats.hs view
@@ -1,4 +1,4 @@--- Copyright (c) 2017 Rudy Matela.+-- Copyright (c) 2017-2018 Rudy Matela. -- Distributed under the 3-Clause BSD licence (see the file LICENSE). import Test @@ -21,11 +21,21 @@ putStrLn "take 1 :: [Int] -> [Int]" classStats 100 (take 1 :: [Int] -> [Int]) - conditionStats 1000 [ ("odd",odd :: Int -> Bool)- , ("even",even) ]+ conditionStats 1000 [ ("odd", odd :: Int -> Bool)+ , ("even", even) ] conditionStats 1000 [ ("ordered",ordered :: [Int] -> Bool) , ("ordered . reverse", ordered . reverse) ]++ putStrLn "sum :: [Int] -> Bool"+ classStatsT 6 (sum :: [Int] -> Int)++ putStrLn "length :: [Int] -> Int"+ classStatsT 6 (length :: [Int] -> Int)++ putStrLn "take 1 :: [Int] -> [Int]"+ classStatsT 6 (take 1 :: [Int] -> [Int])+ case elemIndices False (tests 100) of [] -> putStrLn "Tests passed!"
tests/test-tiers.hs view
@@ -1,4 +1,4 @@--- Copyright (c) 2015-2017 Rudy Matela.+-- Copyright (c) 2015-2018 Rudy Matela. -- Distributed under the 3-Clause BSD licence (see the file LICENSE). import Test @@ -66,6 +66,7 @@ , holds 100 $ \xss -> ordered . concat $ discardLaterT (<) (xss::[[Int]]) , holds 100 $ \xss -> ordered . concat $ discardLaterT (<=) (xss::[[Int]])+ , (length . concat $ discardLaterT (<=) [[1..100]]) == 100 , (length . concat $ discardLaterT (<=) [[00..99],[100..199::Int]]) == 200 , holds 100 $ \xss -> nub (concat xss) == concat (nubT xss :: [[Int]]) ]
tests/test-types.hs view
@@ -1,4 +1,4 @@--- Copyright (c) 2015-2017 Rudy Matela.+-- Copyright (c) 2015-2018 Rudy Matela. -- Distributed under the 3-Clause BSD licence (see the file LICENSE). import Test import System.Exit (exitFailure)
tests/test.hs view
@@ -1,4 +1,4 @@--- Copyright (c) 2015-2017 Rudy Matela.+-- Copyright (c) 2015-2018 Rudy Matela. -- Distributed under the 3-Clause BSD licence (see the file LICENSE). import Test @@ -32,7 +32,6 @@ , tNatTripleOrd 200 , tNatQuadrupleOrd 300 , tNatQuintupleOrd 400- , tNatSixtupleOrd 500 , tNatListOrd 500 , tListsOfNatOrd 500 , listsOf (tiers::[[Nat]]) =| 10 |= tiers@@ -50,7 +49,9 @@ , counterExample 10 (\x y -> x + y == (x::Double)) == Just ["0.0","1.0"] , holds 50 (\x -> x + 1 /= (x::Int)) , counterExample 50 (\x -> x + 1 /= (x::Float)) == Just ["Infinity"]+ || counterExample 50 (\x -> x + 1 /= (x::Float)) == Just ["inf"] -- bug on Hugs 2006-09? , counterExample 50 (\x -> x + 1 /= (x::Double)) == Just ["Infinity"]+ || counterExample 50 (\x -> x + 1 /= (x::Float)) == Just ["inf"] -- bug on Hugs 2006-09? , allUnique (take 100 list :: [Float]) , allUnique (take 500 list :: [Double])