const std = @import("std");
const app = @import("./main.zig");
test "expect task to result in 1588" {
std.testing.log_level = .debug;
const raw_input: []const u8 =
\\NNCB
\\
\\CH -> B
\\HH -> N
\\CB -> H
\\NH -> C
\\HB -> C
\\HC -> B
\\HN -> C
\\NN -> C
\\BH -> H
\\NC -> B
\\NB -> B
\\BN -> B
\\BB -> N
\\BC -> B
\\CC -> N
\\CN -> C
\\
;
var stream = std.io.fixedBufferStream(raw_input);
var input = try app.readInput(std.testing.allocator, stream.reader());
defer input.deinit();
const expected: u32 = 1588;
try std.testing.expect((try app.task(std.testing.allocator, 10, input)) == expected);
}
test "expect task in 40 steps to result in 2188189693529" {
std.testing.log_level = .debug;
const raw_input: []const u8 =
\\NNCB
\\
\\CH -> B
\\HH -> N
\\CB -> H
\\NH -> C
\\HB -> C
\\HC -> B
\\HN -> C
\\NN -> C
\\BH -> H
\\NC -> B
\\NB -> B
\\BN -> B
\\BB -> N
\\BC -> B
\\CC -> N
\\CN -> C
\\
;
var stream = std.io.fixedBufferStream(raw_input);
var input = try app.readInput(std.testing.allocator, stream.reader());
defer input.deinit();
const expected: u64 = 2188189693529;
try std.testing.expect((try app.task(std.testing.allocator, 40, input)) == expected);
}