git.iko.soy/typeable/html-parse
on master help sign in
More coherent arbitrary instances for token forest, tree.
commit9f623449fb76ab95cd23633808f30754acfca412 authorMatthias Fischmann <mf@zerobuzz.net> dateSun 1 Jan 2017, 02:41 (10 years ago) parent6658bf8
1 file changed+5−8
tests/Text/HTML/TreeSpec.hs+5−8
tests/Text/HTML/TreeSpec.hs+5−8
@@ -16,20 +16,17 @@ import Text.HTML.Tree
1616
1717
1818arbitraryTokenForest :: Gen (Forest Token)
19−arbitraryTokenForest = listOf $ oneof
19+arbitraryTokenForest = listOf arbitraryTokenTree
20+
21+arbitraryTokenTree :: Gen (Tree Token)
22+arbitraryTokenTree = oneof
2023 [ Node <$> validOpen <*> scale (`div` 5) arbitraryTokenForest
2124 , Node <$> validFlat <*> pure []
2225 ]
2326
24−shrinkTokenForest :: Forest Token -> [Forest Token]
25−shrinkTokenForest = fmap shrinkTokenTree
26−
27−shrinkTokenTree :: Tree Token -> [Tree Token]
28−shrinkTokenTree (Node n c) = Node <$> shrink n <*> shrink c
29−
3027
3128spec :: Spec
3229spec = do
3330 it "parseTokenForests and renderTokenForest are inverses"
34− . property . forAllShrink arbitraryTokenForest shrinkTokenForest $
31+ . property . forAllShrink arbitraryTokenForest shrink $
3532 \forest -> tokensToForest (tokensFromForest forest) `shouldBe` Right forest