packages feed

parser-combinators-tests 1.1.0 → 1.2.0

raw patch · 3 files changed

+65/−3 lines, 3 filesdep ~QuickCheckdep ~parser-combinators

Dependency ranges changed: QuickCheck, parser-combinators

Files

parser-combinators-tests.cabal view
@@ -1,5 +1,5 @@ name:                 parser-combinators-tests-version:              1.1.0+version:              1.2.0 cabal-version:        1.18 tested-with:          GHC==8.0.2, GHC==8.2.2, GHC==8.4.4, GHC==8.6.5 license:              BSD3@@ -27,14 +27,14 @@   main-is:            Spec.hs   hs-source-dirs:     tests   type:               exitcode-stdio-1.0-  build-depends:      QuickCheck       >= 2.7 && < 2.13+  build-depends:      QuickCheck       >= 2.7 && < 2.14                     , base             >= 4.9 && < 5.0                     , hspec            >= 2.0 && < 3.0                     , hspec-expectations >= 0.8 && < 0.9                     , hspec-megaparsec >= 2.0 && < 3.0                     , megaparsec       >= 7.0 && < 8.0                     , megaparsec-tests >= 7.0 && < 8.0-                    , parser-combinators == 1.1.0+                    , parser-combinators == 1.2.0   other-modules:      Control.Applicative.CombinatorsSpec                     , Control.Applicative.PermutationsSpec                     , Control.Monad.Combinators.ExprSpec
tests/Control/Applicative/CombinatorsSpec.hs view
@@ -129,6 +129,18 @@              in prs_ p s `shouldParse` (pre, drop 1 post)     rightOrder (manyTill letterChar (char 'd')) "abcd" "abc" +  describe "manyTill_" $ do+    it "works" . property $ \a' b' c' -> do+      let [a,b,c] = getNonNegative <$> [a',b',c']+          p = (,) <$> manyTill_ letterChar (char 'c') <*> many letterChar+          s = abcRow a b c+      if c == 0+        then prs_ p s `shouldFailWith` err (a + b)+             (ueof <> etok 'c' <> elabel "letter")+        else let (pre, post) = break (== 'c') s+             in prs_ p s `shouldParse` ((pre, 'c'), drop 1 post)+    rightOrder (fst <$> manyTill_ letterChar (char 'd')) "abcd" "abc"+   describe "someTill" $ do     it "works" . property $ \a' b' c' -> do       let [a,b,c] = getNonNegative <$> [a',b',c']@@ -147,6 +159,25 @@            let (pre, post) = break (== 'c') s            in prs_ p s `shouldParse` (pre, drop 1 post)     rightOrder (someTill letterChar (char 'd')) "abcd" "abc"++  describe "someTill_" $ do+    it "works" . property $ \a' b' c' -> do+      let [a,b,c] = getNonNegative <$> [a',b',c']+          p = (,) <$> someTill_ letterChar (char 'c') <*> many letterChar+          s = abcRow a b c+      if | null s ->+           prs_ p s `shouldFailWith` err 0 (ueof <> elabel "letter")+         | c == 0 ->+           prs_ p s `shouldFailWith` err (a + b)+             (ueof <> etok 'c' <> elabel "letter")+         | s == "c" ->+           prs_ p s `shouldFailWith` err 1 (ueof <> etok 'c' <> elabel "letter")+         | head s == 'c' ->+           prs_ p s `shouldParse` (("c", 'c'), drop 2 s)+         | otherwise ->+           let (pre, post) = break (== 'c') s+           in prs_ p s `shouldParse` ((pre, 'c'), drop 1 post)+    rightOrder (fst <$> someTill_ letterChar (char 'd')) "abcd" "abc"    describe "option" $     it "works" . property $ \d a s -> do
tests/Control/Monad/CombinatorsSpec.hs view
@@ -95,6 +95,18 @@              in prs_ p s `shouldParse` (pre, drop 1 post)     rightOrder (manyTill letterChar (char 'd')) "abcd" "abc" +  describe "manyTill_" $ do+    it "works" . property $ \a' b' c' -> do+      let [a,b,c] = getNonNegative <$> [a',b',c']+          p = (,) <$> manyTill_ letterChar (char 'c') <*> many letterChar+          s = abcRow a b c+      if c == 0+        then prs_ p s `shouldFailWith` err (a + b)+             (ueof <> etok 'c' <> elabel "letter")+        else let (pre, post) = break (== 'c') s+             in prs_ p s `shouldParse` ((pre, 'c'), drop 1 post)+    rightOrder (fmap fst . manyTill_ letterChar $ char 'd') "abcd" "abc"+   describe "someTill" $ do     it "works" . property $ \a' b' c' -> do       let [a,b,c] = getNonNegative <$> [a',b',c']@@ -113,6 +125,25 @@            let (pre, post) = break (== 'c') s            in prs_ p s `shouldParse` (pre, drop 1 post)     rightOrder (someTill letterChar (char 'd')) "abcd" "abc"++  describe "someTill_" $ do+    it "works" . property $ \a' b' c' -> do+      let [a,b,c] = getNonNegative <$> [a',b',c']+          p = (,) <$> someTill_ letterChar (char 'c') <*> many letterChar+          s = abcRow a b c+      if | null s ->+           prs_ p s `shouldFailWith` err 0 (ueof <> elabel "letter")+         | c == 0 ->+           prs_ p s `shouldFailWith` err (a + b)+             (ueof <> etok 'c' <> elabel "letter")+         | s == "c" ->+           prs_ p s `shouldFailWith` err 1 (ueof <> etok 'c' <> elabel "letter")+         | head s == 'c' ->+           prs_ p s `shouldParse` (("c", 'c'), drop 2 s)+         | otherwise ->+           let (pre, post) = break (== 'c') s+           in prs_ p s `shouldParse` ((pre, 'c'), drop 1 post)+    rightOrder (fmap fst . someTill_ letterChar $ char 'd') "abcd" "abc"    describe "sepBy" $ do     it "works" . property $ \n' c' -> do