Files

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(["dabAcCaCBAcCcaDA"]);
Assert.Equal("10", result);
}
[Fact]
public void ResolvePart2__Test()
{
Day05 day05 = new();
string result = day05.ResolvePart2(["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
}