]> git.lizzy.rs Git - rust.git/blob - library/core/benches/num/mod.rs
Merge commit 'cb7915b00c235e9b5861564f3be78dba330980ee' into clippyup
[rust.git] / library / core / benches / num / mod.rs
1 mod dec2flt;
2 mod flt2dec;
3
4 use std::str::FromStr;
5 use test::Bencher;
6
7 const ASCII_NUMBERS: [&str; 19] = [
8     "0",
9     "1",
10     "2",
11     "43",
12     "765",
13     "76567",
14     "987245987",
15     "-4aa32",
16     "1786235",
17     "8723095",
18     "f##5s",
19     "83638730",
20     "-2345",
21     "562aa43",
22     "-1",
23     "-0",
24     "abc",
25     "xyz",
26     "c0ffee",
27 ];
28
29 macro_rules! from_str_bench {
30     ($mac:ident, $t:ty) => {
31         #[bench]
32         fn $mac(b: &mut Bencher) {
33             b.iter(|| {
34                 ASCII_NUMBERS
35                     .iter()
36                     .cycle()
37                     .take(5_000)
38                     .filter_map(|s| <$t>::from_str(s).ok())
39                     .max()
40             })
41         }
42     };
43 }
44
45 macro_rules! from_str_radix_bench {
46     ($mac:ident, $t:ty, $radix:expr) => {
47         #[bench]
48         fn $mac(b: &mut Bencher) {
49             b.iter(|| {
50                 ASCII_NUMBERS
51                     .iter()
52                     .cycle()
53                     .take(5_000)
54                     .filter_map(|s| <$t>::from_str_radix(s, $radix).ok())
55                     .max()
56             })
57         }
58     };
59 }
60
61 from_str_bench!(bench_u8_from_str, u8);
62 from_str_radix_bench!(bench_u8_from_str_radix_2, u8, 2);
63 from_str_radix_bench!(bench_u8_from_str_radix_10, u8, 10);
64 from_str_radix_bench!(bench_u8_from_str_radix_16, u8, 16);
65 from_str_radix_bench!(bench_u8_from_str_radix_36, u8, 36);
66
67 from_str_bench!(bench_u16_from_str, u16);
68 from_str_radix_bench!(bench_u16_from_str_radix_2, u16, 2);
69 from_str_radix_bench!(bench_u16_from_str_radix_10, u16, 10);
70 from_str_radix_bench!(bench_u16_from_str_radix_16, u16, 16);
71 from_str_radix_bench!(bench_u16_from_str_radix_36, u16, 36);
72
73 from_str_bench!(bench_u32_from_str, u32);
74 from_str_radix_bench!(bench_u32_from_str_radix_2, u32, 2);
75 from_str_radix_bench!(bench_u32_from_str_radix_10, u32, 10);
76 from_str_radix_bench!(bench_u32_from_str_radix_16, u32, 16);
77 from_str_radix_bench!(bench_u32_from_str_radix_36, u32, 36);
78
79 from_str_bench!(bench_u64_from_str, u64);
80 from_str_radix_bench!(bench_u64_from_str_radix_2, u64, 2);
81 from_str_radix_bench!(bench_u64_from_str_radix_10, u64, 10);
82 from_str_radix_bench!(bench_u64_from_str_radix_16, u64, 16);
83 from_str_radix_bench!(bench_u64_from_str_radix_36, u64, 36);
84
85 from_str_bench!(bench_i8_from_str, i8);
86 from_str_radix_bench!(bench_i8_from_str_radix_2, i8, 2);
87 from_str_radix_bench!(bench_i8_from_str_radix_10, i8, 10);
88 from_str_radix_bench!(bench_i8_from_str_radix_16, i8, 16);
89 from_str_radix_bench!(bench_i8_from_str_radix_36, i8, 36);
90
91 from_str_bench!(bench_i16_from_str, i16);
92 from_str_radix_bench!(bench_i16_from_str_radix_2, i16, 2);
93 from_str_radix_bench!(bench_i16_from_str_radix_10, i16, 10);
94 from_str_radix_bench!(bench_i16_from_str_radix_16, i16, 16);
95 from_str_radix_bench!(bench_i16_from_str_radix_36, i16, 36);
96
97 from_str_bench!(bench_i32_from_str, i32);
98 from_str_radix_bench!(bench_i32_from_str_radix_2, i32, 2);
99 from_str_radix_bench!(bench_i32_from_str_radix_10, i32, 10);
100 from_str_radix_bench!(bench_i32_from_str_radix_16, i32, 16);
101 from_str_radix_bench!(bench_i32_from_str_radix_36, i32, 36);
102
103 from_str_bench!(bench_i64_from_str, i64);
104 from_str_radix_bench!(bench_i64_from_str_radix_2, i64, 2);
105 from_str_radix_bench!(bench_i64_from_str_radix_10, i64, 10);
106 from_str_radix_bench!(bench_i64_from_str_radix_16, i64, 16);
107 from_str_radix_bench!(bench_i64_from_str_radix_36, i64, 36);