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);
        }
Ejemplo n.º 3
0
        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}");
        }
Ejemplo n.º 4
0
        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);
        }
Ejemplo n.º 6
0
        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);
        }
Ejemplo n.º 7
0
        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);
        }
Ejemplo n.º 9
0
        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);
        }