@litert/typeguard 1.3.0 → 1.4.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (61) hide show
  1. package/CHANGES.md +11 -1
  2. package/lib/BuiltInTypeCompiler.d.ts +1 -1
  3. package/lib/BuiltInTypeCompiler.js +4 -4
  4. package/lib/BuiltInTypeCompiler.js.map +1 -1
  5. package/lib/BuiltInTypes.d.ts +1 -1
  6. package/lib/BuiltInTypes.js +1 -1
  7. package/lib/Common.d.ts +6 -5
  8. package/lib/Common.d.ts.map +1 -1
  9. package/lib/Common.js +1 -1
  10. package/lib/Compiler.d.ts +1 -1
  11. package/lib/Compiler.d.ts.map +1 -1
  12. package/lib/Compiler.js +58 -36
  13. package/lib/Compiler.js.map +1 -1
  14. package/lib/Context.d.ts +2 -2
  15. package/lib/Context.d.ts.map +1 -1
  16. package/lib/Context.js +2 -2
  17. package/lib/Context.js.map +1 -1
  18. package/lib/FilterCompiler.d.ts +3 -3
  19. package/lib/FilterCompiler.d.ts.map +1 -1
  20. package/lib/FilterCompiler.js +4 -4
  21. package/lib/FilterCompiler.js.map +1 -1
  22. package/lib/InlineCompiler.d.ts +2 -2
  23. package/lib/InlineCompiler.d.ts.map +1 -1
  24. package/lib/InlineCompiler.js +5 -7
  25. package/lib/InlineCompiler.js.map +1 -1
  26. package/lib/Internal.d.ts +9 -4
  27. package/lib/Internal.d.ts.map +1 -1
  28. package/lib/Internal.js +45 -4
  29. package/lib/Internal.js.map +1 -1
  30. package/lib/Modifiers.d.ts +2 -1
  31. package/lib/Modifiers.d.ts.map +1 -1
  32. package/lib/Modifiers.js +3 -2
  33. package/lib/Modifiers.js.map +1 -1
  34. package/lib/index.d.ts +1 -1
  35. package/lib/index.js +1 -1
  36. package/lib/langs/JavaScript.d.ts +1 -1
  37. package/lib/langs/JavaScript.js +2 -2
  38. package/package.json +10 -12
  39. package/src/examples/quick-start.ts +5 -1
  40. package/src/lib/BuiltInTypeCompiler.ts +4 -4
  41. package/src/lib/BuiltInTypes.ts +1 -1
  42. package/src/lib/Common.ts +5 -4
  43. package/src/lib/Compiler.ts +67 -40
  44. package/src/lib/Context.ts +2 -2
  45. package/src/lib/FilterCompiler.ts +3 -3
  46. package/src/lib/InlineCompiler.ts +6 -9
  47. package/src/lib/Internal.ts +73 -4
  48. package/src/lib/Modifiers.ts +3 -1
  49. package/src/lib/index.ts +1 -1
  50. package/src/lib/langs/JavaScript.ts +2 -2
  51. package/src/test/00-all.ts +0 -35
  52. package/src/test/01-elemental-types.ts +0 -1963
  53. package/src/test/02-array-and-list.ts +0 -197
  54. package/src/test/03-tuple.ts +0 -220
  55. package/src/test/04-from-string.ts +0 -1488
  56. package/src/test/05-string-asserts.ts +0 -794
  57. package/src/test/06-structure.ts +0 -277
  58. package/src/test/07-modifiers.ts +0 -220
  59. package/src/test/08-map-and-dict.ts +0 -151
  60. package/src/test/09-exceptions.ts +0 -67
  61. package/src/test/abstracts.ts +0 -211
@@ -1,1963 +0,0 @@
1
- /* eslint-disable @typescript-eslint/no-loss-of-precision */
2
- /**
3
- * Copyright 2022 Angus Fenying <fenying@litert.org>
4
- *
5
- * Licensed under the Apache License, Version 2.0 (the "License");
6
- * you may not use this file except in compliance with the License.
7
- * You may obtain a copy of the License at
8
- *
9
- * https://www.apache.org/licenses/LICENSE-2.0
10
- *
11
- * Unless required by applicable law or agreed to in writing, software
12
- * distributed under the License is distributed on an "AS IS" BASIS,
13
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14
- * See the License for the specific language governing permissions and
15
- * limitations under the License.
16
- */
17
-
18
- import { createTestDefinition, defaultItemss, ITestSuite } from './abstracts';
19
-
20
- const testItems: ITestSuite = {
21
-
22
- name: 'Elememetal Types',
23
- sections: [
24
-
25
- {
26
- 'name': 'Literal number 2113',
27
- 'rule': 2113,
28
- 'items': [
29
- {
30
- 'inputName': 'number 2113',
31
- 'inputValue': 2113,
32
- 'expect': true
33
- },
34
- {
35
- 'inputName': 'string \'2113\'',
36
- 'inputValue': '2113',
37
- 'expect': false
38
- }
39
- ]
40
- },
41
- {
42
- 'name': 'Literal null',
43
- 'rule': null,
44
- 'items': [
45
- {
46
- 'inputName': 'string \'null\'',
47
- 'inputValue': 'null',
48
- 'expect': false
49
- },
50
- ...defaultItemss({
51
- 'null': true
52
- })
53
- ]
54
- },
55
- {
56
- 'name': 'Literal boolean value true',
57
- 'rule': true,
58
- 'items': [
59
- {
60
- 'inputName': 'string \'true\'',
61
- 'inputValue': 'true',
62
- 'expect': false
63
- },
64
- ...defaultItemss({
65
- 'true': true
66
- })
67
- ]
68
- },
69
- {
70
- 'name': 'Literal boolean value false',
71
- 'rule': false,
72
- 'items': [
73
- {
74
- 'inputName': 'string \'true\'',
75
- 'inputValue': 'true',
76
- 'expect': false
77
- },
78
- ...defaultItemss({
79
- 'false': true
80
- })
81
- ]
82
- },
83
- {
84
- 'name': 'String',
85
- 'rule': 'string',
86
- 'items': [
87
- ...defaultItemss({
88
- 'string \'hello\'': true,
89
- 'empty string': true
90
- })
91
- ]
92
- },
93
- {
94
- 'name': 'String contains 5 characters',
95
- 'rule': 'string(5)',
96
- 'items': [
97
- {
98
- 'inputName': 'string \'world\'',
99
- 'inputValue': 'world',
100
- 'expect': true
101
- },
102
- {
103
- 'inputName': 'string \'hi\'',
104
- 'inputValue': 'hi',
105
- 'expect': false
106
- },
107
- {
108
- 'inputName': 'string \'logical\'',
109
- 'inputValue': 'logical',
110
- 'expect': false
111
- },
112
- ...defaultItemss({
113
- 'string \'hello\'': true,
114
- 'empty string': false
115
- })
116
- ]
117
- },
118
- {
119
- 'name': 'String contains at least 5 characters',
120
- 'rule': 'string(5,)',
121
- 'items': [
122
- {
123
- 'inputName': 'string \'world\'',
124
- 'inputValue': 'world',
125
- 'expect': true
126
- },
127
- {
128
- 'inputName': 'string \'hihi\'',
129
- 'inputValue': 'hihi',
130
- 'expect': false
131
- },
132
- {
133
- 'inputName': 'string \'logical\'',
134
- 'inputValue': 'logical',
135
- 'expect': true
136
- },
137
- ...defaultItemss({
138
- 'string \'hello\'': true,
139
- 'empty string': false
140
- })
141
- ]
142
- },
143
- {
144
- 'name': 'Wrong expression for string: string(,5)',
145
- 'rule': 'string(,5)',
146
- 'items': [
147
- {
148
- 'inputName': 'string \'any\'',
149
- 'inputValue': 'any',
150
- 'expect': 'throw'
151
- }
152
- ]
153
- },
154
- {
155
- 'name': 'Wrong expression for string: string(,)',
156
- 'rule': 'string(,)',
157
- 'items': [
158
- {
159
- 'inputName': 'string \'any\'',
160
- 'inputValue': 'any',
161
- 'expect': 'throw'
162
- }
163
- ]
164
- },
165
- {
166
- 'name': 'String contains only ASCII characters.',
167
- 'rule': 'ascii_string',
168
- 'items': [
169
- {
170
- 'inputName': 'string \'world\'',
171
- 'inputValue': 'world',
172
- 'expect': true
173
- },
174
- {
175
- 'inputName': 'string \'hi\'',
176
- 'inputValue': 'hi',
177
- 'expect': true
178
- },
179
- {
180
- 'inputName': 'string \'proper\'',
181
- 'inputValue': 'proper',
182
- 'expect': true
183
- },
184
- {
185
- 'inputName': 'string \'logical\'',
186
- 'inputValue': 'logical',
187
- 'expect': true
188
- },
189
- ...defaultItemss({
190
- 'string \'hello\'': true,
191
- 'empty string': true
192
- })
193
- ]
194
- },
195
- {
196
- 'name': 'String contains 2 ~ 6 characters',
197
- 'rule': 'string(2, 6)',
198
- 'items': [
199
- {
200
- 'inputName': 'string \'world\'',
201
- 'inputValue': 'world',
202
- 'expect': true
203
- },
204
- {
205
- 'inputName': 'string \'hi\'',
206
- 'inputValue': 'hi',
207
- 'expect': true
208
- },
209
- {
210
- 'inputName': 'string \'proper\'',
211
- 'inputValue': 'proper',
212
- 'expect': true
213
- },
214
- {
215
- 'inputName': 'string \'logical\'',
216
- 'inputValue': 'logical',
217
- 'expect': false
218
- },
219
- ...defaultItemss({
220
- 'string \'hello\'': true,
221
- 'empty string': false
222
- })
223
- ]
224
- },
225
- {
226
- 'name': 'String contains only 2 ~ 6 latin characters.',
227
- 'rule': 'latin_string(2, 6)',
228
- 'items': [
229
- {
230
- 'inputName': 'string \'ⱠⱡⱢab\'',
231
- 'inputValue': 'ⱠⱡⱢab',
232
- 'expect': true
233
- },
234
- {
235
- 'inputName': 'string \'Ᵽ\'',
236
- 'inputValue': 'Ᵽ',
237
- 'expect': false
238
- },
239
- {
240
- 'inputName': 'string \'proper\'',
241
- 'inputValue': 'proper',
242
- 'expect': true
243
- },
244
- {
245
- 'inputName': 'string \'logical\'',
246
- 'inputValue': 'logical',
247
- 'expect': false
248
- },
249
- ...defaultItemss({
250
- 'string \'hello\'': true,
251
- 'empty string': false
252
- })
253
- ]
254
- },
255
- {
256
- 'name': 'String contains 2 ~ 6 ASCII characters.',
257
- 'rule': 'ascii_string(2, 6)',
258
- 'items': [
259
- {
260
- 'inputName': 'string \'proper\'',
261
- 'inputValue': 'proper',
262
- 'expect': true
263
- },
264
- {
265
- 'inputName': 'string \'world\'',
266
- 'inputValue': 'world',
267
- 'expect': true
268
- },
269
- {
270
- 'inputName': 'string \'logical\'',
271
- 'inputValue': 'logical',
272
- 'expect': false
273
- },
274
- {
275
- 'inputName': 'string \'ⱠⱡⱢab\'',
276
- 'inputValue': 'ⱠⱡⱢab',
277
- 'expect': false
278
- },
279
- {
280
- 'inputName': 'string \'Ᵽ\'',
281
- 'inputValue': 'Ᵽ',
282
- 'expect': false
283
- },
284
- ...defaultItemss({
285
- 'string \'hello\'': true,
286
- 'empty string': false
287
- })
288
- ]
289
- },
290
- {
291
- 'name': 'String contains 2 ~ 8 HEX characters.',
292
- 'rule': 'hex_string(2, 8)',
293
- 'items': [
294
- {
295
- 'inputName': 'string \'fffff\'',
296
- 'inputValue': 'fffff',
297
- 'expect': true
298
- },
299
- {
300
- 'inputName': 'string \'1234a\'',
301
- 'inputValue': '1234a',
302
- 'expect': true
303
- },
304
- {
305
- 'inputName': 'string \'fffffffffffff\'',
306
- 'inputValue': 'fffffffffffff',
307
- 'expect': false
308
- },
309
- {
310
- 'inputName': 'string \'logical\'',
311
- 'inputValue': 'logical',
312
- 'expect': false
313
- },
314
- {
315
- 'inputName': 'string \'ⱠⱡⱢab\'',
316
- 'inputValue': 'ⱠⱡⱢab',
317
- 'expect': false
318
- },
319
- {
320
- 'inputName': 'string \'Ᵽ\'',
321
- 'inputValue': 'Ᵽ',
322
- 'expect': false
323
- },
324
- ...defaultItemss({
325
- 'string \'hello\'': false,
326
- 'empty string': false
327
- })
328
- ]
329
- },
330
- {
331
- 'name': 'Boolean',
332
- 'rule': 'boolean',
333
- 'items': [
334
- {
335
- 'inputName': 'string \'true\'',
336
- 'inputValue': 'true',
337
- 'expect': false
338
- },
339
- {
340
- 'inputName': 'string \'false\'',
341
- 'inputValue': 'false',
342
- 'expect': false
343
- },
344
- ...defaultItemss({
345
- 'true': true,
346
- 'false': true
347
- })
348
- ]
349
- },
350
- {
351
- 'name': 'True',
352
- 'rule': 'true',
353
- 'items': [
354
- {
355
- 'inputName': 'string \'true\'',
356
- 'inputValue': 'true',
357
- 'expect': false
358
- },
359
- ...defaultItemss({
360
- 'true': true,
361
- 'false': false
362
- })
363
- ]
364
- },
365
- {
366
- 'name': 'False',
367
- 'rule': 'false',
368
- 'items': [
369
- {
370
- 'inputName': 'string \'false\'',
371
- 'inputValue': 'false',
372
- 'expect': false
373
- },
374
- ...defaultItemss({
375
- 'true': false,
376
- 'false': true
377
- })
378
- ]
379
- },
380
- {
381
- 'name': 'Logically true value',
382
- 'rule': 'true_value',
383
- 'items': [
384
- {
385
- 'inputName': 'string \'true\'',
386
- 'inputValue': 'true',
387
- 'expect': true
388
- },
389
- ...defaultItemss({
390
- 'true': true,
391
- 'false': false,
392
- 'object': true,
393
- 'number 1': true,
394
- 'string \'hello\'': true,
395
- 'empty array': true
396
- })
397
- ]
398
- },
399
- {
400
- 'name': 'Logically false value',
401
- 'rule': 'false_value',
402
- 'items': [
403
- {
404
- 'inputName': 'string \'false\'',
405
- 'inputValue': 'false',
406
- 'expect': false
407
- },
408
- ...defaultItemss({
409
- 'true': false,
410
- 'false': true,
411
- 'number 0': true,
412
- 'null': true,
413
- 'undefined': true,
414
- 'empty string': true
415
- })
416
- ]
417
- },
418
- {
419
- 'name': 'Integer',
420
- 'rule': 'int',
421
- 'items': [
422
- {
423
- 'inputName': 'number -1',
424
- 'inputValue': -1,
425
- 'expect': true
426
- },
427
- {
428
- 'inputName': 'number 1.23',
429
- 'inputValue': 1.23,
430
- 'expect': false
431
- },
432
- ...defaultItemss({
433
- 'number 0': true,
434
- 'number 1': true
435
- })
436
- ]
437
- },
438
- {
439
- 'name': 'Wrong expression for integer: int(,)',
440
- 'rule': 'int(,)',
441
- 'items': [
442
- {
443
- 'inputName': 'any',
444
- 'inputValue': 'any',
445
- 'expect': 'throw'
446
- }
447
- ]
448
- },
449
- {
450
- 'name': 'Integer >= 10',
451
- 'rule': 'int(10,)',
452
- 'items': [
453
- {
454
- 'inputName': 'number 11',
455
- 'inputValue': 11,
456
- 'expect': true
457
- },
458
- {
459
- 'inputName': 'number 10',
460
- 'inputValue': 10,
461
- 'expect': true
462
- },
463
- {
464
- 'inputName': 'number -1',
465
- 'inputValue': -1,
466
- 'expect': false
467
- },
468
- {
469
- 'inputName': 'number 9',
470
- 'inputValue': 9,
471
- 'expect': false
472
- },
473
- {
474
- 'inputName': 'number 1.23',
475
- 'inputValue': 1.23,
476
- 'expect': false
477
- },
478
- ...defaultItemss({
479
- 'number 0': false,
480
- 'number 1': false
481
- })
482
- ]
483
- },
484
- {
485
- 'name': 'Integer <= 10',
486
- 'rule': 'int(,10)',
487
- 'items': [
488
- {
489
- 'inputName': 'number 11',
490
- 'inputValue': 11,
491
- 'expect': false
492
- },
493
- {
494
- 'inputName': 'number 10',
495
- 'inputValue': 10,
496
- 'expect': true
497
- },
498
- {
499
- 'inputName': 'number -1',
500
- 'inputValue': -1,
501
- 'expect': true
502
- },
503
- {
504
- 'inputName': 'number 9',
505
- 'inputValue': 9,
506
- 'expect': true
507
- },
508
- {
509
- 'inputName': 'number 1.23',
510
- 'inputValue': 1.23,
511
- 'expect': false
512
- },
513
- ...defaultItemss({
514
- 'number 0': true,
515
- 'number 1': true
516
- })
517
- ]
518
- },
519
- {
520
- 'name': 'Integer between -12 and 25',
521
- 'rule': 'int(-12, 25)',
522
- 'items': [
523
- {
524
- 'inputName': 'number -1',
525
- 'inputValue': -1,
526
- 'expect': true
527
- },
528
- {
529
- 'inputName': 'number -12',
530
- 'inputValue': -12,
531
- 'expect': true
532
- },
533
- {
534
- 'inputName': 'number 25',
535
- 'inputValue': 25,
536
- 'expect': true
537
- },
538
- {
539
- 'inputName': 'number 26',
540
- 'inputValue': 26,
541
- 'expect': false
542
- },
543
- {
544
- 'inputName': 'number -13',
545
- 'inputValue': -13,
546
- 'expect': false
547
- },
548
- {
549
- 'inputName': 'number -11.5',
550
- 'inputValue': -11.5,
551
- 'expect': false
552
- },
553
- {
554
- 'inputName': 'number 1.23',
555
- 'inputValue': 1.23,
556
- 'expect': false
557
- },
558
- ...defaultItemss({
559
- 'number 0': true,
560
- 'number 1': true
561
- })
562
- ]
563
- },
564
- {
565
- 'name': 'Integer between -0x80 and 0x7F',
566
- 'rule': 'int8',
567
- 'items': [
568
- {
569
- 'inputName': 'number -1',
570
- 'inputValue': -1,
571
- 'expect': true
572
- },
573
- {
574
- 'inputName': 'number -0x80',
575
- 'inputValue': -0x80,
576
- 'expect': true
577
- },
578
- {
579
- 'inputName': 'number 0x7F',
580
- 'inputValue': 0x7F,
581
- 'expect': true
582
- },
583
- {
584
- 'inputName': 'number 0x80',
585
- 'inputValue': 0x80,
586
- 'expect': false
587
- },
588
- {
589
- 'inputName': 'number -0x81',
590
- 'inputValue': -0x81,
591
- 'expect': false
592
- },
593
- {
594
- 'inputName': 'number 1.23',
595
- 'inputValue': 1.23,
596
- 'expect': false
597
- },
598
- {
599
- 'inputName': 'number -1.23',
600
- 'inputValue': -1.23,
601
- 'expect': false
602
- },
603
- ...defaultItemss({
604
- 'number 0': true,
605
- 'number 1': true
606
- })
607
- ]
608
- },
609
- {
610
- 'name': 'Integer between -0x8000 and 0x7FFF',
611
- 'rule': 'int16',
612
- 'items': [
613
- {
614
- 'inputName': 'number -1',
615
- 'inputValue': -1,
616
- 'expect': true
617
- },
618
- {
619
- 'inputName': 'number -0x8000',
620
- 'inputValue': -0x8000,
621
- 'expect': true
622
- },
623
- {
624
- 'inputName': 'number 0x7FFF',
625
- 'inputValue': 0x7FFF,
626
- 'expect': true
627
- },
628
- {
629
- 'inputName': 'number 0x8000',
630
- 'inputValue': 0x8000,
631
- 'expect': false
632
- },
633
- {
634
- 'inputName': 'number -0x8001',
635
- 'inputValue': -0x8001,
636
- 'expect': false
637
- },
638
- {
639
- 'inputName': 'number 1.23',
640
- 'inputValue': 1.23,
641
- 'expect': false
642
- },
643
- {
644
- 'inputName': 'number -1.23',
645
- 'inputValue': -1.23,
646
- 'expect': false
647
- },
648
- ...defaultItemss({
649
- 'number 0': true,
650
- 'number 1': true
651
- })
652
- ]
653
- },
654
- {
655
- 'name': 'Integer between -0x80000000 and 0x7FFFFFFF',
656
- 'rule': 'int32',
657
- 'items': [
658
- {
659
- 'inputName': 'number -1',
660
- 'inputValue': -1,
661
- 'expect': true
662
- },
663
- {
664
- 'inputName': 'number -0x80000000',
665
- 'inputValue': -0x80000000,
666
- 'expect': true
667
- },
668
- {
669
- 'inputName': 'number 0x7FFFFFFF',
670
- 'inputValue': 0x7FFFFFFF,
671
- 'expect': true
672
- },
673
- {
674
- 'inputName': 'number 0x80000000',
675
- 'inputValue': 0x80000000,
676
- 'expect': false
677
- },
678
- {
679
- 'inputName': 'number -0x80000001',
680
- 'inputValue': -0x80000001,
681
- 'expect': false
682
- },
683
- {
684
- 'inputName': 'number 1.23',
685
- 'inputValue': 1.23,
686
- 'expect': false
687
- },
688
- {
689
- 'inputName': 'number -1.23',
690
- 'inputValue': -1.23,
691
- 'expect': false
692
- },
693
- ...defaultItemss({
694
- 'number 0': true,
695
- 'number 1': true
696
- })
697
- ]
698
- },
699
- {
700
- 'name': '64-bits integer',
701
- 'rule': 'int64',
702
- 'items': [
703
- {
704
- 'inputName': 'number -1',
705
- 'inputValue': -1,
706
- 'expect': true
707
- },
708
- {
709
- 'inputName': 'number -0x8000000000000000',
710
- 'inputValue': -0x8000000000000000,
711
- 'expect': true
712
- },
713
- {
714
- 'inputName': 'number 0x7FFFFFFF',
715
- 'inputValue': 0x7FFFFFFF,
716
- 'expect': true
717
- },
718
- {
719
- 'inputName': 'number 0x7FFFFFFFFFFFFFFF',
720
- 'inputValue': 0x7FFFFFFFFFFFFFFF,
721
- 'expect': true
722
- },
723
- {
724
- 'inputName': 'number 1.23',
725
- 'inputValue': 1.23,
726
- 'expect': false
727
- },
728
- {
729
- 'inputName': 'number -1.23',
730
- 'inputValue': -1.23,
731
- 'expect': false
732
- },
733
- ...defaultItemss({
734
- 'number 0': true,
735
- 'number 1': true
736
- })
737
- ]
738
- },
739
- {
740
- 'name': 'Integer larger than -1',
741
- 'rule': 'uint',
742
- 'items': [
743
- {
744
- 'inputName': 'number -1',
745
- 'inputValue': -1,
746
- 'expect': false
747
- },
748
- {
749
- 'inputName': 'number 1.23',
750
- 'inputValue': 1.23,
751
- 'expect': false
752
- },
753
- ...defaultItemss({
754
- 'number 0': true,
755
- 'number 1': true
756
- })
757
- ]
758
- },
759
- {
760
- 'name': 'Integer between 0 and 0xFF',
761
- 'rule': 'uint8',
762
- 'items': [
763
- {
764
- 'inputName': 'number -1',
765
- 'inputValue': -1,
766
- 'expect': false
767
- },
768
- {
769
- 'inputName': 'number 0xFF',
770
- 'inputValue': 0xFF,
771
- 'expect': true
772
- },
773
- {
774
- 'inputName': 'number 0x100',
775
- 'inputValue': 0x100,
776
- 'expect': false
777
- },
778
- {
779
- 'inputName': 'number 1.23',
780
- 'inputValue': 1.23,
781
- 'expect': false
782
- },
783
- {
784
- 'inputName': 'number -1.23',
785
- 'inputValue': -1.23,
786
- 'expect': false
787
- },
788
- ...defaultItemss({
789
- 'number 0': true,
790
- 'number 1': true
791
- })
792
- ]
793
- },
794
- {
795
- 'name': 'Integer between 0 and 0xFFFF',
796
- 'rule': 'uint16',
797
- 'items': [
798
- {
799
- 'inputName': 'number -1',
800
- 'inputValue': -1,
801
- 'expect': false
802
- },
803
- {
804
- 'inputName': 'number 0xFFFF',
805
- 'inputValue': 0xFFFF,
806
- 'expect': true
807
- },
808
- {
809
- 'inputName': 'number 0x10000',
810
- 'inputValue': 0x10000,
811
- 'expect': false
812
- },
813
- {
814
- 'inputName': 'number 1.23',
815
- 'inputValue': 1.23,
816
- 'expect': false
817
- },
818
- {
819
- 'inputName': 'number -1.23',
820
- 'inputValue': -1.23,
821
- 'expect': false
822
- },
823
- ...defaultItemss({
824
- 'number 0': true,
825
- 'number 1': true
826
- })
827
- ]
828
- },
829
- {
830
- 'name': 'Integer between 0 and 0xFFFFFFFF',
831
- 'rule': 'uint32',
832
- 'items': [
833
- {
834
- 'inputName': 'number -1',
835
- 'inputValue': -1,
836
- 'expect': false
837
- },
838
- {
839
- 'inputName': 'number 0xFFFFFFFF',
840
- 'inputValue': 0xFFFFFFFF,
841
- 'expect': true
842
- },
843
- {
844
- 'inputName': 'number 0x100000000',
845
- 'inputValue': 0x100000000,
846
- 'expect': false
847
- },
848
- {
849
- 'inputName': 'number 1.23',
850
- 'inputValue': 1.23,
851
- 'expect': false
852
- },
853
- {
854
- 'inputName': 'number -1.23',
855
- 'inputValue': -1.23,
856
- 'expect': false
857
- },
858
- ...defaultItemss({
859
- 'number 0': true,
860
- 'number 1': true
861
- })
862
- ]
863
- },
864
- {
865
- 'name': 'Integer between 0 and 0xFFFFFFFFFFFFFFFF',
866
- 'rule': 'uint64',
867
- 'items': [
868
- {
869
- 'inputName': 'number -1',
870
- 'inputValue': -1,
871
- 'expect': false
872
- },
873
- {
874
- 'inputName': 'number 0xFFFFFFFFFFFFFFFF',
875
- 'inputValue': 0xFFFFFFFFFFFFFFFF,
876
- 'expect': true
877
- },
878
- {
879
- 'inputName': 'number 0x7FFFFFFF',
880
- 'inputValue': 0x7FFFFFFF,
881
- 'expect': true
882
- },
883
- {
884
- 'inputName': 'number 1.23',
885
- 'inputValue': 1.23,
886
- 'expect': false
887
- },
888
- {
889
- 'inputName': 'number -1.23',
890
- 'inputValue': -1.23,
891
- 'expect': false
892
- },
893
- ...defaultItemss({
894
- 'number 0': true,
895
- 'number 1': true
896
- })
897
- ]
898
- },
899
- {
900
- 'name': 'Accuracy safe integer',
901
- 'rule': 'safe_int',
902
- 'items': [
903
- {
904
- 'inputName': 'number -1',
905
- 'inputValue': -1,
906
- 'expect': true
907
- },
908
- {
909
- 'inputName': 'number 9007199254740991',
910
- 'inputValue': 9007199254740991,
911
- 'expect': true
912
- },
913
- {
914
- 'inputName': 'number -9007199254740991',
915
- 'inputValue': -9007199254740991,
916
- 'expect': true
917
- },
918
- {
919
- 'inputName': 'number 9007199254740992',
920
- 'inputValue': 9007199254740992,
921
- 'expect': false
922
- },
923
- {
924
- 'inputName': 'number -9007199254740992',
925
- 'inputValue': -9007199254740992,
926
- 'expect': false
927
- },
928
- {
929
- 'inputName': 'number 1.23',
930
- 'inputValue': 1.23,
931
- 'expect': false
932
- },
933
- {
934
- 'inputName': 'number -1.23',
935
- 'inputValue': -1.23,
936
- 'expect': false
937
- },
938
- ...defaultItemss({
939
- 'number 0': true,
940
- 'number 1': true
941
- })
942
- ]
943
- },
944
- {
945
- 'name': 'Accuracy safe unsigned integer',
946
- 'rule': 'safe_uint',
947
- 'items': [
948
- {
949
- 'inputName': 'number -1',
950
- 'inputValue': -1,
951
- 'expect': false
952
- },
953
- {
954
- 'inputName': 'number 9007199254740991',
955
- 'inputValue': 9007199254740991,
956
- 'expect': true
957
- },
958
- {
959
- 'inputName': 'number 9007199254740992',
960
- 'inputValue': 9007199254740992,
961
- 'expect': false
962
- },
963
- {
964
- 'inputName': 'number 1.23',
965
- 'inputValue': 1.23,
966
- 'expect': false
967
- },
968
- {
969
- 'inputName': 'number -1.23',
970
- 'inputValue': -1.23,
971
- 'expect': false
972
- },
973
- ...defaultItemss({
974
- 'number 0': true,
975
- 'number 1': true
976
- })
977
- ]
978
- },
979
- {
980
- 'name': 'Float number',
981
- 'rule': 'float',
982
- 'items': [
983
- {
984
- 'inputName': 'number -1',
985
- 'inputValue': -1,
986
- 'expect': true
987
- },
988
- {
989
- 'inputName': 'number 120312',
990
- 'inputValue': 120312,
991
- 'expect': true
992
- },
993
- {
994
- 'inputName': 'number 1.23',
995
- 'inputValue': 1.23,
996
- 'expect': true
997
- },
998
- {
999
- 'inputName': 'number -1.23',
1000
- 'inputValue': -1.23,
1001
- 'expect': true
1002
- },
1003
- ...defaultItemss({
1004
- 'number 0': true,
1005
- 'number 1': true
1006
- })
1007
- ]
1008
- },
1009
- {
1010
- 'name': 'Unsigned float number',
1011
- 'rule': 'ufloat',
1012
- 'items': [
1013
- {
1014
- 'inputName': 'number -1',
1015
- 'inputValue': -1,
1016
- 'expect': false
1017
- },
1018
- {
1019
- 'inputName': 'number 120312',
1020
- 'inputValue': 120312,
1021
- 'expect': true
1022
- },
1023
- {
1024
- 'inputName': 'number 1.23',
1025
- 'inputValue': 1.23,
1026
- 'expect': true
1027
- },
1028
- {
1029
- 'inputName': 'number -1.23',
1030
- 'inputValue': -1.23,
1031
- 'expect': false
1032
- },
1033
- ...defaultItemss({
1034
- 'number 0': true,
1035
- 'number 1': true
1036
- })
1037
- ]
1038
- },
1039
- {
1040
- 'name': 'Number',
1041
- 'rule': 'number',
1042
- 'items': [
1043
- {
1044
- 'inputName': 'number -1',
1045
- 'inputValue': -1,
1046
- 'expect': true
1047
- },
1048
- {
1049
- 'inputName': 'number 120312',
1050
- 'inputValue': 120312,
1051
- 'expect': true
1052
- },
1053
- {
1054
- 'inputName': 'number 1.23',
1055
- 'inputValue': 1.23,
1056
- 'expect': true
1057
- },
1058
- {
1059
- 'inputName': 'number -1.23',
1060
- 'inputValue': -1.23,
1061
- 'expect': true
1062
- },
1063
- ...defaultItemss({
1064
- 'number 0': true,
1065
- 'number 1': true
1066
- })
1067
- ]
1068
- },
1069
- {
1070
- 'name': 'Number between 1.0, 10.0',
1071
- 'rule': 'number(1.0, 10.0)',
1072
- 'items': [
1073
- {
1074
- 'inputName': 'number -1',
1075
- 'inputValue': -1,
1076
- 'expect': false
1077
- },
1078
- {
1079
- 'inputName': 'number 1',
1080
- 'inputValue': 1,
1081
- 'expect': true
1082
- },
1083
- {
1084
- 'inputName': 'number 10',
1085
- 'inputValue': 10,
1086
- 'expect': true
1087
- },
1088
- {
1089
- 'inputName': 'number 11',
1090
- 'inputValue': 11,
1091
- 'expect': false
1092
- },
1093
- {
1094
- 'inputName': 'number 0',
1095
- 'inputValue': 0,
1096
- 'expect': false
1097
- },
1098
- {
1099
- 'inputName': 'number 1.23',
1100
- 'inputValue': 1.23,
1101
- 'expect': true
1102
- },
1103
- {
1104
- 'inputName': 'number -1.23',
1105
- 'inputValue': -1.23,
1106
- 'expect': false
1107
- },
1108
- ...defaultItemss({
1109
- 'number 0': false,
1110
- 'number 1': true
1111
- })
1112
- ]
1113
- },
1114
- {
1115
- 'name': 'Number larger than 1',
1116
- 'rule': 'number(1, )',
1117
- 'items': [
1118
- {
1119
- 'inputName': 'number -1',
1120
- 'inputValue': -1,
1121
- 'expect': false
1122
- },
1123
- {
1124
- 'inputName': 'number 1',
1125
- 'inputValue': 1,
1126
- 'expect': true
1127
- },
1128
- {
1129
- 'inputName': 'number 10',
1130
- 'inputValue': 10,
1131
- 'expect': true
1132
- },
1133
- {
1134
- 'inputName': 'number 11',
1135
- 'inputValue': 11,
1136
- 'expect': true
1137
- },
1138
- {
1139
- 'inputName': 'number 0',
1140
- 'inputValue': 0,
1141
- 'expect': false
1142
- },
1143
- {
1144
- 'inputName': 'number 1.23',
1145
- 'inputValue': 1.23,
1146
- 'expect': true
1147
- },
1148
- {
1149
- 'inputName': 'number -1.23',
1150
- 'inputValue': -1.23,
1151
- 'expect': false
1152
- },
1153
- ...defaultItemss({
1154
- 'number 0': false,
1155
- 'number 1': true
1156
- })
1157
- ]
1158
- },
1159
- {
1160
- 'name': 'Wrong expression for number: number(,)',
1161
- 'rule': 'number(,)',
1162
- 'items': [
1163
- {
1164
- 'inputName': 'any',
1165
- 'inputValue': 'any',
1166
- 'expect': 'throw'
1167
- },
1168
- ]
1169
- },
1170
- {
1171
- 'name': 'Number lower than -1',
1172
- 'rule': 'number(, -1)',
1173
- 'items': [
1174
- {
1175
- 'inputName': 'number -1',
1176
- 'inputValue': -1,
1177
- 'expect': true
1178
- },
1179
- {
1180
- 'inputName': 'number 1',
1181
- 'inputValue': 1,
1182
- 'expect': false
1183
- },
1184
- {
1185
- 'inputName': 'number -0.3',
1186
- 'inputValue': -0.3,
1187
- 'expect': false
1188
- },
1189
- {
1190
- 'inputName': 'number -11',
1191
- 'inputValue': -11,
1192
- 'expect': true
1193
- },
1194
- {
1195
- 'inputName': 'number 0',
1196
- 'inputValue': 0,
1197
- 'expect': false
1198
- },
1199
- {
1200
- 'inputName': 'number -1.23',
1201
- 'inputValue': -1.23,
1202
- 'expect': true
1203
- },
1204
- ...defaultItemss({
1205
- 'number 0': false,
1206
- 'number 1': false
1207
- })
1208
- ]
1209
- },
1210
- {
1211
- 'name': 'Numeric value',
1212
- 'rule': 'numeric',
1213
- 'items': [
1214
- {
1215
- 'inputName': 'string \'120312\'',
1216
- 'inputValue': '120312',
1217
- 'expect': true
1218
- },
1219
- {
1220
- 'inputName': 'string \'2.23\'',
1221
- 'inputValue': '2.23',
1222
- 'expect': true
1223
- },
1224
- {
1225
- 'inputName': 'string \'2.23.4\'',
1226
- 'inputValue': '2.23.4',
1227
- 'expect': false
1228
- },
1229
- {
1230
- 'inputName': 'number -1',
1231
- 'inputValue': -1,
1232
- 'expect': true
1233
- },
1234
- {
1235
- 'inputName': 'number 120312',
1236
- 'inputValue': 120312,
1237
- 'expect': true
1238
- },
1239
- {
1240
- 'inputName': 'number 1.23',
1241
- 'inputValue': 1.23,
1242
- 'expect': true
1243
- },
1244
- {
1245
- 'inputName': 'number -1.23',
1246
- 'inputValue': -1.23,
1247
- 'expect': true
1248
- },
1249
- ...defaultItemss({
1250
- 'number 0': true,
1251
- 'number 1': true
1252
- })
1253
- ]
1254
- },
1255
- {
1256
- 'name': 'Numeric value between 10 and 100',
1257
- 'rule': 'numeric(10,100)',
1258
- 'items': [
1259
- {
1260
- 'inputName': 'string \'50\'',
1261
- 'inputValue': '50',
1262
- 'expect': true
1263
- },
1264
- {
1265
- 'inputName': 'string \'22.23\'',
1266
- 'inputValue': '22.23',
1267
- 'expect': true
1268
- },
1269
- {
1270
- 'inputName': 'string \'2.23.4\'',
1271
- 'inputValue': '2.23.4',
1272
- 'expect': false
1273
- },
1274
- {
1275
- 'inputName': 'number -1',
1276
- 'inputValue': -1,
1277
- 'expect': false
1278
- },
1279
- {
1280
- 'inputName': 'number 120312',
1281
- 'inputValue': 120312,
1282
- 'expect': false
1283
- },
1284
- {
1285
- 'inputName': 'number 11.23',
1286
- 'inputValue': 11.23,
1287
- 'expect': true
1288
- },
1289
- {
1290
- 'inputName': 'number -1.23',
1291
- 'inputValue': -1.23,
1292
- 'expect': false
1293
- },
1294
- ...defaultItemss({
1295
- 'number 0': false,
1296
- 'number 1': false
1297
- })
1298
- ]
1299
- },
1300
- {
1301
- 'name': 'Numeric value not lower than 10',
1302
- 'rule': 'numeric(10,)',
1303
- 'items': [
1304
- {
1305
- 'inputName': 'string \'50\'',
1306
- 'inputValue': '50',
1307
- 'expect': true
1308
- },
1309
- {
1310
- 'inputName': 'string \'22.23\'',
1311
- 'inputValue': '22.23',
1312
- 'expect': true
1313
- },
1314
- {
1315
- 'inputName': 'string \'2.23.4\'',
1316
- 'inputValue': '2.23.4',
1317
- 'expect': false
1318
- },
1319
- {
1320
- 'inputName': 'number -1',
1321
- 'inputValue': -1,
1322
- 'expect': false
1323
- },
1324
- {
1325
- 'inputName': 'number 120312',
1326
- 'inputValue': 120312,
1327
- 'expect': true
1328
- },
1329
- {
1330
- 'inputName': 'number 11.23',
1331
- 'inputValue': 11.23,
1332
- 'expect': true
1333
- },
1334
- {
1335
- 'inputName': 'number -1.23',
1336
- 'inputValue': -1.23,
1337
- 'expect': false
1338
- },
1339
- ...defaultItemss({
1340
- 'number 0': false,
1341
- 'number 1': false
1342
- })
1343
- ]
1344
- },
1345
- {
1346
- 'name': 'Numeric value not lower than 10',
1347
- 'rule': 'numeric(,100)',
1348
- 'items': [
1349
- {
1350
- 'inputName': 'string \'50\'',
1351
- 'inputValue': '50',
1352
- 'expect': true
1353
- },
1354
- {
1355
- 'inputName': 'string \'22.23\'',
1356
- 'inputValue': '22.23',
1357
- 'expect': true
1358
- },
1359
- {
1360
- 'inputName': 'string \'2.23.4\'',
1361
- 'inputValue': '2.23.4',
1362
- 'expect': false
1363
- },
1364
- {
1365
- 'inputName': 'number -1',
1366
- 'inputValue': -1,
1367
- 'expect': true
1368
- },
1369
- {
1370
- 'inputName': 'number 120312',
1371
- 'inputValue': 120312,
1372
- 'expect': false
1373
- },
1374
- {
1375
- 'inputName': 'number 11.23',
1376
- 'inputValue': 11.23,
1377
- 'expect': true
1378
- },
1379
- {
1380
- 'inputName': 'number -1.23',
1381
- 'inputValue': -1.23,
1382
- 'expect': true
1383
- },
1384
- ...defaultItemss({
1385
- 'number 0': true,
1386
- 'number 1': true
1387
- })
1388
- ]
1389
- },
1390
- {
1391
- 'name': 'Void',
1392
- 'rule': 'void',
1393
- 'items': [
1394
- ...defaultItemss({
1395
- 'undefined': true
1396
- })
1397
- ]
1398
- },
1399
- {
1400
- 'name': 'Optional',
1401
- 'rule': 'optional',
1402
- 'items': [
1403
- ...defaultItemss({
1404
- 'undefined': true
1405
- })
1406
- ]
1407
- },
1408
- {
1409
- 'name': 'Undefined',
1410
- 'rule': 'undefined',
1411
- 'items': [
1412
- ...defaultItemss({
1413
- 'undefined': true
1414
- })
1415
- ]
1416
- },
1417
- {
1418
- 'name': 'Required',
1419
- 'rule': 'required',
1420
- 'items': [
1421
- ...defaultItemss({
1422
- 'true': true,
1423
- 'false': true,
1424
- 'null': true,
1425
- 'empty array': true,
1426
- 'string \'hello\'': true,
1427
- 'empty string': true,
1428
- 'object': true,
1429
- 'number 0': true,
1430
- 'number 1': true
1431
- })
1432
- ]
1433
- },
1434
- {
1435
- 'name': 'Null',
1436
- 'rule': 'null',
1437
- 'items': [
1438
- ...defaultItemss({
1439
- 'null': true
1440
- })
1441
- ]
1442
- },
1443
- {
1444
- 'name': 'Array',
1445
- 'rule': 'array',
1446
- 'items': [
1447
- {
1448
- 'inputName': '[string, number]',
1449
- 'inputValue': ['-1.23', 123123],
1450
- 'expect': true
1451
- },
1452
- ...defaultItemss({
1453
- 'empty array': true
1454
- })
1455
- ]
1456
- },
1457
- {
1458
- 'name': 'Array with 1 element',
1459
- 'rule': 'array(1)',
1460
- 'items': [
1461
- {
1462
- 'inputName': '[string, number]',
1463
- 'inputValue': ['-1.23', 123123],
1464
- 'expect': false
1465
- },
1466
- {
1467
- 'inputName': '[string]',
1468
- 'inputValue': ['-1.23'],
1469
- 'expect': true
1470
- },
1471
- ...defaultItemss({
1472
- 'empty array': false
1473
- })
1474
- ]
1475
- },
1476
- {
1477
- 'name': 'Array with 1 ~ 3 elements',
1478
- 'rule': 'array(1,3)',
1479
- 'items': [
1480
- {
1481
- 'inputName': '[string, number, boolean]',
1482
- 'inputValue': ['-1.23', 123123, true],
1483
- 'expect': true
1484
- },
1485
- {
1486
- 'inputName': '[string, number]',
1487
- 'inputValue': ['-1.23', 123123],
1488
- 'expect': true
1489
- },
1490
- {
1491
- 'inputName': '[string]',
1492
- 'inputValue': ['-1.23'],
1493
- 'expect': true
1494
- },
1495
- {
1496
- 'inputName': '[string, number, boolean, string]',
1497
- 'inputValue': ['-1.23', 123123, true, 'fff'],
1498
- 'expect': false
1499
- },
1500
- ...defaultItemss({
1501
- 'empty array': false
1502
- })
1503
- ]
1504
- },
1505
- {
1506
- 'name': 'Array with at least 1 element',
1507
- 'rule': 'array(1,)',
1508
- 'items': [
1509
- {
1510
- 'inputName': '[string, number]',
1511
- 'inputValue': ['-1.23', 123123],
1512
- 'expect': true
1513
- },
1514
- {
1515
- 'inputName': '[string]',
1516
- 'inputValue': ['-1.23'],
1517
- 'expect': true
1518
- },
1519
- ...defaultItemss({
1520
- 'empty array': false
1521
- })
1522
- ]
1523
- },
1524
- {
1525
- 'name': 'Wrong expression for array: array(,)',
1526
- 'rule': 'array(,)',
1527
- 'items': [
1528
- {
1529
- 'inputName': 'any',
1530
- 'inputValue': 'any',
1531
- 'expect': 'throw'
1532
- },
1533
- ]
1534
- },
1535
- {
1536
- 'name': 'Struct',
1537
- 'rule': 'struct',
1538
- 'items': [
1539
- ...defaultItemss({
1540
- 'object': true
1541
- })
1542
- ]
1543
- },
1544
- {
1545
- 'name': 'Decimal',
1546
- 'rule': 'decimal',
1547
- 'items': [
1548
- {
1549
- 'inputName': 'number 1.00',
1550
- 'inputValue': 1.00,
1551
- 'expect': false
1552
- },
1553
- {
1554
- 'inputName': 'string \'1.00\'',
1555
- 'inputValue': '1.00',
1556
- 'expect': true
1557
- },
1558
- {
1559
- 'inputName': 'string \'+1.00\'',
1560
- 'inputValue': '+1.00',
1561
- 'expect': true
1562
- },
1563
- {
1564
- 'inputName': 'string \'0.00\'',
1565
- 'inputValue': '0.00',
1566
- 'expect': true
1567
- },
1568
- {
1569
- 'inputName': 'string \'10.00\'',
1570
- 'inputValue': '10.00',
1571
- 'expect': true
1572
- },
1573
- {
1574
- 'inputName': 'string \'-10.00\'',
1575
- 'inputValue': '-10.00',
1576
- 'expect': true
1577
- },
1578
- {
1579
- 'inputName': 'string \'010.00\'',
1580
- 'inputValue': '010.00',
1581
- 'expect': false
1582
- },
1583
- {
1584
- 'inputName': 'string \'.00\'',
1585
- 'inputValue': '.00',
1586
- 'expect': false
1587
- },
1588
- {
1589
- 'inputName': 'string \'0.\'',
1590
- 'inputValue': '0.',
1591
- 'expect': false
1592
- },
1593
- {
1594
- 'inputName': 'string \'0.00.0\'',
1595
- 'inputValue': '0.00.0',
1596
- 'expect': false
1597
- },
1598
- ...defaultItemss({})
1599
- ]
1600
- },
1601
- {
1602
- 'name': 'Decimal with 5 effective digitals',
1603
- 'rule': 'decimal(5)',
1604
- 'items': [
1605
- {
1606
- 'inputName': 'number 1.00',
1607
- 'inputValue': 1.00,
1608
- 'expect': false
1609
- },
1610
- {
1611
- 'inputName': 'string \'1.00\'',
1612
- 'inputValue': '1.00',
1613
- 'expect': true
1614
- },
1615
- {
1616
- 'inputName': 'string \'0.00\'',
1617
- 'inputValue': '0.00',
1618
- 'expect': true
1619
- },
1620
- {
1621
- 'inputName': 'string \'10.00\'',
1622
- 'inputValue': '10.00',
1623
- 'expect': true
1624
- },
1625
- {
1626
- 'inputName': 'string \'-10.00\'',
1627
- 'inputValue': '-10.00',
1628
- 'expect': true
1629
- },
1630
- {
1631
- 'inputName': 'string \'10000\'',
1632
- 'inputValue': '10000',
1633
- 'expect': true
1634
- },
1635
- {
1636
- 'inputName': 'string \'100000\'',
1637
- 'inputValue': '100000',
1638
- 'expect': false
1639
- },
1640
- {
1641
- 'inputName': 'string \'00001.0\'',
1642
- 'inputValue': '00001.0',
1643
- 'expect': false
1644
- },
1645
- {
1646
- 'inputName': 'string \'1.00123\'',
1647
- 'inputValue': '1.00123',
1648
- 'expect': false
1649
- },
1650
- {
1651
- 'inputName': 'string \'010.00\'',
1652
- 'inputValue': '010.00',
1653
- 'expect': false
1654
- },
1655
- {
1656
- 'inputName': 'string \'.00\'',
1657
- 'inputValue': '.00',
1658
- 'expect': false
1659
- },
1660
- {
1661
- 'inputName': 'string \'0.\'',
1662
- 'inputValue': '0.',
1663
- 'expect': false
1664
- },
1665
- {
1666
- 'inputName': 'string \'0.00.0\'',
1667
- 'inputValue': '0.00.0',
1668
- 'expect': false
1669
- },
1670
- ...defaultItemss({})
1671
- ]
1672
- },
1673
- {
1674
- 'name': 'Decimal with 5 effective digitals, while 2 after dot',
1675
- 'rule': 'decimal(5, 2)',
1676
- 'items': [
1677
- {
1678
- 'inputName': 'number 1.00',
1679
- 'inputValue': 1.00,
1680
- 'expect': false
1681
- },
1682
- {
1683
- 'inputName': 'string \'1.00\'',
1684
- 'inputValue': '1.00',
1685
- 'expect': true
1686
- },
1687
- {
1688
- 'inputName': 'string \'0.00\'',
1689
- 'inputValue': '0.00',
1690
- 'expect': true
1691
- },
1692
- {
1693
- 'inputName': 'string \'10.00\'',
1694
- 'inputValue': '10.00',
1695
- 'expect': true
1696
- },
1697
- {
1698
- 'inputName': 'string \'+10.00\'',
1699
- 'inputValue': '+10.00',
1700
- 'expect': true
1701
- },
1702
- {
1703
- 'inputName': 'string \'100.12\'',
1704
- 'inputValue': '100.12',
1705
- 'expect': true
1706
- },
1707
- {
1708
- 'inputName': 'string \'-100.12\'',
1709
- 'inputValue': '-100.12',
1710
- 'expect': true
1711
- },
1712
- {
1713
- 'inputName': 'string \'1100.1\'',
1714
- 'inputValue': '1100.1',
1715
- 'expect': false
1716
- },
1717
- {
1718
- 'inputName': 'string \'11.123\'',
1719
- 'inputValue': '10.123',
1720
- 'expect': false
1721
- },
1722
- {
1723
- 'inputName': 'string \'100000\'',
1724
- 'inputValue': '100000',
1725
- 'expect': false
1726
- },
1727
- {
1728
- 'inputName': 'string \'00001.0\'',
1729
- 'inputValue': '00001.0',
1730
- 'expect': false
1731
- },
1732
- {
1733
- 'inputName': 'string \'1.00123\'',
1734
- 'inputValue': '1.00123',
1735
- 'expect': false
1736
- },
1737
- {
1738
- 'inputName': 'string \'010.00\'',
1739
- 'inputValue': '010.00',
1740
- 'expect': false
1741
- },
1742
- {
1743
- 'inputName': 'string \'.00\'',
1744
- 'inputValue': '.00',
1745
- 'expect': false
1746
- },
1747
- {
1748
- 'inputName': 'string \'0.\'',
1749
- 'inputValue': '0.',
1750
- 'expect': false
1751
- },
1752
- {
1753
- 'inputName': 'string \'0.00.0\'',
1754
- 'inputValue': '0.00.0',
1755
- 'expect': false
1756
- },
1757
- ...defaultItemss({})
1758
- ]
1759
- },
1760
- {
1761
- 'name': 'Mapping of string',
1762
- 'rule': 'string{}',
1763
- 'items': [
1764
- {
1765
- 'inputName': JSON.stringify({
1766
- 'a': 'bbbb',
1767
- 'b': 'ccccc'
1768
- }),
1769
- 'inputValue': {
1770
- 'a': 'bbbb',
1771
- 'b': 'ccccc'
1772
- },
1773
- 'expect': true
1774
- },
1775
- {
1776
- 'inputName': JSON.stringify({
1777
- 'a': 'bbbb',
1778
- 'b': 321
1779
- }),
1780
- 'inputValue': {
1781
- 'a': 'bbbb',
1782
- 'b': 321
1783
- },
1784
- 'expect': false
1785
- },
1786
- {
1787
- 'inputName': '[string, string, string]',
1788
- 'inputValue': ['a', 'b', 'c'],
1789
- 'expect': false
1790
- },
1791
- ...defaultItemss({
1792
- 'object': true
1793
- })
1794
- ]
1795
- },
1796
- {
1797
- 'name': 'Array of string',
1798
- 'rule': 'string[]',
1799
- 'items': [
1800
- {
1801
- 'inputName': '[string, string]',
1802
- 'inputValue': ['a', '123'],
1803
- 'expect': true
1804
- },
1805
- {
1806
- 'inputName': '[string]',
1807
- 'inputValue': ['a'],
1808
- 'expect': true
1809
- },
1810
- {
1811
- 'inputName': '[string, number]',
1812
- 'inputValue': ['a', 123],
1813
- 'expect': false
1814
- },
1815
- ...defaultItemss({
1816
- 'empty array': true
1817
- })
1818
- ]
1819
- },
1820
- {
1821
- 'name': 'String array contains 0 elements.',
1822
- 'rule': 'string[0]',
1823
- 'items': [
1824
- {
1825
- 'inputName': '[string]',
1826
- 'inputValue': ['a'],
1827
- 'expect': false
1828
- },
1829
- {
1830
- 'inputName': '[string, number]',
1831
- 'inputValue': ['a', 123],
1832
- 'expect': false
1833
- },
1834
- ...defaultItemss({
1835
- 'empty array': true
1836
- })
1837
- ]
1838
- },
1839
- {
1840
- 'name': 'String array contains 3 elements.',
1841
- 'rule': 'string[3]',
1842
- 'items': [
1843
- {
1844
- 'inputName': '[string, string, string]',
1845
- 'inputValue': ['a', 'b', 'c'],
1846
- 'expect': true
1847
- },
1848
- {
1849
- 'inputName': '[string, string, number]',
1850
- 'inputValue': ['a', 'b', 123],
1851
- 'expect': false
1852
- },
1853
- {
1854
- 'inputName': '[string, string]',
1855
- 'inputValue': ['a', 'b'],
1856
- 'expect': false
1857
- },
1858
- {
1859
- 'inputName': '[string]',
1860
- 'inputValue': ['a'],
1861
- 'expect': false
1862
- },
1863
- {
1864
- 'inputName': '[string, number]',
1865
- 'inputValue': ['a', 123],
1866
- 'expect': false
1867
- },
1868
- ...defaultItemss({})
1869
- ]
1870
- },
1871
- {
1872
- 'name': 'String array contains 0 ~ 3 elements.',
1873
- 'rule': 'string[0,3]',
1874
- 'items': [
1875
- {
1876
- 'inputName': '[string, string, string]',
1877
- 'inputValue': ['a', 'b', 'c'],
1878
- 'expect': true
1879
- },
1880
- {
1881
- 'inputName': '[string, string, number]',
1882
- 'inputValue': ['a', 'b', 123],
1883
- 'expect': false
1884
- },
1885
- {
1886
- 'inputName': '[string, string]',
1887
- 'inputValue': ['a', 'b'],
1888
- 'expect': true
1889
- },
1890
- {
1891
- 'inputName': '[string]',
1892
- 'inputValue': ['a'],
1893
- 'expect': true
1894
- },
1895
- {
1896
- 'inputName': '[string, number]',
1897
- 'inputValue': ['a', 123],
1898
- 'expect': false
1899
- },
1900
- ...defaultItemss({
1901
- 'empty array': true
1902
- })
1903
- ]
1904
- },
1905
- {
1906
- 'name': 'Array contains 0 ~ 3 string values that each contains 1 ~ 5 characters.',
1907
- 'rule': 'string(1,5)[0,3]',
1908
- 'items': [
1909
- {
1910
- 'inputName': '[string, string, string]',
1911
- 'inputValue': ['a', 'b', 'c'],
1912
- 'expect': true
1913
- },
1914
- {
1915
- 'inputName': '[string, string, number]',
1916
- 'inputValue': ['a', 'b', 123],
1917
- 'expect': false
1918
- },
1919
- {
1920
- 'inputName': '[string, string]',
1921
- 'inputValue': ['a', 'b'],
1922
- 'expect': true
1923
- },
1924
- {
1925
- 'inputName': '[string, string, string(7)]',
1926
- 'inputValue': ['a', 'b', 'aaabbbc'],
1927
- 'expect': false
1928
- },
1929
- {
1930
- 'inputName': '[string]',
1931
- 'inputValue': ['a'],
1932
- 'expect': true
1933
- },
1934
- {
1935
- 'inputName': '[string, number]',
1936
- 'inputValue': ['a', 123],
1937
- 'expect': false
1938
- },
1939
- ...defaultItemss({
1940
- 'empty array': true
1941
- })
1942
- ]
1943
- },
1944
- {
1945
- 'name': 'Optional string',
1946
- 'rule': '?string',
1947
- 'items': [
1948
- {
1949
- 'inputName': 'string \'fine\'',
1950
- 'inputValue': 'fine',
1951
- 'expect': true
1952
- },
1953
- ...defaultItemss({
1954
- 'undefined': true,
1955
- 'empty string': true,
1956
- 'string \'hello\'': true
1957
- })
1958
- ]
1959
- }
1960
- ]
1961
- };
1962
-
1963
- export default createTestDefinition(testItems);