summaryrefslogtreecommitdiff
path: root/Haskell-book/17/Exercises/test/Spec.hs
blob: e1405c5675891f735169e7978bfdd2b8fd33d072 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
import Data.Monoid
import Exercises
import Test.QuickCheck.Checkers
import Test.QuickCheck.Classes

main :: IO ()
main = do
    quickBatch $ functor $ Pair ('a', 'b', 'c') ('d', 'e', 'f')
    quickBatch $ applicative $ Pair ('a', 'b', 'c') ('d', 'e', 'f')
    quickBatch $ functor $ Two ('a', 'b', 'c') (1 :: Integer, 2 :: Integer, 3 :: Integer)
    quickBatch $ applicative $ Two (Product (1 :: Integer), Product (2 :: Integer), Product (3 :: Integer))
                                   (Sum (1 :: Integer), Sum (2 :: Integer), Sum (3 :: Integer))
    quickBatch $ applicative $ Three (Product (1 :: Integer), Product (2 :: Integer), Product (3 :: Integer))
                                     (Sum (1 :: Integer), Sum (2 :: Integer), Sum (3 :: Integer))
                                     (Sum (4 :: Integer), Sum (5 :: Integer), Sum (6 :: Integer))
    quickBatch $ applicative $ Three' (Product (1 :: Integer), Product (2 :: Integer), Product (3 :: Integer))
                                      (Sum (1 :: Integer), Sum (2 :: Integer), Sum (3 :: Integer))
                                      (Sum (4 :: Integer), Sum (5 :: Integer), Sum (6 :: Integer))
    quickBatch $ applicative $ Four (Product (1 :: Integer), Product (2 :: Integer), Product (3 :: Integer))
                                    (Product (1 :: Integer), Product (2 :: Integer), Product (3 :: Integer))
                                    (Sum (1 :: Integer), Sum (2 :: Integer), Sum (3 :: Integer))
                                    (Sum (4 :: Integer), Sum (5 :: Integer), Sum (6 :: Integer))
    quickBatch $ applicative $ Four (Product (1 :: Integer), Product (2 :: Integer), Product (3 :: Integer))
                                    (Product (1 :: Integer), Product (2 :: Integer), Product (3 :: Integer))
                                    (Product (1 :: Integer), Product (2 :: Integer), Product (3 :: Integer))
                                    (Sum (4 :: Integer), Sum (5 :: Integer), Sum (6 :: Integer))