@@ -1371,6 +1371,29 @@ fn test_range_from_nth() {
13711371 assert_eq ! ( r, 16 ..) ;
13721372 assert_eq ! ( r. nth( 10 ) , Some ( 26 ) ) ;
13731373 assert_eq ! ( r, 27 ..) ;
1374+
1375+ assert_eq ! ( ( 0 ..) . size_hint( ) , ( usize :: MAX , None ) ) ;
1376+ }
1377+
1378+ fn is_trusted_len < I : TrustedLen > ( _: I ) { }
1379+
1380+ #[ test]
1381+ fn test_range_from_take ( ) {
1382+ let mut it = ( 0 ..) . take ( 3 ) ;
1383+ assert_eq ! ( it. next( ) , Some ( 0 ) ) ;
1384+ assert_eq ! ( it. next( ) , Some ( 1 ) ) ;
1385+ assert_eq ! ( it. next( ) , Some ( 2 ) ) ;
1386+ assert_eq ! ( it. next( ) , None ) ;
1387+ is_trusted_len ( ( 0 ..) . take ( 3 ) ) ;
1388+ assert_eq ! ( ( 0 ..) . take( 3 ) . size_hint( ) , ( 3 , Some ( 3 ) ) ) ;
1389+ assert_eq ! ( ( 0 ..) . take( 0 ) . size_hint( ) , ( 0 , Some ( 0 ) ) ) ;
1390+ assert_eq ! ( ( 0 ..) . take( usize :: MAX ) . size_hint( ) , ( usize :: MAX , Some ( usize :: MAX ) ) ) ;
1391+ }
1392+
1393+ #[ test]
1394+ fn test_range_from_take_collect ( ) {
1395+ let v: Vec < _ > = ( 0 ..) . take ( 3 ) . collect ( ) ;
1396+ assert_eq ! ( v, vec![ 0 , 1 , 2 ] ) ;
13741397}
13751398
13761399#[ test]
@@ -1465,6 +1488,26 @@ fn test_repeat() {
14651488 assert_eq ! ( it. next( ) , Some ( 42 ) ) ;
14661489 assert_eq ! ( it. next( ) , Some ( 42 ) ) ;
14671490 assert_eq ! ( it. next( ) , Some ( 42 ) ) ;
1491+ assert_eq ! ( repeat( 42 ) . size_hint( ) , ( usize :: MAX , None ) ) ;
1492+ }
1493+
1494+ #[ test]
1495+ fn test_repeat_take ( ) {
1496+ let mut it = repeat ( 42 ) . take ( 3 ) ;
1497+ assert_eq ! ( it. next( ) , Some ( 42 ) ) ;
1498+ assert_eq ! ( it. next( ) , Some ( 42 ) ) ;
1499+ assert_eq ! ( it. next( ) , Some ( 42 ) ) ;
1500+ assert_eq ! ( it. next( ) , None ) ;
1501+ is_trusted_len ( repeat ( 42 ) . take ( 3 ) ) ;
1502+ assert_eq ! ( repeat( 42 ) . take( 3 ) . size_hint( ) , ( 3 , Some ( 3 ) ) ) ;
1503+ assert_eq ! ( repeat( 42 ) . take( 0 ) . size_hint( ) , ( 0 , Some ( 0 ) ) ) ;
1504+ assert_eq ! ( repeat( 42 ) . take( usize :: MAX ) . size_hint( ) , ( usize :: MAX , Some ( usize :: MAX ) ) ) ;
1505+ }
1506+
1507+ #[ test]
1508+ fn test_repeat_take_collect ( ) {
1509+ let v: Vec < _ > = repeat ( 42 ) . take ( 3 ) . collect ( ) ;
1510+ assert_eq ! ( v, vec![ 42 , 42 , 42 ] ) ;
14681511}
14691512
14701513#[ test]
0 commit comments