1
1
mirror of https://github.com/github/semantic.git synced 2024-11-24 08:54:07 +03:00

We don’t need to use ArbitrarySyntax for this.

This commit is contained in:
Rob Rix 2015-12-11 10:33:46 -05:00
parent fd0c1e7abe
commit 2cbe8959fe

View File

@ -36,11 +36,11 @@ instance (Arbitrary a, Arbitrary annotation) => Arbitrary (ArbitraryTerm a annot
arbitraryBounded :: (Arbitrary a, Arbitrary annotation) => Int -> Gen (ArbitraryTerm a annotation)
arbitraryBounded k = make <$> arbitrary <*> oneof [
ArbitrarySyntax . Leaf <$> arbitrary,
ArbitrarySyntax . Indexed <$> vectorOfAtMost k (arbitraryBounded $ k - 1),
ArbitrarySyntax . Syntax.Fixed <$> vectorOfAtMost k (arbitraryBounded $ k - 1),
ArbitrarySyntax . Keyed . Map.fromList <$> arbitrary ]
where make annotation syntax = ArbitraryTerm $ (annotation, unSyntax syntax)
Leaf <$> arbitrary,
Indexed <$> vectorOfAtMost k (arbitraryBounded $ k - 1),
Syntax.Fixed <$> vectorOfAtMost k (arbitraryBounded $ k - 1),
Keyed . Map.fromList <$> arbitrary ]
where make annotation syntax = ArbitraryTerm $ (annotation, syntax)
vectorOfAtMost k gen = choose (0, k) >>= \n -> vectorOf n gen
instance Arbitrary HTML where