@@ -2333,6 +2333,40 @@ fn test_skip_try_folds() {
23332333 assert_eq ! ( iter. next_back( ) , Some ( 24 ) ) ;
23342334}
23352335
2336+ #[ test]
2337+ fn test_skip_nth_back ( ) {
2338+ let xs = [ 0 , 1 , 2 , 3 , 4 , 5 ] ;
2339+ let mut it = xs. iter ( ) . skip ( 2 ) ;
2340+ assert_eq ! ( it. nth_back( 0 ) , Some ( & 5 ) ) ;
2341+ assert_eq ! ( it. nth_back( 1 ) , Some ( & 3 ) ) ;
2342+ assert_eq ! ( it. nth_back( 0 ) , Some ( & 2 ) ) ;
2343+ assert_eq ! ( it. nth_back( 0 ) , None ) ;
2344+
2345+ let ys = [ 2 , 3 , 4 , 5 ] ;
2346+ let mut ity = ys. iter ( ) ;
2347+ let mut it = xs. iter ( ) . skip ( 2 ) ;
2348+ assert_eq ! ( it. nth_back( 1 ) , ity. nth_back( 1 ) ) ;
2349+ assert_eq ! ( it. clone( ) . nth( 0 ) , ity. clone( ) . nth( 0 ) ) ;
2350+ assert_eq ! ( it. nth_back( 0 ) , ity. nth_back( 0 ) ) ;
2351+ assert_eq ! ( it. clone( ) . nth( 0 ) , ity. clone( ) . nth( 0 ) ) ;
2352+ assert_eq ! ( it. nth_back( 0 ) , ity. nth_back( 0 ) ) ;
2353+ assert_eq ! ( it. clone( ) . nth( 0 ) , ity. clone( ) . nth( 0 ) ) ;
2354+ assert_eq ! ( it. nth_back( 0 ) , ity. nth_back( 0 ) ) ;
2355+ assert_eq ! ( it. clone( ) . nth( 0 ) , ity. clone( ) . nth( 0 ) ) ;
2356+
2357+ let mut it = xs. iter ( ) . skip ( 2 ) ;
2358+ assert_eq ! ( it. nth_back( 4 ) , None ) ;
2359+ assert_eq ! ( it. nth_back( 0 ) , None ) ;
2360+
2361+ let mut it = xs. iter ( ) ;
2362+ it. by_ref ( ) . skip ( 2 ) . nth_back ( 3 ) ;
2363+ assert_eq ! ( it. next_back( ) , Some ( & 1 ) ) ;
2364+
2365+ let mut it = xs. iter ( ) ;
2366+ it. by_ref ( ) . skip ( 2 ) . nth_back ( 10 ) ;
2367+ assert_eq ! ( it. next_back( ) , Some ( & 1 ) ) ;
2368+ }
2369+
23362370#[ test]
23372371fn test_take_try_folds ( ) {
23382372 let f = & |acc, x| i32:: checked_add ( 2 * acc, x) ;
0 commit comments