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