AdventOfCode 2023 Day03
This commit is contained in:
85
AdventOfCode2023.Tests/Day03_Tests.cs
Normal file
85
AdventOfCode2023.Tests/Day03_Tests.cs
Normal file
@@ -0,0 +1,85 @@
|
||||
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);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user