public void ShouldFindNextAdapterWhichCanConnect(int output, int expectedAdapter) { // Arrange var adapters = AdaptersInBag(); // Act var rating = new AdapterBag(adapters).FindNextAdapter(output); // Assert rating.Should().Be(expectedAdapter); }
public void ShouldGetBuiltInAdapterRating() { // Arrange var adapters = AdaptersInBag(); // Act var rating = new AdapterBag(adapters).GetBuiltInAdapterRate(); // Assert rating.Should().Be(22); }
private static void SolvePartOne(List <int> adapters) { Console.WriteLine("Part I"); var adapterBag = new AdapterBag(adapters); adapterBag.CheckAllAdapters(); var result = adapterBag.NumberOf1JoltDifferences * adapterBag.NumberOf3JoltDifferences; Console.WriteLine($"Result: {result}"); }
public void Part2_Example1_Arrangements_Should_Be_8() { // Arrange var inputs = new string[] { "16", "10", "15", "5", "1", "11", "7", "19", "6", "12", "4" }; // Act adapterBag = new AdapterBag(inputs); var actual = adapterBag.CountArrangements(); // Assert actual.ShouldBe(8); }
public void ShouldCountNumberOfJoltDifferences() { // Arrange var adapters = AdaptersInBag(); var adapterBag = new AdapterBag(adapters); // Act adapterBag.CheckAllAdapters(); // Assert adapterBag.NumberOf1JoltDifferences.Should().Be(7); adapterBag.NumberOf3JoltDifferences.Should().Be(5); }
public void Part2_Example2_Arrangements_Should_Be_19208() { // Arrange var inputs = new string[] { "28", "33", "18", "42", "31", "14", "46", "20", "48", "47", "24", "23", "49", "45", "19", "38", "39", "11", "1", "32", "25", "35", "8", "17", "7", "9", "4", "2", "34", "10", "3" }; // Act adapterBag = new AdapterBag(inputs); var actual = adapterBag.CountArrangements(); // Assert actual.ShouldBe(19208); }
public void Part1_Example1_Should_Be_35() { // Arrange var inputs = new string[] { "16", "10", "15", "5", "1", "11", "7", "19", "6", "12", "4" }; // Act adapterBag = new AdapterBag(inputs); var steps = adapterBag.CountSteps(); var actual = steps[1] * steps[3]; // Assert actual.ShouldBe(35); }
public void ShouldReturnNumberOf1JoltDifferences() { // Arrange var adapters = AdaptersInBag(); var adapterBag = new AdapterBag(adapters); // Act adapterBag.FindFirstMatchingAdapter(0); adapterBag.FindNextAdapter(4); // Assert adapterBag.NumberOf1JoltDifferences.Should().Be(2); }
public void Part1_Example2_Should_Be_220() { // Arrange var inputs = new string[] { "28", "33", "18", "42", "31", "14", "46", "20", "48", "47", "24", "23", "49", "45", "19", "38", "39", "11", "1", "32", "25", "35", "8", "17", "7", "9", "4", "2", "34", "10", "3" }; // Act adapterBag = new AdapterBag(inputs); var steps = adapterBag.CountSteps(); var actual = steps[1] * steps[3]; // Assert actual.ShouldBe(220); }
public void ShouldReturnNumberOf3JoltDifferences() { // Arrange var adapters = AdaptersInBag(); var adapterBag = new AdapterBag(adapters); // Act adapterBag.FindNextAdapter(1); adapterBag.FindNextAdapter(7); // Assert adapterBag.NumberOf3JoltDifferences.Should().Be(2); }
public void ShouldFindAdapterWhichCanConnectWith3JoltDifference() { // Arrange var adapters = new List <int> { 16, 3, 15 }; // Act var rating = new AdapterBag(adapters).FindFirstMatchingAdapter(0); // Assert rating.Should().Be(3); }
public void ShouldCountNumberOfJoltDifferencesWithBiggerExample() { // Arrange var adapters = new List <int> { 28, 33, 18, 42, 31, 14, 46, 20, 48, 47, 24, 23, 49, 45, 19, 38, 39, 11, 1, 32, 25, 35, 8, 17, 7, 9, 4, 2, 34, 10, 3, }; var adapterBag = new AdapterBag(adapters); // Act adapterBag.CheckAllAdapters(); // Assert adapterBag.NumberOf1JoltDifferences.Should().Be(22); adapterBag.NumberOf3JoltDifferences.Should().Be(10); }
public void ShouldFindAdapterWhichCanConnectDirectly() { // Arrange var adapters = new List <int> { 16, 1, 15, 0 }; // Act var rating = new AdapterBag(adapters).FindFirstMatchingAdapter(0); // Assert rating.Should().Be(0); }