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); }
/// <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); }