@@ -320,13 +320,44 @@ describe("strictParseDouble", () => {
320
320
expect ( strictParseDouble ( "NaN" ) ) . toEqual ( NaN ) ;
321
321
} ) ;
322
322
323
- it ( "rejects implicit NaN" , ( ) => {
324
- expect ( ( ) => strictParseDouble ( "foo" ) ) . toThrowError ( ) ;
323
+ describe ( "rejects implicit NaN" , ( ) => {
324
+ it . each ( [
325
+ "foo" ,
326
+ "123ABC" ,
327
+ "ABC123" ,
328
+ "12AB3C" ,
329
+ "1.A" ,
330
+ "1.1A" ,
331
+ "1.1A1" ,
332
+ "0xFF" ,
333
+ "0XFF" ,
334
+ "0b1111" ,
335
+ "0B1111" ,
336
+ "0777" ,
337
+ "0o777" ,
338
+ "0O777" ,
339
+ "1n" ,
340
+ "1N" ,
341
+ "1_000" ,
342
+ "e" ,
343
+ "e1" ,
344
+ ".1" ,
345
+ ] ) ( "rejects %s" , ( value ) => {
346
+ expect ( ( ) => strictParseDouble ( value ) ) . toThrowError ( ) ;
347
+ } ) ;
325
348
} ) ;
326
349
327
350
it ( "accepts numeric strings" , ( ) => {
328
351
expect ( strictParseDouble ( "1" ) ) . toEqual ( 1 ) ;
352
+ expect ( strictParseDouble ( "-1" ) ) . toEqual ( - 1 ) ;
329
353
expect ( strictParseDouble ( "1.1" ) ) . toEqual ( 1.1 ) ;
354
+ expect ( strictParseDouble ( "1e1" ) ) . toEqual ( 10 ) ;
355
+ expect ( strictParseDouble ( "-1e1" ) ) . toEqual ( - 10 ) ;
356
+ expect ( strictParseDouble ( "1e+1" ) ) . toEqual ( 10 ) ;
357
+ expect ( strictParseDouble ( "1e-1" ) ) . toEqual ( 0.1 ) ;
358
+ expect ( strictParseDouble ( "1E1" ) ) . toEqual ( 10 ) ;
359
+ expect ( strictParseDouble ( "1E+1" ) ) . toEqual ( 10 ) ;
360
+ expect ( strictParseDouble ( "1E-1" ) ) . toEqual ( 0.1 ) ;
330
361
} ) ;
331
362
332
363
describe ( "accepts numbers" , ( ) => {
@@ -347,8 +378,31 @@ describe("strictParseFloat32", () => {
347
378
expect ( strictParseFloat32 ( "NaN" ) ) . toEqual ( NaN ) ;
348
379
} ) ;
349
380
350
- it ( "rejects implicit NaN" , ( ) => {
351
- expect ( ( ) => strictParseFloat32 ( "foo" ) ) . toThrowError ( ) ;
381
+ describe ( "rejects implicit NaN" , ( ) => {
382
+ it . each ( [
383
+ "foo" ,
384
+ "123ABC" ,
385
+ "ABC123" ,
386
+ "12AB3C" ,
387
+ "1.A" ,
388
+ "1.1A" ,
389
+ "1.1A1" ,
390
+ "0xFF" ,
391
+ "0XFF" ,
392
+ "0b1111" ,
393
+ "0B1111" ,
394
+ "0777" ,
395
+ "0o777" ,
396
+ "0O777" ,
397
+ "1n" ,
398
+ "1N" ,
399
+ "1_000" ,
400
+ "e" ,
401
+ "e1" ,
402
+ ".1" ,
403
+ ] ) ( "rejects %s" , ( value ) => {
404
+ expect ( ( ) => strictParseFloat32 ( value ) ) . toThrowError ( ) ;
405
+ } ) ;
352
406
} ) ;
353
407
354
408
describe ( "rejects doubles" , ( ) => {
@@ -359,7 +413,15 @@ describe("strictParseFloat32", () => {
359
413
360
414
it ( "accepts numeric strings" , ( ) => {
361
415
expect ( strictParseFloat32 ( "1" ) ) . toEqual ( 1 ) ;
416
+ expect ( strictParseFloat32 ( "-1" ) ) . toEqual ( - 1 ) ;
362
417
expect ( strictParseFloat32 ( "1.1" ) ) . toEqual ( 1.1 ) ;
418
+ expect ( strictParseFloat32 ( "1e1" ) ) . toEqual ( 10 ) ;
419
+ expect ( strictParseFloat32 ( "-1e1" ) ) . toEqual ( - 10 ) ;
420
+ expect ( strictParseFloat32 ( "1e+1" ) ) . toEqual ( 10 ) ;
421
+ expect ( strictParseFloat32 ( "1e-1" ) ) . toEqual ( 0.1 ) ;
422
+ expect ( strictParseFloat32 ( "1E1" ) ) . toEqual ( 10 ) ;
423
+ expect ( strictParseFloat32 ( "1E+1" ) ) . toEqual ( 10 ) ;
424
+ expect ( strictParseFloat32 ( "1E-1" ) ) . toEqual ( 0.1 ) ;
363
425
} ) ;
364
426
365
427
describe ( "accepts numbers" , ( ) => {
@@ -489,12 +551,26 @@ describe("strictParseLong", () => {
489
551
} ) ;
490
552
491
553
describe ( "rejects non-integers" , ( ) => {
492
- it . each ( [ 1.1 , "1.1" , "NaN" , "Infinity" , "-Infinity" , NaN , Infinity , - Infinity , true , false , [ ] , { } ] ) (
493
- "rejects %s" ,
494
- ( value ) => {
495
- expect ( ( ) => strictParseLong ( value as any ) ) . toThrowError ( ) ;
496
- }
497
- ) ;
554
+ it . each ( [
555
+ 1.1 ,
556
+ "1.1" ,
557
+ "NaN" ,
558
+ "Infinity" ,
559
+ "-Infinity" ,
560
+ NaN ,
561
+ Infinity ,
562
+ - Infinity ,
563
+ true ,
564
+ false ,
565
+ [ ] ,
566
+ { } ,
567
+ "foo" ,
568
+ "123ABC" ,
569
+ "ABC123" ,
570
+ "12AB3C" ,
571
+ ] ) ( "rejects %s" , ( value ) => {
572
+ expect ( ( ) => strictParseLong ( value as any ) ) . toThrowError ( ) ;
573
+ } ) ;
498
574
} ) ;
499
575
} ) ;
500
576
@@ -530,6 +606,10 @@ describe("strictParseInt32", () => {
530
606
- ( 2 ** 63 + 1 ) ,
531
607
2 ** 31 ,
532
608
- ( 2 ** 31 + 1 ) ,
609
+ "foo" ,
610
+ "123ABC" ,
611
+ "ABC123" ,
612
+ "12AB3C" ,
533
613
] ) ( "rejects %s" , ( value ) => {
534
614
expect ( ( ) => strictParseInt32 ( value as any ) ) . toThrowError ( ) ;
535
615
} ) ;
@@ -570,6 +650,10 @@ describe("strictParseShort", () => {
570
650
- ( 2 ** 31 + 1 ) ,
571
651
2 ** 15 ,
572
652
- ( 2 ** 15 + 1 ) ,
653
+ "foo" ,
654
+ "123ABC" ,
655
+ "ABC123" ,
656
+ "12AB3C" ,
573
657
] ) ( "rejects %s" , ( value ) => {
574
658
expect ( ( ) => strictParseShort ( value as any ) ) . toThrowError ( ) ;
575
659
} ) ;
@@ -612,6 +696,10 @@ describe("strictParseByte", () => {
612
696
- ( 2 ** 15 + 1 ) ,
613
697
128 ,
614
698
- 129 ,
699
+ "foo" ,
700
+ "123ABC" ,
701
+ "ABC123" ,
702
+ "12AB3C" ,
615
703
] ) ( "rejects %s" , ( value ) => {
616
704
expect ( ( ) => strictParseByte ( value as any ) ) . toThrowError ( ) ;
617
705
} ) ;
0 commit comments