@@ -1449,4 +1449,61 @@ mod tests {
14491449 test_clone ! ( GrowableAllocRingBuffer :: <_>:: new( ) ) ;
14501450 test_clone ! ( AllocRingBuffer :: <_>:: new( 4 ) ) ;
14511451 }
1452+
1453+ #[ test]
1454+ fn iter_nth_override ( ) {
1455+ macro_rules! test_concrete {
1456+ ( $rb_init: expr) => {
1457+ let rb = $rb_init( [ 1 , 2 , 3 , 4 ] ) ;
1458+ assert_eq!( rb. iter( ) . nth( 0 ) , Some ( & 1 ) ) ;
1459+ assert_eq!( rb. iter( ) . nth( 1 ) , Some ( & 2 ) ) ;
1460+ assert_eq!( rb. iter( ) . nth( 2 ) , Some ( & 3 ) ) ;
1461+ assert_eq!( rb. iter( ) . nth( 3 ) , Some ( & 4 ) ) ;
1462+ assert_eq!( rb. iter( ) . nth( 4 ) , None ) ;
1463+
1464+ let mut rb = $rb_init( [ 1 , 2 , 3 , 4 ] ) ;
1465+ assert_eq!( rb. iter_mut( ) . nth( 0 ) , Some ( & mut 1 ) ) ;
1466+ assert_eq!( rb. iter_mut( ) . nth( 1 ) , Some ( & mut 2 ) ) ;
1467+ assert_eq!( rb. iter_mut( ) . nth( 2 ) , Some ( & mut 3 ) ) ;
1468+ assert_eq!( rb. iter_mut( ) . nth( 3 ) , Some ( & mut 4 ) ) ;
1469+ assert_eq!( rb. iter_mut( ) . nth( 4 ) , None ) ;
1470+
1471+ let rb = $rb_init( [ 1 , 2 , 3 , 4 ] ) ;
1472+ assert_eq!( rb. clone( ) . into_iter( ) . nth( 0 ) , Some ( 1 ) ) ;
1473+ assert_eq!( rb. clone( ) . into_iter( ) . nth( 1 ) , Some ( 2 ) ) ;
1474+ assert_eq!( rb. clone( ) . into_iter( ) . nth( 2 ) , Some ( 3 ) ) ;
1475+ assert_eq!( rb. clone( ) . into_iter( ) . nth( 3 ) , Some ( 4 ) ) ;
1476+ assert_eq!( rb. clone( ) . into_iter( ) . nth( 4 ) , None ) ;
1477+ } ;
1478+ }
1479+
1480+ test_concrete ! ( |values: [ i32 ; 4 ] | ConstGenericRingBuffer :: <_, 4 >:: from( values) ) ;
1481+ test_concrete ! ( |values: [ i32 ; 4 ] | GrowableAllocRingBuffer :: <_>:: from( values) ) ;
1482+ test_concrete ! ( |values: [ i32 ; 4 ] | AllocRingBuffer :: <_>:: from( values) ) ;
1483+ }
1484+
1485+ #[ test]
1486+ fn iter_nth_back_override ( ) {
1487+ macro_rules! test_concrete {
1488+ ( $rb_init: expr) => {
1489+ let rb = $rb_init( [ 1 , 2 , 3 , 4 ] ) ;
1490+ assert_eq!( rb. iter( ) . nth_back( 0 ) , Some ( & 4 ) ) ;
1491+ assert_eq!( rb. iter( ) . nth_back( 1 ) , Some ( & 3 ) ) ;
1492+ assert_eq!( rb. iter( ) . nth_back( 2 ) , Some ( & 2 ) ) ;
1493+ assert_eq!( rb. iter( ) . nth_back( 3 ) , Some ( & 1 ) ) ;
1494+ assert_eq!( rb. iter( ) . nth_back( 4 ) , None ) ;
1495+
1496+ let mut rb = $rb_init( [ 1 , 2 , 3 , 4 ] ) ;
1497+ assert_eq!( rb. iter_mut( ) . nth_back( 0 ) , Some ( & mut 4 ) ) ;
1498+ assert_eq!( rb. iter_mut( ) . nth_back( 1 ) , Some ( & mut 3 ) ) ;
1499+ assert_eq!( rb. iter_mut( ) . nth_back( 2 ) , Some ( & mut 2 ) ) ;
1500+ assert_eq!( rb. iter_mut( ) . nth_back( 3 ) , Some ( & mut 1 ) ) ;
1501+ assert_eq!( rb. iter_mut( ) . nth_back( 4 ) , None ) ;
1502+ } ;
1503+ }
1504+
1505+ test_concrete ! ( |values: [ i32 ; 4 ] | ConstGenericRingBuffer :: <_, 4 >:: from( values) ) ;
1506+ test_concrete ! ( |values: [ i32 ; 4 ] | GrowableAllocRingBuffer :: <_>:: from( values) ) ;
1507+ test_concrete ! ( |values: [ i32 ; 4 ] | AllocRingBuffer :: <_>:: from( values) ) ;
1508+ }
14521509}
0 commit comments