@@ -16,20 +16,17 @@ import Text.HTML.Tree
18arbitraryTokenForest :: Gen (Forest Token)
18arbitraryTokenForest :: Gen (Forest Token)
19−arbitraryTokenForest = listOf $ oneof
19+arbitraryTokenForest = listOf arbitraryTokenTree
21+arbitraryTokenTree :: Gen (Tree Token)
22+arbitraryTokenTree = oneof
20 [ Node <$> validOpen <*> scale (`div` 5) arbitraryTokenForest
23 [ Node <$> validOpen <*> scale (`div` 5) arbitraryTokenForest
21 , Node <$> validFlat <*> pure []
24 , Node <$> validFlat <*> pure []
24−shrinkTokenForest :: Forest Token -> [Forest Token]
25−shrinkTokenForest = fmap shrinkTokenTree
27−shrinkTokenTree :: Tree Token -> [Tree Token]
28−shrinkTokenTree (Node n c) = Node <$> shrink n <*> shrink c
31spec :: Spec
28spec :: Spec
33 it "parseTokenForests and renderTokenForest are inverses"
30 it "parseTokenForests and renderTokenForest are inverses"
34− . property . forAllShrink arbitraryTokenForest shrinkTokenForest $
31+ . property . forAllShrink arbitraryTokenForest shrink $
35 \forest -> tokensToForest (tokensFromForest forest) `shouldBe` Right forest
32 \forest -> tokensToForest (tokensFromForest forest) `shouldBe` Right forest