Files
AdventOfCode/AdventOfCode2018.Tests/Day06_Tests.cs
2024-12-02 01:37:52 +01:00

101 lines
2.2 KiB
C#

namespace AdventOfCode2018.Tests;
public class Day06_Tests
{
#region ChronoPoint_FromString
[Fact]
public void ChronoPoint_FromString__Test1()
{
Day06.ChronoPoint? point = Day06.ChronoPoint.FromString("1, 1");
Assert.Equal(1, point?.X);
Assert.Equal(1, point?.Y);
}
[Fact]
public void ChronoPoint_FromString__Test2()
{
Day06.ChronoPoint? point = Day06.ChronoPoint.FromString("1, 6");
Assert.Equal(1, point?.X);
Assert.Equal(6, point?.Y);
}
[Fact]
public void ChronoPoint_FromString__Test3()
{
Day06.ChronoPoint? point = Day06.ChronoPoint.FromString("8, 9");
Assert.Equal(8, point?.X);
Assert.Equal(9, point?.Y);
}
#endregion ChronoPoint_FromString
#region ChronoPoint_ManhattanDistance
[Fact]
public void ChronoPoint_ManhattanDistance__Test1()
{
Day06.ChronoPoint? p0 = Day06.ChronoPoint.FromString("8, 9");
Day06.ChronoPoint? p1 = Day06.ChronoPoint.FromString("1, 6");
Assert.NotNull(p0);
Assert.NotNull(p1);
int distance = Day06.ChronoPoint.ManhattanDistance(p0, p1);
Assert.Equal(10, distance);
}
[Fact]
public void ChronoPoint_ManhattanDistance__Test2()
{
Day06.ChronoPoint? p0 = Day06.ChronoPoint.FromString("1, 1");
Day06.ChronoPoint? p1 = Day06.ChronoPoint.FromString("1, 6");
Assert.NotNull(p0);
Assert.NotNull(p1);
int distance = Day06.ChronoPoint.ManhattanDistance(p0, p1);
Assert.Equal(5, distance);
}
#endregion ChronoPoint_ManhattanDistance
[Fact]
public void ResolvePart1__Test()
{
Day06 day06 = new();
string result = day06.ResolvePart1([
"1, 1",
"1, 6",
"8, 3",
"3, 4",
"5, 5",
"8, 9",
]);
Assert.Equal("17", result);
}
[Fact]
public void ResolvePart2__Test()
{
Day06 day06 = new() { DistanceThreshold = 32, };
string result = day06.ResolvePart2([
"1, 1",
"1, 6",
"8, 3",
"3, 4",
"5, 5",
"8, 9",
]);
Assert.Equal("16", result);
}
}