@@ -2333,6 +2333,40 @@ fn test_skip_try_folds() {
2333
2333
assert_eq ! ( iter. next_back( ) , Some ( 24 ) ) ;
2334
2334
}
2335
2335
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
+
2336
2370
#[ test]
2337
2371
fn test_take_try_folds ( ) {
2338
2372
let f = & |acc, x| i32:: checked_add ( 2 * acc, x) ;
0 commit comments