Files
advent-of-code-2024/04/CeresSearch.Tests/GridTests.cs
T
2024-12-05 00:40:13 -06:00

56 lines
1.3 KiB
C#

namespace CeresSearch.Tests;
public class GridTests
{
private readonly string[] _exampleInput = [
"MMMSXXMASM",
"MSAMXMSMSA",
"AMXSXMAAMM",
"MSAMASMSMX",
"XMASAMXAMM",
"XXAMMXXAMA",
"SMSMSASXSS",
"SAXAMASAAA",
"MAMMMXMMMM",
"MXMXAXMASX",
];
private async Task<string[]> GetPuzzleInput()
{
return await File.ReadAllLinesAsync(Path.Combine(AppContext.BaseDirectory, "INPUT.txt"));
}
[Test]
public async Task CountOccurrences_WhenCalledWithExampleInput_ItShouldReturnExpectedCount()
{
var result = new Grid(_exampleInput).CountOccurrences("XMAS");
await Assert.That(result).IsEqualTo(18);
}
[Test]
public async Task CountOccurrences_WhenCalledWithPuzzleInput_ItShouldReturnExpectedCount()
{
var input = await GetPuzzleInput();
var result = new Grid(input).CountOccurrences("XMAS");
await Assert.That(result).IsEqualTo(2644);
}
[Test]
public async Task CountXmases_WhenCalledWithExampleInput_ItShouldReturnExpectedCount()
{
var result = new Grid(_exampleInput).CountXmases();
await Assert.That(result).IsEqualTo(9);
}
[Test]
public async Task CountXmases_WhenCalledWithPuzzleInput_ItShouldReturnExpectedCount()
{
var input = await GetPuzzleInput();
var result = new Grid(input).CountXmases();
await Assert.That(result).IsEqualTo(1952);
}
}