on master help sign in
Add test case for hierarchical alternative composition
ab91267Harendra Kumar
test/Main.hs+4
@@ -44,6 +44,10 @@ main = hspec $ do
44 ((toList $ (((return 0 <|> return 1) <|> return 2) <|> return 3)) >>= return . sort) `shouldReturn` ([0, 1, 2, 3] :: [Int])
44 ((toList $ (((return 0 <|> return 1) <|> return 2) <|> return 3)) >>= return . sort) `shouldReturn` ([0, 1, 2, 3] :: [Int])
45 it "Alternative composition - right associated" $
45 it "Alternative composition - right associated" $
46 ((toList $ (return 0 <|> (return 1 <|> (return 2 <|> return 3)))) >>= return . sort) `shouldReturn` ([0, 1, 2, 3] :: [Int])
46 ((toList $ (return 0 <|> (return 1 <|> (return 2 <|> return 3)))) >>= return . sort) `shouldReturn` ([0, 1, 2, 3] :: [Int])
47+ it "Alternative composition - hierarchical" $
48+ ((toList $ (((return 0 <|> return 1) <|> (return 2 <|> return 3))
49+ <|> ((return 4 <|> return 5) <|> (return 6 <|> return 7)))
50+ ) >>= return . sort) `shouldReturn` ([0..7] :: [Int])
47 it "Alternative composition (right fold) with bind" $
51 it "Alternative composition (right fold) with bind" $
48 (toList (for [1..10 :: Int] $ \x -> return x >>= return . id) >>= return . sort) `shouldReturn` ([1..10] :: [Int])
52 (toList (for [1..10 :: Int] $ \x -> return x >>= return . id) >>= return . sort) `shouldReturn` ([1..10] :: [Int])
49 it "Alternative composition (left fold) with bind" $
53 it "Alternative composition (left fold) with bind" $