AdventOfCode 2023 Day12
This commit is contained in:
87
AdventOfCode2023.Tests/Day12_Tests.cs
Normal file
87
AdventOfCode2023.Tests/Day12_Tests.cs
Normal file
@@ -0,0 +1,87 @@
|
||||
namespace AdventOfCode2023.Tests;
|
||||
|
||||
public class Day12_Tests
|
||||
{
|
||||
private readonly string[] _example1 = {
|
||||
"???.### 1,1,3",
|
||||
".??..??...?##. 1,1,3",
|
||||
"?#?#?#?#?#?#?#? 1,3,1,6",
|
||||
"????.#...#... 4,1,1",
|
||||
"????.######..#####. 1,6,5",
|
||||
"?###???????? 3,2,1",
|
||||
};
|
||||
|
||||
[Fact]
|
||||
public void ResolvePart1__Example1()
|
||||
{
|
||||
Day12 day = new();
|
||||
|
||||
string result = day.ResolvePart1(_example1);
|
||||
|
||||
Assert.Equal("21", result);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void ResolvePart2__Example1()
|
||||
{
|
||||
Day12 day = new();
|
||||
|
||||
string result = day.ResolvePart2(_example1);
|
||||
|
||||
Assert.Equal("525152", result);
|
||||
}
|
||||
|
||||
private static void HotSpring_CountPossibleArrangements__Test(string input, int expected, bool unFold = false)
|
||||
{
|
||||
Day12.HotSpring hotSpring = new(input, unFold);
|
||||
long count = hotSpring.CountPossibleArrangements();
|
||||
Assert.Equal(expected, count);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void HotSpring_CountPossibleArrangements__Tests1()
|
||||
{
|
||||
HotSpring_CountPossibleArrangements__Test("???.### 1,1,3", 1);
|
||||
HotSpring_CountPossibleArrangements__Test(".??..??...?##. 1,1,3", 4);
|
||||
HotSpring_CountPossibleArrangements__Test("?#?#?#?#?#?#?#? 1,3,1,6", 1);
|
||||
HotSpring_CountPossibleArrangements__Test("????.#...#... 4,1,1", 1);
|
||||
HotSpring_CountPossibleArrangements__Test("????.######..#####. 1,6,5", 4);
|
||||
HotSpring_CountPossibleArrangements__Test("?###???????? 3,2,1", 10);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void HotSpring_CountPossibleArrangements__Tests2_1()
|
||||
{
|
||||
HotSpring_CountPossibleArrangements__Test("???.### 1,1,3", 1, true);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void HotSpring_CountPossibleArrangements__Tests2_2()
|
||||
{
|
||||
HotSpring_CountPossibleArrangements__Test(".??..??...?##. 1,1,3", 16384, true);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void HotSpring_CountPossibleArrangements__Tests2_3()
|
||||
{
|
||||
HotSpring_CountPossibleArrangements__Test("?#?#?#?#?#?#?#? 1,3,1,6", 1, true);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void HotSpring_CountPossibleArrangements__Tests2_4()
|
||||
{
|
||||
HotSpring_CountPossibleArrangements__Test("????.#...#... 4,1,1", 16, true);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void HotSpring_CountPossibleArrangements__Tests2_5()
|
||||
{
|
||||
HotSpring_CountPossibleArrangements__Test("????.######..#####. 1,6,5", 2500, true);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void HotSpring_CountPossibleArrangements__Tests2_6()
|
||||
{
|
||||
HotSpring_CountPossibleArrangements__Test("?###???????? 3,2,1", 506250, true);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user