Esempio n. 1
0
        public static IEnumerable <object[]> GetDay8Data()
        {
            yield return(new object[]
            {
                new List <RegisterInstruction>
                {
                    new RegisterInstruction("b inc 5 if a > 1"),
                    new RegisterInstruction("a inc 1 if b < 5"),
                    new RegisterInstruction("c dec -10 if a >= 1"),
                    new RegisterInstruction("c inc -20 if c == 10")
                },
                1,
                10
            });

            var input = PuzzleInputParser.Parse("Day8Input.txt");
            var lines = input
                        .Split(new[] { "\r\n" }, StringSplitOptions.None)
                        .ToList();

            yield return(new object[]
            {
                lines.Select(l => new RegisterInstruction(l)),
                3745,
                4644
            });
        }
Esempio n. 2
0
        public static IEnumerable <object[]> GetDay7Data()
        {
            yield return(new object[]
            {
                new List <Day7_RecursiveCircus.Program>
                {
                    new Day7_RecursiveCircus.Program {
                        Name = "pbga", MyWeight = 66, ProgramNamesOnDisc = new List <string>()
                    },
                    new Day7_RecursiveCircus.Program {
                        Name = "xhth", MyWeight = 57, ProgramNamesOnDisc = new List <string>()
                    },
                    new Day7_RecursiveCircus.Program {
                        Name = "ebii", MyWeight = 61, ProgramNamesOnDisc = new List <string>()
                    },
                    new Day7_RecursiveCircus.Program {
                        Name = "havc", MyWeight = 66, ProgramNamesOnDisc = new List <string>()
                    },
                    new Day7_RecursiveCircus.Program {
                        Name = "ktlj", MyWeight = 57, ProgramNamesOnDisc = new List <string>()
                    },
                    new Day7_RecursiveCircus.Program {
                        Name = "fwft", MyWeight = 72, ProgramNamesOnDisc = new List <string> {
                            "ktlj", "cntj", "xhth"
                        }
                    },
                    new Day7_RecursiveCircus.Program {
                        Name = "qoyq", MyWeight = 66, ProgramNamesOnDisc = new List <string>()
                    },
                    new Day7_RecursiveCircus.Program {
                        Name = "padx", MyWeight = 45, ProgramNamesOnDisc = new List <string> {
                            "pbga", "havc", "qoyq"
                        }
                    },
                    new Day7_RecursiveCircus.Program {
                        Name = "tknk", MyWeight = 41, ProgramNamesOnDisc = new List <string> {
                            "ugml", "padx", "fwft"
                        }
                    },
                    new Day7_RecursiveCircus.Program {
                        Name = "jptl", MyWeight = 61, ProgramNamesOnDisc = new List <string>()
                    },
                    new Day7_RecursiveCircus.Program {
                        Name = "ugml", MyWeight = 68, ProgramNamesOnDisc = new List <string> {
                            "gyxo", "ebii", "jptl"
                        }
                    },
                    new Day7_RecursiveCircus.Program {
                        Name = "gyxo", MyWeight = 61, ProgramNamesOnDisc = new List <string>()
                    },
                    new Day7_RecursiveCircus.Program {
                        Name = "cntj", MyWeight = 57, ProgramNamesOnDisc = new List <string>()
                    },
                },
                "tknk",
                60
            });

            var input = PuzzleInputParser.Parse("Day7Input.txt");
            var lines = input.Split(new[] { "\r\n" }, StringSplitOptions.None)
                        .ToList();
            var programs = new List <Day7_RecursiveCircus.Program>();

            foreach (var line in lines)
            {
                var program = new Day7_RecursiveCircus.Program
                {
                    Name = line.Substring(0, line.IndexOf("(")).Trim()
                };
                var anyStackedOnTop = line.IndexOf("->");
                if (anyStackedOnTop != -1)
                {
                    anyStackedOnTop += 2;
                    var stackedOnTop = line.Substring(anyStackedOnTop, line.Length - anyStackedOnTop).Replace(" ", "").Split(',');
                    program.ProgramNamesOnDisc = stackedOnTop.ToList();
                }
                program.MyWeight = int.Parse(line.Split('(', ')')[1]);
                programs.Add(program);
            }

            yield return(new object[]
            {
                programs,
                "wiapj",
                1072
            });
        }