AdventOfCode2018: Move tests to the corresponding day
This commit is contained in:
@@ -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/=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/PredefinedNamingRules/=TypesAndNamespaces/@EntryIndexedValue"><Policy Inspect="True" Prefix="" Suffix="" Style="AaBb_AaBb" /></s:String></wpf:ResourceDictionary>
|
||||
<s:String x:Key="/Default/CodeStyle/Naming/CSharpNaming/PredefinedNamingRules/=TypesAndNamespaces/@EntryIndexedValue"><Policy Inspect="True" Prefix="" Suffix="" Style="AaBb_AaBb" /></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>
|
||||
@@ -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]);
|
||||
}
|
||||
}
|
||||
@@ -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
|
||||
}
|
||||
@@ -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
|
||||
}
|
||||
@@ -2,6 +2,95 @@
|
||||
|
||||
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]
|
||||
public void ResolvePart1__Test()
|
||||
{
|
||||
|
||||
@@ -1,7 +1,134 @@
|
||||
namespace AdventOfCode2018.Tests;
|
||||
using System.Collections.Generic;
|
||||
|
||||
namespace AdventOfCode2018.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]
|
||||
public void ResolvePart1__BaseStatement()
|
||||
{
|
||||
|
||||
@@ -2,6 +2,63 @@
|
||||
|
||||
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]
|
||||
public void ResolvePart1__Test()
|
||||
{
|
||||
|
||||
@@ -2,6 +2,33 @@
|
||||
|
||||
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]
|
||||
public void ResolvePart1__Test()
|
||||
{
|
||||
|
||||
@@ -2,6 +2,76 @@
|
||||
|
||||
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]
|
||||
public void ResolvePart1__Test1()
|
||||
{
|
||||
|
||||
@@ -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
|
||||
}
|
||||
@@ -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);
|
||||
}
|
||||
}
|
||||
@@ -175,7 +175,6 @@ public class Day04 : IDay
|
||||
|
||||
return dictFullHistogram;
|
||||
}
|
||||
}
|
||||
|
||||
public enum GuardEventType
|
||||
{
|
||||
@@ -272,3 +271,4 @@ public class GuardSleepHistogram
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -195,7 +195,6 @@ public class Day06 : IDay
|
||||
int areaInRange = AreaInThresold(points, DistanceThresold);
|
||||
return areaInRange.ToString();
|
||||
}
|
||||
}
|
||||
|
||||
public class ChronoPoint
|
||||
{
|
||||
@@ -220,3 +219,4 @@ public class ChronoPoint
|
||||
return distance;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -130,7 +130,6 @@ public class Day07 : IDay
|
||||
int totalElapsedTime = instructions.SimulateInstructionsUsage(NumberOfWorkers);
|
||||
return totalElapsedTime.ToString();
|
||||
}
|
||||
}
|
||||
|
||||
public class InstructionNode
|
||||
{
|
||||
@@ -281,3 +280,4 @@ public class Instructions
|
||||
return totalElapsedTime;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -78,7 +78,6 @@ public class Day08 : IDay
|
||||
int result = licenceTree.GetValue();
|
||||
return result.ToString();
|
||||
}
|
||||
}
|
||||
|
||||
public class IntStream
|
||||
{
|
||||
@@ -157,3 +156,4 @@ public class ChronoLicenceNode
|
||||
return value;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -87,7 +87,6 @@ public class Day09 : IDay
|
||||
long result = marbleGame.GetHighScore();
|
||||
return result.ToString();
|
||||
}
|
||||
}
|
||||
|
||||
public class Marble
|
||||
{
|
||||
@@ -170,3 +169,4 @@ public class MarbleGame
|
||||
return Scores.Values.Max();
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -176,7 +176,6 @@ public class Day10 : IDay
|
||||
int t = lightField.SearchSmallerBoundindBox();
|
||||
return t.ToString();
|
||||
}
|
||||
}
|
||||
|
||||
public class LightPoint
|
||||
{
|
||||
@@ -305,3 +304,4 @@ public class LightField
|
||||
return sb.ToString();
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user