1 // !!! ATTENTION !!!
2 // This file is automatically generated by `scripts/mk-testcases`.
3 // Please do not edit this file directly!
4 
5 use crate::Value::{Switch, Counted, Plain, List};
6 use crate::test::{get_args, map_from_alist, same_args};
7 
8 test_expect!(test_0_testcases, "Usage: prog", &[], vec!());
9 
10 test_user_error!(test_1_testcases, "Usage: prog", &["--xxx"]);
11 
12 test_expect!(test_2_testcases, "Usage: prog [options]
13 
14 Options: -a  All.", &[], vec!(("-a", Switch(false))));
15 
16 test_expect!(test_3_testcases, "Usage: prog [options]
17 
18 Options: -a  All.", &["-a"], vec!(("-a", Switch(true))));
19 
20 test_user_error!(test_4_testcases, "Usage: prog [options]
21 
22 Options: -a  All.", &["-x"]);
23 
24 test_expect!(test_5_testcases, "Usage: prog [options]
25 
26 Options: --all  All.", &[], vec!(("--all", Switch(false))));
27 
28 test_expect!(test_6_testcases, "Usage: prog [options]
29 
30 Options: --all  All.", &["--all"], vec!(("--all", Switch(true))));
31 
32 test_user_error!(test_7_testcases, "Usage: prog [options]
33 
34 Options: --all  All.", &["--xxx"]);
35 
36 test_expect!(test_8_testcases, "Usage: prog [options]
37 
38 Options: -v, --verbose  Verbose.", &["--verbose"], vec!(("--verbose", Switch(true))));
39 
40 test_user_error!(test_9_testcases, "Usage: prog [options]
41 
42 Options: -v, --verbose  Verbose.", &["--ver"]);
43 
44 test_expect!(test_10_testcases, "Usage: prog [options]
45 
46 Options: -v, --verbose  Verbose.", &["-v"], vec!(("--verbose", Switch(true))));
47 
48 test_expect!(test_11_testcases, "Usage: prog [options]
49 
50 Options: -p PATH", &["-p", "home/"], vec!(("-p", Plain(Some("home/".to_string())))));
51 
52 test_expect!(test_12_testcases, "Usage: prog [options]
53 
54 Options: -p PATH", &["-phome/"], vec!(("-p", Plain(Some("home/".to_string())))));
55 
56 test_user_error!(test_13_testcases, "Usage: prog [options]
57 
58 Options: -p PATH", &["-p"]);
59 
60 test_expect!(test_14_testcases, "Usage: prog [options]
61 
62 Options: --path <path>", &["--path", "home/"], vec!(("--path", Plain(Some("home/".to_string())))));
63 
64 test_expect!(test_15_testcases, "Usage: prog [options]
65 
66 Options: --path <path>", &["--path=home/"], vec!(("--path", Plain(Some("home/".to_string())))));
67 
68 test_user_error!(test_16_testcases, "Usage: prog [options]
69 
70 Options: --path <path>", &["--pa", "home/"]);
71 
72 test_user_error!(test_17_testcases, "Usage: prog [options]
73 
74 Options: --path <path>", &["--pa=home/"]);
75 
76 test_user_error!(test_18_testcases, "Usage: prog [options]
77 
78 Options: --path <path>", &["--path"]);
79 
80 test_expect!(test_19_testcases, "Usage: prog [options]
81 
82 Options: -p PATH, --path=<path>  Path to files.", &["-proot"], vec!(("--path", Plain(Some("root".to_string())))));
83 
84 test_expect!(test_20_testcases, "Usage: prog [options]
85 
86 Options:    -p --path PATH  Path to files.", &["-p", "root"], vec!(("--path", Plain(Some("root".to_string())))));
87 
88 test_expect!(test_21_testcases, "Usage: prog [options]
89 
90 Options:    -p --path PATH  Path to files.", &["--path", "root"], vec!(("--path", Plain(Some("root".to_string())))));
91 
92 test_expect!(test_22_testcases, "Usage: prog [options]
93 
94 Options:
95  -p PATH  Path to files [default: ./]", &[], vec!(("-p", Plain(Some("./".to_string())))));
96 
97 test_expect!(test_23_testcases, "Usage: prog [options]
98 
99 Options:
100  -p PATH  Path to files [default: ./]", &["-phome"], vec!(("-p", Plain(Some("home".to_string())))));
101 
102 test_expect!(test_24_testcases, "UsAgE: prog [options]
103 
104 OpTiOnS: --path=<files>  Path to files
105                 [dEfAuLt: /root]", &[], vec!(("--path", Plain(Some("/root".to_string())))));
106 
107 test_expect!(test_25_testcases, "UsAgE: prog [options]
108 
109 OpTiOnS: --path=<files>  Path to files
110                 [dEfAuLt: /root]", &["--path=home"], vec!(("--path", Plain(Some("home".to_string())))));
111 
112 test_expect!(test_26_testcases, "usage: prog [options]
113 
114 options:
115     -a        Add
116     -r        Remote
117     -m <msg>  Message", &["-a", "-r", "-m", "Hello"], vec!(("-m", Plain(Some("Hello".to_string()))), ("-a", Switch(true)), ("-r", Switch(true))));
118 
119 test_expect!(test_27_testcases, "usage: prog [options]
120 
121 options:
122     -a        Add
123     -r        Remote
124     -m <msg>  Message", &["-armyourass"], vec!(("-m", Plain(Some("yourass".to_string()))), ("-a", Switch(true)), ("-r", Switch(true))));
125 
126 test_expect!(test_28_testcases, "usage: prog [options]
127 
128 options:
129     -a        Add
130     -r        Remote
131     -m <msg>  Message", &["-a", "-r"], vec!(("-m", Plain(None)), ("-a", Switch(true)), ("-r", Switch(true))));
132 
133 test_expect!(test_29_testcases, "Usage: prog [options]
134 
135 Options: --version
136          --verbose", &["--version"], vec!(("--verbose", Switch(false)), ("--version", Switch(true))));
137 
138 test_expect!(test_30_testcases, "Usage: prog [options]
139 
140 Options: --version
141          --verbose", &["--verbose"], vec!(("--verbose", Switch(true)), ("--version", Switch(false))));
142 
143 test_user_error!(test_31_testcases, "Usage: prog [options]
144 
145 Options: --version
146          --verbose", &["--ver"]);
147 
148 test_user_error!(test_32_testcases, "Usage: prog [options]
149 
150 Options: --version
151          --verbose", &["--verb"]);
152 
153 test_expect!(test_33_testcases, "usage: prog [-a -r -m <msg>]
154 
155 options:
156  -a        Add
157  -r        Remote
158  -m <msg>  Message", &["-armyourass"], vec!(("-m", Plain(Some("yourass".to_string()))), ("-a", Switch(true)), ("-r", Switch(true))));
159 
160 test_expect!(test_34_testcases, "usage: prog [-armMSG]
161 
162 options: -a        Add
163          -r        Remote
164          -m <msg>  Message", &["-a", "-r", "-m", "Hello"], vec!(("-m", Plain(Some("Hello".to_string()))), ("-a", Switch(true)), ("-r", Switch(true))));
165 
166 test_expect!(test_35_testcases, "usage: prog -a -b
167 
168 options:
169  -a
170  -b", &["-a", "-b"], vec!(("-a", Switch(true)), ("-b", Switch(true))));
171 
172 test_expect!(test_36_testcases, "usage: prog -a -b
173 
174 options:
175  -a
176  -b", &["-b", "-a"], vec!(("-a", Switch(true)), ("-b", Switch(true))));
177 
178 test_user_error!(test_37_testcases, "usage: prog -a -b
179 
180 options:
181  -a
182  -b", &["-a"]);
183 
184 test_user_error!(test_38_testcases, "usage: prog -a -b
185 
186 options:
187  -a
188  -b", &[]);
189 
190 test_expect!(test_39_testcases, "usage: prog (-a -b)
191 
192 options: -a
193          -b", &["-a", "-b"], vec!(("-a", Switch(true)), ("-b", Switch(true))));
194 
195 test_expect!(test_40_testcases, "usage: prog (-a -b)
196 
197 options: -a
198          -b", &["-b", "-a"], vec!(("-a", Switch(true)), ("-b", Switch(true))));
199 
200 test_user_error!(test_41_testcases, "usage: prog (-a -b)
201 
202 options: -a
203          -b", &["-a"]);
204 
205 test_user_error!(test_42_testcases, "usage: prog (-a -b)
206 
207 options: -a
208          -b", &[]);
209 
210 test_expect!(test_43_testcases, "usage: prog [-a] -b
211 
212 options: -a
213  -b", &["-a", "-b"], vec!(("-a", Switch(true)), ("-b", Switch(true))));
214 
215 test_expect!(test_44_testcases, "usage: prog [-a] -b
216 
217 options: -a
218  -b", &["-b", "-a"], vec!(("-a", Switch(true)), ("-b", Switch(true))));
219 
220 test_user_error!(test_45_testcases, "usage: prog [-a] -b
221 
222 options: -a
223  -b", &["-a"]);
224 
225 test_expect!(test_46_testcases, "usage: prog [-a] -b
226 
227 options: -a
228  -b", &["-b"], vec!(("-a", Switch(false)), ("-b", Switch(true))));
229 
230 test_user_error!(test_47_testcases, "usage: prog [-a] -b
231 
232 options: -a
233  -b", &[]);
234 
235 test_expect!(test_48_testcases, "usage: prog [(-a -b)]
236 
237 options: -a
238          -b", &["-a", "-b"], vec!(("-a", Switch(true)), ("-b", Switch(true))));
239 
240 test_expect!(test_49_testcases, "usage: prog [(-a -b)]
241 
242 options: -a
243          -b", &["-b", "-a"], vec!(("-a", Switch(true)), ("-b", Switch(true))));
244 
245 test_user_error!(test_50_testcases, "usage: prog [(-a -b)]
246 
247 options: -a
248          -b", &["-a"]);
249 
250 test_user_error!(test_51_testcases, "usage: prog [(-a -b)]
251 
252 options: -a
253          -b", &["-b"]);
254 
255 test_expect!(test_52_testcases, "usage: prog [(-a -b)]
256 
257 options: -a
258          -b", &[], vec!(("-a", Switch(false)), ("-b", Switch(false))));
259 
260 test_user_error!(test_53_testcases, "usage: prog (-a|-b)
261 
262 options: -a
263          -b", &["-a", "-b"]);
264 
265 test_user_error!(test_54_testcases, "usage: prog (-a|-b)
266 
267 options: -a
268          -b", &[]);
269 
270 test_expect!(test_55_testcases, "usage: prog (-a|-b)
271 
272 options: -a
273          -b", &["-a"], vec!(("-a", Switch(true)), ("-b", Switch(false))));
274 
275 test_expect!(test_56_testcases, "usage: prog (-a|-b)
276 
277 options: -a
278          -b", &["-b"], vec!(("-a", Switch(false)), ("-b", Switch(true))));
279 
280 test_user_error!(test_57_testcases, "usage: prog [ -a | -b ]
281 
282 options: -a
283          -b", &["-a", "-b"]);
284 
285 test_expect!(test_58_testcases, "usage: prog [ -a | -b ]
286 
287 options: -a
288          -b", &[], vec!(("-a", Switch(false)), ("-b", Switch(false))));
289 
290 test_expect!(test_59_testcases, "usage: prog [ -a | -b ]
291 
292 options: -a
293          -b", &["-a"], vec!(("-a", Switch(true)), ("-b", Switch(false))));
294 
295 test_expect!(test_60_testcases, "usage: prog [ -a | -b ]
296 
297 options: -a
298          -b", &["-b"], vec!(("-a", Switch(false)), ("-b", Switch(true))));
299 
300 test_expect!(test_61_testcases, "usage: prog <arg>", &["10"], vec!(("<arg>", Plain(Some("10".to_string())))));
301 
302 test_user_error!(test_62_testcases, "usage: prog <arg>", &["10", "20"]);
303 
304 test_user_error!(test_63_testcases, "usage: prog <arg>", &[]);
305 
306 test_expect!(test_64_testcases, "usage: prog [<arg>]", &["10"], vec!(("<arg>", Plain(Some("10".to_string())))));
307 
308 test_user_error!(test_65_testcases, "usage: prog [<arg>]", &["10", "20"]);
309 
310 test_expect!(test_66_testcases, "usage: prog [<arg>]", &[], vec!(("<arg>", Plain(None))));
311 
312 test_expect!(test_67_testcases, "usage: prog <kind> <name> <type>", &["10", "20", "40"], vec!(("<type>", Plain(Some("40".to_string()))), ("<kind>", Plain(Some("10".to_string()))), ("<name>", Plain(Some("20".to_string())))));
313 
314 test_user_error!(test_68_testcases, "usage: prog <kind> <name> <type>", &["10", "20"]);
315 
316 test_user_error!(test_69_testcases, "usage: prog <kind> <name> <type>", &[]);
317 
318 test_expect!(test_70_testcases, "usage: prog <kind> [<name> <type>]", &["10", "20", "40"], vec!(("<type>", Plain(Some("40".to_string()))), ("<kind>", Plain(Some("10".to_string()))), ("<name>", Plain(Some("20".to_string())))));
319 
320 test_expect!(test_71_testcases, "usage: prog <kind> [<name> <type>]", &["10", "20"], vec!(("<type>", Plain(None)), ("<kind>", Plain(Some("10".to_string()))), ("<name>", Plain(Some("20".to_string())))));
321 
322 test_user_error!(test_72_testcases, "usage: prog <kind> [<name> <type>]", &[]);
323 
324 test_user_error!(test_73_testcases, "usage: prog [<kind> | <name> <type>]", &["10", "20", "40"]);
325 
326 test_expect!(test_74_testcases, "usage: prog [<kind> | <name> <type>]", &["20", "40"], vec!(("<type>", Plain(Some("40".to_string()))), ("<kind>", Plain(None)), ("<name>", Plain(Some("20".to_string())))));
327 
328 test_expect!(test_75_testcases, "usage: prog [<kind> | <name> <type>]", &[], vec!(("<type>", Plain(None)), ("<kind>", Plain(None)), ("<name>", Plain(None))));
329 
330 test_expect!(test_76_testcases, "usage: prog (<kind> --all | <name>)
331 
332 options:
333  --all", &["10", "--all"], vec!(("--all", Switch(true)), ("<kind>", Plain(Some("10".to_string()))), ("<name>", Plain(None))));
334 
335 test_expect!(test_77_testcases, "usage: prog (<kind> --all | <name>)
336 
337 options:
338  --all", &["10"], vec!(("--all", Switch(false)), ("<kind>", Plain(None)), ("<name>", Plain(Some("10".to_string())))));
339 
340 test_user_error!(test_78_testcases, "usage: prog (<kind> --all | <name>)
341 
342 options:
343  --all", &[]);
344 
345 test_expect!(test_79_testcases, "usage: prog [<name> <name>]", &["10", "20"], vec!(("<name>", List(vec!("10".to_string(), "20".to_string())))));
346 
347 test_expect!(test_80_testcases, "usage: prog [<name> <name>]", &["10"], vec!(("<name>", List(vec!("10".to_string())))));
348 
349 test_expect!(test_81_testcases, "usage: prog [<name> <name>]", &[], vec!(("<name>", List(vec!()))));
350 
351 test_expect!(test_82_testcases, "usage: prog [(<name> <name>)]", &["10", "20"], vec!(("<name>", List(vec!("10".to_string(), "20".to_string())))));
352 
353 test_user_error!(test_83_testcases, "usage: prog [(<name> <name>)]", &["10"]);
354 
355 test_expect!(test_84_testcases, "usage: prog [(<name> <name>)]", &[], vec!(("<name>", List(vec!()))));
356 
357 test_expect!(test_85_testcases, "usage: prog NAME...", &["10", "20"], vec!(("NAME", List(vec!("10".to_string(), "20".to_string())))));
358 
359 test_expect!(test_86_testcases, "usage: prog NAME...", &["10"], vec!(("NAME", List(vec!("10".to_string())))));
360 
361 test_user_error!(test_87_testcases, "usage: prog NAME...", &[]);
362 
363 test_expect!(test_88_testcases, "usage: prog [NAME]...", &["10", "20"], vec!(("NAME", List(vec!("10".to_string(), "20".to_string())))));
364 
365 test_expect!(test_89_testcases, "usage: prog [NAME]...", &["10"], vec!(("NAME", List(vec!("10".to_string())))));
366 
367 test_expect!(test_90_testcases, "usage: prog [NAME]...", &[], vec!(("NAME", List(vec!()))));
368 
369 test_expect!(test_91_testcases, "usage: prog [NAME...]", &["10", "20"], vec!(("NAME", List(vec!("10".to_string(), "20".to_string())))));
370 
371 test_expect!(test_92_testcases, "usage: prog [NAME...]", &["10"], vec!(("NAME", List(vec!("10".to_string())))));
372 
373 test_expect!(test_93_testcases, "usage: prog [NAME...]", &[], vec!(("NAME", List(vec!()))));
374 
375 test_expect!(test_94_testcases, "usage: prog [NAME [NAME ...]]", &["10", "20"], vec!(("NAME", List(vec!("10".to_string(), "20".to_string())))));
376 
377 test_expect!(test_95_testcases, "usage: prog [NAME [NAME ...]]", &["10"], vec!(("NAME", List(vec!("10".to_string())))));
378 
379 test_expect!(test_96_testcases, "usage: prog [NAME [NAME ...]]", &[], vec!(("NAME", List(vec!()))));
380 
381 test_expect!(test_97_testcases, "usage: prog (NAME | --foo NAME)
382 
383 options: --foo", &["10"], vec!(("NAME", Plain(Some("10".to_string()))), ("--foo", Switch(false))));
384 
385 test_expect!(test_98_testcases, "usage: prog (NAME | --foo NAME)
386 
387 options: --foo", &["--foo", "10"], vec!(("NAME", Plain(Some("10".to_string()))), ("--foo", Switch(true))));
388 
389 test_user_error!(test_99_testcases, "usage: prog (NAME | --foo NAME)
390 
391 options: --foo", &["--foo=10"]);
392 
393 test_expect!(test_100_testcases, "usage: prog (NAME | --foo) [--bar | NAME]
394 
395 options: --foo
396 options: --bar", &["10"], vec!(("--bar", Switch(false)), ("NAME", List(vec!("10".to_string()))), ("--foo", Switch(false))));
397 
398 test_expect!(test_101_testcases, "usage: prog (NAME | --foo) [--bar | NAME]
399 
400 options: --foo
401 options: --bar", &["10", "20"], vec!(("--bar", Switch(false)), ("NAME", List(vec!("10".to_string(), "20".to_string()))), ("--foo", Switch(false))));
402 
403 test_expect!(test_102_testcases, "usage: prog (NAME | --foo) [--bar | NAME]
404 
405 options: --foo
406 options: --bar", &["--foo", "--bar"], vec!(("--bar", Switch(true)), ("NAME", List(vec!())), ("--foo", Switch(true))));
407 
408 test_expect!(test_103_testcases, "Naval Fate.
409 
410 Usage:
411   prog ship new <name>...
412   prog ship [<name>] move <x> <y> [--speed=<kn>]
413   prog ship shoot <x> <y>
414   prog mine (set|remove) <x> <y> [--moored|--drifting]
415   prog -h | --help
416   prog --version
417 
418 Options:
419   -h --help     Show this screen.
420   --version     Show version.
421   --speed=<kn>  Speed in knots [default: 10].
422   --moored      Mored (anchored) mine.
423   --drifting    Drifting mine.", &["ship", "Guardian", "move", "150", "300", "--speed=20"], vec!(("shoot", Switch(false)), ("--moored", Switch(false)), ("--drifting", Switch(false)), ("move", Switch(true)), ("--speed", Plain(Some("20".to_string()))), ("mine", Switch(false)), ("new", Switch(false)), ("--version", Switch(false)), ("set", Switch(false)), ("remove", Switch(false)), ("<name>", List(vec!("Guardian".to_string()))), ("ship", Switch(true)), ("<x>", Plain(Some("150".to_string()))), ("<y>", Plain(Some("300".to_string()))), ("--help", Switch(false))));
424 
425 test_expect!(test_104_testcases, "usage: prog --hello", &["--hello"], vec!(("--hello", Switch(true))));
426 
427 test_expect!(test_105_testcases, "usage: prog [--hello=<world>]", &[], vec!(("--hello", Plain(None))));
428 
429 test_expect!(test_106_testcases, "usage: prog [--hello=<world>]", &["--hello", "wrld"], vec!(("--hello", Plain(Some("wrld".to_string())))));
430 
431 test_expect!(test_107_testcases, "usage: prog [-o]", &[], vec!(("-o", Switch(false))));
432 
433 test_expect!(test_108_testcases, "usage: prog [-o]", &["-o"], vec!(("-o", Switch(true))));
434 
435 test_expect!(test_109_testcases, "usage: prog [-opr]", &["-op"], vec!(("-o", Switch(true)), ("-p", Switch(true)), ("-r", Switch(false))));
436 
437 test_expect!(test_110_testcases, "usage: prog --aabb | --aa", &["--aa"], vec!(("--aa", Switch(true)), ("--aabb", Switch(false))));
438 
439 test_user_error!(test_111_testcases, "usage: prog --aabb | --aa", &["--a"]);
440 
441 test_expect!(test_112_testcases, "Usage: prog -v", &["-v"], vec!(("-v", Switch(true))));
442 
443 test_expect!(test_113_testcases, "Usage: prog [-v -v]", &[], vec!(("-v", Counted(0))));
444 
445 test_expect!(test_114_testcases, "Usage: prog [-v -v]", &["-v"], vec!(("-v", Counted(1))));
446 
447 test_expect!(test_115_testcases, "Usage: prog [-v -v]", &["-vv"], vec!(("-v", Counted(2))));
448 
449 test_user_error!(test_116_testcases, "Usage: prog -v ...", &[]);
450 
451 test_expect!(test_117_testcases, "Usage: prog -v ...", &["-v"], vec!(("-v", Counted(1))));
452 
453 test_expect!(test_118_testcases, "Usage: prog -v ...", &["-vv"], vec!(("-v", Counted(2))));
454 
455 test_expect!(test_119_testcases, "Usage: prog -v ...", &["-vvvvvv"], vec!(("-v", Counted(6))));
456 
457 test_expect!(test_120_testcases, "Usage: prog [-v | -vv | -vvv]
458 
459 This one is probably most readable user-friednly variant.", &[], vec!(("-v", Counted(0))));
460 
461 test_expect!(test_121_testcases, "Usage: prog [-v | -vv | -vvv]
462 
463 This one is probably most readable user-friednly variant.", &["-v"], vec!(("-v", Counted(1))));
464 
465 test_expect!(test_122_testcases, "Usage: prog [-v | -vv | -vvv]
466 
467 This one is probably most readable user-friednly variant.", &["-vv"], vec!(("-v", Counted(2))));
468 
469 test_user_error!(test_123_testcases, "Usage: prog [-v | -vv | -vvv]
470 
471 This one is probably most readable user-friednly variant.", &["-vvvv"]);
472 
473 test_expect!(test_124_testcases, "usage: prog [--ver --ver]", &["--ver", "--ver"], vec!(("--ver", Counted(2))));
474 
475 test_expect!(test_125_testcases, "usage: prog [go]", &["go"], vec!(("go", Switch(true))));
476 
477 test_expect!(test_126_testcases, "usage: prog [go go]", &[], vec!(("go", Counted(0))));
478 
479 test_expect!(test_127_testcases, "usage: prog [go go]", &["go"], vec!(("go", Counted(1))));
480 
481 test_expect!(test_128_testcases, "usage: prog [go go]", &["go", "go"], vec!(("go", Counted(2))));
482 
483 test_user_error!(test_129_testcases, "usage: prog [go go]", &["go", "go", "go"]);
484 
485 test_expect!(test_130_testcases, "usage: prog go...", &["go", "go", "go", "go", "go"], vec!(("go", Counted(5))));
486 
487 test_expect!(test_131_testcases, "usage: prog [options] [-a]
488 
489 options: -a
490          -b", &["-a"], vec!(("-a", Switch(true)), ("-b", Switch(false))));
491 
492 test_user_error!(test_132_testcases, "usage: prog [options] [-a]
493 
494 options: -a
495          -b", &["-aa"]);
496 
497 test_expect!(test_133_testcases, "Usage: prog [options] A
498 
499 Options:
500     -q  Be quiet
501     -v  Be verbose.", &["arg"], vec!(("A", Plain(Some("arg".to_string()))), ("-v", Switch(false)), ("-q", Switch(false))));
502 
503 test_expect!(test_134_testcases, "Usage: prog [options] A
504 
505 Options:
506     -q  Be quiet
507     -v  Be verbose.", &["-v", "arg"], vec!(("A", Plain(Some("arg".to_string()))), ("-v", Switch(true)), ("-q", Switch(false))));
508 
509 test_expect!(test_135_testcases, "Usage: prog [options] A
510 
511 Options:
512     -q  Be quiet
513     -v  Be verbose.", &["-q", "arg"], vec!(("A", Plain(Some("arg".to_string()))), ("-v", Switch(false)), ("-q", Switch(true))));
514 
515 test_expect!(test_136_testcases, "usage: prog [-]", &["-"], vec!(("-", Switch(true))));
516 
517 test_expect!(test_137_testcases, "usage: prog [-]", &[], vec!(("-", Switch(false))));
518 
519 test_expect!(test_138_testcases, "usage: prog [NAME [NAME ...]]", &["a", "b"], vec!(("NAME", List(vec!("a".to_string(), "b".to_string())))));
520 
521 test_expect!(test_139_testcases, "usage: prog [NAME [NAME ...]]", &[], vec!(("NAME", List(vec!()))));
522 
523 test_expect!(test_140_testcases, "usage: prog [options]
524 
525 options:
526  -a        Add
527  -m <msg>  Message", &["-a"], vec!(("-m", Plain(None)), ("-a", Switch(true))));
528 
529 test_expect!(test_141_testcases, "usage: prog --hello", &["--hello"], vec!(("--hello", Switch(true))));
530 
531 test_expect!(test_142_testcases, "usage: prog [--hello=<world>]", &[], vec!(("--hello", Plain(None))));
532 
533 test_expect!(test_143_testcases, "usage: prog [--hello=<world>]", &["--hello", "wrld"], vec!(("--hello", Plain(Some("wrld".to_string())))));
534 
535 test_expect!(test_144_testcases, "usage: prog [-o]", &[], vec!(("-o", Switch(false))));
536 
537 test_expect!(test_145_testcases, "usage: prog [-o]", &["-o"], vec!(("-o", Switch(true))));
538 
539 test_expect!(test_146_testcases, "usage: prog [-opr]", &["-op"], vec!(("-o", Switch(true)), ("-p", Switch(true)), ("-r", Switch(false))));
540 
541 test_expect!(test_147_testcases, "usage: git [-v | --verbose]", &["-v"], vec!(("-v", Switch(true)), ("--verbose", Switch(false))));
542 
543 test_expect!(test_148_testcases, "usage: git remote [-v | --verbose]", &["remote", "-v"], vec!(("-v", Switch(true)), ("remote", Switch(true)), ("--verbose", Switch(false))));
544 
545 test_expect!(test_149_testcases, "usage: prog", &[], vec!());
546 
547 test_expect!(test_150_testcases, "usage: prog
548            prog <a> <b>", &["1", "2"], vec!(("<a>", Plain(Some("1".to_string()))), ("<b>", Plain(Some("2".to_string())))));
549 
550 test_expect!(test_151_testcases, "usage: prog
551            prog <a> <b>", &[], vec!(("<a>", Plain(None)), ("<b>", Plain(None))));
552 
553 test_expect!(test_152_testcases, "usage: prog <a> <b>
554            prog", &[], vec!(("<a>", Plain(None)), ("<b>", Plain(None))));
555 
556 test_expect!(test_153_testcases, "usage: prog [--file=<f>]", &[], vec!(("--file", Plain(None))));
557 
558 test_expect!(test_154_testcases, "usage: prog [--file=<f>]
559 
560 options: --file <a>", &[], vec!(("--file", Plain(None))));
561 
562 test_expect!(test_155_testcases, "Usage: prog [-a <host:port>]
563 
564 Options: -a, --address <host:port>  TCP address [default: localhost:6283].", &[], vec!(("--address", Plain(Some("localhost:6283".to_string())))));
565 
566 test_expect!(test_156_testcases, "usage: prog --long=<arg> ...", &["--long", "one"], vec!(("--long", List(vec!("one".to_string())))));
567 
568 test_expect!(test_157_testcases, "usage: prog --long=<arg> ...", &["--long", "one", "--long", "two"], vec!(("--long", List(vec!("one".to_string(), "two".to_string())))));
569 
570 test_expect!(test_158_testcases, "usage: prog (go <direction> --speed=<km/h>)...", &["go", "left", "--speed=5", "go", "right", "--speed=9"], vec!(("go", Counted(2)), ("<direction>", List(vec!("left".to_string(), "right".to_string()))), ("--speed", List(vec!("5".to_string(), "9".to_string())))));
571 
572 test_expect!(test_159_testcases, "usage: prog [options] -a
573 
574 options: -a", &["-a"], vec!(("-a", Switch(true))));
575 
576 test_expect!(test_160_testcases, "usage: prog [-o <o>]...
577 
578 options: -o <o>  [default: x]", &["-o", "this", "-o", "that"], vec!(("-o", List(vec!("this".to_string(), "that".to_string())))));
579 
580 test_expect!(test_161_testcases, "usage: prog [-o <o>]...
581 
582 options: -o <o>  [default: x]", &[], vec!(("-o", List(vec!("x".to_string())))));
583 
584 test_expect!(test_162_testcases, "usage: prog [-o <o>]...
585 
586 options: -o <o>  [default: x y]", &["-o", "this"], vec!(("-o", List(vec!("this".to_string())))));
587 
588 test_expect!(test_163_testcases, "usage: prog [-o <o>]...
589 
590 options: -o <o>  [default: x y]", &[], vec!(("-o", List(vec!("x".to_string(), "y".to_string())))));
591 
592 test_expect!(test_164_testcases, "usage: prog -pPATH
593 
594 options: -p PATH", &["-pHOME"], vec!(("-p", Plain(Some("HOME".to_string())))));
595 
596 test_expect!(test_165_testcases, "Usage: foo (--xx=X|--yy=Y)...", &["--xx=1", "--yy=2"], vec!(("--yy", List(vec!("2".to_string()))), ("--xx", List(vec!("1".to_string())))));
597 
598 test_expect!(test_166_testcases, "usage: prog [<input file>]", &["f.txt"], vec!(("<input file>", Plain(Some("f.txt".to_string())))));
599 
600 test_expect!(test_167_testcases, "usage: prog [--input=<file name>]...", &["--input", "a.txt", "--input=b.txt"], vec!(("--input", List(vec!("a.txt".to_string(), "b.txt".to_string())))));
601 
602 test_expect!(test_168_testcases, "usage: prog good [options]
603            prog fail [options]
604 
605 options: --loglevel=N", &["fail", "--loglevel", "5"], vec!(("fail", Switch(true)), ("good", Switch(false)), ("--loglevel", Plain(Some("5".to_string())))));
606 
607 test_expect!(test_169_testcases, "usage:prog --foo", &["--foo"], vec!(("--foo", Switch(true))));
608 
609 test_expect!(test_170_testcases, "PROGRAM USAGE: prog --foo", &["--foo"], vec!(("--foo", Switch(true))));
610 
611 test_expect!(test_171_testcases, "Usage: prog --foo
612            prog --bar
613 NOT PART OF SECTION", &["--foo"], vec!(("--bar", Switch(false)), ("--foo", Switch(true))));
614 
615 test_expect!(test_172_testcases, "Usage:
616  prog --foo
617  prog --bar
618 
619 NOT PART OF SECTION", &["--foo"], vec!(("--bar", Switch(false)), ("--foo", Switch(true))));
620 
621 test_expect!(test_173_testcases, "Usage:
622  prog --foo
623  prog --bar
624 NOT PART OF SECTION", &["--foo"], vec!(("--bar", Switch(false)), ("--foo", Switch(true))));
625 
626 test_expect!(test_174_testcases, "Usage: prog [options]
627 
628 global options: --foo
629 local options: --baz
630                --bar
631 other options:
632  --egg
633  --spam
634 -not-an-option-", &["--bar", "--egg"], vec!(("--bar", Switch(true)), ("--egg", Switch(true)), ("--spam", Switch(false))));
635 
636 test_expect!(test_175_testcases, "Usage: prog [-a] [--] [<arg>...]", &["-a"], vec!(("<arg>", List(vec!())), ("-a", Switch(true))));
637 
638 test_expect!(test_176_testcases, "Usage: prog [-a] [--] [<arg>...]", &["--"], vec!(("<arg>", List(vec!())), ("-a", Switch(false))));
639 
640 test_expect!(test_177_testcases, "Usage: prog [-a] [--] [<arg>...]", &["-a", "--", "-b"], vec!(("<arg>", List(vec!("-b".to_string()))), ("-a", Switch(true))));
641 
642 test_expect!(test_178_testcases, "Usage: prog [-a] [--] [<arg>...]", &["-a", "--", "-a"], vec!(("<arg>", List(vec!("-a".to_string()))), ("-a", Switch(true))));
643 
644 test_expect!(test_179_testcases, "Usage: prog [-a] [--] [<arg>...]", &["--", "-a"], vec!(("<arg>", List(vec!("-a".to_string()))), ("-a", Switch(false))));
645 
646 test_expect!(test_180_testcases, "Usage: prog test [options] [--] [<args>...]", &["test", "a", "--", "-b"], vec!(("<args>", List(vec!("a".to_string(), "-b".to_string())))));
647 
648 test_expect!(test_181_testcases, "Usage: prog test [options] [--] [<args>...]", &["test", "--", "-b"], vec!(("<args>", List(vec!("-b".to_string())))));
649 
650 test_user_error!(test_182_testcases, "Usage: prog test [options] [--] [<args>...]", &["test", "a", "-b"]);
651 
652 test_expect!(test_183_testcases, "Usage: prog test [options] [--] [<args>...]", &["test", "--", "-b", "--"], vec!(("<args>", List(vec!("-b".to_string(), "--".to_string())))));
653 
654 test_expect!(test_184_testcases, "Usage: prog [options]
655 
656 Options:
657   -a ...  Foo", &[], vec!(("-a", Counted(0))));
658 
659 test_expect!(test_185_testcases, "Usage: prog [options]
660 
661 Options:
662   -a ...  Foo", &["-a"], vec!(("-a", Counted(1))));
663 
664 test_expect!(test_186_testcases, "Usage: prog [options]
665 
666 Options:
667   -a ...  Foo", &["-a", "-a"], vec!(("-a", Counted(2))));
668 
669 test_expect!(test_187_testcases, "Usage: prog [options]
670 
671 Options:
672   -a ...  Foo", &["-aa"], vec!(("-a", Counted(2))));
673 
674 test_expect!(test_188_testcases, "Usage: prog [options]
675 
676 Options:
677   -a ...  Foo", &["-a", "-a", "-a"], vec!(("-a", Counted(3))));
678 
679 test_expect!(test_189_testcases, "Usage: prog [options]
680 
681 Options:
682   -a ...  Foo", &["-aaa"], vec!(("-a", Counted(3))));
683 
684 test_expect!(test_190_testcases, "Usage: prog [options]
685 
686 Options:
687   -a, --all ...  Foo", &[], vec!(("-a", Counted(0))));
688 
689 test_expect!(test_191_testcases, "Usage: prog [options]
690 
691 Options:
692   -a, --all ...  Foo", &["-a"], vec!(("-a", Counted(1))));
693 
694 test_expect!(test_192_testcases, "Usage: prog [options]
695 
696 Options:
697   -a, --all ...  Foo", &["-a", "--all"], vec!(("-a", Counted(2))));
698 
699 test_expect!(test_193_testcases, "Usage: prog [options]
700 
701 Options:
702   -a, --all ...  Foo", &["-aa", "--all"], vec!(("-a", Counted(3))));
703 
704 test_expect!(test_194_testcases, "Usage: prog [options]
705 
706 Options:
707   -a, --all ...  Foo", &["--all"], vec!(("-a", Counted(1))));
708 
709 test_expect!(test_195_testcases, "Usage: prog [options]
710 
711 Options:
712   -a, --all ...  Foo", &["--all", "--all"], vec!(("-a", Counted(2))));
713 
714 test_expect!(test_196_testcases, "Usage: prog [options]
715 
716 Options:
717   -a, --all ARG ...  Foo", &[], vec!(("-a", List(vec!()))));
718 
719 test_expect!(test_197_testcases, "Usage: prog [options]
720 
721 Options:
722   -a, --all ARG ...  Foo", &["-a", "1"], vec!(("-a", List(vec!("1".to_string())))));
723 
724 test_expect!(test_198_testcases, "Usage: prog [options]
725 
726 Options:
727   -a, --all ARG ...  Foo", &["-a", "2", "--all", "3"], vec!(("-a", List(vec!("2".to_string(), "3".to_string())))));
728 
729 test_expect!(test_199_testcases, "Usage: prog [options]
730 
731 Options:
732   -a, --all ARG ...  Foo", &["-a4", "-a5", "--all", "6"], vec!(("-a", List(vec!("4".to_string(), "5".to_string(), "6".to_string())))));
733 
734 test_expect!(test_200_testcases, "Usage: prog [options]
735 
736 Options:
737   -a, --all ARG ...  Foo", &["--all", "7"], vec!(("-a", List(vec!("7".to_string())))));
738 
739 test_expect!(test_201_testcases, "Usage: prog [options]
740 
741 Options:
742   -a, --all ARG ...  Foo", &["--all", "8", "--all", "9"], vec!(("-a", List(vec!("8".to_string(), "9".to_string())))));
743 
744 test_expect!(test_202_testcases, "Usage: prog [options]
745 
746 Options:
747   --all ...  Foo", &[], vec!(("--all", Counted(0))));
748 
749 test_expect!(test_203_testcases, "Usage: prog [options]
750 
751 Options:
752   --all ...  Foo", &["--all"], vec!(("--all", Counted(1))));
753 
754 test_expect!(test_204_testcases, "Usage: prog [options]
755 
756 Options:
757   --all ...  Foo", &["--all", "--all"], vec!(("--all", Counted(2))));
758 
759 test_expect!(test_205_testcases, "Usage: prog [options]
760 
761 Options:
762   --all=ARG ...  Foo", &[], vec!(("--all", List(vec!()))));
763 
764 test_expect!(test_206_testcases, "Usage: prog [options]
765 
766 Options:
767   --all=ARG ...  Foo", &["--all", "1"], vec!(("--all", List(vec!("1".to_string())))));
768 
769 test_expect!(test_207_testcases, "Usage: prog [options]
770 
771 Options:
772   --all=ARG ...  Foo", &["--all", "2", "--all", "3"], vec!(("--all", List(vec!("2".to_string(), "3".to_string())))));
773 
774 test_user_error!(test_208_testcases, "Usage: prog [options]
775 
776 Options:
777   --all  ...  Foo", &["--all", "--all"]);
778 
779 test_user_error!(test_209_testcases, "Usage: prog [options]
780 
781 Options:
782   --all ARG  ...  Foo", &["--all", "foo", "--all", "bar"]);
783 
784 test_expect!(test_210_testcases, "Usage: prog --speed=ARG", &["--speed", "20"], vec!(("--speed", Plain(Some("20".to_string())))));
785 
786 test_expect!(test_211_testcases, "Usage: prog --speed=ARG", &["--speed=20"], vec!(("--speed", Plain(Some("20".to_string())))));
787 
788 test_expect!(test_212_testcases, "Usage: prog --speed=ARG", &["--speed=-20"], vec!(("--speed", Plain(Some("-20".to_string())))));
789 
790 test_expect!(test_213_testcases, "Usage: prog --speed=ARG", &["--speed", "-20"], vec!(("--speed", Plain(Some("-20".to_string())))));
791 
792 test_expect!(test_214_testcases, "usage: prog [--datetime=<regex>]
793 
794 options: --datetime=<regex>    Regex for datetimes [default: ^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}]", &[], vec!(("--datetime", Plain(Some("^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}".to_string())))));
795 
796 test_expect!(test_215_testcases, "Usage: prog [options]
797 
798 Options:
799   -x ARG
800   -y", &["-x-y"], vec!(("-x", Plain(Some("-y".to_string())))));
801 
802