public void Speak_should_advance_turn_by_one()
        {
            var game = new ElfMemoryGame();

            game.Speak();

            Assert.Equal(1, game.Turn);
        }
        public void Day15_Part2_OK()
        {
            //long[] data = new long[] { 0, 3, 6 };

            var sut = new ElfMemoryGame();

            sut.SeedStartNumbers(day15Data);
            long actual = sut.RunToTurn(30000000);

            Assert.Equal(243, actual);
        }
        public void Day15_Example1_OK(long turnDesired, long expected)
        {
            long[] data = new long[] { 0, 3, 6 };

            var sut = new ElfMemoryGame();

            sut.SeedStartNumbers(data);
            long actual = sut.RunToTurn(turnDesired);

            Assert.Equal(expected, actual);
        }
        public void Example_3(int[] startingNumbers, int expectedNumberAtTurn30000000)
        {
            var game = new ElfMemoryGame
            {
                StartingNumbers = startingNumbers
            };

            for (var i = 0; i < 30000000; i++)
            {
                game.Speak();
            }

            Assert.Equal(expectedNumberAtTurn30000000, game.LastNumber);
        }
        public void Puzzle_15A()
        {
            var game = new ElfMemoryGame
            {
                StartingNumbers = PuzzleInputs.Puzzle15
            };

            for (var i = 0; i < 2020; i++)
            {
                game.Speak();
            }

            Assert.Equal(1259, game.LastNumber);
        }
        public void Example_1(int testTurn, int expectedNumber)
        {
            var game = new ElfMemoryGame
            {
                StartingNumbers = new[] { 0, 3, 6 }
            };

            for (var i = 0; i < testTurn; i++)
            {
                game.Speak();
            }

            Assert.Equal(expectedNumber, game.LastNumber);
        }