@@ -859,18 +859,78 @@ fn test_splitator_inclusive() {
859
859
assert_eq ! ( xs. split_inclusive( |x| * x % 2 == 0 ) . collect:: <Vec <_>>( ) , splits) ;
860
860
let splits: & [ & [ _ ] ] = & [ & [ 1 ] , & [ 2 , 3 , 4 , 5 ] ] ;
861
861
assert_eq ! ( xs. split_inclusive( |x| * x == 1 ) . collect:: <Vec <_>>( ) , splits) ;
862
- let splits: & [ & [ _ ] ] = & [ & [ 1 , 2 , 3 , 4 , 5 ] , & [ ] ] ;
862
+ let splits: & [ & [ _ ] ] = & [ & [ 1 , 2 , 3 , 4 , 5 ] ] ;
863
863
assert_eq ! ( xs. split_inclusive( |x| * x == 5 ) . collect:: <Vec <_>>( ) , splits) ;
864
864
let splits: & [ & [ _ ] ] = & [ & [ 1 , 2 , 3 , 4 , 5 ] ] ;
865
865
assert_eq ! ( xs. split_inclusive( |x| * x == 10 ) . collect:: <Vec <_>>( ) , splits) ;
866
- let splits: & [ & [ _ ] ] = & [ & [ 1 ] , & [ 2 ] , & [ 3 ] , & [ 4 ] , & [ 5 ] , & [ ] ] ;
866
+ let splits: & [ & [ _ ] ] = & [ & [ 1 ] , & [ 2 ] , & [ 3 ] , & [ 4 ] , & [ 5 ] ] ;
867
867
assert_eq ! ( xs. split_inclusive( |_| true ) . collect:: <Vec <& [ i32 ] >>( ) , splits) ;
868
868
869
869
let xs: & [ i32 ] = & [ ] ;
870
870
let splits: & [ & [ i32 ] ] = & [ & [ ] ] ;
871
871
assert_eq ! ( xs. split_inclusive( |x| * x == 5 ) . collect:: <Vec <& [ i32 ] >>( ) , splits) ;
872
872
}
873
873
874
+ #[ test]
875
+ fn test_splitator_inclusive_reverse ( ) {
876
+ let xs = & [ 1 , 2 , 3 , 4 , 5 ] ;
877
+
878
+ let splits: & [ & [ _ ] ] = & [ & [ 5 ] , & [ 3 , 4 ] , & [ 1 , 2 ] ] ;
879
+ assert_eq ! ( xs. split_inclusive( |x| * x % 2 == 0 ) . rev( ) . collect:: <Vec <_>>( ) , splits) ;
880
+ let splits: & [ & [ _ ] ] = & [ & [ 2 , 3 , 4 , 5 ] , & [ 1 ] ] ;
881
+ assert_eq ! ( xs. split_inclusive( |x| * x == 1 ) . rev( ) . collect:: <Vec <_>>( ) , splits) ;
882
+ let splits: & [ & [ _ ] ] = & [ & [ 1 , 2 , 3 , 4 , 5 ] ] ;
883
+ assert_eq ! ( xs. split_inclusive( |x| * x == 5 ) . rev( ) . collect:: <Vec <_>>( ) , splits) ;
884
+ let splits: & [ & [ _ ] ] = & [ & [ 1 , 2 , 3 , 4 , 5 ] ] ;
885
+ assert_eq ! ( xs. split_inclusive( |x| * x == 10 ) . rev( ) . collect:: <Vec <_>>( ) , splits) ;
886
+ let splits: & [ & [ _ ] ] = & [ & [ 5 ] , & [ 4 ] , & [ 3 ] , & [ 2 ] , & [ 1 ] ] ;
887
+ assert_eq ! ( xs. split_inclusive( |_| true ) . rev( ) . collect:: <Vec <_>>( ) , splits) ;
888
+
889
+ let xs: & [ i32 ] = & [ ] ;
890
+ let splits: & [ & [ i32 ] ] = & [ & [ ] ] ;
891
+ assert_eq ! ( xs. split_inclusive( |x| * x == 5 ) . rev( ) . collect:: <Vec <_>>( ) , splits) ;
892
+ }
893
+
894
+ #[ test]
895
+ fn test_splitator_mut_inclusive ( ) {
896
+ let xs = & mut [ 1 , 2 , 3 , 4 , 5 ] ;
897
+
898
+ let splits: & [ & [ _ ] ] = & [ & [ 1 , 2 ] , & [ 3 , 4 ] , & [ 5 ] ] ;
899
+ assert_eq ! ( xs. split_inclusive_mut( |x| * x % 2 == 0 ) . collect:: <Vec <_>>( ) , splits) ;
900
+ let splits: & [ & [ _ ] ] = & [ & [ 1 ] , & [ 2 , 3 , 4 , 5 ] ] ;
901
+ assert_eq ! ( xs. split_inclusive_mut( |x| * x == 1 ) . collect:: <Vec <_>>( ) , splits) ;
902
+ let splits: & [ & [ _ ] ] = & [ & [ 1 , 2 , 3 , 4 , 5 ] ] ;
903
+ assert_eq ! ( xs. split_inclusive_mut( |x| * x == 5 ) . collect:: <Vec <_>>( ) , splits) ;
904
+ let splits: & [ & [ _ ] ] = & [ & [ 1 , 2 , 3 , 4 , 5 ] ] ;
905
+ assert_eq ! ( xs. split_inclusive_mut( |x| * x == 10 ) . collect:: <Vec <_>>( ) , splits) ;
906
+ let splits: & [ & [ _ ] ] = & [ & [ 1 ] , & [ 2 ] , & [ 3 ] , & [ 4 ] , & [ 5 ] ] ;
907
+ assert_eq ! ( xs. split_inclusive_mut( |_| true ) . collect:: <Vec <_>>( ) , splits) ;
908
+
909
+ let xs: & mut [ i32 ] = & mut [ ] ;
910
+ let splits: & [ & [ i32 ] ] = & [ & [ ] ] ;
911
+ assert_eq ! ( xs. split_inclusive_mut( |x| * x == 5 ) . collect:: <Vec <_>>( ) , splits) ;
912
+ }
913
+
914
+ #[ test]
915
+ fn test_splitator_mut_inclusive_reverse ( ) {
916
+ let xs = & mut [ 1 , 2 , 3 , 4 , 5 ] ;
917
+
918
+ let splits: & [ & [ _ ] ] = & [ & [ 5 ] , & [ 3 , 4 ] , & [ 1 , 2 ] ] ;
919
+ assert_eq ! ( xs. split_inclusive_mut( |x| * x % 2 == 0 ) . rev( ) . collect:: <Vec <_>>( ) , splits) ;
920
+ let splits: & [ & [ _ ] ] = & [ & [ 2 , 3 , 4 , 5 ] , & [ 1 ] ] ;
921
+ assert_eq ! ( xs. split_inclusive_mut( |x| * x == 1 ) . rev( ) . collect:: <Vec <_>>( ) , splits) ;
922
+ let splits: & [ & [ _ ] ] = & [ & [ 1 , 2 , 3 , 4 , 5 ] ] ;
923
+ assert_eq ! ( xs. split_inclusive_mut( |x| * x == 5 ) . rev( ) . collect:: <Vec <_>>( ) , splits) ;
924
+ let splits: & [ & [ _ ] ] = & [ & [ 1 , 2 , 3 , 4 , 5 ] ] ;
925
+ assert_eq ! ( xs. split_inclusive_mut( |x| * x == 10 ) . rev( ) . collect:: <Vec <_>>( ) , splits) ;
926
+ let splits: & [ & [ _ ] ] = & [ & [ 5 ] , & [ 4 ] , & [ 3 ] , & [ 2 ] , & [ 1 ] ] ;
927
+ assert_eq ! ( xs. split_inclusive_mut( |_| true ) . rev( ) . collect:: <Vec <_>>( ) , splits) ;
928
+
929
+ let xs: & mut [ i32 ] = & mut [ ] ;
930
+ let splits: & [ & [ i32 ] ] = & [ & [ ] ] ;
931
+ assert_eq ! ( xs. split_inclusive_mut( |x| * x == 5 ) . rev( ) . collect:: <Vec <_>>( ) , splits) ;
932
+ }
933
+
874
934
#[ test]
875
935
fn test_splitnator ( ) {
876
936
let xs = & [ 1 , 2 , 3 , 4 , 5 ] ;
0 commit comments