@@ -3762,6 +3762,89 @@ mod bench {
3762
3762
}
3763
3763
}
3764
3764
3765
+ #[ bench]
3766
+ fn split_iter_unicode_ascii( bh: & mut BenchHarness ) {
3767
+ let s = "ประเทศไทย中华Việt Namประเทศไทย中华Việt Nam" ;
3768
+
3769
+ do bh. iter {
3770
+ assert_eq!( s. split_iter( 'V' ) . len( ) , 3 ) ;
3771
+ }
3772
+ }
3773
+
3774
+ #[ bench]
3775
+ fn split_iter_unicode_not_ascii( bh: & mut BenchHarness ) {
3776
+ struct NotAscii ( char ) ;
3777
+ impl CharEq for NotAscii {
3778
+ fn matches( & self , c: char ) -> bool {
3779
+ * * self == c
3780
+ }
3781
+ fn only_ascii( & self ) -> bool { false }
3782
+ }
3783
+ let s = "ประเทศไทย中华Việt Namประเทศไทย中华Việt Nam" ;
3784
+
3785
+ do bh. iter {
3786
+ assert_eq!( s. split_iter( NotAscii ( 'V' ) ) . len( ) , 3 ) ;
3787
+ }
3788
+ }
3789
+
3790
+
3791
+ #[ bench]
3792
+ fn split_iter_ascii( bh: & mut BenchHarness ) {
3793
+ let s = "Mary had a little lamb, Little lamb, little-lamb." ;
3794
+ let len = s. split_iter( ' ' ) . len( ) ;
3795
+
3796
+ do bh. iter {
3797
+ assert_eq!( s. split_iter( ' ' ) . len( ) , len) ;
3798
+ }
3799
+ }
3800
+
3801
+ #[ bench]
3802
+ fn split_iter_not_ascii( bh: & mut BenchHarness ) {
3803
+ struct NotAscii ( char ) ;
3804
+ impl CharEq for NotAscii {
3805
+ #[ inline]
3806
+ fn matches( & self , c: char ) -> bool { * * self == c }
3807
+ fn only_ascii( & self ) -> bool { false }
3808
+ }
3809
+ let s = "Mary had a little lamb, Little lamb, little-lamb." ;
3810
+ let len = s. split_iter( ' ' ) . len( ) ;
3811
+
3812
+ do bh. iter {
3813
+ assert_eq!( s. split_iter( NotAscii ( ' ' ) ) . len( ) , len) ;
3814
+ }
3815
+ }
3816
+
3817
+ #[ bench]
3818
+ fn split_iter_extern_fn( bh: & mut BenchHarness ) {
3819
+ let s = "Mary had a little lamb, Little lamb, little-lamb." ;
3820
+ let len = s. split_iter( ' ' ) . len( ) ;
3821
+ fn pred( c: char ) -> bool { c == ' ' }
3822
+
3823
+ do bh. iter {
3824
+ assert_eq!( s. split_iter( pred) . len( ) , len) ;
3825
+ }
3826
+ }
3827
+
3828
+ #[ bench]
3829
+ fn split_iter_closure( bh: & mut BenchHarness ) {
3830
+ let s = "Mary had a little lamb, Little lamb, little-lamb." ;
3831
+ let len = s. split_iter( ' ' ) . len( ) ;
3832
+
3833
+ do bh. iter {
3834
+ assert_eq!( s. split_iter( |c: char | c == ' ' ) . len( ) , len) ;
3835
+ }
3836
+ }
3837
+
3838
+ #[ bench]
3839
+ fn split_iter_slice( bh: & mut BenchHarness ) {
3840
+ let s = "Mary had a little lamb, Little lamb, little-lamb." ;
3841
+ let len = s. split_iter( ' ' ) . len( ) ;
3842
+
3843
+ do bh. iter {
3844
+ assert_eq!( s. split_iter( & [ ' ' ] ) . len( ) , len) ;
3845
+ }
3846
+ }
3847
+
3765
3848
#[ bench]
3766
3849
fn is_utf8_100_ascii( bh: & mut BenchHarness ) {
3767
3850
0 commit comments