Skip to content

Commit 8083764

Browse files
committed
Remove boilerplate with macro repetition
1 parent 6e20776 commit 8083764

File tree

241 files changed

+232
-1129
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

241 files changed

+232
-1129
lines changed

benches/benchmark.rs

Lines changed: 70 additions & 286 deletions
Original file line numberDiff line numberDiff line change
@@ -3,305 +3,89 @@
33
extern crate test;
44

55
macro_rules! benchmark {
6-
($year:tt, $day:tt) => {
7-
mod $day {
8-
use aoc::$year::$day::*;
9-
use std::fs::read_to_string;
10-
use std::path::Path;
11-
use std::sync::LazyLock;
12-
use test::Bencher;
6+
($year:tt $($day:tt),*) => {
7+
mod $year {$(
8+
mod $day {
9+
use aoc::$year::$day::*;
10+
use std::fs::read_to_string;
11+
use std::path::Path;
12+
use std::sync::LazyLock;
13+
use test::Bencher;
1314

14-
static DATA: LazyLock<String> = LazyLock::new(|| {
15-
let year = stringify!($year);
16-
let day = stringify!($day);
17-
let path = Path::new("input").join(year).join(day).with_extension("txt");
18-
read_to_string(path).unwrap()
19-
});
15+
static DATA: LazyLock<String> = LazyLock::new(|| {
16+
let year = stringify!($year);
17+
let day = stringify!($day);
18+
let path = Path::new("input").join(year).join(day).with_extension("txt");
19+
read_to_string(path).unwrap()
20+
});
2021

21-
#[bench]
22-
fn parse_bench(b: &mut Bencher) {
23-
let data = &DATA;
24-
b.iter(|| parse(data));
25-
}
22+
#[bench]
23+
fn parse_bench(b: &mut Bencher) {
24+
let data = &DATA;
25+
b.iter(|| parse(data));
26+
}
2627

27-
#[bench]
28-
fn part1_bench(b: &mut Bencher) {
29-
let input = parse(&DATA);
30-
b.iter(|| part1(&input));
31-
}
28+
#[bench]
29+
fn part1_bench(b: &mut Bencher) {
30+
let input = parse(&DATA);
31+
b.iter(|| part1(&input));
32+
}
3233

33-
#[bench]
34-
fn part2_bench(b: &mut Bencher) {
35-
let input = parse(&DATA);
36-
b.iter(|| part2(&input));
34+
#[bench]
35+
fn part2_bench(b: &mut Bencher) {
36+
let input = parse(&DATA);
37+
b.iter(|| part2(&input));
38+
}
3739
}
38-
}
39-
};
40+
)*}
41+
}
4042
}
4143

42-
mod year2015 {
43-
benchmark!(year2015, day01);
44-
benchmark!(year2015, day02);
45-
benchmark!(year2015, day03);
46-
benchmark!(year2015, day04);
47-
benchmark!(year2015, day05);
48-
benchmark!(year2015, day06);
49-
benchmark!(year2015, day07);
50-
benchmark!(year2015, day08);
51-
benchmark!(year2015, day09);
52-
benchmark!(year2015, day10);
53-
benchmark!(year2015, day11);
54-
benchmark!(year2015, day12);
55-
benchmark!(year2015, day13);
56-
benchmark!(year2015, day14);
57-
benchmark!(year2015, day15);
58-
benchmark!(year2015, day16);
59-
benchmark!(year2015, day17);
60-
benchmark!(year2015, day18);
61-
benchmark!(year2015, day19);
62-
benchmark!(year2015, day20);
63-
benchmark!(year2015, day21);
64-
benchmark!(year2015, day22);
65-
benchmark!(year2015, day23);
66-
benchmark!(year2015, day24);
67-
benchmark!(year2015, day25);
68-
}
44+
benchmark!(year2015
45+
day01, day02, day03, day04, day05, day06, day07, day08, day09, day10, day11, day12, day13,
46+
day14, day15, day16, day17, day18, day19, day20, day21, day22, day23, day24, day25
47+
);
6948

70-
mod year2016 {
71-
benchmark!(year2016, day01);
72-
benchmark!(year2016, day02);
73-
benchmark!(year2016, day03);
74-
benchmark!(year2016, day04);
75-
benchmark!(year2016, day05);
76-
benchmark!(year2016, day06);
77-
benchmark!(year2016, day07);
78-
benchmark!(year2016, day08);
79-
benchmark!(year2016, day09);
80-
benchmark!(year2016, day10);
81-
benchmark!(year2016, day11);
82-
benchmark!(year2016, day12);
83-
benchmark!(year2016, day13);
84-
benchmark!(year2016, day14);
85-
benchmark!(year2016, day15);
86-
benchmark!(year2016, day16);
87-
benchmark!(year2016, day17);
88-
benchmark!(year2016, day18);
89-
benchmark!(year2016, day19);
90-
benchmark!(year2016, day20);
91-
benchmark!(year2016, day21);
92-
benchmark!(year2016, day22);
93-
benchmark!(year2016, day23);
94-
benchmark!(year2016, day24);
95-
benchmark!(year2016, day25);
96-
}
49+
benchmark!(year2016
50+
day01, day02, day03, day04, day05, day06, day07, day08, day09, day10, day11, day12, day13,
51+
day14, day15, day16, day17, day18, day19, day20, day21, day22, day23, day24, day25
52+
);
9753

98-
mod year2017 {
99-
benchmark!(year2017, day01);
100-
benchmark!(year2017, day02);
101-
benchmark!(year2017, day03);
102-
benchmark!(year2017, day04);
103-
benchmark!(year2017, day05);
104-
benchmark!(year2017, day06);
105-
benchmark!(year2017, day07);
106-
benchmark!(year2017, day08);
107-
benchmark!(year2017, day09);
108-
benchmark!(year2017, day10);
109-
benchmark!(year2017, day11);
110-
benchmark!(year2017, day12);
111-
benchmark!(year2017, day13);
112-
benchmark!(year2017, day14);
113-
benchmark!(year2017, day15);
114-
benchmark!(year2017, day16);
115-
benchmark!(year2017, day17);
116-
benchmark!(year2017, day18);
117-
benchmark!(year2017, day19);
118-
benchmark!(year2017, day20);
119-
benchmark!(year2017, day21);
120-
benchmark!(year2017, day22);
121-
benchmark!(year2017, day23);
122-
benchmark!(year2017, day24);
123-
benchmark!(year2017, day25);
124-
}
54+
benchmark!(year2017
55+
day01, day02, day03, day04, day05, day06, day07, day08, day09, day10, day11, day12, day13,
56+
day14, day15, day16, day17, day18, day19, day20, day21, day22, day23, day24, day25
57+
);
12558

126-
mod year2018 {
127-
benchmark!(year2018, day01);
128-
benchmark!(year2018, day02);
129-
benchmark!(year2018, day03);
130-
benchmark!(year2018, day04);
131-
benchmark!(year2018, day05);
132-
benchmark!(year2018, day06);
133-
benchmark!(year2018, day07);
134-
benchmark!(year2018, day08);
135-
benchmark!(year2018, day09);
136-
benchmark!(year2018, day10);
137-
benchmark!(year2018, day11);
138-
benchmark!(year2018, day12);
139-
benchmark!(year2018, day13);
140-
benchmark!(year2018, day14);
141-
benchmark!(year2018, day15);
142-
benchmark!(year2018, day16);
143-
benchmark!(year2018, day17);
144-
benchmark!(year2018, day18);
145-
benchmark!(year2018, day19);
146-
benchmark!(year2018, day20);
147-
benchmark!(year2018, day21);
148-
benchmark!(year2018, day22);
149-
benchmark!(year2018, day23);
150-
benchmark!(year2018, day24);
151-
benchmark!(year2018, day25);
152-
}
59+
benchmark!(year2018
60+
day01, day02, day03, day04, day05, day06, day07, day08, day09, day10, day11, day12, day13,
61+
day14, day15, day16, day17, day18, day19, day20, day21, day22, day23, day24, day25
62+
);
15363

154-
mod year2019 {
155-
benchmark!(year2019, day01);
156-
benchmark!(year2019, day02);
157-
benchmark!(year2019, day03);
158-
benchmark!(year2019, day04);
159-
benchmark!(year2019, day05);
160-
benchmark!(year2019, day06);
161-
benchmark!(year2019, day07);
162-
benchmark!(year2019, day08);
163-
benchmark!(year2019, day09);
164-
benchmark!(year2019, day10);
165-
benchmark!(year2019, day11);
166-
benchmark!(year2019, day12);
167-
benchmark!(year2019, day13);
168-
benchmark!(year2019, day14);
169-
benchmark!(year2019, day15);
170-
benchmark!(year2019, day16);
171-
benchmark!(year2019, day17);
172-
benchmark!(year2019, day18);
173-
benchmark!(year2019, day19);
174-
benchmark!(year2019, day20);
175-
benchmark!(year2019, day21);
176-
benchmark!(year2019, day22);
177-
benchmark!(year2019, day23);
178-
benchmark!(year2019, day24);
179-
benchmark!(year2019, day25);
180-
}
64+
benchmark!(year2019
65+
day01, day02, day03, day04, day05, day06, day07, day08, day09, day10, day11, day12, day13,
66+
day14, day15, day16, day17, day18, day19, day20, day21, day22, day23, day24, day25
67+
);
18168

182-
mod year2020 {
183-
benchmark!(year2020, day01);
184-
benchmark!(year2020, day02);
185-
benchmark!(year2020, day03);
186-
benchmark!(year2020, day04);
187-
benchmark!(year2020, day05);
188-
benchmark!(year2020, day06);
189-
benchmark!(year2020, day07);
190-
benchmark!(year2020, day08);
191-
benchmark!(year2020, day09);
192-
benchmark!(year2020, day10);
193-
benchmark!(year2020, day11);
194-
benchmark!(year2020, day12);
195-
benchmark!(year2020, day13);
196-
benchmark!(year2020, day14);
197-
benchmark!(year2020, day15);
198-
benchmark!(year2020, day16);
199-
benchmark!(year2020, day17);
200-
benchmark!(year2020, day18);
201-
benchmark!(year2020, day19);
202-
benchmark!(year2020, day20);
203-
benchmark!(year2020, day21);
204-
benchmark!(year2020, day22);
205-
benchmark!(year2020, day23);
206-
benchmark!(year2020, day24);
207-
benchmark!(year2020, day25);
208-
}
69+
benchmark!(year2020
70+
day01, day02, day03, day04, day05, day06, day07, day08, day09, day10, day11, day12, day13,
71+
day14, day15, day16, day17, day18, day19, day20, day21, day22, day23, day24, day25
72+
);
20973

210-
mod year2021 {
211-
benchmark!(year2021, day01);
212-
benchmark!(year2021, day02);
213-
benchmark!(year2021, day03);
214-
benchmark!(year2021, day04);
215-
benchmark!(year2021, day05);
216-
benchmark!(year2021, day06);
217-
benchmark!(year2021, day07);
218-
benchmark!(year2021, day08);
219-
benchmark!(year2021, day09);
220-
benchmark!(year2021, day10);
221-
benchmark!(year2021, day11);
222-
benchmark!(year2021, day12);
223-
benchmark!(year2021, day13);
224-
benchmark!(year2021, day14);
225-
benchmark!(year2021, day15);
226-
benchmark!(year2021, day16);
227-
benchmark!(year2021, day17);
228-
benchmark!(year2021, day18);
229-
benchmark!(year2021, day19);
230-
benchmark!(year2021, day20);
231-
benchmark!(year2021, day21);
232-
benchmark!(year2021, day22);
233-
benchmark!(year2021, day23);
234-
benchmark!(year2021, day24);
235-
benchmark!(year2021, day25);
236-
}
74+
benchmark!(year2021
75+
day01, day02, day03, day04, day05, day06, day07, day08, day09, day10, day11, day12, day13,
76+
day14, day15, day16, day17, day18, day19, day20, day21, day22, day23, day24, day25
77+
);
23778

238-
mod year2022 {
239-
benchmark!(year2022, day01);
240-
benchmark!(year2022, day02);
241-
benchmark!(year2022, day03);
242-
benchmark!(year2022, day04);
243-
benchmark!(year2022, day05);
244-
benchmark!(year2022, day06);
245-
benchmark!(year2022, day07);
246-
benchmark!(year2022, day08);
247-
benchmark!(year2022, day09);
248-
benchmark!(year2022, day10);
249-
benchmark!(year2022, day11);
250-
benchmark!(year2022, day12);
251-
benchmark!(year2022, day13);
252-
benchmark!(year2022, day14);
253-
benchmark!(year2022, day15);
254-
benchmark!(year2022, day16);
255-
benchmark!(year2022, day17);
256-
benchmark!(year2022, day18);
257-
benchmark!(year2022, day19);
258-
benchmark!(year2022, day20);
259-
benchmark!(year2022, day21);
260-
benchmark!(year2022, day22);
261-
benchmark!(year2022, day23);
262-
benchmark!(year2022, day24);
263-
benchmark!(year2022, day25);
264-
}
79+
benchmark!(year2022
80+
day01, day02, day03, day04, day05, day06, day07, day08, day09, day10, day11, day12, day13,
81+
day14, day15, day16, day17, day18, day19, day20, day21, day22, day23, day24, day25
82+
);
26583

266-
mod year2023 {
267-
benchmark!(year2023, day01);
268-
benchmark!(year2023, day02);
269-
benchmark!(year2023, day03);
270-
benchmark!(year2023, day04);
271-
benchmark!(year2023, day05);
272-
benchmark!(year2023, day06);
273-
benchmark!(year2023, day07);
274-
benchmark!(year2023, day08);
275-
benchmark!(year2023, day09);
276-
benchmark!(year2023, day10);
277-
benchmark!(year2023, day11);
278-
benchmark!(year2023, day12);
279-
benchmark!(year2023, day13);
280-
benchmark!(year2023, day14);
281-
benchmark!(year2023, day15);
282-
benchmark!(year2023, day16);
283-
benchmark!(year2023, day17);
284-
benchmark!(year2023, day18);
285-
benchmark!(year2023, day19);
286-
benchmark!(year2023, day20);
287-
benchmark!(year2023, day21);
288-
benchmark!(year2023, day22);
289-
benchmark!(year2023, day23);
290-
benchmark!(year2023, day24);
291-
benchmark!(year2023, day25);
292-
}
84+
benchmark!(year2023
85+
day01, day02, day03, day04, day05, day06, day07, day08, day09, day10, day11, day12, day13,
86+
day14, day15, day16, day17, day18, day19, day20, day21, day22, day23, day24, day25
87+
);
29388

294-
mod year2024 {
295-
benchmark!(year2024, day01);
296-
benchmark!(year2024, day02);
297-
benchmark!(year2024, day03);
298-
benchmark!(year2024, day04);
299-
benchmark!(year2024, day05);
300-
benchmark!(year2024, day06);
301-
benchmark!(year2024, day07);
302-
benchmark!(year2024, day08);
303-
benchmark!(year2024, day09);
304-
benchmark!(year2024, day10);
305-
benchmark!(year2024, day11);
306-
benchmark!(year2024, day12);
307-
}
89+
benchmark!(year2024
90+
day01, day02, day03, day04, day05, day06, day07, day08, day09, day10, day11, day12
91+
);

0 commit comments

Comments
 (0)