@@ -1804,20 +1804,24 @@ fn test_range_inclusive_folds() {
1804
1804
#[ test]
1805
1805
fn test_range_size_hint ( ) {
1806
1806
use core:: usize:: MAX as UMAX ;
1807
+ assert_eq ! ( ( 0 ..0usize ) . size_hint( ) , ( 0 , Some ( 0 ) ) ) ;
1807
1808
assert_eq ! ( ( 0 ..100usize ) . size_hint( ) , ( 100 , Some ( 100 ) ) ) ;
1808
1809
assert_eq ! ( ( 0 ..UMAX ) . size_hint( ) , ( UMAX , Some ( UMAX ) ) ) ;
1809
1810
1810
1811
let umax = u128:: try_from ( UMAX ) . unwrap ( ) ;
1812
+ assert_eq ! ( ( 0 ..0u128 ) . size_hint( ) , ( 0 , Some ( 0 ) ) ) ;
1811
1813
assert_eq ! ( ( 0 ..100u128 ) . size_hint( ) , ( 100 , Some ( 100 ) ) ) ;
1812
1814
assert_eq ! ( ( 0 ..umax) . size_hint( ) , ( UMAX , Some ( UMAX ) ) ) ;
1813
1815
assert_eq ! ( ( 0 ..umax + 1 ) . size_hint( ) , ( UMAX , None ) ) ;
1814
1816
1815
1817
use core:: isize:: { MAX as IMAX , MIN as IMIN } ;
1818
+ assert_eq ! ( ( 0 ..0isize ) . size_hint( ) , ( 0 , Some ( 0 ) ) ) ;
1816
1819
assert_eq ! ( ( -100 ..100isize ) . size_hint( ) , ( 200 , Some ( 200 ) ) ) ;
1817
1820
assert_eq ! ( ( IMIN ..IMAX ) . size_hint( ) , ( UMAX , Some ( UMAX ) ) ) ;
1818
1821
1819
1822
let imin = i128:: try_from ( IMIN ) . unwrap ( ) ;
1820
1823
let imax = i128:: try_from ( IMAX ) . unwrap ( ) ;
1824
+ assert_eq ! ( ( 0 ..0i128 ) . size_hint( ) , ( 0 , Some ( 0 ) ) ) ;
1821
1825
assert_eq ! ( ( -100 ..100i128 ) . size_hint( ) , ( 200 , Some ( 200 ) ) ) ;
1822
1826
assert_eq ! ( ( imin..imax) . size_hint( ) , ( UMAX , Some ( UMAX ) ) ) ;
1823
1827
assert_eq ! ( ( imin..imax + 1 ) . size_hint( ) , ( UMAX , None ) ) ;
@@ -1826,23 +1830,31 @@ fn test_range_size_hint() {
1826
1830
#[ test]
1827
1831
fn test_range_inclusive_size_hint ( ) {
1828
1832
use core:: usize:: MAX as UMAX ;
1833
+ assert_eq ! ( ( 1 ..=0usize ) . size_hint( ) , ( 0 , Some ( 0 ) ) ) ;
1834
+ assert_eq ! ( ( 0 ..=0usize ) . size_hint( ) , ( 1 , Some ( 1 ) ) ) ;
1829
1835
assert_eq ! ( ( 0 ..=100usize ) . size_hint( ) , ( 101 , Some ( 101 ) ) ) ;
1830
1836
assert_eq ! ( ( 0 ..=UMAX - 1 ) . size_hint( ) , ( UMAX , Some ( UMAX ) ) ) ;
1831
1837
assert_eq ! ( ( 0 ..=UMAX ) . size_hint( ) , ( UMAX , None ) ) ;
1832
1838
1833
1839
let umax = u128:: try_from ( UMAX ) . unwrap ( ) ;
1840
+ assert_eq ! ( ( 1 ..=0u128 ) . size_hint( ) , ( 0 , Some ( 0 ) ) ) ;
1841
+ assert_eq ! ( ( 0 ..=0u128 ) . size_hint( ) , ( 1 , Some ( 1 ) ) ) ;
1834
1842
assert_eq ! ( ( 0 ..=100u128 ) . size_hint( ) , ( 101 , Some ( 101 ) ) ) ;
1835
1843
assert_eq ! ( ( 0 ..=umax - 1 ) . size_hint( ) , ( UMAX , Some ( UMAX ) ) ) ;
1836
1844
assert_eq ! ( ( 0 ..=umax) . size_hint( ) , ( UMAX , None ) ) ;
1837
1845
assert_eq ! ( ( 0 ..=umax + 1 ) . size_hint( ) , ( UMAX , None ) ) ;
1838
1846
1839
1847
use core:: isize:: { MAX as IMAX , MIN as IMIN } ;
1848
+ assert_eq ! ( ( 0 ..=-1isize ) . size_hint( ) , ( 0 , Some ( 0 ) ) ) ;
1849
+ assert_eq ! ( ( 0 ..=0isize ) . size_hint( ) , ( 1 , Some ( 1 ) ) ) ;
1840
1850
assert_eq ! ( ( -100 ..=100isize ) . size_hint( ) , ( 201 , Some ( 201 ) ) ) ;
1841
1851
assert_eq ! ( ( IMIN ..=IMAX - 1 ) . size_hint( ) , ( UMAX , Some ( UMAX ) ) ) ;
1842
1852
assert_eq ! ( ( IMIN ..=IMAX ) . size_hint( ) , ( UMAX , None ) ) ;
1843
1853
1844
1854
let imin = i128:: try_from ( IMIN ) . unwrap ( ) ;
1845
1855
let imax = i128:: try_from ( IMAX ) . unwrap ( ) ;
1856
+ assert_eq ! ( ( 0 ..=-1i128 ) . size_hint( ) , ( 0 , Some ( 0 ) ) ) ;
1857
+ assert_eq ! ( ( 0 ..=0i128 ) . size_hint( ) , ( 1 , Some ( 1 ) ) ) ;
1846
1858
assert_eq ! ( ( -100 ..=100i128 ) . size_hint( ) , ( 201 , Some ( 201 ) ) ) ;
1847
1859
assert_eq ! ( ( imin..=imax - 1 ) . size_hint( ) , ( UMAX , Some ( UMAX ) ) ) ;
1848
1860
assert_eq ! ( ( imin..=imax) . size_hint( ) , ( UMAX , None ) ) ;
0 commit comments