public void TestMiscellaneous() { List <string> rulesTexts = StringListRetriever.Retreive("InputList7.txt").ToList(); int rulesCount = rulesTexts.Count; Assert.Equal(594, rulesCount); Assert.Equal("vibrant purple bags contain 3 shiny lavender bags, 1 mirrored gray bag, 4 muted bronze bags.", rulesTexts.First()); Assert.Equal("shiny violet bags contain 5 shiny aqua bags, 1 striped brown bag, 1 dark blue bag, 5 wavy white bags.", rulesTexts.Last()); Rule firstRule = new Rule(rulesTexts.First()); Assert.Equal(14, firstRule.ContainerColor.Length); Assert.Equal("vibrant purple", firstRule.ContainerColor); Assert.Equal(3, firstRule.Contents.Count); Assert.Equal(8, firstRule.Contents.Sum(x => x.Value)); Rule lastRule = new Rule(rulesTexts.Last()); Assert.Equal(12, lastRule.ContainerColor.Length); Assert.Equal("shiny violet", lastRule.ContainerColor); Assert.Equal(4, lastRule.Contents.Count); Assert.Equal(12, lastRule.Contents.Sum(x => x.Value)); Rule noContentsRule = new Rule(rulesTexts[16]); Assert.Equal(13, noContentsRule.ContainerColor.Length); Assert.Equal("vibrant brown", noContentsRule.ContainerColor); int actual = noContentsRule.Contents.Count; Assert.Equal(0, actual); Assert.Equal(0, noContentsRule.Contents.Sum(x => x.Value)); }
public void Part2() { int attemptLimit = 100; List <int> changeHistory = new List <int>(); List <string> originalInstructions = StringListRetriever.Retreive("InputList8.txt").ToList(); List <string> instructions = new List <string>(originalInstructions); int accumulator = 0; int attempts = 0; bool isFixed = false; do { attempts++; Emulator emulator = new Emulator(instructions); emulator.Run(); if (!emulator.State.IsInfiniteLoop()) { accumulator = emulator.State.Accumulator; isFixed = true; break; } instructions = FixInstructions(originalInstructions, emulator.State.ExecutionPath, changeHistory); } while ((!isFixed) && (attempts < attemptLimit)); Assert.Equal(920, accumulator); Assert.Equal(81, attempts); }
public void Part1() { SatelliteData satelliteData = new SatelliteData(StringListRetriever.Retreive("InputList19.txt").ToList()); List <string> validMessages = ValidSatelliteMessageCreator.CreateList(satelliteData); Assert.Equal(142, satelliteData.Messages.Count(x => validMessages.Any(y => y == x))); }
public void Part1() { TicketValidationResult result = TicketValidator.ValidateNearby( TicketDataParser.Parse(StringListRetriever.Retreive("InputList15.txt").ToList())); Assert.Equal(29759, result.InvalidValues.Sum()); }
public void Part2() { List <BoardingPass> boardingPasses = StringListRetriever.Retreive("InputList5.txt").Select(x => new BoardingPass(x)).ToList(); int minSeatId = 8; int maxSeatId = 127 * 8; Dictionary <int, bool> seatList = new Dictionary <int, bool>(); for (int seatId = minSeatId; seatId <= maxSeatId; seatId++) { seatList.Add(seatId, false); } foreach (BoardingPass boardingPass in boardingPasses) { seatList[boardingPass.GetSeatId()] = true; } List <int> emptySeatIds = seatList.Where(x => !x.Value).Select(x => x.Key).ToList(); Assert.Equal(84, emptySeatIds.Count); List <int> emptySeatIds2 = emptySeatIds.Where(x => !emptySeatIds.Any(y => y == x - 1)).ToList(); Assert.Equal(2, emptySeatIds2.Count); List <int> emptySeatIds3 = emptySeatIds2.Where(x => !emptySeatIds.Any(y => y == x + 1)).ToList(); int actual = emptySeatIds3.Count; Assert.Equal(1, actual); Assert.Equal(711, emptySeatIds3[0]); }
private List <Passport> GetPassports() { List <Passport> passports = new List <Passport>(); Passport passport = null; foreach (string line in StringListRetriever.Retreive("InputList4.txt")) { if (line.Length == 0) { if (passport != null) { passports.Add(passport); passport = null; } } else { if (passport == null) { passport = new Passport(); } passport.AddLine(line); } } if (passport != null) { passports.Add(passport); } return(passports); }
public void Part1() { Emulator emulator = new Emulator(StringListRetriever.Retreive("InputList8.txt").ToList()); emulator.Run(); Assert.Equal(1584, emulator.State.Accumulator); Assert.True(emulator.State.IsInfiniteLoop()); }
public void Part1() { BusScheduler busScheduler = new BusScheduler(); BusSchedulerResult busSchedulerResult = busScheduler.FindBus(StringListRetriever.Retreive("InputList13.txt").ToList()); long answer = busSchedulerResult.BusId * busSchedulerResult.MinutesWaited; Assert.Equal(6568, answer); }
public void Part1() { AdapterTester adapterTester = new AdapterTester(StringListRetriever.Retreive("InputList10.txt").Select(x => int.Parse(x)).ToList()); Dictionary <int, int> results = adapterTester.ComputeJoltageDifferences(); int answer = results[1] * (results[3] + 1); Assert.Equal(1914, answer); }
public void Part2() { List <Rule> rules = StringListRetriever.Retreive("InputList7.txt").Select(x => new Rule(x)).ToList(); int rulesCount = rules.Count; Assert.Equal(594, rulesCount); Assert.Equal(155802, GetContainingBagCount(rules, "shiny gold")); }
public void Part1() { List <long> numbers = StringListRetriever.Retreive("InputList9.txt").Select(x => long.Parse(x)).ToList(); int preamble = 25; XmasDecoder xmasDecoder = new XmasDecoder(); xmasDecoder.Decode(numbers, preamble); Assert.Equal(552655238, xmasDecoder.BadNumber); }
public void Part2() { InstructionExecuter instructionExecuter = new InstructionExecuter(new Part2MaskApplier()); instructionExecuter.Execute(StringListRetriever.Retreive("InputList14.txt").ToList()); long answer = instructionExecuter.GetSumOfAllValues(); Assert.Equal(4160009892257, answer); }
public void Part1() { InstructionExecuter instructionExecuter = new InstructionExecuter(new Part1MaskApplier()); instructionExecuter.Execute(StringListRetriever.Retreive("InputList14.txt").ToList()); long answer = instructionExecuter.GetSumOfAllValues(); Assert.Equal(17481577045893, answer); }
public void Part2() { TicketData ticketData = TicketDataParser.Parse(StringListRetriever.Retreive("InputList15.txt").ToList()); TicketValidationResult ticketValidationResult = TicketValidator.ValidateNearby(ticketData); FieldOrderResult fieldOrderResult = FieldOrderFinder.FindFieldOrderFor(ticketValidationResult.Tickets, ticketData.ValidationRules); Assert.Equal(1307550234719, fieldOrderResult.FieldOrder.Keys.Where(x => x.StartsWith("departure")) .Select(x => System.Convert.ToInt64(ticketData.Tickets[0].DataItems[fieldOrderResult.FieldOrder[x]])) .Aggregate <long, long>(1, (x, y) => x * y)); }
public void Part2() { List <Cube> cubeState = CubeCoordinateParser.ParseFrom(StringListRetriever.Retreive("InputList17.txt").ToList()); cubeState = CubeBootProcessor.ProcessCycle(cubeState, 1); cubeState = CubeBootProcessor.ProcessCycle(cubeState, 1); cubeState = CubeBootProcessor.ProcessCycle(cubeState, 1); cubeState = CubeBootProcessor.ProcessCycle(cubeState, 1); cubeState = CubeBootProcessor.ProcessCycle(cubeState, 1); cubeState = CubeBootProcessor.ProcessCycle(cubeState, 1); Assert.Equal(2084, cubeState.Count(c => c.active)); }
public void Part1() { Ferry ferry = new Ferry(); Position ferryPosition = new Position { Direction = 90, EastPosition = 0, NorthPosition = 0 }; ferry.MoveMany(new Part1FerryMover(ferryPosition), StringListRetriever.Retreive("InputList12.txt").Select(x => new NavigationInstruction(x)).ToList()); Assert.Equal(420, ferryPosition.GetManhattanDistance()); }
public void Part2() { List <long> numbers = StringListRetriever.Retreive("InputList9.txt").Select(x => long.Parse(x)).ToList(); int preamble = 25; XmasDecoder xmasDecoder = new XmasDecoder(); xmasDecoder.Decode(numbers, preamble); Assert.Equal(552655238, xmasDecoder.BadNumber); Assert.Equal(610, xmasDecoder.BadIndex); List <long> badSet = xmasDecoder.FindSetFor(numbers, xmasDecoder.BadIndex); Assert.Equal(70672245, badSet.Min() + badSet.Max()); }
public void Part1() { // Test samples from site Assert.Equal(567, (new BoardingPass("BFFFBBFRRR").GetSeatId())); Assert.Equal(119, (new BoardingPass("FFFBBBFRRR").GetSeatId())); Assert.Equal(820, (new BoardingPass("BBFFBBFRLL").GetSeatId())); // Test first and last Assert.Equal(0, (new BoardingPass("FFFFFFFLLL").GetSeatId())); Assert.Equal(128 * 8 - 1, (new BoardingPass("BBBBBBBRRR").GetSeatId())); // Load from puzzle input file List <BoardingPass> boardingPasses = StringListRetriever.Retreive("InputList5.txt").Select(x => new BoardingPass(x)).ToList(); Assert.Equal(927, boardingPasses.Count); Assert.Equal(6, boardingPasses.Min(x => x.GetSeatId())); Assert.Equal(933, boardingPasses.Max(x => x.GetSeatId())); }
public void MiscellaneousTests() { List <string> items = StringListRetriever.Retreive("InputList6.txt").ToList(); int count = items.Count; Assert.Equal(2172, count); Assert.Equal("su", items[0]); Assert.Equal("lzdaftrjphco", items[2171]); List <PassengerGroup> passengerGroups = PassengerGroupsParser.Parse(StringListRetriever.Retreive("InputList6.txt").ToList()); Assert.Equal(2, passengerGroups.First().Passengers.Count); Assert.Equal(3, passengerGroups.Last().Passengers.Count); Assert.Equal(("lzdaftrjphco").Length, passengerGroups.Last().Passengers.Last().YesAnswers.Count); Assert.Equal('a', passengerGroups.Last().Passengers.Last().YesAnswers[0]); Assert.Equal('z', passengerGroups.Last().Passengers.Last().YesAnswers[11]); Assert.Equal(4, passengerGroups.First().YesQuestionCount()); }
public void CountTreesPart2() { Map map = new Map(StringListRetriever.Retreive("InputList3.txt")); int count1 = map.CountTrees(1, 1); Assert.Equal(84, count1); int count2 = map.CountTrees(3, 1); Assert.Equal(195, count2); int count3 = map.CountTrees(5, 1); Assert.Equal(70, count3); int count4 = map.CountTrees(7, 1); Assert.Equal(70, count4); int count5 = map.CountTrees(1, 2); Assert.Equal(47, count5); long multipled = (long)count1 * (long)count2 * (long)count3 * (long)count4 * (long)count5; Assert.Equal(3772314000, multipled); }
[Fact]// (Skip="Runs too long")] public void Part2() { AdapterTester adapterTester = new AdapterTester(StringListRetriever.Retreive("InputList10.txt").Select(x => int.Parse(x)).ToList()); Assert.Equal(9256148959232, adapterTester.GetJoltageArrangementCount()); }
public void Part2() { List <PassengerGroup> passengerGroups = PassengerGroupsParser.Parse(StringListRetriever.Retreive("InputList6.txt").ToList()); Assert.Equal(3288, passengerGroups.Sum(x => x.EveryoneYesCount())); }
public void Part1() { List <PassengerGroup> passengerGroups = PassengerGroupsParser.Parse(StringListRetriever.Retreive("InputList6.txt").ToList()); Assert.Equal(6590, passengerGroups.Sum(x => x.YesQuestionCount())); }
public void Part1() { Assert.Equal(280014646144, StringListRetriever.Retreive("InputList18.txt").Select(x => FormulaEvaluator.Evaluate(x)).Sum()); }
public void Part2() { Assert.Equal(9966990988262, StringListRetriever.Retreive("InputList18.txt").Select(x => FormulaEvaluator.EvaluateAdvanced(x)).Sum()); }
public void CountTreesPart1() { Map map = new Map(StringListRetriever.Retreive("InputList3.txt")); Assert.Equal(195, map.CountTrees(3, 1)); }
public void Part2() { Ferry ferry = new Ferry(); Assert.Equal(2032, ferry.GetSeatsAfterEquilibriumPart2(StringListRetriever.Retreive("InputList11.txt").ToList())); }
private List <int> RetreiveInternalList() { return(StringListRetriever.Retreive("InputList1.txt").Select(x => int.Parse(x)).ToList()); }
private List <BasePasswordEntry> GetPasswordEntries(Func <string, BasePasswordEntry> createEntry) { return(StringListRetriever.Retreive("InputList2.txt").Select(x => createEntry.Invoke(x)).ToList()); }