@@ -23,13 +23,15 @@ main = defaultMain $ testGroup "Bayeux"
23
23
, testGroup " Hedgehog" hedgehogTests
24
24
]
25
25
26
- mkTestCase :: Eq a => Pretty a => (Lp a , Bool , String ) -> TestTree
26
+ mkTestCase :: (Lp Text , Bool , String ) -> TestTree
27
27
mkTestCase (lp, expected, description) =
28
28
let display = unwords [description, T. unpack $ prettyLp lp]
29
- in testCase display $ prove lp @?= expected
29
+ in testGroup display
30
+ [ testCase " prove" $ prove lp @?= expected
31
+ , testCase " parse . pretty" $ (parseMaybe parseLp . prettyLp) lp @?= Just (lp)
32
+ ]
30
33
31
- smullyan
32
- :: [(Lp String , Bool , String )]
34
+ smullyan :: [(Lp Text , Bool , String )]
33
35
smullyan =
34
36
[ ( (" p" ==> (" q" ==> " r" )) ==> ((" p" ==> " q" ) ==> (" p" ==> " r" ))
35
37
, True
@@ -87,12 +89,15 @@ smullyan =
87
89
88
90
parseTests :: [TestTree ]
89
91
parseTests =
90
- [ testCase " " $ parseMaybe parseLp " a" @?= Just " a"
91
- , testCase " " $ parseMaybe parseLp " ~a" @?= Just " ~a"
92
- , testGroup " Smullyan parse after pretty" $ mkParsePrettyTestCase <$> smullyan
92
+ [ tc " a" " a"
93
+ , tc " ~a" " ~a"
94
+ , tc " a => b => c" $ " a" ==> " b" ==> " c"
95
+ , tc " a => (b => c)" $ " a" ==> " b" ==> " c"
96
+ , tc " (a => b) => c" $ (" a" ==> " b" ) ==> " c"
97
+ , tc " ~a \\ / ~b" $ " ~a" \/ " ~b"
93
98
]
94
99
where
95
- mkParsePrettyTestCase (lp, _, _) = testCase (T. unpack $ prettyLp lp ) $ ( parseMaybe parseLp . prettyLp) lp @?= Just (fromString <$> lp)
100
+ tc t lp = testCase (T. unpack t ) $ parseMaybe parseLp t @?= Just lp
96
101
97
102
genName :: MonadGen m => m Text
98
103
genName = Gen. text (Range. linear 1 10 ) Gen. alphaNum
0 commit comments