예제 #1
0
        public void Day21()
        {
            var day = new Day21();

            Assert.Equal(125, day.FirstPart());
            Assert.Equal(1782917, day.SecondPart());
        }
예제 #2
0
        public void GetDay21Part1AnswerTest()
        {
            BigInteger expected = 19360724;
            BigInteger actual   = Day21.GetDay21Part1Answer();

            Assert.Equal(expected, actual);
        }
예제 #3
0
        public void ExpandPattern()
        {
            var day21  = new Day21();
            var actual = day21.ExpandPattern(@".#./..#/###");

            Assert.Equal(8, actual.Count);
        }
예제 #4
0
        public void RotateClockwise()
        {
            var day21  = new Day21();
            var actual = day21.ArrayToString(day21.RotateClockwise(day21.StringToArray(@".#./..#/###")));

            Assert.Equal(@"#../#.#/##.", actual);
        }
예제 #5
0
        public void Solve_2()
        {
            var input  = File.ReadAllLines("C:\\Code\\aoc2018\\aoc2018\\Data\\input21.txt");
            var result = Day21.Solve(input, firstPart: false);

            _output.WriteLine(result.ToString());
        }
예제 #6
0
        public void GetDay21Part01AnswerTest()
        {
            int expected = 1885;
            int actual   = Day21.GetDay21Part01Answer();

            Assert.Equal(expected, actual);
        }
예제 #7
0
        public void GetDay21Part02AnswerTest()
        {
            string expected = "fllssz,kgbzf,zcdcdf,pzmg,kpsdtv,fvvrc,dqbjj,qpxhfp";
            string actual   = Day21.GetDay21Part02Answer();

            Assert.Equal(expected, actual);
        }
예제 #8
0
        public void TestPart2()
        {
            string part2Solution = "fdsfpg,jmvxx,lkv,cbzcgvc,kfgln,pqqks,pqrvc,lclnj";
            var    day21         = new Day21();

            day21.ExecutePart2().Should().Be(part2Solution);
        }
예제 #9
0
        public void Part2( )
        {
            day21 = new Day21("day21");
            var actual = day21.SolvePart2( );

            Assert.AreEqual("148", actual);
        }
예제 #10
0
        public void GetDay21Part2AnswerTest()
        {
            BigInteger expected = 1140450681;
            BigInteger actual   = Day21.GetDay21Part2Answer();

            Assert.Equal(expected, actual);
        }
예제 #11
0
        public void TestPart1()
        {
            int part1Solution = 2072;
            var day21         = new Day21();

            day21.ExecutePart1().Should().Be(part1Solution);
        }
예제 #12
0
        public void VFlipPattern()
        {
            var day21  = new Day21();
            var actual = day21.ArrayToString(day21.VFlip(day21.StringToArray(@".#./..#/###")));

            Assert.Equal(@".#./#../###", actual);
        }
예제 #13
0
 public void MovePositionXToPositionYTest()
 {
     Assert.Equal("acdeb", Day21.MovePositionXToPositionY("abcde", 1, 4));
     Assert.Equal("bdeac", Day21.MovePositionXToPositionY("bcdea", 1, 4));
     Assert.Equal("abdec", Day21.MovePositionXToPositionY("bdeac", 3, 0));
     Assert.Equal("abcdgefh", Day21.MovePositionXToPositionY("abcdefgh", 6, 4));
 }
예제 #14
0
        public void TestPartOneSample()
        {
            string input = "swap position 4 with position 0\nswap letter d with letter b\n" +
                           "reverse positions 0 through 4\nrotate left 1 step\nmove position 1 to position 4\n" +
                           "move position 3 to position 0\nrotate based on position of letter b\nrotate based on position of letter d";

            Assert.Equal("fbdecgha", Day21.PartOne(input.Split("\n")));
        }
예제 #15
0
        public void Day21()
        {
            var day = new Day21();

            Assert.AreEqual(19359996, day.Walk());
            // TODO solve part 2
            Assert.IsTrue(false);
        }
예제 #16
0
        public void Part2_Answer()
        {
            var day21  = new Day21();
            var input  = ".#./..#/###";
            var actual = day21.Part1(input, PUZZLE_INPUT, 18);

            Assert.Equal(2480380, actual);
        }
예제 #17
0
        public void ExpandPatterns()
        {
            var day21  = new Day21();
            var actual = day21.ExpandPatterns(@"../.# => ##./#../...
.#./..#/### => #..#/..../..../#..#");

            Assert.Equal(12, actual.Count);
        }
예제 #18
0
    public static void Y2016_Day21_RotateDirection_Returns_Correct_Solution(char[] values, bool right, int steps, IEnumerable <char> expected)
    {
        // Act
        Day21.RotateDirection(values, right, steps, reverse: false);

        // Assert
        values.ShouldBe(expected);
    }
예제 #19
0
        public void Exercise1Test()
        {
            Day21.Data = TestData;

            var result = Day21.Exercise1();

            Assert.Equal(5, result);
        }
예제 #20
0
    public static void Y2016_Day21_Reverse_Returns_Correct_Solution(char[] values, int start, int end, IEnumerable <char> expected)
    {
        // Act
        Day21.Reverse(values, start, end);

        // Assert
        values.ShouldBe(expected);
    }
예제 #21
0
        public void Exercise2Test()
        {
            Day21.Data = TestData;

            var result = Day21.Exercise2();

            Assert.Equal("mxmxvkd,sqjhc,fvjkl", result);
        }
예제 #22
0
파일: Test21.cs 프로젝트: htoomik/aoc2020
        public void Solve2()
        {
            var input  = DataHelper.GetAllRows(21);
            var solver = new Day21();
            var result = solver.Solve2(input);

            Output.WriteLine(result);
        }
예제 #23
0
    public void Should_calculate_deterministic_score()
    {
        var inputPath = Path.Combine(TestContext.CurrentContext.TestDirectory, "Day21Tests/Input/example.txt");
        var input     = File.ReadLines(inputPath);

        var result = Day21.CalculateDeterministicScore(input.ToArray());

        Assert.That(result, Is.EqualTo(739785));
    }
예제 #24
0
    public void Should_calculate_quantum_score()
    {
        var inputPath = Path.Combine(TestContext.CurrentContext.TestDirectory, "Day21Tests/Input/example.txt");
        var input     = File.ReadLines(inputPath);

        var result = Day21.CalculateQuantumScore(input.ToArray());

        Assert.That(result, Is.EqualTo(444356092776315));
    }
예제 #25
0
    public static void Y2015_Day21_Fight()
    {
        var player1 = new Day21.Player(8, 5, 5);
        var player2 = new Day21.Player(12, 7, 2);

        var winner = Day21.Fight(player1, player2);

        // Assert
        winner.ShouldBeSameAs(player1);
    }
예제 #26
0
        public void Day21Test()
        {
            Day    _day21                 = new Day21("");
            string PartOneExpected        = "Fail";
            string PartTwoExpected        = "Fail";
            Tuple <string, string> Actual = _day21.getResult();

            Assert.AreEqual(PartOneExpected, Actual.Item1);
            Assert.AreEqual(PartTwoExpected, Actual.Item2);
        }
예제 #27
0
        public void Task1()
        {
            var rules = new string[]
            {
                "../.# => ##./#../...",
                ".#./..#/### => #..#/..../..../#..#"
            };

            Assert.AreEqual(12, Day21.Task1(rules, 2));
        }
예제 #28
0
        public void Part1()
        {
            var day21    = new Day21();
            var input    = ".#./..#/###";
            var patterns = @"../.# => ##./#../...
.#./..#/### => #..#/..../..../#..#";
            var actual   = day21.Part1(input, patterns, 2);

            Assert.Equal(12, actual);
        }
        public void SolveWithTestInput()
        {
            var testInput = @"mxmxvkd kfcds sqjhc nhms (contains dairy, fish)
trh fvjkl sbzzf mxmxvkd (contains dairy)
sqjhc fvjkl (contains soy)
sqjhc mxmxvkd sbzzf (contains fish)".Split("\r\n");
            var answer    = new Day21().Solve(testInput);

            Assert.AreEqual(("5", "mxmxvkd,sqjhc,fvjkl"), answer);
        }
예제 #30
0
        public void Q1()
        {
            var day = new Day21(Inputs.Day21);

            day.Registers[0] = 15690445;

            day.RunProgram();

            Assert.True(true);
        }