From abce745f07db21e9a5a1324bfa44e655cc5e189a Mon Sep 17 00:00:00 2001 From: "Ruidy (aider)" Date: Tue, 3 Dec 2024 14:19:15 +0100 Subject: [PATCH] test: Add comprehensive tests for Part 2 control instructions --- .../solutions/day03/day3_test.exs | 26 ++++++++++++++++++- 1 file changed, 25 insertions(+), 1 deletion(-) diff --git a/test/advent_code2024/solutions/day03/day3_test.exs b/test/advent_code2024/solutions/day03/day3_test.exs index 69f4964..4ce425b 100644 --- a/test/advent_code2024/solutions/day03/day3_test.exs +++ b/test/advent_code2024/solutions/day03/day3_test.exs @@ -47,9 +47,33 @@ defmodule AdventCode2024.Solutions.Day03Test do assert Day03.solve_part2("") == {:error, :no_input} end - @tag :skip test "returns error for invalid file" do assert Day03.solve_part2("nonexistent.txt") == {:error, :enoent} end + + test "handles single multiplication with do/don't controls" do + input = "do()mul(2,4)" + assert Day03.solve_part2(input) == {:ok, 8} + end + + test "respects don't instruction" do + input = "mul(2,4)don't()mul(5,5)" + assert Day03.solve_part2(input) == {:ok, 8} + end + + test "handles multiple control switches" do + input = "mul(2,4)don't()mul(5,5)do()mul(8,5)" + assert Day03.solve_part2(input) == {:ok, 48} + end + + test "starts with multiplications enabled" do + input = "mul(3,3)mul(2,2)don't()mul(5,5)" + assert Day03.solve_part2(input) == {:ok, 13} + end + + test "ignores invalid control instructions" do + input = "mul(2,4)dont()mul(5,5)doo()mul(3,3)" + assert Day03.solve_part2(input) == {:ok, 38} + end end end