Skip to content

Commit c2a2b10

Browse files
committed
shift int/uint tests around to avoid code repetition
1 parent 522d09d commit c2a2b10

File tree

2 files changed

+66
-62
lines changed

2 files changed

+66
-62
lines changed

src/libstd/num/mod.rs

Lines changed: 66 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1751,6 +1751,72 @@ mod tests {
17511751
assert_pow!((8, 3 ) => 512);
17521752
assert_pow!((2u64, 50) => 1125899906842624);
17531753
}
1754+
1755+
#[test]
1756+
fn test_uint_to_str_overflow() {
1757+
let mut u8_val: u8 = 255_u8;
1758+
assert_eq!(u8_val.to_string(), "255");
1759+
1760+
u8_val += 1 as u8;
1761+
assert_eq!(u8_val.to_string(), "0");
1762+
1763+
let mut u16_val: u16 = 65_535_u16;
1764+
assert_eq!(u16_val.to_string(), "65535");
1765+
1766+
u16_val += 1 as u16;
1767+
assert_eq!(u16_val.to_string(), "0");
1768+
1769+
let mut u32_val: u32 = 4_294_967_295_u32;
1770+
assert_eq!(u32_val.to_string(), "4294967295");
1771+
1772+
u32_val += 1 as u32;
1773+
assert_eq!(u32_val.to_string(), "0");
1774+
1775+
let mut u64_val: u64 = 18_446_744_073_709_551_615_u64;
1776+
assert_eq!(u64_val.to_string(), "18446744073709551615");
1777+
1778+
u64_val += 1 as u64;
1779+
assert_eq!(u64_val.to_string(), "0");
1780+
}
1781+
1782+
fn from_str<T: ::str::FromStr>(t: &str) -> Option<T> {
1783+
::str::FromStr::from_str(t).ok()
1784+
}
1785+
1786+
#[test]
1787+
fn test_uint_from_str_overflow() {
1788+
let mut u8_val: u8 = 255_u8;
1789+
assert_eq!(from_str::<u8>("255"), Some(u8_val));
1790+
assert_eq!(from_str::<u8>("256"), None);
1791+
1792+
u8_val += 1 as u8;
1793+
assert_eq!(from_str::<u8>("0"), Some(u8_val));
1794+
assert_eq!(from_str::<u8>("-1"), None);
1795+
1796+
let mut u16_val: u16 = 65_535_u16;
1797+
assert_eq!(from_str::<u16>("65535"), Some(u16_val));
1798+
assert_eq!(from_str::<u16>("65536"), None);
1799+
1800+
u16_val += 1 as u16;
1801+
assert_eq!(from_str::<u16>("0"), Some(u16_val));
1802+
assert_eq!(from_str::<u16>("-1"), None);
1803+
1804+
let mut u32_val: u32 = 4_294_967_295_u32;
1805+
assert_eq!(from_str::<u32>("4294967295"), Some(u32_val));
1806+
assert_eq!(from_str::<u32>("4294967296"), None);
1807+
1808+
u32_val += 1 as u32;
1809+
assert_eq!(from_str::<u32>("0"), Some(u32_val));
1810+
assert_eq!(from_str::<u32>("-1"), None);
1811+
1812+
let mut u64_val: u64 = 18_446_744_073_709_551_615_u64;
1813+
assert_eq!(from_str::<u64>("18446744073709551615"), Some(u64_val));
1814+
assert_eq!(from_str::<u64>("18446744073709551616"), None);
1815+
1816+
u64_val += 1 as u64;
1817+
assert_eq!(from_str::<u64>("0"), Some(u64_val));
1818+
assert_eq!(from_str::<u64>("-1"), None);
1819+
}
17541820
}
17551821

17561822

src/libstd/num/uint_macros.rs

Lines changed: 0 additions & 62 deletions
Original file line numberDiff line numberDiff line change
@@ -48,68 +48,6 @@ mod tests {
4848
assert_eq!(FromStrRadix::from_str_radix("Z", 10).ok(), None::<$T>);
4949
assert_eq!(FromStrRadix::from_str_radix("_", 2).ok(), None::<$T>);
5050
}
51-
52-
#[test]
53-
fn test_uint_to_str_overflow() {
54-
let mut u8_val: u8 = 255_u8;
55-
assert_eq!(u8_val.to_string(), "255");
56-
57-
u8_val += 1 as u8;
58-
assert_eq!(u8_val.to_string(), "0");
59-
60-
let mut u16_val: u16 = 65_535_u16;
61-
assert_eq!(u16_val.to_string(), "65535");
62-
63-
u16_val += 1 as u16;
64-
assert_eq!(u16_val.to_string(), "0");
65-
66-
let mut u32_val: u32 = 4_294_967_295_u32;
67-
assert_eq!(u32_val.to_string(), "4294967295");
68-
69-
u32_val += 1 as u32;
70-
assert_eq!(u32_val.to_string(), "0");
71-
72-
let mut u64_val: u64 = 18_446_744_073_709_551_615_u64;
73-
assert_eq!(u64_val.to_string(), "18446744073709551615");
74-
75-
u64_val += 1 as u64;
76-
assert_eq!(u64_val.to_string(), "0");
77-
}
78-
79-
#[test]
80-
fn test_uint_from_str_overflow() {
81-
let mut u8_val: u8 = 255_u8;
82-
assert_eq!(from_str::<u8>("255"), Some(u8_val));
83-
assert_eq!(from_str::<u8>("256"), None);
84-
85-
u8_val += 1 as u8;
86-
assert_eq!(from_str::<u8>("0"), Some(u8_val));
87-
assert_eq!(from_str::<u8>("-1"), None);
88-
89-
let mut u16_val: u16 = 65_535_u16;
90-
assert_eq!(from_str::<u16>("65535"), Some(u16_val));
91-
assert_eq!(from_str::<u16>("65536"), None);
92-
93-
u16_val += 1 as u16;
94-
assert_eq!(from_str::<u16>("0"), Some(u16_val));
95-
assert_eq!(from_str::<u16>("-1"), None);
96-
97-
let mut u32_val: u32 = 4_294_967_295_u32;
98-
assert_eq!(from_str::<u32>("4294967295"), Some(u32_val));
99-
assert_eq!(from_str::<u32>("4294967296"), None);
100-
101-
u32_val += 1 as u32;
102-
assert_eq!(from_str::<u32>("0"), Some(u32_val));
103-
assert_eq!(from_str::<u32>("-1"), None);
104-
105-
let mut u64_val: u64 = 18_446_744_073_709_551_615_u64;
106-
assert_eq!(from_str::<u64>("18446744073709551615"), Some(u64_val));
107-
assert_eq!(from_str::<u64>("18446744073709551616"), None);
108-
109-
u64_val += 1 as u64;
110-
assert_eq!(from_str::<u64>("0"), Some(u64_val));
111-
assert_eq!(from_str::<u64>("-1"), None);
112-
}
11351
}
11452

11553
) }

0 commit comments

Comments
 (0)