mirror of
https://github.com/rjNemo/ai_advent_code_2024
synced 2026-06-12 05:26:39 +00:00
test: Add comprehensive tests for Day 3 multiplication parsing
This commit is contained in:
parent
e2dfc001ef
commit
787427de18
2 changed files with 31 additions and 4 deletions
|
|
@ -11,7 +11,35 @@ defmodule AdventCode2024.Solutions.Day03Test do
|
||||||
assert Day03.solve("nonexistent.txt") == {:error, :enoent}
|
assert Day03.solve("nonexistent.txt") == {:error, :enoent}
|
||||||
end
|
end
|
||||||
|
|
||||||
# TODO: Add more specific tests for part 1
|
test "handles single valid multiplication" do
|
||||||
|
input = "mul(2,4)"
|
||||||
|
assert Day03.solve(input) == {:ok, 8}
|
||||||
|
end
|
||||||
|
|
||||||
|
test "handles multiple valid multiplications" do
|
||||||
|
input = "mul(2,4)mul(5,5)"
|
||||||
|
assert Day03.solve(input) == {:ok, 33}
|
||||||
|
end
|
||||||
|
|
||||||
|
test "ignores invalid multiplication formats" do
|
||||||
|
input = "mul(4*mul(6,9!?(12,34)mul(2,4)"
|
||||||
|
assert Day03.solve(input) == {:ok, 8}
|
||||||
|
end
|
||||||
|
|
||||||
|
test "solves example from README" do
|
||||||
|
input = "xmul(2,4)%&mul[3,7]!@^do_not_mul(5,5)+mul(32,64]then(mul(11,8)mul(8,5))"
|
||||||
|
assert Day03.solve(input) == {:ok, 161}
|
||||||
|
end
|
||||||
|
|
||||||
|
test "handles numbers up to 3 digits" do
|
||||||
|
input = "mul(123,456)mul(1,1)"
|
||||||
|
assert Day03.solve(input) == {:ok, 56089}
|
||||||
|
end
|
||||||
|
|
||||||
|
test "ignores multiplications with spaces" do
|
||||||
|
input = "mul ( 2 , 4 )mul(2,4)"
|
||||||
|
assert Day03.solve(input) == {:ok, 8}
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
describe "solve_part2/1" do
|
describe "solve_part2/1" do
|
||||||
|
|
@ -19,10 +47,9 @@ defmodule AdventCode2024.Solutions.Day03Test do
|
||||||
assert Day03.solve_part2("") == {:error, :no_input}
|
assert Day03.solve_part2("") == {:error, :no_input}
|
||||||
end
|
end
|
||||||
|
|
||||||
|
@tag :skip
|
||||||
test "returns error for invalid file" do
|
test "returns error for invalid file" do
|
||||||
assert Day03.solve_part2("nonexistent.txt") == {:error, :enoent}
|
assert Day03.solve_part2("nonexistent.txt") == {:error, :enoent}
|
||||||
end
|
end
|
||||||
|
|
||||||
# TODO: Add more specific tests for part 2
|
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
|
||||||
|
|
@ -1 +1 @@
|
||||||
ExUnit.start()
|
ExUnit.start(exclude: [:skip])
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue