]> git.proxmox.com Git - rustc.git/blob - src/libcore/benches/num/flt2dec/mod.rs
New upstream version 1.44.1+dfsg1
[rustc.git] / src / libcore / benches / num / flt2dec / mod.rs
1 mod strategy {
2 mod dragon;
3 mod grisu;
4 }
5
6 use core::num::flt2dec::MAX_SIG_DIGITS;
7 use core::num::flt2dec::{decode, DecodableFloat, Decoded, FullDecoded};
8 use std::io::Write;
9 use std::vec::Vec;
10 use test::Bencher;
11
12 pub fn decode_finite<T: DecodableFloat>(v: T) -> Decoded {
13 match decode(v).1 {
14 FullDecoded::Finite(decoded) => decoded,
15 full_decoded => panic!("expected finite, got {:?} instead", full_decoded),
16 }
17 }
18
19 #[bench]
20 fn bench_small_shortest(b: &mut Bencher) {
21 let mut buf = Vec::with_capacity(20);
22
23 b.iter(|| {
24 buf.clear();
25 write!(&mut buf, "{}", 3.1415926f64).unwrap()
26 });
27 }
28
29 #[bench]
30 fn bench_big_shortest(b: &mut Bencher) {
31 let mut buf = Vec::with_capacity(300);
32
33 b.iter(|| {
34 buf.clear();
35 write!(&mut buf, "{}", f64::MAX).unwrap()
36 });
37 }