コード例 #1
0
        public void CountPermutations_GivenGoodData_ReturnsExpectedResult(IEnumerable <ISocket> toPermute, ChargeableDevice toCharge, int expectedPermutationCount)
        {
            var sut    = new DeviceStacker();
            var result = sut.Permute(toPermute, toCharge);

            Assert.Equal(expectedPermutationCount, result);
        }
コード例 #2
0
        public void CreateStack_GivenGoodData_ReturnsExpectedResults(IEnumerable <IDevice> toStack, int expectedResult)
        {
            var sut    = new DeviceStacker();
            var result = sut.CreateStack(toStack);

            Assert.Equal(expectedResult, result);
        }
コード例 #3
0
ファイル: Program.cs プロジェクト: MFGookey/AdventOfCode2020
        /// <summary>
        /// AdaptrStackr.Cmd entry point
        /// </summary>
        /// <param name="args">Command line arguments (not used)</param>
        static void Main(string[] args)
        {
            var filePath = "./input";
            var reader   = new FileReader();
            var inputs   = reader.ReadFileByLines(filePath);

            if (inputs.Where(input => int.TryParse(input, out var _) == false).Any())
            {
                throw new FormatException("Could not parse the input data.");
            }

            var adapters = inputs.Select(input => new Adapter(int.Parse(input)));
            var stacker  = new DeviceStacker();
            var result   = stacker.CreateStack(adapters);

            Console.WriteLine(result);

            var toCharge = new ChargeableDevice(adapters);

            var permutations = stacker.Permute(adapters, toCharge);

            Console.WriteLine(permutations);
        }
コード例 #4
0
        public void CreateStack_GivenBadData_ThrowsArgumentExceptions(IEnumerable <IDevice> toStack)
        {
            var sut = new DeviceStacker();

            Assert.ThrowsAny <SystemException>(() => sut.CreateStack(toStack));
        }