@litert/typeguard 1.4.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.
@@ -1,1488 +0,0 @@
1
- /* eslint-disable @typescript-eslint/no-loss-of-precision */
2
- /**
3
- * Copyright 2023 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, defaultItems, ITestSuite } from './abstracts';
19
-
20
- const testItems: ITestSuite = {
21
-
22
- name: 'From String',
23
- sections: [
24
-
25
- {
26
- 'name': 'Boolean',
27
- 'rule': ['$.string', 'boolean'],
28
- 'items': [
29
- {
30
- 'title': 'string \'true\'',
31
- 'value': 'true',
32
- 'expect': true
33
- },
34
- {
35
- 'title': 'string \'false\'',
36
- 'value': 'false',
37
- 'expect': true
38
- },
39
- ...defaultItems({
40
- 'true': true,
41
- 'false': true
42
- })
43
- ]
44
- },
45
- {
46
- 'name': 'True',
47
- 'rule': ['$.string', 'true'],
48
- 'items': [
49
- {
50
- 'title': 'string \'true\'',
51
- 'value': 'true',
52
- 'expect': true
53
- },
54
- ...defaultItems({
55
- 'true': true,
56
- 'false': false
57
- })
58
- ]
59
- },
60
- {
61
- 'name': 'False',
62
- 'rule': ['$.string', 'false'],
63
- 'items': [
64
- {
65
- 'title': 'string \'false\'',
66
- 'value': 'false',
67
- 'expect': true
68
- },
69
- ...defaultItems({
70
- 'true': false,
71
- 'false': true
72
- })
73
- ]
74
- },
75
- {
76
- 'name': 'Integer',
77
- 'rule': ['$.string', 'int'],
78
- 'items': [
79
- {
80
- 'title': 'number -1',
81
- 'value': -1,
82
- 'expect': true
83
- },
84
- {
85
- 'title': 'string \'-1\'',
86
- 'value': '-1',
87
- 'expect': true
88
- },
89
- {
90
- 'title': 'string \'1.23\'',
91
- 'value': '1.23',
92
- 'expect': false
93
- },
94
- {
95
- 'title': 'number 1.23',
96
- 'value': 1.23,
97
- 'expect': false
98
- },
99
- ...defaultItems({
100
- 'number 0': true,
101
- 'number 1': true
102
- })
103
- ]
104
- },
105
- {
106
- 'name': 'Integer >= 10',
107
- 'rule': ['$.string', 'int(10,)'],
108
- 'items': [
109
- {
110
- 'title': 'number 11',
111
- 'value': 11,
112
- 'expect': true
113
- },
114
- {
115
- 'title': 'number 10',
116
- 'value': 10,
117
- 'expect': true
118
- },
119
- {
120
- 'title': 'number -1',
121
- 'value': -1,
122
- 'expect': false
123
- },
124
- {
125
- 'title': 'number 9',
126
- 'value': 9,
127
- 'expect': false
128
- },
129
- {
130
- 'title': 'number 1.23',
131
- 'value': 1.23,
132
- 'expect': false
133
- },
134
- {
135
- 'title': 'string \'11\'',
136
- 'value': '11',
137
- 'expect': true
138
- },
139
- {
140
- 'title': 'string \'10\'',
141
- 'value': '10',
142
- 'expect': true
143
- },
144
- {
145
- 'title': 'string \'-1\'',
146
- 'value': '-1',
147
- 'expect': false
148
- },
149
- {
150
- 'title': 'string \'9\'',
151
- 'value': '9',
152
- 'expect': false
153
- },
154
- {
155
- 'title': 'string \'1.23\'',
156
- 'value': '1.23',
157
- 'expect': false
158
- },
159
- ...defaultItems({
160
- 'number 0': false,
161
- 'number 1': false
162
- })
163
- ]
164
- },
165
- {
166
- 'name': 'Integer <= 10',
167
- 'rule': ['$.string', 'int(,10)'],
168
- 'items': [
169
- {
170
- 'title': 'number 11',
171
- 'value': 11,
172
- 'expect': false
173
- },
174
- {
175
- 'title': 'number 10',
176
- 'value': 10,
177
- 'expect': true
178
- },
179
- {
180
- 'title': 'number -1',
181
- 'value': -1,
182
- 'expect': true
183
- },
184
- {
185
- 'title': 'number 9',
186
- 'value': 9,
187
- 'expect': true
188
- },
189
- {
190
- 'title': 'number 1.23',
191
- 'value': 1.23,
192
- 'expect': false
193
- },
194
- {
195
- 'title': 'string \'11\'',
196
- 'value': '11',
197
- 'expect': false
198
- },
199
- {
200
- 'title': 'string \'10\'',
201
- 'value': '10',
202
- 'expect': true
203
- },
204
- {
205
- 'title': 'string \'-1\'',
206
- 'value': '-1',
207
- 'expect': true
208
- },
209
- {
210
- 'title': 'string \'9\'',
211
- 'value': '9',
212
- 'expect': true
213
- },
214
- {
215
- 'title': 'string \'1.23\'',
216
- 'value': '1.23',
217
- 'expect': false
218
- },
219
- ...defaultItems({
220
- 'number 0': true,
221
- 'number 1': true
222
- })
223
- ]
224
- },
225
- {
226
- 'name': 'Integer between -12 and 25',
227
- 'rule': ['$.string', 'int(-12, 25)'],
228
- 'items': [
229
- {
230
- 'title': 'number -1',
231
- 'value': -1,
232
- 'expect': true
233
- },
234
- {
235
- 'title': 'number -12',
236
- 'value': -12,
237
- 'expect': true
238
- },
239
- {
240
- 'title': 'number 25',
241
- 'value': 25,
242
- 'expect': true
243
- },
244
- {
245
- 'title': 'number 26',
246
- 'value': 26,
247
- 'expect': false
248
- },
249
- {
250
- 'title': 'number -13',
251
- 'value': -13,
252
- 'expect': false
253
- },
254
- {
255
- 'title': 'number -11.5',
256
- 'value': -11.5,
257
- 'expect': false
258
- },
259
- {
260
- 'title': 'number 1.23',
261
- 'value': 1.23,
262
- 'expect': false
263
- },
264
- {
265
- 'title': 'string \'-1\'',
266
- 'value': '-1',
267
- 'expect': true
268
- },
269
- {
270
- 'title': 'string \'-12\'',
271
- 'value': '-12',
272
- 'expect': true
273
- },
274
- {
275
- 'title': 'string \'25\'',
276
- 'value': '25',
277
- 'expect': true
278
- },
279
- {
280
- 'title': 'string \'26\'',
281
- 'value': '26',
282
- 'expect': false
283
- },
284
- {
285
- 'title': 'string \'-13\'',
286
- 'value': '-13',
287
- 'expect': false
288
- },
289
- {
290
- 'title': 'string \'-11.5\'',
291
- 'value': '-11.5',
292
- 'expect': false
293
- },
294
- {
295
- 'title': 'string \'1.23\'',
296
- 'value': '1.23',
297
- 'expect': false
298
- },
299
- ...defaultItems({
300
- 'number 0': true,
301
- 'number 1': true
302
- })
303
- ]
304
- },
305
- {
306
- 'name': 'Integer between -0x80 and 0x7F',
307
- 'rule': ['$.string', 'int8'],
308
- 'items': [
309
- {
310
- 'title': 'number -1',
311
- 'value': -1,
312
- 'expect': true
313
- },
314
- {
315
- 'title': 'number -0x80',
316
- 'value': -0x80,
317
- 'expect': true
318
- },
319
- {
320
- 'title': 'number 0x7F',
321
- 'value': 0x7F,
322
- 'expect': true
323
- },
324
- {
325
- 'title': 'number 0x80',
326
- 'value': 0x80,
327
- 'expect': false
328
- },
329
- {
330
- 'title': 'number -0x81',
331
- 'value': -0x81,
332
- 'expect': false
333
- },
334
- {
335
- 'title': 'number 1.23',
336
- 'value': 1.23,
337
- 'expect': false
338
- },
339
- {
340
- 'title': 'number -1.23',
341
- 'value': -1.23,
342
- 'expect': false
343
- },
344
- {
345
- 'title': 'string \'-1\'',
346
- 'value': (-1).toString(),
347
- 'expect': true
348
- },
349
- {
350
- 'title': 'string \'-0x80\'',
351
- 'value': (-0x80).toString(),
352
- 'expect': true
353
- },
354
- {
355
- 'title': 'string \'0x7F\'',
356
- 'value': (0x7F).toString(),
357
- 'expect': true
358
- },
359
- {
360
- 'title': 'string \'0x80\'',
361
- 'value': (0x80).toString(),
362
- 'expect': false
363
- },
364
- {
365
- 'title': 'string \'-0x81\'',
366
- 'value': (-0x81).toString(),
367
- 'expect': false
368
- },
369
- {
370
- 'title': 'string \'1.23\'',
371
- 'value': (1.23).toString(),
372
- 'expect': false
373
- },
374
- {
375
- 'title': 'string \'-1.23\'',
376
- 'value': (-1.23).toString(),
377
- 'expect': false
378
- },
379
- ...defaultItems({
380
- 'number 0': true,
381
- 'number 1': true
382
- })
383
- ]
384
- },
385
- {
386
- 'name': 'Integer between -0x8000 and 0x7FFF',
387
- 'rule': ['$.string', 'int16'],
388
- 'items': [
389
- {
390
- 'title': 'number -1',
391
- 'value': -1,
392
- 'expect': true
393
- },
394
- {
395
- 'title': 'number -0x8000',
396
- 'value': -0x8000,
397
- 'expect': true
398
- },
399
- {
400
- 'title': 'number 0x7FFF',
401
- 'value': 0x7FFF,
402
- 'expect': true
403
- },
404
- {
405
- 'title': 'number 0x8000',
406
- 'value': 0x8000,
407
- 'expect': false
408
- },
409
- {
410
- 'title': 'number -0x8001',
411
- 'value': -0x8001,
412
- 'expect': false
413
- },
414
- {
415
- 'title': 'number 1.23',
416
- 'value': 1.23,
417
- 'expect': false
418
- },
419
- {
420
- 'title': 'number -1.23',
421
- 'value': -1.23,
422
- 'expect': false
423
- },
424
- {
425
- 'title': 'string \'-1\'',
426
- 'value': (-1).toString(),
427
- 'expect': true
428
- },
429
- {
430
- 'title': 'string \'-0x8000\'',
431
- 'value': (-0x8000).toString(),
432
- 'expect': true
433
- },
434
- {
435
- 'title': 'string \'0x7FFF\'',
436
- 'value': (0x7FFF).toString(),
437
- 'expect': true
438
- },
439
- {
440
- 'title': 'string \'0x8000\'',
441
- 'value': (0x8000).toString(),
442
- 'expect': false
443
- },
444
- {
445
- 'title': 'string \'-0x8001\'',
446
- 'value': (-0x8001).toString(),
447
- 'expect': false
448
- },
449
- {
450
- 'title': 'string \'1.23\'',
451
- 'value': (1.23).toString(),
452
- 'expect': false
453
- },
454
- {
455
- 'title': 'string \'-1.23\'',
456
- 'value': (-1.23).toString(),
457
- 'expect': false
458
- },
459
- ...defaultItems({
460
- 'number 0': true,
461
- 'number 1': true
462
- })
463
- ]
464
- },
465
- {
466
- 'name': 'Integer between -0x80000000 and 0x7FFFFFFF',
467
- 'rule': ['$.string', 'int32'],
468
- 'items': [
469
- {
470
- 'title': 'number -1',
471
- 'value': -1,
472
- 'expect': true
473
- },
474
- {
475
- 'title': 'number -0x80000000',
476
- 'value': -0x80000000,
477
- 'expect': true
478
- },
479
- {
480
- 'title': 'number 0x7FFFFFFF',
481
- 'value': 0x7FFFFFFF,
482
- 'expect': true
483
- },
484
- {
485
- 'title': 'number 0x80000000',
486
- 'value': 0x80000000,
487
- 'expect': false
488
- },
489
- {
490
- 'title': 'number -0x80000001',
491
- 'value': -0x80000001,
492
- 'expect': false
493
- },
494
- {
495
- 'title': 'number 1.23',
496
- 'value': 1.23,
497
- 'expect': false
498
- },
499
- {
500
- 'title': 'number -1.23',
501
- 'value': -1.23,
502
- 'expect': false
503
- },
504
- {
505
- 'title': 'string \'-1\'',
506
- 'value': (-1).toString(),
507
- 'expect': true
508
- },
509
- {
510
- 'title': 'string \'-0x80000000\'',
511
- 'value': (-0x80000000).toString(),
512
- 'expect': true
513
- },
514
- {
515
- 'title': 'string \'0x7FFFFFFF\'',
516
- 'value': (0x7FFFFFFF).toString(),
517
- 'expect': true
518
- },
519
- {
520
- 'title': 'string \'0x80000000\'',
521
- 'value': (0x80000000).toString(),
522
- 'expect': false
523
- },
524
- {
525
- 'title': 'string \'-0x80000001\'',
526
- 'value': (-0x80000001).toString(),
527
- 'expect': false
528
- },
529
- {
530
- 'title': 'string \'1.23\'',
531
- 'value': (1.23).toString(),
532
- 'expect': false
533
- },
534
- {
535
- 'title': 'string \'-1.23\'',
536
- 'value': (-1.23).toString(),
537
- 'expect': false
538
- },
539
- ...defaultItems({
540
- 'number 0': true,
541
- 'number 1': true
542
- })
543
- ]
544
- },
545
- {
546
- 'name': '64-bits integer',
547
- 'rule': ['$.string', 'int64'],
548
- 'items': [
549
- {
550
- 'title': 'number -1',
551
- 'value': -1,
552
- 'expect': true
553
- },
554
- {
555
- 'title': 'number -0x8000000000000000',
556
- 'value': -0x8000000000000000,
557
- 'expect': true
558
- },
559
- {
560
- 'title': 'number 0x7FFFFFFF',
561
- 'value': 0x7FFFFFFF,
562
- 'expect': true
563
- },
564
- {
565
- 'title': 'number 0x7FFFFFFFFFFFFFFF',
566
- 'value': 0x7FFFFFFFFFFFFFFF,
567
- 'expect': true
568
- },
569
- {
570
- 'title': 'number 1.23',
571
- 'value': 1.23,
572
- 'expect': false
573
- },
574
- {
575
- 'title': 'number -1.23',
576
- 'value': -1.23,
577
- 'expect': false
578
- },
579
- {
580
- 'title': 'string \'-1\'',
581
- 'value': (-1).toString(),
582
- 'expect': true
583
- },
584
- {
585
- 'title': 'string \'-0x8000000000000000\'',
586
- 'value': (-0x8000000000000000).toString(),
587
- 'expect': true
588
- },
589
- {
590
- 'title': 'string \'0x7FFFFFFF\'',
591
- 'value': (0x7FFFFFFF).toString(),
592
- 'expect': true
593
- },
594
- {
595
- 'title': 'string \'0x7FFFFFFFFFFFFFFF\'',
596
- 'value': (0x7FFFFFFFFFFFFFFF).toString(),
597
- 'expect': true
598
- },
599
- {
600
- 'title': 'string \'1.23\'',
601
- 'value': (1.23).toString(),
602
- 'expect': false
603
- },
604
- {
605
- 'title': 'string \'-1.23\'',
606
- 'value': (-1.23).toString(),
607
- 'expect': false
608
- },
609
- ...defaultItems({
610
- 'number 0': true,
611
- 'number 1': true
612
- })
613
- ]
614
- },
615
- {
616
- 'name': 'Integer larger than -1',
617
- 'rule': ['$.string', 'uint'],
618
- 'items': [
619
- {
620
- 'title': 'number -1',
621
- 'value': -1,
622
- 'expect': false
623
- },
624
- {
625
- 'title': 'number 1.23',
626
- 'value': 1.23,
627
- 'expect': false
628
- },
629
- {
630
- 'title': 'string \'-1\'',
631
- 'value': (-1).toString(),
632
- 'expect': false
633
- },
634
- {
635
- 'title': 'string \'1.23\'',
636
- 'value': (1.23).toString(),
637
- 'expect': false
638
- },
639
- {
640
- 'title': 'string \'1\'',
641
- 'value': (1).toString(),
642
- 'expect': true
643
- },
644
- {
645
- 'title': 'string \'0\'',
646
- 'value': (0).toString(),
647
- 'expect': true
648
- },
649
- ...defaultItems({
650
- 'number 0': true,
651
- 'number 1': true
652
- })
653
- ]
654
- },
655
- {
656
- 'name': 'Integer between 0 and 0xFF',
657
- 'rule': ['$.string', 'uint8'],
658
- 'items': [
659
- {
660
- 'title': 'number -1',
661
- 'value': -1,
662
- 'expect': false
663
- },
664
- {
665
- 'title': 'number 0xFF',
666
- 'value': 0xFF,
667
- 'expect': true
668
- },
669
- {
670
- 'title': 'number 0x100',
671
- 'value': 0x100,
672
- 'expect': false
673
- },
674
- {
675
- 'title': 'number 1.23',
676
- 'value': 1.23,
677
- 'expect': false
678
- },
679
- {
680
- 'title': 'number -1.23',
681
- 'value': -1.23,
682
- 'expect': false
683
- },
684
- {
685
- 'title': 'string \'-1\'',
686
- 'value': (-1).toString(),
687
- 'expect': false
688
- },
689
- {
690
- 'title': 'string \'0xFF\'',
691
- 'value': (0xFF).toString(),
692
- 'expect': true
693
- },
694
- {
695
- 'title': 'string \'0x100\'',
696
- 'value': (0x100).toString(),
697
- 'expect': false
698
- },
699
- {
700
- 'title': 'string \'1.23\'',
701
- 'value': (1.23).toString(),
702
- 'expect': false
703
- },
704
- {
705
- 'title': 'string \'-1.23\'',
706
- 'value': (-1.23).toString(),
707
- 'expect': false
708
- },
709
- ...defaultItems({
710
- 'number 0': true,
711
- 'number 1': true
712
- })
713
- ]
714
- },
715
- {
716
- 'name': 'Integer between 0 and 0xFFFF',
717
- 'rule': ['$.string', 'uint16'],
718
- 'items': [
719
- {
720
- 'title': 'number -1',
721
- 'value': -1,
722
- 'expect': false
723
- },
724
- {
725
- 'title': 'number 0xFFFF',
726
- 'value': 0xFFFF,
727
- 'expect': true
728
- },
729
- {
730
- 'title': 'number 0x10000',
731
- 'value': 0x10000,
732
- 'expect': false
733
- },
734
- {
735
- 'title': 'number 1.23',
736
- 'value': 1.23,
737
- 'expect': false
738
- },
739
- {
740
- 'title': 'number -1.23',
741
- 'value': -1.23,
742
- 'expect': false
743
- },
744
- {
745
- 'title': 'string \'-1\'',
746
- 'value': (-1).toString(),
747
- 'expect': false
748
- },
749
- {
750
- 'title': 'string \'0xFFFF\'',
751
- 'value': (0xFFFF).toString(),
752
- 'expect': true
753
- },
754
- {
755
- 'title': 'string \'0x10000\'',
756
- 'value': (0x10000).toString(),
757
- 'expect': false
758
- },
759
- {
760
- 'title': 'string \'1.23\'',
761
- 'value': (1.23).toString(),
762
- 'expect': false
763
- },
764
- {
765
- 'title': 'string \'-1.23\'',
766
- 'value': (-1.23).toString(),
767
- 'expect': false
768
- },
769
- ...defaultItems({
770
- 'number 0': true,
771
- 'number 1': true
772
- })
773
- ]
774
- },
775
- {
776
- 'name': 'Integer between 0 and 0xFFFFFFFF',
777
- 'rule': ['$.string', 'uint32'],
778
- 'items': [
779
- {
780
- 'title': 'number -1',
781
- 'value': -1,
782
- 'expect': false
783
- },
784
- {
785
- 'title': 'number 0xFFFFFFFF',
786
- 'value': 0xFFFFFFFF,
787
- 'expect': true
788
- },
789
- {
790
- 'title': 'number 0x100000000',
791
- 'value': 0x100000000,
792
- 'expect': false
793
- },
794
- {
795
- 'title': 'number 1.23',
796
- 'value': 1.23,
797
- 'expect': false
798
- },
799
- {
800
- 'title': 'number -1.23',
801
- 'value': -1.23,
802
- 'expect': false
803
- },
804
- {
805
- 'title': 'string \'-1\'',
806
- 'value': (-1).toString(),
807
- 'expect': false
808
- },
809
- {
810
- 'title': 'string \'0xFFFFFFFF\'',
811
- 'value': (0xFFFFFFFF).toString(),
812
- 'expect': true
813
- },
814
- {
815
- 'title': 'string \'0x100000000\'',
816
- 'value': (0x100000000).toString(),
817
- 'expect': false
818
- },
819
- {
820
- 'title': 'string \'1.23\'',
821
- 'value': (1.23).toString(),
822
- 'expect': false
823
- },
824
- {
825
- 'title': 'string \'-1.23\'',
826
- 'value': (-1.23).toString(),
827
- 'expect': false
828
- },
829
- ...defaultItems({
830
- 'number 0': true,
831
- 'number 1': true
832
- })
833
- ]
834
- },
835
- {
836
- 'name': 'Integer between 0 and 0xFFFFFFFFFFFFFFFF',
837
- 'rule': ['$.string', 'uint64'],
838
- 'items': [
839
- {
840
- 'title': 'number -1',
841
- 'value': -1,
842
- 'expect': false
843
- },
844
- {
845
- 'title': 'number 0xFFFFFFFFFFFFFFFF',
846
- 'value': 0xFFFFFFFFFFFFFFFF,
847
- 'expect': true
848
- },
849
- {
850
- 'title': 'number 0x7FFFFFFF',
851
- 'value': 0x7FFFFFFF,
852
- 'expect': true
853
- },
854
- {
855
- 'title': 'number 1.23',
856
- 'value': 1.23,
857
- 'expect': false
858
- },
859
- {
860
- 'title': 'number -1.23',
861
- 'value': -1.23,
862
- 'expect': false
863
- },
864
- {
865
- 'title': 'string \'-1\'',
866
- 'value': (-1).toString(),
867
- 'expect': false
868
- },
869
- {
870
- 'title': 'string \'0xFFFFFFFFFFFFFFFF\'',
871
- 'value': (0xFFFFFFFFFFFFFFFF).toString(),
872
- 'expect': true
873
- },
874
- {
875
- 'title': 'string \'0x7FFFFFFF\'',
876
- 'value': (0x7FFFFFFF).toString(),
877
- 'expect': true
878
- },
879
- {
880
- 'title': 'string \'1.23\'',
881
- 'value': (1.23).toString(),
882
- 'expect': false
883
- },
884
- {
885
- 'title': 'string \'-1.23\'',
886
- 'value': (-1.23).toString(),
887
- 'expect': false
888
- },
889
- ...defaultItems({
890
- 'number 0': true,
891
- 'number 1': true
892
- })
893
- ]
894
- },
895
- {
896
- 'name': 'Accuracy safe integer',
897
- 'rule': ['$.string', 'safe_int'],
898
- 'items': [
899
- {
900
- 'title': 'number -1',
901
- 'value': -1,
902
- 'expect': true
903
- },
904
- {
905
- 'title': 'number 9007199254740991',
906
- 'value': 9007199254740991,
907
- 'expect': true
908
- },
909
- {
910
- 'title': 'number -9007199254740991',
911
- 'value': -9007199254740991,
912
- 'expect': true
913
- },
914
- {
915
- 'title': 'number 9007199254740992',
916
- 'value': 9007199254740992,
917
- 'expect': false
918
- },
919
- {
920
- 'title': 'number -9007199254740992',
921
- 'value': -9007199254740992,
922
- 'expect': false
923
- },
924
- {
925
- 'title': 'number 1.23',
926
- 'value': 1.23,
927
- 'expect': false
928
- },
929
- {
930
- 'title': 'number -1.23',
931
- 'value': -1.23,
932
- 'expect': false
933
- },
934
- {
935
- 'title': 'string \'-1\'',
936
- 'value': (-1).toString(),
937
- 'expect': true
938
- },
939
- {
940
- 'title': 'string \'9007199254740991\'',
941
- 'value': (9007199254740991).toString(),
942
- 'expect': true
943
- },
944
- {
945
- 'title': 'string \'-9007199254740991\'',
946
- 'value': (-9007199254740991).toString(),
947
- 'expect': true
948
- },
949
- {
950
- 'title': 'string \'9007199254740992\'',
951
- 'value': (9007199254740992).toString(),
952
- 'expect': false
953
- },
954
- {
955
- 'title': 'string \'-9007199254740992\'',
956
- 'value': (-9007199254740992).toString(),
957
- 'expect': false
958
- },
959
- {
960
- 'title': 'string \'1.23\'',
961
- 'value': (1.23).toString(),
962
- 'expect': false
963
- },
964
- {
965
- 'title': 'string \'-1.23\'',
966
- 'value': (-1.23).toString(),
967
- 'expect': false
968
- },
969
- ...defaultItems({
970
- 'number 0': true,
971
- 'number 1': true
972
- })
973
- ]
974
- },
975
- {
976
- 'name': 'Accuracy safe unsigned integer',
977
- 'rule': ['$.string', 'safe_uint'],
978
- 'items': [
979
- {
980
- 'title': 'number -1',
981
- 'value': -1,
982
- 'expect': false
983
- },
984
- {
985
- 'title': 'number 9007199254740991',
986
- 'value': 9007199254740991,
987
- 'expect': true
988
- },
989
- {
990
- 'title': 'number 9007199254740992',
991
- 'value': 9007199254740992,
992
- 'expect': false
993
- },
994
- {
995
- 'title': 'number 1.23',
996
- 'value': 1.23,
997
- 'expect': false
998
- },
999
- {
1000
- 'title': 'number -1.23',
1001
- 'value': -1.23,
1002
- 'expect': false
1003
- },
1004
- {
1005
- 'title': 'string \'-1\'',
1006
- 'value': (-1).toString(),
1007
- 'expect': false
1008
- },
1009
- {
1010
- 'title': 'string \'9007199254740991\'',
1011
- 'value': (9007199254740991).toString(),
1012
- 'expect': true
1013
- },
1014
- {
1015
- 'title': 'string \'9007199254740992\'',
1016
- 'value': (9007199254740992).toString(),
1017
- 'expect': false
1018
- },
1019
- {
1020
- 'title': 'string \'1.23\'',
1021
- 'value': (1.23).toString(),
1022
- 'expect': false
1023
- },
1024
- {
1025
- 'title': 'string \'-1.23\'',
1026
- 'value': (-1.23).toString(),
1027
- 'expect': false
1028
- },
1029
- ...defaultItems({
1030
- 'number 0': true,
1031
- 'number 1': true
1032
- })
1033
- ]
1034
- },
1035
- {
1036
- 'name': 'Float number',
1037
- 'rule': ['$.string', 'float'],
1038
- 'items': [
1039
- {
1040
- 'title': 'number -1',
1041
- 'value': -1,
1042
- 'expect': true
1043
- },
1044
- {
1045
- 'title': 'number 120312',
1046
- 'value': 120312,
1047
- 'expect': true
1048
- },
1049
- {
1050
- 'title': 'number 1.23',
1051
- 'value': 1.23,
1052
- 'expect': true
1053
- },
1054
- {
1055
- 'title': 'number -1.23',
1056
- 'value': -1.23,
1057
- 'expect': true
1058
- },
1059
- {
1060
- 'title': 'string \'-1\'',
1061
- 'value': (-1).toString(),
1062
- 'expect': true
1063
- },
1064
- {
1065
- 'title': 'string \'120312\'',
1066
- 'value': (120312).toString(),
1067
- 'expect': true
1068
- },
1069
- {
1070
- 'title': 'string \'1.23\'',
1071
- 'value': (1.23).toString(),
1072
- 'expect': true
1073
- },
1074
- {
1075
- 'title': 'string \'-1.23\'',
1076
- 'value': (-1.23).toString(),
1077
- 'expect': true
1078
- },
1079
- ...defaultItems({
1080
- 'number 0': true,
1081
- 'number 1': true
1082
- })
1083
- ]
1084
- },
1085
- {
1086
- 'name': 'Unsigned float number',
1087
- 'rule': ['$.string', 'ufloat'],
1088
- 'items': [
1089
- {
1090
- 'title': 'number -1',
1091
- 'value': -1,
1092
- 'expect': false
1093
- },
1094
- {
1095
- 'title': 'number 120312',
1096
- 'value': 120312,
1097
- 'expect': true
1098
- },
1099
- {
1100
- 'title': 'number 1.23',
1101
- 'value': 1.23,
1102
- 'expect': true
1103
- },
1104
- {
1105
- 'title': 'number -1.23',
1106
- 'value': -1.23,
1107
- 'expect': false
1108
- },
1109
- {
1110
- 'title': 'string \'-1\'',
1111
- 'value': (-1).toString(),
1112
- 'expect': false
1113
- },
1114
- {
1115
- 'title': 'string \'120312\'',
1116
- 'value': (120312).toString(),
1117
- 'expect': true
1118
- },
1119
- {
1120
- 'title': 'string \'1.23\'',
1121
- 'value': (1.23).toString(),
1122
- 'expect': true
1123
- },
1124
- {
1125
- 'title': 'string \'-1.23\'',
1126
- 'value': (-1.23).toString(),
1127
- 'expect': false
1128
- },
1129
- ...defaultItems({
1130
- 'number 0': true,
1131
- 'number 1': true
1132
- })
1133
- ]
1134
- },
1135
- {
1136
- 'name': 'Number',
1137
- 'rule': ['$.string', 'number'],
1138
- 'items': [
1139
- {
1140
- 'title': 'number -1',
1141
- 'value': -1,
1142
- 'expect': true
1143
- },
1144
- {
1145
- 'title': 'number 120312',
1146
- 'value': 120312,
1147
- 'expect': true
1148
- },
1149
- {
1150
- 'title': 'number 1.23',
1151
- 'value': 1.23,
1152
- 'expect': true
1153
- },
1154
- {
1155
- 'title': 'number -1.23',
1156
- 'value': -1.23,
1157
- 'expect': true
1158
- },
1159
- {
1160
- 'title': 'string \'-1\'',
1161
- 'value': (-1).toString(),
1162
- 'expect': true
1163
- },
1164
- {
1165
- 'title': 'string \'120312\'',
1166
- 'value': (120312).toString(),
1167
- 'expect': true
1168
- },
1169
- {
1170
- 'title': 'string \'1.23\'',
1171
- 'value': (1.23).toString(),
1172
- 'expect': true
1173
- },
1174
- {
1175
- 'title': 'string \'-1.23\'',
1176
- 'value': (-1.23).toString(),
1177
- 'expect': true
1178
- },
1179
- ...defaultItems({
1180
- 'number 0': true,
1181
- 'number 1': true
1182
- })
1183
- ]
1184
- },
1185
- {
1186
- 'name': 'Number between 1.0, 10.0',
1187
- 'rule': ['$.string', 'number(1.0, 10.0)'],
1188
- 'items': [
1189
- {
1190
- 'title': 'number -1',
1191
- 'value': -1,
1192
- 'expect': false
1193
- },
1194
- {
1195
- 'title': 'number 1',
1196
- 'value': 1,
1197
- 'expect': true
1198
- },
1199
- {
1200
- 'title': 'number 10',
1201
- 'value': 10,
1202
- 'expect': true
1203
- },
1204
- {
1205
- 'title': 'number 11',
1206
- 'value': 11,
1207
- 'expect': false
1208
- },
1209
- {
1210
- 'title': 'number 0',
1211
- 'value': 0,
1212
- 'expect': false
1213
- },
1214
- {
1215
- 'title': 'number 1.23',
1216
- 'value': 1.23,
1217
- 'expect': true
1218
- },
1219
- {
1220
- 'title': 'number -1.23',
1221
- 'value': -1.23,
1222
- 'expect': false
1223
- },
1224
- {
1225
- 'title': 'string \'-1\'',
1226
- 'value': (-1).toString(),
1227
- 'expect': false
1228
- },
1229
- {
1230
- 'title': 'string \'1\'',
1231
- 'value': (1).toString(),
1232
- 'expect': true
1233
- },
1234
- {
1235
- 'title': 'string \'10\'',
1236
- 'value': (10).toString(),
1237
- 'expect': true
1238
- },
1239
- {
1240
- 'title': 'string \'11\'',
1241
- 'value': (11).toString(),
1242
- 'expect': false
1243
- },
1244
- {
1245
- 'title': 'string \'0\'',
1246
- 'value': (0).toString(),
1247
- 'expect': false
1248
- },
1249
- {
1250
- 'title': 'string \'1.23\'',
1251
- 'value': (1.23).toString(),
1252
- 'expect': true
1253
- },
1254
- {
1255
- 'title': 'string \'-1.23\'',
1256
- 'value': (-1.23).toString(),
1257
- 'expect': false
1258
- },
1259
- ...defaultItems({
1260
- 'number 0': false,
1261
- 'number 1': true
1262
- })
1263
- ]
1264
- },
1265
- {
1266
- 'name': 'Number larger than 1',
1267
- 'rule': ['$.string', 'number(1, )'],
1268
- 'items': [
1269
- {
1270
- 'title': 'number -1',
1271
- 'value': -1,
1272
- 'expect': false
1273
- },
1274
- {
1275
- 'title': 'number 1',
1276
- 'value': 1,
1277
- 'expect': true
1278
- },
1279
- {
1280
- 'title': 'number 10',
1281
- 'value': 10,
1282
- 'expect': true
1283
- },
1284
- {
1285
- 'title': 'number 11',
1286
- 'value': 11,
1287
- 'expect': true
1288
- },
1289
- {
1290
- 'title': 'number 0',
1291
- 'value': 0,
1292
- 'expect': false
1293
- },
1294
- {
1295
- 'title': 'number 1.23',
1296
- 'value': 1.23,
1297
- 'expect': true
1298
- },
1299
- {
1300
- 'title': 'number -1.23',
1301
- 'value': -1.23,
1302
- 'expect': false
1303
- },
1304
- {
1305
- 'title': 'string \'-1\'',
1306
- 'value': (-1).toString(),
1307
- 'expect': false
1308
- },
1309
- {
1310
- 'title': 'string \'1\'',
1311
- 'value': (1).toString(),
1312
- 'expect': true
1313
- },
1314
- {
1315
- 'title': 'string \'10\'',
1316
- 'value': (10).toString(),
1317
- 'expect': true
1318
- },
1319
- {
1320
- 'title': 'string \'11\'',
1321
- 'value': (11).toString(),
1322
- 'expect': true
1323
- },
1324
- {
1325
- 'title': 'string \'0\'',
1326
- 'value': (0).toString(),
1327
- 'expect': false
1328
- },
1329
- {
1330
- 'title': 'string \'1.23\'',
1331
- 'value': (1.23).toString(),
1332
- 'expect': true
1333
- },
1334
- {
1335
- 'title': 'string \'-1.23\'',
1336
- 'value': (-1.23).toString(),
1337
- 'expect': false
1338
- },
1339
- ...defaultItems({
1340
- 'number 0': false,
1341
- 'number 1': true
1342
- })
1343
- ]
1344
- },
1345
- {
1346
- 'name': 'Number lower than -1',
1347
- 'rule': ['$.string', 'number(, -1)'],
1348
- 'items': [
1349
- {
1350
- 'title': 'number -1',
1351
- 'value': -1,
1352
- 'expect': true
1353
- },
1354
- {
1355
- 'title': 'number 1',
1356
- 'value': 1,
1357
- 'expect': false
1358
- },
1359
- {
1360
- 'title': 'number -0.3',
1361
- 'value': -0.3,
1362
- 'expect': false
1363
- },
1364
- {
1365
- 'title': 'number -11',
1366
- 'value': -11,
1367
- 'expect': true
1368
- },
1369
- {
1370
- 'title': 'number 0',
1371
- 'value': 0,
1372
- 'expect': false
1373
- },
1374
- {
1375
- 'title': 'number -1.23',
1376
- 'value': -1.23,
1377
- 'expect': true
1378
- },
1379
- {
1380
- 'title': 'string \'-1\'',
1381
- 'value': (-1).toString(),
1382
- 'expect': true
1383
- },
1384
- {
1385
- 'title': 'string \'1\'',
1386
- 'value': (1).toString(),
1387
- 'expect': false
1388
- },
1389
- {
1390
- 'title': 'string \'-0.3\'',
1391
- 'value': (-0.3).toString(),
1392
- 'expect': false
1393
- },
1394
- {
1395
- 'title': 'string \'-11\'',
1396
- 'value': (-11).toString(),
1397
- 'expect': true
1398
- },
1399
- {
1400
- 'title': 'string \'0\'',
1401
- 'value': (0).toString(),
1402
- 'expect': false
1403
- },
1404
- {
1405
- 'title': 'string \'-1.23\'',
1406
- 'value': (-1.23).toString(),
1407
- 'expect': true
1408
- },
1409
- ...defaultItems({
1410
- 'number 0': false,
1411
- 'number 1': false
1412
- })
1413
- ]
1414
- },
1415
- {
1416
- 'name': 'Null',
1417
- 'rule': ['$.string', 'null'],
1418
- 'items': [
1419
- {
1420
- 'title': 'string \'null\'',
1421
- 'value': 'null',
1422
- 'expect': true
1423
- },
1424
- ...defaultItems({
1425
- 'null': true
1426
- })
1427
- ]
1428
- },
1429
- {
1430
- 'name': 'Literal null',
1431
- 'rule': ['$.string', null],
1432
- 'items': [
1433
- {
1434
- 'title': 'string \'null\'',
1435
- 'value': 'null',
1436
- 'expect': true
1437
- },
1438
- ...defaultItems({
1439
- 'null': true
1440
- })
1441
- ]
1442
- },
1443
- {
1444
- 'name': 'Literal number 1',
1445
- 'rule': ['$.string', 1],
1446
- 'items': [
1447
- {
1448
- 'title': 'string \'1\'',
1449
- 'value': '1',
1450
- 'expect': true
1451
- },
1452
- ...defaultItems({
1453
- 'number 1': true
1454
- })
1455
- ]
1456
- },
1457
- {
1458
- 'name': 'Literal true',
1459
- 'rule': ['$.string', true],
1460
- 'items': [
1461
- {
1462
- 'title': 'string \'true\'',
1463
- 'value': 'true',
1464
- 'expect': true
1465
- },
1466
- ...defaultItems({
1467
- 'true': true
1468
- })
1469
- ]
1470
- },
1471
- {
1472
- 'name': 'Literal false',
1473
- 'rule': ['$.string', false],
1474
- 'items': [
1475
- {
1476
- 'title': 'string \'false\'',
1477
- 'value': 'false',
1478
- 'expect': true
1479
- },
1480
- ...defaultItems({
1481
- 'false': true
1482
- })
1483
- ]
1484
- },
1485
- ]
1486
- };
1487
-
1488
- export default createTestDefinition(testItems);