1
1
mirror of https://github.com/github/semantic.git synced 2024-11-28 10:15:55 +03:00
Commit Graph

115 Commits

Author SHA1 Message Date
Rob Rix
77c9970f25 Don’t bind a variable for n. 2015-12-11 15:03:03 -05:00
Rob Rix
3efa6e6ff4 Recur into arbitrary, and produce arbitrary Keyed nodes. 2015-12-11 15:02:29 -05:00
Rob Rix
76f78234aa Define shrink by case analysis. 2015-12-11 15:01:44 -05:00
Rob Rix
2e97bf44fc Generate arbitrary Fixed terms with bounds &c. 2015-12-11 14:40:29 -05:00
Rob Rix
c4326d54a0 Composition 🎉 2015-12-11 14:39:56 -05:00
Rob Rix
2764c34b8d Generate arbitrary terms using frequency & sized bounds. 2015-12-11 14:38:57 -05:00
Rob Rix
046c3d1813 Try to simplify syntax shrinking in terms. 2015-12-11 14:38:52 -05:00
Rob Rix
ed929f07a0 Bind in the opposite direction. 2015-12-11 14:17:04 -05:00
Rob Rix
02c19d1d93 Shrink Keyed syntax values to subsequences. 2015-12-11 14:14:58 -05:00
Rob Rix
b643e9ce5a Shrink indexed/fixed nodes to subsequences. 2015-12-11 14:07:31 -05:00
Rob Rix
68bf2cecfc Add an Arbitrary instance for Syntax. 2015-12-11 14:05:59 -05:00
Rob Rix
913d484a67 Hide Fixed. 2015-12-11 14:05:46 -05:00
Rob Rix
46dfff2b7c Derive the genericity of ArbitraryTerm. 2015-12-11 13:37:42 -05:00
Rob Rix
f983ec0cc3 Shrink Keyed subterms recursively. 2015-12-11 11:19:13 -05:00
Rob Rix
e1161b46db Shrink Fixed subterms recursively. 2015-12-11 11:17:51 -05:00
Rob Rix
39cfe5f96f Remove a redundant permutation of Fixed terms. 2015-12-11 11:17:39 -05:00
Rob Rix
d5041aaf5e Shrink subterms recursively. 2015-12-11 11:17:20 -05:00
Rob Rix
65bd8b19c8 Remove a redundant variation. 2015-12-11 11:16:52 -05:00
Rob Rix
1cb56f5eb3 Make sure never to shrink to the argument. 2015-12-11 11:16:02 -05:00
Rob Rix
6383404fc4 Shrink subsequences of Fixed terms. 2015-12-11 11:15:39 -05:00
Rob Rix
dacb2dba48 Shrink subsequences of Indexed terms. 2015-12-11 11:15:21 -05:00
Rob Rix
8d0272bdac Implement shrinking over ArbitraryTerm. 2015-12-11 11:14:33 -05:00
Rob Rix
7dd4631053 Remove ArbitrarySyntax. 2015-12-11 11:00:52 -05:00
Rob Rix
40eafd315d Remove the arbitrary instance for ArbitrarySyntax. 2015-12-11 11:00:26 -05:00
Rob Rix
dbbada55da Construct bounded terms. 2015-12-11 11:00:18 -05:00
Rob Rix
e6bddf1cf1 Bound arbitrary Keyed nodes.
I really hope we can clean this up.
2015-12-11 11:00:06 -05:00
Rob Rix
a7c959db6c Use the ordinary ArbitraryTerm constructor. 2015-12-11 10:34:43 -05:00
Rob Rix
2cbe8959fe We don’t need to use ArbitrarySyntax for this. 2015-12-11 10:33:46 -05:00
Rob Rix
fd0c1e7abe Attempt to define the selection of an arbitrary bounded term. 2015-12-11 10:32:31 -05:00
Rob Rix
fda61b074f ArbitraryTerm → Term eliminator. 2015-12-11 09:14:54 -05:00
Rob Rix
bc47d2743f Represent ArbitraryTerm as an annotation/Term pair.
Capturing the recursive structure in `ArbitraryTerm` instead of
deferring it to `Term` allows us to simplify construction of arbitrary
inhabitants.
2015-12-11 09:14:43 -05:00
Rob Rix
6799d5eba1 Use record notation to unwrap ArbitrarySyntax. 2015-12-11 09:12:49 -05:00
Rob Rix
0c23f11d01 Abstract ArbitraryTerm over its annotation type. 2015-12-11 00:35:00 -05:00
Rob Rix
de9aa14da4 ArbitraryTerm is parameterized by its leaf type. 2015-12-11 00:33:43 -05:00
Rob Rix
2f744cd769 ArbitrarySyntax is Arbitrary. 2015-12-11 00:32:59 -05:00
Rob Rix
c7dbd6e79b Add an ArbitrarySyntax type. 2015-12-11 00:32:46 -05:00
Rob Rix
a71a4d2e36 Adjoining onto no rows is also identity. 2015-12-11 00:24:37 -05:00
Rob Rix
de75e838d0 Test that adjoining onto empty rows is identity. 2015-12-11 00:23:57 -05:00
Rob Rix
390fa5ee73 Test that adjoining mempty is idempotent. 2015-12-11 00:22:21 -05:00
Rob Rix
9d71aefd04 Add an Arbitrary instance for Row. 2015-12-11 00:20:25 -05:00
Rob Rix
91140aa8fa Add an Arbitrary instance for Line. 2015-12-11 00:19:48 -05:00
Rob Rix
e84d8804bf Add an Arbitrary instance for HTML. 2015-12-11 00:19:07 -05:00
Rob Rix
06d9a7ef04 mempty! 2015-12-11 00:13:17 -05:00
Rob Rix
23d11c1cc8 adjoin2 is idempotent for additions of and onto empty rows. 2015-12-11 00:12:28 -05:00
Rob Rix
bec2f01f02 Reflexivity requires a == a. 2015-12-11 00:05:23 -05:00
Rob Rix
873441efde Generate an arbitrary leaf. 2015-12-11 00:05:01 -05:00
Rob Rix
f59f92e1d4 Use the prop shorthand. 2015-12-10 23:59:19 -05:00
Rob Rix
9b2fda2a49 Test that equality is reflexive. 2015-12-10 23:55:31 -05:00
Rob Rix
aa9f1d6b23 Derive Show and Eq. 2015-12-10 23:55:21 -05:00
Rob Rix
9589264745 ArbitraryTerm is an instance of Arbitrary. 2015-12-10 23:45:14 -05:00