@@ -859,18 +859,78 @@ fn test_splitator_inclusive() {
859859 assert_eq ! ( xs. split_inclusive( |x| * x % 2 == 0 ) . collect:: <Vec <_>>( ) , splits) ;
860860 let splits: & [ & [ _ ] ] = & [ & [ 1 ] , & [ 2 , 3 , 4 , 5 ] ] ;
861861 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 ] ] ;
863863 assert_eq ! ( xs. split_inclusive( |x| * x == 5 ) . collect:: <Vec <_>>( ) , splits) ;
864864 let splits: & [ & [ _ ] ] = & [ & [ 1 , 2 , 3 , 4 , 5 ] ] ;
865865 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 ] ] ;
867867 assert_eq ! ( xs. split_inclusive( |_| true ) . collect:: <Vec <& [ i32 ] >>( ) , splits) ;
868868
869869 let xs: & [ i32 ] = & [ ] ;
870870 let splits: & [ & [ i32 ] ] = & [ & [ ] ] ;
871871 assert_eq ! ( xs. split_inclusive( |x| * x == 5 ) . collect:: <Vec <& [ i32 ] >>( ) , splits) ;
872872}
873873
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+
874934#[ test]
875935fn test_splitnator ( ) {
876936 let xs = & [ 1 , 2 , 3 , 4 , 5 ] ;
0 commit comments