@@ -501,64 +501,6 @@ include("floats.jl")
501
501
include (" dates.jl" )
502
502
include (" bools.jl" )
503
503
504
- @testset " Misc" begin
505
-
506
- @test Parsers. parse (" 101" , Int) === 101
507
- @test Parsers. parse (" 101,101" , Float64; decimal= ' ,' ) === 101.101
508
- @test Parsers. parse (IOBuffer (" true" ), Bool) === true
509
- @test_throws Parsers. Error Parsers. parse (" abc" , Int)
510
-
511
- @test Parsers. tryparse (" abc" , Int) === nothing
512
- @test Parsers. tryparse (IOBuffer (" 101,101" ), Float32; decimal= ' ,' ) === Float32 (101.101 )
513
-
514
- # custom parser
515
- function int2str (io:: IO , r:: Parsers.Result{Int} , args... )
516
- v = 0
517
- while ! eof (io) && (UInt8 (' 0' ) <= Parsers. peekbyte (io) <= UInt8 (' 9' ))
518
- v *= 10
519
- v += Int (Parsers. readbyte (io) - UInt8 (' 0' ))
520
- end
521
- r. result = v
522
- r. code = OK
523
- return r
524
- end
525
-
526
- @test Parsers. parse (int2str, " 101" , Int) === 101
527
- @test Parsers. parse (int2str, IOBuffer (" 101" ), Int) === 101
528
- @test Parsers. tryparse (int2str, " 101" , Int) === 101
529
- @test Parsers. tryparse (int2str, IOBuffer (" 101" ), Int) === 101
530
-
531
- @test Parsers. parse (" 01/20/2018" , Date; dateformat= " mm/dd/yyyy" ) === Date (2018 , 1 , 20 )
532
-
533
- @test_throws Parsers. Error Parsers. parse (" " , Missing)
534
- @test Parsers. tryparse (" " , Missing) === nothing
535
-
536
- r = Parsers. parse (Parsers. Quoted (' {' , ' }' , ' \\ ' ), IOBuffer (" {1}" ), Int)
537
- @test r. result === 1
538
- @test r. code === OK | QUOTED | EOF
539
- @test r. pos == 0
540
-
541
- let io= IOBuffer (" 1,2,null,4" ), layers= Parsers. Delimited (Parsers. Quoted (Parsers. Sentinel ([" null" ])))
542
- r = Parsers. parse (layers, io, Int)
543
- @test r. result === 1
544
- @test r. code === OK | DELIMITED
545
- @test r. pos == 0
546
- r = Parsers. parse (layers, io, Int)
547
- @test r. result === 2
548
- @test r. code === OK | DELIMITED
549
- @test r. pos == 2
550
- r = Parsers. parse (layers, io, Int)
551
- @test r. result === missing
552
- @test r. code === SENTINEL | DELIMITED
553
- @test r. pos == 4
554
- r = Parsers. parse (layers, io, Int)
555
- @test r. result === 4
556
- @test r. code === OK | EOF
557
- @test r. pos == 9
558
- end
559
-
560
- end # @testset
561
-
562
504
@testset " ignore repeated delimiters" begin
563
505
564
506
let io= IOBuffer (" 1,,,2,null,4" ), layers= Parsers. Delimited (Parsers. Quoted (Parsers. Sentinel ([" null" ])); ignore_repeated= true )
651
593
652
594
end # @testset
653
595
596
+ @testset " Misc" begin
597
+
598
+ @test Parsers. parse (" 101" , Int) === 101
599
+ @test Parsers. parse (" 101,101" , Float64; decimal= ' ,' ) === 101.101
600
+ @test Parsers. parse (IOBuffer (" true" ), Bool) === true
601
+ @test_throws Parsers. Error Parsers. parse (" abc" , Int)
602
+
603
+ @test Parsers. tryparse (" abc" , Int) === nothing
604
+ @test Parsers. tryparse (IOBuffer (" 101,101" ), Float32; decimal= ' ,' ) === Float32 (101.101 )
605
+
606
+ # custom parser
607
+ function int2str (io:: IO , r:: Parsers.Result{Int} , args... )
608
+ v = 0
609
+ while ! eof (io) && (UInt8 (' 0' ) <= Parsers. peekbyte (io) <= UInt8 (' 9' ))
610
+ v *= 10
611
+ v += Int (Parsers. readbyte (io) - UInt8 (' 0' ))
612
+ end
613
+ r. result = v
614
+ r. code = OK
615
+ return r
616
+ end
617
+
618
+ @test Parsers. parse (int2str, " 101" , Int) === 101
619
+ @test Parsers. parse (int2str, IOBuffer (" 101" ), Int) === 101
620
+ @test Parsers. tryparse (int2str, " 101" , Int) === 101
621
+ @test Parsers. tryparse (int2str, IOBuffer (" 101" ), Int) === 101
622
+
623
+ @test Parsers. parse (" 01/20/2018" , Date; dateformat= " mm/dd/yyyy" ) === Date (2018 , 1 , 20 )
624
+
625
+ @test_throws Parsers. Error Parsers. parse (" " , Missing)
626
+ @test Parsers. tryparse (" " , Missing) === nothing
627
+
628
+ r = Parsers. parse (Parsers. Quoted (' {' , ' }' , ' \\ ' ), IOBuffer (" {1}" ), Int)
629
+ @test r. result === 1
630
+ @test r. code === OK | QUOTED | EOF
631
+ @test r. pos == 0
632
+
633
+ let io= IOBuffer (" 1,2,null,4" ), layers= Parsers. Delimited (Parsers. Quoted (Parsers. Sentinel ([" null" ])))
634
+ r = Parsers. parse (layers, io, Int)
635
+ @test r. result === 1
636
+ @test r. code === OK | DELIMITED
637
+ @test r. pos == 0
638
+ r = Parsers. parse (layers, io, Int)
639
+ @test r. result === 2
640
+ @test r. code === OK | DELIMITED
641
+ @test r. pos == 2
642
+ r = Parsers. parse (layers, io, Int)
643
+ @test r. result === missing
644
+ @test r. code === SENTINEL | DELIMITED
645
+ @test r. pos == 4
646
+ r = Parsers. parse (layers, io, Int)
647
+ @test r. result === 4
648
+ @test r. code === OK | EOF
649
+ @test r. pos == 9
650
+ end
651
+
652
+ # 6: AbstractString input
653
+ @test Parsers. parse (SubString (" 101" ), Int) === 101
654
+ @test Parsers. parse (SubString (" 101,101" ), Float64; decimal= ' ,' ) === 101.101
655
+ @test Parsers. parse (IOBuffer (" true" ), Bool) === true
656
+ @test_throws Parsers. Error Parsers. parse (" abc" , Int)
657
+
658
+ @test Parsers. tryparse (" abc" , Int) === nothing
659
+ @test Parsers. tryparse (IOBuffer (SubString (" 101,101" )), Float32; decimal= ' ,' ) === Float32 (101.101 )
660
+
661
+ @test Parsers. parse (int2str, SubString (" 101" ), Int) === 101
662
+ @test Parsers. parse (int2str, IOBuffer (SubString (" 101" )), Int) === 101
663
+ @test Parsers. tryparse (int2str, SubString (" 101" ), Int) === 101
664
+ @test Parsers. tryparse (int2str, IOBuffer (SubString (" 101" )), Int) === 101
665
+
666
+ end # @testset
667
+
654
668
end # @testset
0 commit comments