]>
Commit | Line | Data |
---|---|---|
8bb4bdeb XL |
1 | use super::super::*; |
2 | use core::num::flt2dec::strategy::grisu::*; | |
3 | use test::Bencher; | |
4 | ||
5 | pub fn decode_finite<T: DecodableFloat>(v: T) -> Decoded { | |
6 | match decode(v).1 { | |
7 | FullDecoded::Finite(decoded) => decoded, | |
60c5eb7d | 8 | full_decoded => panic!("expected finite, got {:?} instead", full_decoded), |
8bb4bdeb XL |
9 | } |
10 | } | |
11 | ||
12 | #[bench] | |
13 | fn bench_small_shortest(b: &mut Bencher) { | |
14 | let decoded = decode_finite(3.141592f64); | |
15 | let mut buf = [0; MAX_SIG_DIGITS]; | |
16 | b.iter(|| format_shortest(&decoded, &mut buf)); | |
17 | } | |
18 | ||
19 | #[bench] | |
20 | fn bench_big_shortest(b: &mut Bencher) { | |
21 | let decoded = decode_finite(f64::MAX); | |
22 | let mut buf = [0; MAX_SIG_DIGITS]; | |
23 | b.iter(|| format_shortest(&decoded, &mut buf)); | |
24 | } | |
25 | ||
26 | #[bench] | |
27 | fn bench_small_exact_3(b: &mut Bencher) { | |
28 | let decoded = decode_finite(3.141592f64); | |
29 | let mut buf = [0; 3]; | |
30 | b.iter(|| format_exact(&decoded, &mut buf, i16::MIN)); | |
31 | } | |
32 | ||
33 | #[bench] | |
34 | fn bench_big_exact_3(b: &mut Bencher) { | |
35 | let decoded = decode_finite(f64::MAX); | |
36 | let mut buf = [0; 3]; | |
37 | b.iter(|| format_exact(&decoded, &mut buf, i16::MIN)); | |
38 | } | |
39 | ||
40 | #[bench] | |
41 | fn bench_small_exact_12(b: &mut Bencher) { | |
42 | let decoded = decode_finite(3.141592f64); | |
43 | let mut buf = [0; 12]; | |
44 | b.iter(|| format_exact(&decoded, &mut buf, i16::MIN)); | |
45 | } | |
46 | ||
47 | #[bench] | |
48 | fn bench_big_exact_12(b: &mut Bencher) { | |
49 | let decoded = decode_finite(f64::MAX); | |
50 | let mut buf = [0; 12]; | |
51 | b.iter(|| format_exact(&decoded, &mut buf, i16::MIN)); | |
52 | } | |
53 | ||
54 | #[bench] | |
55 | fn bench_small_exact_inf(b: &mut Bencher) { | |
56 | let decoded = decode_finite(3.141592f64); | |
57 | let mut buf = [0; 1024]; | |
58 | b.iter(|| format_exact(&decoded, &mut buf, i16::MIN)); | |
59 | } | |
60 | ||
61 | #[bench] | |
62 | fn bench_big_exact_inf(b: &mut Bencher) { | |
63 | let decoded = decode_finite(f64::MAX); | |
64 | let mut buf = [0; 1024]; | |
65 | b.iter(|| format_exact(&decoded, &mut buf, i16::MIN)); | |
66 | } |