@@ -1371,6 +1371,29 @@ fn test_range_from_nth() {
1371
1371
assert_eq ! ( r, 16 ..) ;
1372
1372
assert_eq ! ( r. nth( 10 ) , Some ( 26 ) ) ;
1373
1373
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 ] ) ;
1374
1397
}
1375
1398
1376
1399
#[ test]
@@ -1465,6 +1488,26 @@ fn test_repeat() {
1465
1488
assert_eq ! ( it. next( ) , Some ( 42 ) ) ;
1466
1489
assert_eq ! ( it. next( ) , Some ( 42 ) ) ;
1467
1490
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 ] ) ;
1468
1511
}
1469
1512
1470
1513
#[ test]
0 commit comments