196 lines
4.1 KiB
C#
196 lines
4.1 KiB
C#
namespace AdventOfCode2018.Tests;
|
|
|
|
public class Day05_Tests
|
|
{
|
|
[Fact]
|
|
public void ResolvePart1__Test()
|
|
{
|
|
Day05 day05 = new();
|
|
|
|
string result = day05.ResolvePart1(new[] { "dabAcCaCBAcCcaDA" });
|
|
|
|
Assert.Equal("10", result);
|
|
}
|
|
|
|
[Fact]
|
|
public void ResolvePart2__Test()
|
|
{
|
|
Day05 day05 = new();
|
|
|
|
string result = day05.ResolvePart2(new[] { "dabAcCaCBAcCcaDA" });
|
|
|
|
Assert.Equal("4", result);
|
|
}
|
|
|
|
#region ReducePolymer
|
|
|
|
[Fact]
|
|
public void ReducePolymer__Remove_cC()
|
|
{
|
|
Day05 day05 = new();
|
|
|
|
string result = day05.ReducePolymer("dabAcCaCBA");
|
|
|
|
Assert.Equal("dabAaCBA", result);
|
|
}
|
|
|
|
[Fact]
|
|
public void ReducePolymer__Remove_cC_AtEnd()
|
|
{
|
|
Day05 day05 = new();
|
|
|
|
string result = day05.ReducePolymer("dabAcC");
|
|
|
|
Assert.Equal("dabA", result);
|
|
}
|
|
|
|
[Fact]
|
|
public void ReducePolymer__Remove_Only_cC()
|
|
{
|
|
Day05 day05 = new();
|
|
|
|
string result = day05.ReducePolymer("cC");
|
|
|
|
Assert.Equal("", result);
|
|
}
|
|
|
|
[Fact]
|
|
public void ReducePolymer__Remove_cC_AtStart()
|
|
{
|
|
Day05 day05 = new();
|
|
|
|
string result = day05.ReducePolymer("cCAAAA");
|
|
|
|
Assert.Equal("AAAA", result);
|
|
}
|
|
|
|
[Fact]
|
|
public void ReducePolymer__Remove_Aa()
|
|
{
|
|
Day05 day05 = new();
|
|
|
|
string result = day05.ReducePolymer("dabAaCBA");
|
|
|
|
Assert.Equal("dabCBA", result);
|
|
}
|
|
|
|
[Fact]
|
|
public void ReducePolymer__Remove_cCc()
|
|
{
|
|
Day05 day05 = new();
|
|
|
|
string result = day05.ReducePolymer("dabCBAcCcaDA");
|
|
|
|
Assert.Equal("dabCBAcaDA", result);
|
|
}
|
|
|
|
[Fact]
|
|
public void ReducePolymer__Irreductible()
|
|
{
|
|
Day05 day05 = new();
|
|
|
|
string result = day05.ReducePolymer("dabCBAcaDA");
|
|
|
|
Assert.Equal("dabCBAcaDA", result);
|
|
}
|
|
|
|
#endregion ReducePolymer
|
|
|
|
#region FullyReducePolymer
|
|
|
|
[Fact]
|
|
public void FullyReducePolymer__Test()
|
|
{
|
|
Day05 day05 = new();
|
|
|
|
string result = day05.FullyReducePolymer("dabAcCaCBAcCcaDA");
|
|
|
|
Assert.Equal("dabCBAcaDA", result);
|
|
}
|
|
|
|
#endregion FullyReducePolymer
|
|
|
|
#region RemoveUnitTypeFromPolymer
|
|
|
|
[Fact]
|
|
public void RemoveUnitTypeFromPolymer__Remove_a()
|
|
{
|
|
Day05 day05 = new();
|
|
|
|
string result = day05.RemoveUnitTypeFromPolymer("dabAcCaCBAcCcaDA", 'a');
|
|
|
|
Assert.Equal("dbcCCBcCcD", result);
|
|
}
|
|
|
|
[Fact]
|
|
public void RemoveUnitTypeFromPolymer__Remove_b()
|
|
{
|
|
Day05 day05 = new();
|
|
|
|
string result = day05.RemoveUnitTypeFromPolymer("dabAcCaCBAcCcaDA", 'b');
|
|
|
|
Assert.Equal("daAcCaCAcCcaDA", result);
|
|
}
|
|
|
|
[Fact]
|
|
public void RemoveUnitTypeFromPolymer__Remove_c()
|
|
{
|
|
Day05 day05 = new();
|
|
|
|
string result = day05.RemoveUnitTypeFromPolymer("dabAcCaCBAcCcaDA", 'c');
|
|
|
|
Assert.Equal("dabAaBAaDA", result);
|
|
}
|
|
|
|
[Fact]
|
|
public void RemoveUnitTypeFromPolymer__Remove_d()
|
|
{
|
|
Day05 day05 = new();
|
|
|
|
string result = day05.RemoveUnitTypeFromPolymer("dabAcCaCBAcCcaDA", 'd');
|
|
|
|
Assert.Equal("abAcCaCBAcCcaA", result);
|
|
}
|
|
|
|
[Fact]
|
|
public void RemoveUnitTypeFromPolymer__Remove_A()
|
|
{
|
|
Day05 day05 = new();
|
|
|
|
string result = day05.RemoveUnitTypeFromPolymer("dabAcCaCBAcCcaDA", 'A');
|
|
|
|
Assert.Equal("dbcCCBcCcD", result);
|
|
}
|
|
|
|
[Fact]
|
|
public void RemoveUnitTypeFromPolymer__Remove_B()
|
|
{
|
|
Day05 day05 = new();
|
|
|
|
string result = day05.RemoveUnitTypeFromPolymer("dabAcCaCBAcCcaDA", 'B');
|
|
|
|
Assert.Equal("daAcCaCAcCcaDA", result);
|
|
}
|
|
|
|
[Fact]
|
|
public void RemoveUnitTypeFromPolymer__Remove_C()
|
|
{
|
|
Day05 day05 = new();
|
|
|
|
string result = day05.RemoveUnitTypeFromPolymer("dabAcCaCBAcCcaDA", 'C');
|
|
|
|
Assert.Equal("dabAaBAaDA", result);
|
|
}
|
|
|
|
[Fact]
|
|
public void RemoveUnitTypeFromPolymer__Remove_D()
|
|
{
|
|
Day05 day05 = new();
|
|
|
|
string result = day05.RemoveUnitTypeFromPolymer("dabAcCaCBAcCcaDA", 'D');
|
|
|
|
Assert.Equal("abAcCaCBAcCcaA", result);
|
|
}
|
|
|
|
#endregion RemoveUnitTypeFromPolymer
|
|
} |