@@ -2280,6 +2280,40 @@ fn test_skip_try_folds() {
2280
2280
assert_eq ! ( iter. next_back( ) , Some ( 24 ) ) ;
2281
2281
}
2282
2282
2283
+ #[ test]
2284
+ fn test_skip_nth_back ( ) {
2285
+ let xs = [ 0 , 1 , 2 , 3 , 4 , 5 ] ;
2286
+ let mut it = xs. iter ( ) . skip ( 2 ) ;
2287
+ assert_eq ! ( it. nth_back( 0 ) , Some ( & 5 ) ) ;
2288
+ assert_eq ! ( it. nth_back( 1 ) , Some ( & 3 ) ) ;
2289
+ assert_eq ! ( it. nth_back( 0 ) , Some ( & 2 ) ) ;
2290
+ assert_eq ! ( it. nth_back( 0 ) , None ) ;
2291
+
2292
+ let ys = [ 2 , 3 , 4 , 5 ] ;
2293
+ let mut ity = ys. iter ( ) ;
2294
+ let mut it = xs. iter ( ) . skip ( 2 ) ;
2295
+ assert_eq ! ( it. nth_back( 1 ) , ity. nth_back( 1 ) ) ;
2296
+ assert_eq ! ( it. clone( ) . nth( 0 ) , ity. clone( ) . nth( 0 ) ) ;
2297
+ assert_eq ! ( it. nth_back( 0 ) , ity. nth_back( 0 ) ) ;
2298
+ assert_eq ! ( it. clone( ) . nth( 0 ) , ity. clone( ) . nth( 0 ) ) ;
2299
+ assert_eq ! ( it. nth_back( 0 ) , ity. nth_back( 0 ) ) ;
2300
+ assert_eq ! ( it. clone( ) . nth( 0 ) , ity. clone( ) . nth( 0 ) ) ;
2301
+ assert_eq ! ( it. nth_back( 0 ) , ity. nth_back( 0 ) ) ;
2302
+ assert_eq ! ( it. clone( ) . nth( 0 ) , ity. clone( ) . nth( 0 ) ) ;
2303
+
2304
+ let mut it = xs. iter ( ) . skip ( 2 ) ;
2305
+ assert_eq ! ( it. nth_back( 4 ) , None ) ;
2306
+ assert_eq ! ( it. nth_back( 0 ) , None ) ;
2307
+
2308
+ let mut it = xs. iter ( ) ;
2309
+ it. by_ref ( ) . skip ( 2 ) . nth_back ( 3 ) ;
2310
+ assert_eq ! ( it. next_back( ) , Some ( & 1 ) ) ;
2311
+
2312
+ let mut it = xs. iter ( ) ;
2313
+ it. by_ref ( ) . skip ( 2 ) . nth_back ( 10 ) ;
2314
+ assert_eq ! ( it. next_back( ) , Some ( & 1 ) ) ;
2315
+ }
2316
+
2283
2317
#[ test]
2284
2318
fn test_take_try_folds ( ) {
2285
2319
let f = & |acc, x| i32:: checked_add ( 2 * acc, x) ;
0 commit comments