1const std = @import("std");
2const zbench = @import("zbench");
3
4const day1 = @import("day1.zig");
5const day2 = @import("day2.zig");
6const day3 = @import("day3.zig");
7const day4 = @import("day4.zig");
8const day5 = @import("day5.zig");
9
10fn day1pt1(_: std.mem.Allocator) void {
11 _ = day1.pt1(@embedFile("input/day1"));
12}
13
14fn day1pt2(_: std.mem.Allocator) void {
15 _ = day1.pt2(@embedFile("input/day1"));
16}
17
18fn day2pt1(_: std.mem.Allocator) void {
19 _ = day2.pt1(@embedFile("input/day2"));
20}
21
22fn day2pt2(_: std.mem.Allocator) void {
23 _ = day2.pt2(@embedFile("input/day2"));
24}
25
26fn day3pt1(_: std.mem.Allocator) void {
27 _ = day3.pt1(@embedFile("input/day3"));
28}
29
30fn day3pt2(_: std.mem.Allocator) void {
31 _ = day3.pt2(@embedFile("input/day3"));
32}
33
34fn day4pt1(_: std.mem.Allocator) void {
35 _ = day4.pt1(@embedFile("input/day4"));
36}
37
38fn day4pt2(_: std.mem.Allocator) void {
39 _ = day4.pt2(@embedFile("input/day4"));
40}
41
42fn day5pt1(alloc: std.mem.Allocator) void {
43 _ = day5.pt1(alloc, @embedFile("input/day5")) catch unreachable;
44}
45
46fn day5pt2(alloc: std.mem.Allocator) void {
47 _ = day5.pt2(alloc, @embedFile("input/day5")) catch unreachable;
48}
49
50pub fn main() !void {
51 var stdout = std.fs.File.stdout().writerStreaming(&.{});
52 const writer = &stdout.interface;
53
54 var bench = zbench.Benchmark.init(std.heap.page_allocator, .{});
55 defer bench.deinit();
56
57 try bench.add("Dia 1 parte 1", day1pt1, .{});
58 try bench.add("Dia 1 parte 2", day1pt2, .{});
59 try bench.add("Dia 2 parte 1", day2pt1, .{});
60 try bench.add("Dia 2 parte 2", day2pt2, .{});
61 try bench.add("Dia 3 parte 1", day3pt1, .{});
62 try bench.add("Dia 3 parte 2", day3pt2, .{});
63 try bench.add("Dia 4 parte 1", day4pt1, .{});
64 try bench.add("Dia 4 parte 2", day4pt2, .{});
65 try bench.add("Dia 5 parte 1", day5pt1, .{ .track_allocations = true });
66 try bench.add("Dia 5 parte 2", day5pt2, .{ .track_allocations = true });
67
68 try writer.writeAll("\n");
69 try bench.run(writer);
70}