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