feat: solved day 15 part 2

This commit is contained in:
Stevan Freeborn
2024-12-16 23:51:43 -06:00
parent 3b06f96259
commit 8e64d65e7d
11 changed files with 764 additions and 205 deletions
@@ -43,6 +43,70 @@ public class WarehouseMapTests
"<^^>>>vv<v>>v<<",
];
[Test]
[MethodDataSource(nameof(ScaleTestCases))]
public async Task Scale_WhenCalled_ItShouldReturnExpectedMap(ScaleTestCase testCase)
{
var expected = WideWarehouseMap.From(testCase.ExpectedMap);
var result = WarehouseMap.From(testCase.MapInput).Scale();
await Assert.That(result.Positions).IsEquivalentTo(expected.Positions);
}
public static IEnumerable<Func<ScaleTestCase>> ScaleTestCases()
{
yield return () => new(
[
"##########",
"#..O..O.O#",
"#......O.#",
"#.OO..O.O#",
"#..O@..O.#",
"#O#..O...#",
"#O..O..O.#",
"#.OO.O.OO#",
"#....O...#",
"##########",
],
[
"####################",
"##....[]....[]..[]##",
"##............[]..##",
"##..[][]....[]..[]##",
"##....[]@.....[]..##",
"##[]##....[]......##",
"##[]....[]....[]..##",
"##..[][]..[]..[][]##",
"##........[]......##",
"####################",
]
);
yield return () => new(
[
"#######",
"#...#.#",
"#.....#",
"#..OO@#",
"#..O..#",
"#.....#",
"#######",
],
[
"##############",
"##......##..##",
"##..........##",
"##....[][]@.##",
"##....[]....##",
"##..........##",
"##############",
]
);
}
public record ScaleTestCase(string[] MapInput, string[] ExpectedMap);
[Test]
[MethodDataSource(nameof(MoveTestCases))]
public async Task Move_WhenCalled_ItShouldMoveValuesToExpectedPositions(MoveTestCase testCase)