]> git.lizzy.rs Git - rust.git/blob - library/core/tests/fmt/float.rs
Rollup merge of #87769 - m-ou-se:alloc-features-cleanup, r=yaahc,dtolnay
[rust.git] / library / core / tests / fmt / float.rs
1 #[test]
2 fn test_format_f64() {
3     assert_eq!("1", format!("{:.0}", 1.0f64));
4     assert_eq!("9", format!("{:.0}", 9.4f64));
5     assert_eq!("10", format!("{:.0}", 9.9f64));
6     assert_eq!("9.8", format!("{:.1}", 9.849f64));
7     assert_eq!("9.9", format!("{:.1}", 9.851f64));
8     assert_eq!("1", format!("{:.0}", 0.5f64));
9     assert_eq!("1.23456789e6", format!("{:e}", 1234567.89f64));
10     assert_eq!("1.23456789e3", format!("{:e}", 1234.56789f64));
11     assert_eq!("1.23456789E6", format!("{:E}", 1234567.89f64));
12     assert_eq!("1.23456789E3", format!("{:E}", 1234.56789f64));
13     assert_eq!("0.0", format!("{:?}", 0.0f64));
14     assert_eq!("1.01", format!("{:?}", 1.01f64));
15
16     let high_cutoff = 1e16_f64;
17     assert_eq!("1e16", format!("{:?}", high_cutoff));
18     assert_eq!("-1e16", format!("{:?}", -high_cutoff));
19     assert!(!is_exponential(&format!("{:?}", high_cutoff * (1.0 - 2.0 * f64::EPSILON))));
20     assert_eq!("-3.0", format!("{:?}", -3f64));
21     assert_eq!("0.0001", format!("{:?}", 0.0001f64));
22     assert_eq!("9e-5", format!("{:?}", 0.00009f64));
23     assert_eq!("1234567.9", format!("{:.1?}", 1234567.89f64));
24     assert_eq!("1234.6", format!("{:.1?}", 1234.56789f64));
25 }
26
27 #[test]
28 fn test_format_f32() {
29     assert_eq!("1", format!("{:.0}", 1.0f32));
30     assert_eq!("9", format!("{:.0}", 9.4f32));
31     assert_eq!("10", format!("{:.0}", 9.9f32));
32     assert_eq!("9.8", format!("{:.1}", 9.849f32));
33     assert_eq!("9.9", format!("{:.1}", 9.851f32));
34     assert_eq!("1", format!("{:.0}", 0.5f32));
35     assert_eq!("1.2345679e6", format!("{:e}", 1234567.89f32));
36     assert_eq!("1.2345679e3", format!("{:e}", 1234.56789f32));
37     assert_eq!("1.2345679E6", format!("{:E}", 1234567.89f32));
38     assert_eq!("1.2345679E3", format!("{:E}", 1234.56789f32));
39     assert_eq!("0.0", format!("{:?}", 0.0f32));
40     assert_eq!("1.01", format!("{:?}", 1.01f32));
41
42     let high_cutoff = 1e16_f32;
43     assert_eq!("1e16", format!("{:?}", high_cutoff));
44     assert_eq!("-1e16", format!("{:?}", -high_cutoff));
45     assert!(!is_exponential(&format!("{:?}", high_cutoff * (1.0 - 2.0 * f32::EPSILON))));
46     assert_eq!("-3.0", format!("{:?}", -3f32));
47     assert_eq!("0.0001", format!("{:?}", 0.0001f32));
48     assert_eq!("9e-5", format!("{:?}", 0.00009f32));
49     assert_eq!("1234567.9", format!("{:.1?}", 1234567.89f32));
50     assert_eq!("1234.6", format!("{:.1?}", 1234.56789f32));
51 }
52
53 fn is_exponential(s: &str) -> bool {
54     s.contains("e") || s.contains("E")
55 }