Files
AdventOfCode/AdventOfCode2023.Tests/Day03_Tests.cs

85 lines
2.0 KiB
C#

namespace AdventOfCode2023.Tests;
public class Day03_Tests
{
[Fact]
public void SearchNextSchemaNumber__NoNumbers__Null()
{
string[] inputs = new[] {
"..........",
"..........",
"..........",
};
Day03.SchemaNumber? number = Day03.SearchNextSchemaNumber(inputs, 0, 0);
Assert.Null(number);
}
[Fact]
public void SearchNextSchemaNumber__OneNumber__Valid()
{
string[] inputs = new[] {
"..........",
"....420...",
"..........",
};
Day03.SchemaNumber? number = Day03.SearchNextSchemaNumber(inputs, 0, 0);
Assert.NotNull(number);
Assert.Equal(1, number.Value.Row);
Assert.Equal(4, number.Value.Column);
Assert.Equal(3, number.Value.Lenght);
Assert.Equal(420, number.Value.Value);
}
[Fact]
public void SearchNextSchemaNumber__TwoNumbersSkipFirst__ValidSecond()
{
string[] inputs = new[] {
"69........",
"....420...",
"..........",
};
Day03.SchemaNumber? number = Day03.SearchNextSchemaNumber(inputs, 0, 4);
Assert.NotNull(number);
Assert.Equal(1, number.Value.Row);
Assert.Equal(4, number.Value.Column);
Assert.Equal(3, number.Value.Lenght);
Assert.Equal(420, number.Value.Value);
}
private string[] _example = new[] {
"467..114..",
"...*......",
"..35..633.",
"......#...",
"617*......",
".....+.58.",
"..592.....",
"......755.",
"...$.*....",
".664.598..",
};
[Fact]
public void ResolvePart1__Example()
{
Day03 day = new();
string result = day.ResolvePart1(_example);
Assert.Equal("4361", result);
}
[Fact]
public void ResolvePart2__Example()
{
Day03 day = new();
string result = day.ResolvePart2(_example);
Assert.Equal("467835", result);
}
}