diff --git a/AoC_2025.Tests/Day09Test.cs b/AoC_2025.Tests/Day09Test.cs index bba1084..8ce4198 100644 --- a/AoC_2025.Tests/Day09Test.cs +++ b/AoC_2025.Tests/Day09Test.cs @@ -7,6 +7,7 @@ public class Day09Test private IPuzzleSolver _sut; private static readonly string rootPath = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments); private readonly string TestInputPath = @$"{rootPath}\AoC-PuzzleInputs\2025\Test\day09.txt"; + private readonly string Test2InputPath = @$"{rootPath}\AoC-PuzzleInputs\2025\Test\day09_2.txt"; private readonly string ProdInputPath = @$"{rootPath}\AoC-PuzzleInputs\2025\Prod\day09.txt"; public Day09Test() @@ -37,6 +38,15 @@ public class Day09Test Assert.Equal(24, actual); } + [Fact] + public void Part02_Test2_equals_30() + { + // todo: color edges as right, left, up, down to only allow rectangles between right and left or up and down edges + var actual = _sut.SolvePart2(Test2InputPath); + + Assert.Equal(30, actual); + } + [Fact] public void Part02_Prod_equals_1568849600() { diff --git a/AoC_2025/Day04.cs b/AoC_2025/Day04.cs index 323a90c..568296c 100644 --- a/AoC_2025/Day04.cs +++ b/AoC_2025/Day04.cs @@ -55,13 +55,12 @@ public class Day04 : IPuzzleSolver private HashSet GetRollCoordinates(IEnumerable paperrollGrid) { var coordinates = paperrollGrid - .Index() - .SelectMany(indexedLine => GetCoordinates(indexedLine.Item, indexedLine.Index)) + .SelectMany((line, xIndex) => GetRollCoordinates(line, xIndex)) .ToHashSet(); return coordinates; } - private IEnumerable GetCoordinates(string gridLine, int xIndex) + private IEnumerable GetRollCoordinates(string gridLine, int xIndex) { var indexedCharacters = gridLine.Index(); var validRolls = indexedCharacters.Where(tuple => tuple.Item == '@'); diff --git a/AoC_2025/Day09.cs b/AoC_2025/Day09.cs index 5d3c543..4c44c60 100644 --- a/AoC_2025/Day09.cs +++ b/AoC_2025/Day09.cs @@ -64,7 +64,8 @@ public class Day09 : IPuzzleSolver private bool IsRectangleInsideBorders(CoordinatePair[] borders, CoordinatePair rectangle) { - return !borders.Any(border => RectangleCrossesBorder(rectangle, border)); + var bordersCrossed = borders.Any(border => RectangleCrossesBorder(rectangle, border)); + return !bordersCrossed; } private CoordinatePair AsPair(Coordinate a, Coordinate b)