1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
use crate::DocumentBuilder;
use arbitrary::Unstructured;
use expect_test::expect;
fn gen(len: usize) -> String {
let entropy: Vec<u8> = (0..len).map(|i| i as u8).collect();
DocumentBuilder::new(&mut Unstructured::new(&entropy))
.build()
.unwrap()
.into()
}
#[test]
fn snapshot_tests() {
expect![[r#"
{
A0
}
schema {
query: A2
mutation: A2
subscription: A2
}
scalar A
type A2 {
A0: A0
A1: A0
}
interface A1 {
A0: A0
A1: A0
}
union A3 = A2
enum A0 {
A0
A1
}
input A4 {
A0: A
A1: A
}
directive @A6 on QUERY
"#]]
.assert_eq(&gen(0));
expect![[r#"
{
A0
}
schema {
query: A5
mutation: A5
subscription: A5
}
scalar CD
type A5 {
A0: IJAAAAAA
A1: IJAAAAAA
}
interface A4 {
A0: IJAAAAAA
A1: IJAAAAAA
}
union A6 = A5
enum IJAAAAAA {
A0
A1
}
enum A {
A0
A1
}
enum A0 {
A0
A1
}
enum A1 {
A0
A1
}
enum A2 {
A0
A1
}
enum A3 {
A0
A1
}
input A7 {
A0: CD
A1: CD
}
directive @A9 on QUERY
"#]]
.assert_eq(&gen(10));
expect![[r#"
{
A0
}
schema {
query: A5
mutation: A5
subscription: A5
}
scalar CD
type A5 {
A0: IJKLMNOP
A1: IJKLMNOP
}
interface A4 {
A0: IJKLMNOP
A1: IJKLMNOP
}
union A6 = A5
enum IJKLMNOP {
UVWXYZabcdefghijklmn0
qrstuvwxyz_01
E456789ABCDEFGHIJKLMNOPQRS2
gWXYZabcdefghijkAAAAAAAA3
A4
A5
A6
A7
A8
A9
}
enum A {
A0
A1
}
enum A0 {
A0
A1
}
enum A1 {
A0
A1
}
enum A2 {
A0
A1
}
enum A3 {
A0
A1
}
input A7 {
A0: CD
A1: CD
}
directive @A9 on QUERY
"#]]
.assert_eq(&gen(100));
expect![[r#"
{
A0
}
schema {
query: A5
mutation: A5
subscription: A5
}
scalar CD
type A5 {
A0: IJKLMNOP
A1: IJKLMNOP
}
"9ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz_\n\r "
interface Jdefghi {
SmnopqAAAAAAAAAA0: IJKLMNOP
A1: IJKLMNOP
A2: IJKLMNOP
A3: IJKLMNOP
A4: IJKLMNOP
A5: IJKLMNOP
A6: IJKLMNOP
A7: IJKLMNOP
A8: IJKLMNOP
A9: IJKLMNOP
A10: IJKLMNOP
A11: IJKLMNOP
A12: IJKLMNOP
A13: IJKLMNOP
A14: IJKLMNOP
A15: IJKLMNOP
A16: IJKLMNOP
A17: IJKLMNOP
A18: IJKLMNOP
A19: IJKLMNOP
A20: IJKLMNOP
A21: IJKLMNOP
A22: IJKLMNOP
A23: IJKLMNOP
A24: IJKLMNOP
A25: IJKLMNOP
A26: IJKLMNOP
A27: IJKLMNOP
A28: IJKLMNOP
A29: IJKLMNOP
}
interface A {
A0: IJKLMNOP
A1: IJKLMNOP
}
interface A0 {
A0: IJKLMNOP
A1: IJKLMNOP
}
interface A1 {
A0: IJKLMNOP
A1: IJKLMNOP
}
interface A2 {
A0: IJKLMNOP
A1: IJKLMNOP
}
interface A3 {
A0: IJKLMNOP
A1: IJKLMNOP
}
interface A4 {
A0: IJKLMNOP
A1: IJKLMNOP
}
union A6 = A5
enum IJKLMNOP {
UVWXYZabcdefghijklmn0
qrstuvwxyz_01
E456789ABCDEFGHIJKLMNOPQRS2
gWXYZabcdefghijklmnopqrs3
Gwxyz_0123456789ABCD4
cHIJKLMNOPQR5
qVWXYZabcdefghijklmnopqrst6
Sxyz_0123456789ABCDEFGHI7
sMNOPQRSTUVWXYZabcde8
Oijklmnopqrs9
}
"""CDEFGHIJKLMNOPQRSTU0123456789ABCDE"""
enum QRSTUVWXYZabcdef {
klmnop0
stuvwxyz_012341
I89ABCDEFGHIJKLMNOPQRSTUVWXYZa2
oe3
sijklm4
Aqrstuvwxyz_015
Q56789ABCDEFGHIJKLMNOPQRSTUVWX6
wb7
}
"""789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz"""
enum FZa {
Mghijklmno0
Ystuvwxyz_0123456789AB1
ABCDEFGHIJKLMNOP2
}
"""JKLMNOPQRSTUVWXYZa"""
enum mnopqrst {
yz_0123456789ABCDEFG0
UKLMNOPQRSTU1
iYZabcdefghijklmnopqrstuvw2
K_0123456789ABCDEFGHIJKL3
}
"""/$#!.-+='0123456789ABCDEFGHIJKLMNOPQRST"""
enum Z {
e89ABC0
mGHIJKLMNOPQRS1
CWXYZabcdefghijklmnopqrstuvwxy2
i13
m567894
}
"""U0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmno"""
enum A0123456789ABCDEFGHIJK {
aQRSTUVWXYZabcdefg0
uklmnopq1
Euvwxyz_01234567892
YDEFGHIJ3
iNOPQRSTUVWXYZabcd4
}
input A7 {
A0: CD
A1: CD
}
directive @A9 on QUERY
"#]]
.assert_eq(&gen(1000));
}