AdventOfCode2018: Move tests to the corresponding day

This commit is contained in:
2023-12-03 03:07:00 +01:00
parent fd09931145
commit b36594f391
17 changed files with 837 additions and 850 deletions

View File

@@ -4,4 +4,7 @@
<s:String x:Key="/Default/CodeStyle/Naming/CSharpNaming/Abbreviations/=VM/@EntryIndexedValue">VM</s:String> <s:String x:Key="/Default/CodeStyle/Naming/CSharpNaming/Abbreviations/=VM/@EntryIndexedValue">VM</s:String>
<s:String x:Key="/Default/CodeStyle/Naming/CSharpNaming/Abbreviations/=VX/@EntryIndexedValue">VX</s:String> <s:String x:Key="/Default/CodeStyle/Naming/CSharpNaming/Abbreviations/=VX/@EntryIndexedValue">VX</s:String>
<s:String x:Key="/Default/CodeStyle/Naming/CSharpNaming/Abbreviations/=VY/@EntryIndexedValue">VY</s:String> <s:String x:Key="/Default/CodeStyle/Naming/CSharpNaming/Abbreviations/=VY/@EntryIndexedValue">VY</s:String>
<s:String x:Key="/Default/CodeStyle/Naming/CSharpNaming/PredefinedNamingRules/=TypesAndNamespaces/@EntryIndexedValue">&lt;Policy Inspect="True" Prefix="" Suffix="" Style="AaBb_AaBb" /&gt;</s:String></wpf:ResourceDictionary> <s:String x:Key="/Default/CodeStyle/Naming/CSharpNaming/PredefinedNamingRules/=TypesAndNamespaces/@EntryIndexedValue">&lt;Policy Inspect="True" Prefix="" Suffix="" Style="AaBb_AaBb" /&gt;</s:String>
<s:Boolean x:Key="/Default/Environment/Filtering/ExcludeCoverageFilters/=AdventOfCode_002A_002ETests_003B_002A_003B_002A_003B_002A/@EntryIndexedValue">True</s:Boolean>
<s:Boolean x:Key="/Default/Environment/Filtering/ExcludeCoverageFilters/=AdventOfCode_002ECommon_003B_002A_003B_002A_003B_002A/@EntryIndexedValue">True</s:Boolean>
<s:Boolean x:Key="/Default/Environment/Filtering/ExcludeCoverageFilters/=_002A_003B_002A_003BProgram_003B_002A/@EntryIndexedValue">True</s:Boolean></wpf:ResourceDictionary>

View File

@@ -1,31 +0,0 @@
namespace AdventOfCode2018.Tests;
public class ChronoLicenceNode_Tests
{
[Fact]
public void BuildFromIntStream__Test()
{
IntStream values = new("2 3 0 3 10 11 12 1 1 0 1 99 2 1 1 2");
ChronoLicenceNode result = ChronoLicenceNode.BuildFromIntStream(values);
Assert.Equal(2, result.Childs.Count);
Assert.Equal(3, result.Metadata.Count);
Assert.Equal(1, result.Metadata[0]);
Assert.Equal(1, result.Metadata[1]);
Assert.Equal(2, result.Metadata[2]);
Assert.Empty(result.Childs[0].Childs);
Assert.Equal(3, result.Childs[0].Metadata.Count);
Assert.Equal(10, result.Childs[0].Metadata[0]);
Assert.Equal(11, result.Childs[0].Metadata[1]);
Assert.Equal(12, result.Childs[0].Metadata[2]);
Assert.Single(result.Childs[1].Childs);
Assert.Single(result.Childs[1].Metadata);
Assert.Equal(2, result.Childs[1].Metadata[0]);
Assert.Empty(result.Childs[1].Childs[0].Childs);
Assert.Single(result.Childs[1].Childs[0].Metadata);
Assert.Equal(99, result.Childs[1].Childs[0].Metadata[0]);
}
}

View File

@@ -1,61 +0,0 @@
namespace AdventOfCode2018.Tests;
public class ChronoPoint_Tests
{
#region FromString
[Fact]
public void FromString__Test1()
{
ChronoPoint point = ChronoPoint.FromString("1, 1");
Assert.Equal(1, point.X);
Assert.Equal(1, point.Y);
}
[Fact]
public void FromString__Test2()
{
ChronoPoint point = ChronoPoint.FromString("1, 6");
Assert.Equal(1, point.X);
Assert.Equal(6, point.Y);
}
[Fact]
public void FromString__Test3()
{
ChronoPoint point = ChronoPoint.FromString("8, 9");
Assert.Equal(8, point.X);
Assert.Equal(9, point.Y);
}
#endregion FromString
#region ManhattanDistance
[Fact]
public void ManhattanDistance__Test1()
{
ChronoPoint p0 = ChronoPoint.FromString("8, 9");
ChronoPoint p1 = ChronoPoint.FromString("1, 6");
int distance = ChronoPoint.ManhattanDistance(p0, p1);
Assert.Equal(10, distance);
}
[Fact]
public void ManhattanDistance__Test2()
{
ChronoPoint p0 = ChronoPoint.FromString("1, 1");
ChronoPoint p1 = ChronoPoint.FromString("1, 6");
int distance = ChronoPoint.ManhattanDistance(p0, p1);
Assert.Equal(5, distance);
}
#endregion ManhattanDistance
}

View File

@@ -1,93 +0,0 @@
namespace AdventOfCode2018.Tests;
public class Claim_Tests
{
#region FromString
[Fact]
public void FromString__Test1()
{
Day03.Claim claim = Day03.Claim.FromString("#123 @ 3,2: 5x4");
Assert.Equal(123, claim.ID);
Assert.Equal(3, claim.Left);
Assert.Equal(2, claim.Top);
Assert.Equal(5, claim.Width);
Assert.Equal(4, claim.Height);
}
[Fact]
public void FromString__Test2()
{
Day03.Claim claim = Day03.Claim.FromString("#1 @ 1,3: 4x4");
Assert.Equal(1, claim.ID);
Assert.Equal(1, claim.Left);
Assert.Equal(3, claim.Top);
Assert.Equal(4, claim.Width);
Assert.Equal(4, claim.Height);
}
[Fact]
public void FromString__Test3()
{
Day03.Claim claim = Day03.Claim.FromString("#2 @ 3,1: 4x4");
Assert.Equal(2, claim.ID);
Assert.Equal(3, claim.Left);
Assert.Equal(1, claim.Top);
Assert.Equal(4, claim.Width);
Assert.Equal(4, claim.Height);
}
[Fact]
public void FromString__Test4()
{
Day03.Claim claim = Day03.Claim.FromString("#3 @ 5,5: 2x2");
Assert.Equal(3, claim.ID);
Assert.Equal(5, claim.Left);
Assert.Equal(5, claim.Top);
Assert.Equal(2, claim.Width);
Assert.Equal(2, claim.Height);
}
#endregion FromString
#region Overlaps
[Fact]
public void Overlaps__Test1()
{
Day03.Claim claim1 = Day03.Claim.FromString("#1 @ 1,3: 4x4");
Day03.Claim claim2 = Day03.Claim.FromString("#3 @ 5,5: 2x2");
bool result = Day03.Claim.Overlaps(claim1, claim2);
Assert.False(result);
}
[Fact]
public void Overlaps__Test2()
{
Day03.Claim claim1 = Day03.Claim.FromString("#2 @ 3,1: 4x4");
Day03.Claim claim2 = Day03.Claim.FromString("#3 @ 5,5: 2x2");
bool result = Day03.Claim.Overlaps(claim1, claim2);
Assert.False(result);
}
[Fact]
public void Overlaps__Test3()
{
Day03.Claim claim1 = Day03.Claim.FromString("#1 @ 1,3: 4x4");
Day03.Claim claim2 = Day03.Claim.FromString("#2 @ 3,1: 4x4");
bool result = Day03.Claim.Overlaps(claim1, claim2);
Assert.True(result);
}
#endregion Overlaps
}

View File

@@ -2,6 +2,95 @@
public class Day03_Tests public class Day03_Tests
{ {
#region Claim_FromString
[Fact]
public void Claim_FromString__Test1()
{
Day03.Claim claim = Day03.Claim.FromString("#123 @ 3,2: 5x4");
Assert.Equal(123, claim.ID);
Assert.Equal(3, claim.Left);
Assert.Equal(2, claim.Top);
Assert.Equal(5, claim.Width);
Assert.Equal(4, claim.Height);
}
[Fact]
public void Claim_FromString__Test2()
{
Day03.Claim claim = Day03.Claim.FromString("#1 @ 1,3: 4x4");
Assert.Equal(1, claim.ID);
Assert.Equal(1, claim.Left);
Assert.Equal(3, claim.Top);
Assert.Equal(4, claim.Width);
Assert.Equal(4, claim.Height);
}
[Fact]
public void Claim_FromString__Test3()
{
Day03.Claim claim = Day03.Claim.FromString("#2 @ 3,1: 4x4");
Assert.Equal(2, claim.ID);
Assert.Equal(3, claim.Left);
Assert.Equal(1, claim.Top);
Assert.Equal(4, claim.Width);
Assert.Equal(4, claim.Height);
}
[Fact]
public void Claim_FromString__Test4()
{
Day03.Claim claim = Day03.Claim.FromString("#3 @ 5,5: 2x2");
Assert.Equal(3, claim.ID);
Assert.Equal(5, claim.Left);
Assert.Equal(5, claim.Top);
Assert.Equal(2, claim.Width);
Assert.Equal(2, claim.Height);
}
#endregion Claim_FromString
#region Claim_Overlaps
[Fact]
public void Claim_Overlaps__Test1()
{
Day03.Claim claim1 = Day03.Claim.FromString("#1 @ 1,3: 4x4");
Day03.Claim claim2 = Day03.Claim.FromString("#3 @ 5,5: 2x2");
bool result = Day03.Claim.Overlaps(claim1, claim2);
Assert.False(result);
}
[Fact]
public void Claim_Overlaps__Test2()
{
Day03.Claim claim1 = Day03.Claim.FromString("#2 @ 3,1: 4x4");
Day03.Claim claim2 = Day03.Claim.FromString("#3 @ 5,5: 2x2");
bool result = Day03.Claim.Overlaps(claim1, claim2);
Assert.False(result);
}
[Fact]
public void Claim_Overlaps__Test3()
{
Day03.Claim claim1 = Day03.Claim.FromString("#1 @ 1,3: 4x4");
Day03.Claim claim2 = Day03.Claim.FromString("#2 @ 3,1: 4x4");
bool result = Day03.Claim.Overlaps(claim1, claim2);
Assert.True(result);
}
#endregion Claim_Overlaps
[Fact] [Fact]
public void ResolvePart1__Test() public void ResolvePart1__Test()
{ {

View File

@@ -1,7 +1,134 @@
namespace AdventOfCode2018.Tests; using System.Collections.Generic;
namespace AdventOfCode2018.Tests;
public class Day04_Tests public class Day04_Tests
{ {
#region GuardEvent_FromString
[Fact]
public void GuardEvent_FromString__ShiftBegin()
{
Day04.GuardEvent guardEvent = Day04.GuardEvent.FromString("[1518-11-01 00:00] Guard #10 begins shift");
Assert.Equal(10, guardEvent.ID);
Assert.Equal(11, guardEvent.Date.Month);
Assert.Equal(1, guardEvent.Date.Day);
Assert.Equal(0, guardEvent.Date.Hour);
Assert.Equal(0, guardEvent.Date.Minute);
Assert.Equal(Day04.GuardEventType.ShiftBegin, guardEvent.Type);
}
[Fact]
public void GuardEvent_FromString__FallSleep()
{
Day04.GuardEvent guardEvent = Day04.GuardEvent.FromString("[1518-11-02 00:40] falls asleep");
Assert.Null(guardEvent.ID);
Assert.Equal(11, guardEvent.Date.Month);
Assert.Equal(2, guardEvent.Date.Day);
Assert.Equal(0, guardEvent.Date.Hour);
Assert.Equal(40, guardEvent.Date.Minute);
Assert.Equal(Day04.GuardEventType.FallSleep, guardEvent.Type);
}
[Fact]
public void GuardEvent_FromString__WakeUp()
{
Day04.GuardEvent guardEvent = Day04.GuardEvent.FromString("[1518-11-03 00:29] wakes up");
Assert.Null(guardEvent.ID);
Assert.Equal(11, guardEvent.Date.Month);
Assert.Equal(3, guardEvent.Date.Day);
Assert.Equal(0, guardEvent.Date.Hour);
Assert.Equal(29, guardEvent.Date.Minute);
Assert.Equal(Day04.GuardEventType.WakeUp, guardEvent.Type);
}
#endregion GuardEvent_FromString
#region GuardEvent_FromStringArray
[Fact]
public void GuardEvent_FromStringArray__TestBase()
{
List<Day04.GuardEvent> guardEvents = Day04.GuardEvent.FromStringArray(new[] {
"[1518-11-01 00:00] Guard #10 begins shift",
"[1518-11-01 00:05] falls asleep",
"[1518-11-01 00:25] wakes up",
"[1518-11-01 00:30] falls asleep",
"[1518-11-01 00:55] wakes up",
"[1518-11-01 23:58] Guard #99 begins shift",
"[1518-11-02 00:40] falls asleep",
"[1518-11-02 00:50] wakes up",
});
Assert.Equal(10, guardEvents[0].ID);
Assert.Equal(Day04.GuardEventType.ShiftBegin, guardEvents[0].Type);
Assert.Equal(10, guardEvents[1].ID);
Assert.Equal(Day04.GuardEventType.FallSleep, guardEvents[1].Type);
Assert.Equal(10, guardEvents[2].ID);
Assert.Equal(Day04.GuardEventType.WakeUp, guardEvents[2].Type);
Assert.Equal(10, guardEvents[3].ID);
Assert.Equal(Day04.GuardEventType.FallSleep, guardEvents[3].Type);
Assert.Equal(10, guardEvents[4].ID);
Assert.Equal(Day04.GuardEventType.WakeUp, guardEvents[4].Type);
Assert.Equal(99, guardEvents[5].ID);
Assert.Equal(Day04.GuardEventType.ShiftBegin, guardEvents[5].Type);
Assert.Equal(99, guardEvents[6].ID);
Assert.Equal(Day04.GuardEventType.FallSleep, guardEvents[6].Type);
Assert.Equal(99, guardEvents[7].ID);
Assert.Equal(Day04.GuardEventType.WakeUp, guardEvents[7].Type);
}
[Fact]
public void GuardEvent_FromStringArray__TestBaseUnsorted()
{
List<Day04.GuardEvent> guardEvents = Day04.GuardEvent.FromStringArray(new[] {
"[1518-11-01 00:00] Guard #10 begins shift",
"[1518-11-01 23:58] Guard #99 begins shift",
"[1518-11-01 00:30] falls asleep",
"[1518-11-02 00:40] falls asleep",
"[1518-11-01 00:05] falls asleep",
"[1518-11-02 00:50] wakes up",
"[1518-11-01 00:55] wakes up",
"[1518-11-01 00:25] wakes up",
});
Assert.Equal(10, guardEvents[0].ID);
Assert.Equal(Day04.GuardEventType.ShiftBegin, guardEvents[0].Type);
Assert.Equal(10, guardEvents[1].ID);
Assert.Equal(Day04.GuardEventType.FallSleep, guardEvents[1].Type);
Assert.Equal(10, guardEvents[2].ID);
Assert.Equal(Day04.GuardEventType.WakeUp, guardEvents[2].Type);
Assert.Equal(10, guardEvents[3].ID);
Assert.Equal(Day04.GuardEventType.FallSleep, guardEvents[3].Type);
Assert.Equal(10, guardEvents[4].ID);
Assert.Equal(Day04.GuardEventType.WakeUp, guardEvents[4].Type);
Assert.Equal(99, guardEvents[5].ID);
Assert.Equal(Day04.GuardEventType.ShiftBegin, guardEvents[5].Type);
Assert.Equal(99, guardEvents[6].ID);
Assert.Equal(Day04.GuardEventType.FallSleep, guardEvents[6].Type);
Assert.Equal(99, guardEvents[7].ID);
Assert.Equal(Day04.GuardEventType.WakeUp, guardEvents[7].Type);
}
#endregion GuardEvent_FromStringArray
[Fact] [Fact]
public void ResolvePart1__BaseStatement() public void ResolvePart1__BaseStatement()
{ {

View File

@@ -2,6 +2,63 @@
public class Day06_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");
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");
int distance = Day06.ChronoPoint.ManhattanDistance(p0, p1);
Assert.Equal(5, distance);
}
#endregion ChronoPoint_ManhattanDistance
[Fact] [Fact]
public void ResolvePart1__Test() public void ResolvePart1__Test()
{ {

View File

@@ -2,6 +2,33 @@
public class Day08_Tests public class Day08_Tests
{ {
[Fact]
public void ChronoLicenceNode_BuildFromIntStream__Test()
{
Day08.IntStream values = new("2 3 0 3 10 11 12 1 1 0 1 99 2 1 1 2");
Day08.ChronoLicenceNode result = Day08.ChronoLicenceNode.BuildFromIntStream(values);
Assert.Equal(2, result.Childs.Count);
Assert.Equal(3, result.Metadata.Count);
Assert.Equal(1, result.Metadata[0]);
Assert.Equal(1, result.Metadata[1]);
Assert.Equal(2, result.Metadata[2]);
Assert.Empty(result.Childs[0].Childs);
Assert.Equal(3, result.Childs[0].Metadata.Count);
Assert.Equal(10, result.Childs[0].Metadata[0]);
Assert.Equal(11, result.Childs[0].Metadata[1]);
Assert.Equal(12, result.Childs[0].Metadata[2]);
Assert.Single(result.Childs[1].Childs);
Assert.Single(result.Childs[1].Metadata);
Assert.Equal(2, result.Childs[1].Metadata[0]);
Assert.Empty(result.Childs[1].Childs[0].Childs);
Assert.Single(result.Childs[1].Childs[0].Metadata);
Assert.Equal(99, result.Childs[1].Childs[0].Metadata[0]);
}
[Fact] [Fact]
public void ResolvePart1__Test() public void ResolvePart1__Test()
{ {

View File

@@ -2,6 +2,76 @@
public class Day09_Tests public class Day09_Tests
{ {
#region MarbleGame_PlayGame
[Fact]
public void MarbleGame_PlayGame__Test1()
{
Day09.MarbleGame marbleGame = new();
marbleGame.PlayGame(9, 25);
long highScore = marbleGame.GetHighScore();
Assert.Equal(32, highScore);
}
[Fact]
public void MarbleGame_PlayGame__Test2()
{
Day09.MarbleGame marbleGame = new();
marbleGame.PlayGame(10, 1618);
long highScore = marbleGame.GetHighScore();
Assert.Equal(8317, highScore);
}
[Fact]
public void MarbleGame_PlayGame__Test3()
{
Day09.MarbleGame marbleGame = new();
marbleGame.PlayGame(13, 7999);
long highScore = marbleGame.GetHighScore();
Assert.Equal(146373, highScore);
}
[Fact]
public void MarbleGame_PlayGame__Test4()
{
Day09.MarbleGame marbleGame = new();
marbleGame.PlayGame(17, 1104);
long highScore = marbleGame.GetHighScore();
Assert.Equal(2764, highScore);
}
[Fact]
public void MarbleGame_PlayGame__Test5()
{
Day09.MarbleGame marbleGame = new();
marbleGame.PlayGame(21, 6111);
long highScore = marbleGame.GetHighScore();
Assert.Equal(54718, highScore);
}
[Fact]
public void MarbleGame_PlayGame__Test6()
{
Day09.MarbleGame marbleGame = new();
marbleGame.PlayGame(30, 5807);
long highScore = marbleGame.GetHighScore();
Assert.Equal(37305, highScore);
}
#endregion MarbleGame_PlayGame
[Fact] [Fact]
public void ResolvePart1__Test1() public void ResolvePart1__Test1()
{ {

View File

@@ -1,131 +0,0 @@
using System.Collections.Generic;
namespace AdventOfCode2018.Tests;
public class GuardEvent_Tests
{
#region FromString
[Fact]
public void FromString__ShiftBegin()
{
GuardEvent guardEvent = GuardEvent.FromString("[1518-11-01 00:00] Guard #10 begins shift");
Assert.Equal(10, guardEvent.ID);
Assert.Equal(11, guardEvent.Date.Month);
Assert.Equal(1, guardEvent.Date.Day);
Assert.Equal(0, guardEvent.Date.Hour);
Assert.Equal(0, guardEvent.Date.Minute);
Assert.Equal(GuardEventType.ShiftBegin, guardEvent.Type);
}
[Fact]
public void FromString__FallSleep()
{
GuardEvent guardEvent = GuardEvent.FromString("[1518-11-02 00:40] falls asleep");
Assert.Null(guardEvent.ID);
Assert.Equal(11, guardEvent.Date.Month);
Assert.Equal(2, guardEvent.Date.Day);
Assert.Equal(0, guardEvent.Date.Hour);
Assert.Equal(40, guardEvent.Date.Minute);
Assert.Equal(GuardEventType.FallSleep, guardEvent.Type);
}
[Fact]
public void FromString__WakeUp()
{
GuardEvent guardEvent = GuardEvent.FromString("[1518-11-03 00:29] wakes up");
Assert.Null(guardEvent.ID);
Assert.Equal(11, guardEvent.Date.Month);
Assert.Equal(3, guardEvent.Date.Day);
Assert.Equal(0, guardEvent.Date.Hour);
Assert.Equal(29, guardEvent.Date.Minute);
Assert.Equal(GuardEventType.WakeUp, guardEvent.Type);
}
#endregion FromString
#region FromStringArray
[Fact]
public void FromStringArray__TestBase()
{
List<GuardEvent> guardEvents = GuardEvent.FromStringArray(new[] {
"[1518-11-01 00:00] Guard #10 begins shift",
"[1518-11-01 00:05] falls asleep",
"[1518-11-01 00:25] wakes up",
"[1518-11-01 00:30] falls asleep",
"[1518-11-01 00:55] wakes up",
"[1518-11-01 23:58] Guard #99 begins shift",
"[1518-11-02 00:40] falls asleep",
"[1518-11-02 00:50] wakes up",
});
Assert.Equal(10, guardEvents[0].ID);
Assert.Equal(GuardEventType.ShiftBegin, guardEvents[0].Type);
Assert.Equal(10, guardEvents[1].ID);
Assert.Equal(GuardEventType.FallSleep, guardEvents[1].Type);
Assert.Equal(10, guardEvents[2].ID);
Assert.Equal(GuardEventType.WakeUp, guardEvents[2].Type);
Assert.Equal(10, guardEvents[3].ID);
Assert.Equal(GuardEventType.FallSleep, guardEvents[3].Type);
Assert.Equal(10, guardEvents[4].ID);
Assert.Equal(GuardEventType.WakeUp, guardEvents[4].Type);
Assert.Equal(99, guardEvents[5].ID);
Assert.Equal(GuardEventType.ShiftBegin, guardEvents[5].Type);
Assert.Equal(99, guardEvents[6].ID);
Assert.Equal(GuardEventType.FallSleep, guardEvents[6].Type);
Assert.Equal(99, guardEvents[7].ID);
Assert.Equal(GuardEventType.WakeUp, guardEvents[7].Type);
}
[Fact]
public void FromStringArray__TestBaseUnsorted()
{
List<GuardEvent> guardEvents = GuardEvent.FromStringArray(new[] {
"[1518-11-01 00:00] Guard #10 begins shift",
"[1518-11-01 23:58] Guard #99 begins shift",
"[1518-11-01 00:30] falls asleep",
"[1518-11-02 00:40] falls asleep",
"[1518-11-01 00:05] falls asleep",
"[1518-11-02 00:50] wakes up",
"[1518-11-01 00:55] wakes up",
"[1518-11-01 00:25] wakes up",
});
Assert.Equal(10, guardEvents[0].ID);
Assert.Equal(GuardEventType.ShiftBegin, guardEvents[0].Type);
Assert.Equal(10, guardEvents[1].ID);
Assert.Equal(GuardEventType.FallSleep, guardEvents[1].Type);
Assert.Equal(10, guardEvents[2].ID);
Assert.Equal(GuardEventType.WakeUp, guardEvents[2].Type);
Assert.Equal(10, guardEvents[3].ID);
Assert.Equal(GuardEventType.FallSleep, guardEvents[3].Type);
Assert.Equal(10, guardEvents[4].ID);
Assert.Equal(GuardEventType.WakeUp, guardEvents[4].Type);
Assert.Equal(99, guardEvents[5].ID);
Assert.Equal(GuardEventType.ShiftBegin, guardEvents[5].Type);
Assert.Equal(99, guardEvents[6].ID);
Assert.Equal(GuardEventType.FallSleep, guardEvents[6].Type);
Assert.Equal(99, guardEvents[7].ID);
Assert.Equal(GuardEventType.WakeUp, guardEvents[7].Type);
}
#endregion FromStringArray
}

View File

@@ -1,70 +0,0 @@
namespace AdventOfCode2018.Tests;
public class MarbleGame_Tests
{
[Fact]
public void PlayGame__Test1()
{
MarbleGame marbleGame = new();
marbleGame.PlayGame(9, 25);
long highScore = marbleGame.GetHighScore();
Assert.Equal(32, highScore);
}
[Fact]
public void PlayGame__Test2()
{
MarbleGame marbleGame = new();
marbleGame.PlayGame(10, 1618);
long highScore = marbleGame.GetHighScore();
Assert.Equal(8317, highScore);
}
[Fact]
public void PlayGame__Test3()
{
MarbleGame marbleGame = new();
marbleGame.PlayGame(13, 7999);
long highScore = marbleGame.GetHighScore();
Assert.Equal(146373, highScore);
}
[Fact]
public void PlayGame__Test4()
{
MarbleGame marbleGame = new();
marbleGame.PlayGame(17, 1104);
long highScore = marbleGame.GetHighScore();
Assert.Equal(2764, highScore);
}
[Fact]
public void PlayGame__Test5()
{
MarbleGame marbleGame = new();
marbleGame.PlayGame(21, 6111);
long highScore = marbleGame.GetHighScore();
Assert.Equal(54718, highScore);
}
[Fact]
public void PlayGame__Test6()
{
MarbleGame marbleGame = new();
marbleGame.PlayGame(30, 5807);
long highScore = marbleGame.GetHighScore();
Assert.Equal(37305, highScore);
}
}

View File

@@ -175,7 +175,6 @@ public class Day04 : IDay
return dictFullHistogram; return dictFullHistogram;
} }
}
public enum GuardEventType public enum GuardEventType
{ {
@@ -272,3 +271,4 @@ public class GuardSleepHistogram
} }
} }
} }
}

View File

@@ -195,7 +195,6 @@ public class Day06 : IDay
int areaInRange = AreaInThresold(points, DistanceThresold); int areaInRange = AreaInThresold(points, DistanceThresold);
return areaInRange.ToString(); return areaInRange.ToString();
} }
}
public class ChronoPoint public class ChronoPoint
{ {
@@ -220,3 +219,4 @@ public class ChronoPoint
return distance; return distance;
} }
} }
}

View File

@@ -130,7 +130,6 @@ public class Day07 : IDay
int totalElapsedTime = instructions.SimulateInstructionsUsage(NumberOfWorkers); int totalElapsedTime = instructions.SimulateInstructionsUsage(NumberOfWorkers);
return totalElapsedTime.ToString(); return totalElapsedTime.ToString();
} }
}
public class InstructionNode public class InstructionNode
{ {
@@ -281,3 +280,4 @@ public class Instructions
return totalElapsedTime; return totalElapsedTime;
} }
} }
}

View File

@@ -78,7 +78,6 @@ public class Day08 : IDay
int result = licenceTree.GetValue(); int result = licenceTree.GetValue();
return result.ToString(); return result.ToString();
} }
}
public class IntStream public class IntStream
{ {
@@ -157,3 +156,4 @@ public class ChronoLicenceNode
return value; return value;
} }
} }
}

View File

@@ -87,7 +87,6 @@ public class Day09 : IDay
long result = marbleGame.GetHighScore(); long result = marbleGame.GetHighScore();
return result.ToString(); return result.ToString();
} }
}
public class Marble public class Marble
{ {
@@ -170,3 +169,4 @@ public class MarbleGame
return Scores.Values.Max(); return Scores.Values.Max();
} }
} }
}

View File

@@ -176,7 +176,6 @@ public class Day10 : IDay
int t = lightField.SearchSmallerBoundindBox(); int t = lightField.SearchSmallerBoundindBox();
return t.ToString(); return t.ToString();
} }
}
public class LightPoint public class LightPoint
{ {
@@ -305,3 +304,4 @@ public class LightField
return sb.ToString(); return sb.ToString();
} }
} }
}