Beispiel #1
0
        public void Part1()
        {
            var day24  = new Day24();
            var actual = day24.SolvePart1(@"0/2
2/2
2/3
3/4
3/5
0/1
10/1
9/10");

            Assert.Equal(31, actual);
        }
Beispiel #2
0
        public void TestSelectTargets()
        {
            var(imm, inf) = Day24.Parse(Input.Trim());
            var log = new StringBuilder();

            var targets1 = Day24.SelectTargets(inf, imm);

            Assert.Equal(targets1[inf[0]], imm[0]);
            Assert.Equal(targets1[inf[1]], imm[1]);

            var targets2 = Day24.SelectTargets(imm, inf);

            Assert.Equal(targets2[imm[1]], inf[0]);
            Assert.Equal(targets2[imm[0]], inf[1]);
        }
Beispiel #3
0
        public void Task2()
        {
            var components = new string[]
            {
                "0/2",
                "2/2",
                "2/3",
                "3/4",
                "3/5",
                "0/1",
                "10/1",
                "9/10"
            };

            Assert.AreEqual(19, Day24.Task2(components));
        }
Beispiel #4
0
    public static void Y2016_Day24_GetMinimumStepsToVisitLocations_Returns_Correct_Solution()
    {
        // Arrange
        string[] layout = new[]
        {
            "###########",
            "#0.1.....2#",
            "#.#######.#",
            "#4.......3#",
            "###########",
        };

        // Act
        int actual = Day24.GetMinimumStepsToVisitLocations(layout, returnToOrigin: false);

        // Assert
        actual.ShouldBe(14);
    }
        public void Day24Test1()
        {
            // arrange
            var path = Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location);

            path = Path.GetFullPath(Path.Combine(path, "..", "..", ".."));

            var inputFile = Directory.GetFiles(path + @"/TestInput", "Day24_1.txt")[0];
            var day24     = new Day24(inputFile);

            // act
            var result1 = day24.PartOne();
            var result2 = day24.PartTwo();

            // assert
            Assert.Equal("10", result1);
            Assert.Equal("2208", result2);
        }
Beispiel #6
0
        public void TestParse()
        {
            var(imm, inf) = Day24.Parse(Input.Trim());
            Assert.Equal(2, imm.Count);
            Assert.Equal(2, inf.Count);

            Assert.Equal(17, imm[0].UnitCount);
            Assert.Equal(5390, imm[0].HitPoints);
            Assert.Equal(4507, imm[0].AttackDamage);
            Assert.Equal(2, imm[0].Initiative);
            Assert.Equal(Day24.AttackType.Fire, imm[0].AttackType);
            Assert.Equal(Day24.AttackType.Radiation | Day24.AttackType.Bludgeoning, imm[0].Weaknesses);
            Assert.Equal(Day24.AttackType.None, imm[0].Immunities);

            Assert.Equal(989, imm[1].UnitCount);
            Assert.Equal(1274, imm[1].HitPoints);
            Assert.Equal(25, imm[1].AttackDamage);
            Assert.Equal(3, imm[1].Initiative);
            Assert.Equal(Day24.AttackType.Slashing, imm[1].AttackType);
            Assert.Equal(Day24.AttackType.Slashing | Day24.AttackType.Bludgeoning, imm[1].Weaknesses);
            Assert.Equal(Day24.AttackType.Fire, imm[1].Immunities);
        }
Beispiel #7
0
    public static void Y2015_Day24_GetQuantumEntanglementOfIdealConfiguration()
    {
        // Arrange
        int compartments = 3;

        int[] weights = new[] { 1, 2, 3, 4, 5, 7, 8, 9, 10, 11 };

        // Act
        long actual = Day24.GetQuantumEntanglementOfIdealConfiguration(compartments, weights);

        // Assert
        actual.ShouldBe(99);

        // Arrange
        compartments = 4;

        // Act
        actual = Day24.GetQuantumEntanglementOfIdealConfiguration(compartments, weights);

        // Assert
        actual.ShouldBe(44);
    }
Beispiel #8
0
 public void TestUndoneDay()
 {
     var d = new Day24();
 }
Beispiel #9
0
        public override void Execute()
        {
            string sample = "";

            if (_options.Sample)
            {
                sample = "-sample";
            }

            string filename = Path.Combine(Environment.CurrentDirectory, "..", "AdventOfCode.2019", "input", $"day{_options.Day.ToString("D2")}{sample}.txt");

            switch (_options.Day)
            {
            case 1:
                Day01.Execute(filename);
                break;

            case 2:
                Day02.Execute(filename);
                break;

            case 3:
                Day03.Execute(filename);
                break;

            case 4:
                Day04.Execute(filename);
                break;

            case 5:
                Day05.Execute(filename);
                break;

            case 6:
                Day06.Execute(filename);
                break;

            case 7:
                Day07.Execute(filename);
                break;

            case 8:
                Day08.Execute(filename);
                break;

            case 9:
                Day09.Execute(filename);
                break;

            case 10:
                Day10.Execute(filename);
                break;

            case 11:
                Day11.Execute(filename);
                break;

            case 12:
                Day12.Execute(filename);
                break;

            case 13:
                Day13.Execute(filename);
                break;

            case 14:
                Day14.Execute(filename);
                break;

            case 15:
                Day15.Execute(filename);
                break;

            case 16:
                Day16.Execute(filename);
                break;

            case 17:
                Day17.Execute(filename);
                break;

            case 18:
                Day18.Execute(filename);
                break;

            case 19:
                Day19.Execute(filename);
                break;

            case 20:
                Day20.Execute(filename);
                break;

            case 21:
                Day21.Execute(filename);
                break;

            case 22:
                Day22.Execute(filename);
                break;

            case 23:
                Day23.Execute(filename);
                break;

            case 24:
                Day24.Execute(filename);
                break;

            case 25:
                Day25.Execute(filename);
                break;

            default:
                throw new ArgumentException($"Day {_options.Day} is outside the scope of Advent of Code.", "--day");
            }
        }
Beispiel #10
0
        public void FindLevels()
        {
            var result = Day24.FindLevels(new Field(TestInput), 10);

            result.Length.Should().Be(21);
        }
        public void FollowPath()
        {
            var d = Day24.FollowPath("nwwswee");

            Assert.AreEqual(new Coord(0, 0, 0), d);
        }
Beispiel #12
0
        public static void Main(string[] args)
        {
            Day1 day1 = new Day1();

            day1.Run();

            Day2 day2 = new Day2();

            day2.Run();

            Day3 day3 = new Day3();

            day3.Run();

            Day4 day4 = new Day4();

            day4.Run();

            Day5 day5 = new Day5();

            day5.Run();

            Day6 day6 = new Day6();

            day6.Run();

            Day7 day7 = new Day7();

            day7.Run();

            Day8 day8 = new Day8();

            day8.Run();

            Day9 day9 = new Day9();

            day9.Run();

            Day10 day10 = new Day10();

            day10.Run();

            Day11 day11 = new Day11();

            day11.Run();

            Day12 day12 = new Day12();

            day12.Run();

            Day13 day13 = new Day13();

            day13.Run();

            Day14 day14 = new Day14();

            day14.Run();

            Day15 day15 = new Day15();

            day15.Run();

            Day16 day16 = new Day16();

            day16.Run();

            Day17 day17 = new Day17();

            day17.Run();

            Day18 day18 = new Day18();

            day18.Run();

            Day19 day19 = new Day19();

            day19.Run();

            Day20 day20 = new Day20();

            day20.Run();

            Day21 day21 = new Day21();

            day21.Run();

            Day22 day22 = new Day22();

            day22.Run();

            Day23 day23 = new Day23();

            day23.Run();

            Day24 day24 = new Day24();

            day24.Run();

            Day25 day25 = new Day25();

            day25.Run();
        }
Beispiel #13
0
 public void Test()
 {
     var(result, log) = Day24.Solve(Input);
     Assert.Equal(5216, result);
     _output.WriteLine(log);
 }
        public static void ProcessInputDay(int dayValue)
        {
            switch (dayValue)
            {
            case 0:
                Day0.CallGreet();
                break;

            case 1:
                Day1.ReturnSumByType();
                break;

            case 2:
                Day2.InputValues();
                break;

            case 3:
                Day3.ConditionalStaments();
                break;

            case 4:
                Day4.PersonAge();
                break;

            case 5:
                Day5.MultiplicationTable();
                break;

            case 6:
                Day6.Review();
                break;

            case 7:
                Day7.ArrayNumber();
                break;

            case 8:
                Day8.PhoneDirectory();
                break;

            case 9:
                Day9.FactorialNumber();
                break;

            case 10:
                Day10.ConvertNumber();
                break;

            case 11:
                Day11.HourGlass2DArray();
                break;

            case 12:
                Day12.InharenceExercise();
                break;

            case 13:
                Day13.AbstractClassExercise();
                break;

            case 14:
                Day14.AbsoluteNumber();
                break;

            case 15:
                Day15.LinkedList();
                break;

            case 16:
                Day16.ExceptionStringToInt();
                break;

            case 17:
                Day17.NonNegativesNumbers();
                break;

            case 18:
                Day18.Palindrome();
                break;

            case 19:
                Day19.InterfaceExcersise();
                break;

            case 20:
                Day20.SortingValue();
                break;

            case 21:
                Day21.GenericPrint();
                break;

            case 22:
                Day22.NodeRoot();
                break;

            case 23:
                Day23.Search();
                break;

            case 24:
                Day24.LinkedList();
                break;

            case 25:
                Day25.PrimeOrNot();
                break;

            case 26:
                Day26.Nested();
                break;

            case 28:
                Day_28.RegexTester();
                break;

            case 29:
                Day29.BitwiseAND();
                break;

            default:
                Console.WriteLine("Coming soon...");
                break;
            }
        }
Beispiel #15
0
 public void TestParseSpecials(string input)
 {
     Day24.ParseArmy(input, Day24.Allegiance.ImmuneSystem);
 }
Beispiel #16
0
 void Move1() => Day24.ParseMoves("nwwswee").Should().BeEquivalentTo((0, 0));
Beispiel #17
0
 public void Setup()
 {
     _day24 = new Day24();
 }
Beispiel #18
0
        public void DoItA() // 14799.  I think the example data was wrong.  But it worked.
        {
            var day = new Day24();

            Console.WriteLine(day.SolveA(InputData.Day24));
        }
Beispiel #19
0
        public void DoItA_Solved()
        {
            var day = new Day24();

            Assert.AreEqual(14799, day.SolveA(InputData.Day24));
        }
Beispiel #20
0
        static void Main(string[] args)
        {
            bool confirmed = false;

            do
            {
                Console.WriteLine("Welcome to HackerRank's 30 Days of Code");
                Console.WriteLine("Days");
                for (int i = 0; i < dias.Length; i++)
                {
                    Console.WriteLine(dias[i]);
                }
                Console.WriteLine("Write the day number to be executed: ");
                int opt = Convert.ToInt32(Console.ReadLine());
                switch (opt)
                {
                case 1:
                    Day1.Execute();
                    break;

                case 2:
                    Day2.Execute();
                    break;

                case 3:
                    Day3.Execute();
                    break;

                case 4:
                    Day4.Execute();
                    break;

                case 5:
                    Day5.Execute();
                    break;

                case 6:
                    Day6.Execute();
                    break;

                case 7:
                    Day7.Execute();
                    break;

                case 8:
                    Day8.Execute();
                    break;

                case 9:
                    Day9.Execute();
                    break;

                case 10:
                    Day10.Execute();
                    break;

                case 11:
                    Day11.Execute();
                    break;

                case 12:
                    Day12.Execute();
                    break;

                case 13:
                    Day13.Execute();
                    break;

                case 14:
                    Day14.Execute();
                    break;

                case 15:
                    Day15.Execute();
                    break;

                case 16:
                    Day16.Execute();
                    break;

                case 17:
                    Day17.Execute();
                    break;

                case 18:
                    Day18.Execute();
                    break;

                case 19:
                    Day19.Execute();
                    break;

                case 20:
                    Day20.Execute();
                    break;

                case 21:
                    Day21.Execute();
                    break;

                case 22:
                    Day22.Execute();
                    break;

                case 23:
                    Day23.Execute();
                    break;

                case 24:
                    Day24.Execute();
                    break;

                case 25:
                    Day25.Execute();
                    break;

                case 26:
                    Day26.Execute();
                    break;

                case 27:
                    Day27.Execute();
                    break;

                case 28:
                    Day28.Execute();
                    break;

                case 29:
                    Day29.Execute();
                    break;

                default:
                    Console.WriteLine("Not Implemeted");
                    break;
                }
                ConsoleKey response;
                do
                {
                    Console.Write("Execute another function? (Y/N) ");
                    response = Console.ReadKey(false).Key;
                    if (response != ConsoleKey.Enter)
                    {
                        Console.WriteLine();
                    }
                }while(response != ConsoleKey.Y && response != ConsoleKey.N);
                confirmed = response == ConsoleKey.N;
            }while(!confirmed);
        }
Beispiel #21
0
        public void Part2()
        {
            var result = Day24.SolvePart2(_input);

            Assert.Equal(4135, result);
        }
        public void TestPartOneSample()
        {
            string input = "###########\n#0.1.....2#\n#.#######.#\n#4.......3#\n###########";

            Assert.Equal(14, Day24.PartOne(input.Split("\n")));
        }
Beispiel #23
0
        public void Part1()
        {
            var result = Day24.SolvePart1(_input);

            Assert.Equal(479, result);
        }
Beispiel #24
0
    public void Day24_Part1(long ans)
    {
        var d = new Day24();

        Assert.Equal(ans.ToString(), d.Part1());
    }
Beispiel #25
0
 public void Setup( )
 {
     day24 = new Day24("day24test1");
 }
        public void CanParseDirections()
        {
            var d = Day24.ParseDir("neeenesenwnww").ToArray();

            Assert.AreEqual(new[] { "ne", "e", "e", "ne", "se", "nw", "nw", "w" }, d);
        }
Beispiel #27
0
 public void Initialize()
 {
     _day24 = new Day24();
 }
Beispiel #28
0
 public void GetCountAfterGenerationsTest()
 {
     Day24.GetCountAfterGenerations(new Field(TestInput), 10).Should().Be(99);
 }
Beispiel #29
0
        public int Part2(string input)
        {
            var target = new Day24(input, TestContext.Progress);

            return(target.Part2(input));
        }
        public void TestPartTwoInput()
        {
            string input = System.IO.File.ReadAllText("./Inputs/Day24.in");

            Assert.Equal(720, Day24.PartTwo(input.Split("\r\n")));
        }