ethnum/uint/
fmt.rs

1//! Module implementing formatting for `U256` type.
2
3use crate::uint::U256;
4
5impl_fmt! {
6    impl Fmt for U256;
7}
8
9#[cfg(test)]
10mod tests {
11    use super::*;
12    use alloc::format;
13
14    #[test]
15    fn debug() {
16        assert_eq!(
17            format!("{:?}", U256::MAX),
18            "115792089237316195423570985008687907853269984665640564039457584007913129639935",
19        );
20        assert_eq!(
21            format!("{:x?}", U256::MAX),
22            "ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff",
23        );
24        assert_eq!(
25            format!("{:#X?}", U256::MAX),
26            "0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF",
27        );
28    }
29
30    #[test]
31    fn display() {
32        assert_eq!(
33            format!("{}", U256::MAX),
34            "115792089237316195423570985008687907853269984665640564039457584007913129639935",
35        );
36    }
37
38    #[test]
39    fn radix() {
40        assert_eq!(format!("{:b}", U256::new(42)), "101010");
41        assert_eq!(format!("{:o}", U256::new(42)), "52");
42        assert_eq!(format!("{:x}", U256::new(42)), "2a");
43    }
44
45    #[test]
46    fn exp() {
47        assert_eq!(format!("{:e}", U256::new(42)), "4.2e1");
48        assert_eq!(format!("{:e}", U256::new(10).pow(77)), "1e77");
49        assert_eq!(format!("{:E}", U256::new(10).pow(39) * 1337), "1.337E42");
50    }
51}