Files
advent-of-code-2024/06/GuardGallivant.Tests/MapTests.cs
T

64 lines
1.6 KiB
C#

namespace GuardGallivant.Tests;
public class MapTests
{
private readonly string[] _exampleMap = [
"....#.....",
".........#",
"..........",
"..#.......",
".......#..",
"..........",
".#..^.....",
"........#.",
"#.........",
"......#...",
];
private async Task<string[]> GetPuzzleInput()
{
return await File.ReadAllLinesAsync(Path.Combine(AppContext.BaseDirectory, "INPUT.txt"));
}
[Test]
public async Task PredictDistinctPositionsCount_WhenCalledWithExample_ItShouldReturnExpectedCount()
{
var map = new Map(_exampleMap);
var result = map.PredictDistinctPositionsCount();
await Assert.That(result).IsEqualTo(41);
}
[Test]
public async Task PredictDistinctPositionsCount_WhenCalledWithPuzzleInput_ItShouldReturnExpectedCount()
{
var input = await GetPuzzleInput();
var map = new Map(input);
var result = map.PredictDistinctPositionsCount();
await Assert.That(result).IsEqualTo(4789);
}
[Test]
public async Task IdentifyNumberOfPlacementsForNewObstruction_WhenCalledWithExample_ItShouldReturnExpectedCount()
{
var map = new Map(_exampleMap);
var result = map.IdentifyNumberOfPlacementsForNewObstruction();
await Assert.That(result).IsEqualTo(6);
}
[Test]
public async Task IdentifyNumberOfPlacementsForNewObstruction_WhenCalledWithPuzzleInput_ItShouldReturnExpectedCount()
{
var input = await GetPuzzleInput();
var map = new Map(input);
var result = map.IdentifyNumberOfPlacementsForNewObstruction();
await Assert.That(result).IsEqualTo(1304);
}
}