Exemple #1
0
        public void Day22Part1_Example04()
        {
            int[]    expectedCards = new int[] { 9, 2, 5, 8, 1, 4, 7, 0, 3, 6 };
            string[] cmds          = new string[]
            {
                "deal into new stack",
                "cut -2",
                "deal with increment 7",
                "cut 8",
                "cut -4",
                "deal with increment 7",
                "cut 3",
                "deal with increment 9",
                "deal with increment 3",
                "cut -1"
            };
            SlamShuffler sut = new SlamShuffler(10);

            foreach (string cmd in cmds)
            {
                sut.ShuffleCommand(cmd);
            }

            for (int i = 0; i < 10; i++)
            {
                Assert.Equal(expectedCards[i], sut.DeckOfCards[i]);
            }
        }
Exemple #2
0
        public void Day22Part1_DealToNewStack()
        {
            SlamShuffler sut = new SlamShuffler(10);

            sut.DealIntoNewStack();

            for (int i = 0; i <= 9; i++)
            {
                Assert.Equal(9 - i, sut.DeckOfCards[i]);
            }
        }
Exemple #3
0
        public void Day22Part1_DealIncrement3()
        {
            SlamShuffler sut = new SlamShuffler(10);

            sut.DealWithIncrement(3);

            Assert.Equal(0, sut.DeckOfCards[0]);
            Assert.Equal(7, sut.DeckOfCards[1]);
            Assert.Equal(4, sut.DeckOfCards[2]);
            Assert.Equal(1, sut.DeckOfCards[3]);
            Assert.Equal(8, sut.DeckOfCards[4]);
            Assert.Equal(5, sut.DeckOfCards[5]);
            Assert.Equal(2, sut.DeckOfCards[6]);
            Assert.Equal(9, sut.DeckOfCards[7]);
            Assert.Equal(6, sut.DeckOfCards[8]);
            Assert.Equal(3, sut.DeckOfCards[9]);
        }
Exemple #4
0
        public void Day22Part1_CutMinus4()
        {
            SlamShuffler sut = new SlamShuffler(10);

            sut.Cut(-4);

            Assert.Equal(6, sut.DeckOfCards[0]);
            Assert.Equal(7, sut.DeckOfCards[1]);
            Assert.Equal(8, sut.DeckOfCards[2]);
            Assert.Equal(9, sut.DeckOfCards[3]);
            Assert.Equal(0, sut.DeckOfCards[4]);
            Assert.Equal(1, sut.DeckOfCards[5]);
            Assert.Equal(2, sut.DeckOfCards[6]);
            Assert.Equal(3, sut.DeckOfCards[7]);
            Assert.Equal(4, sut.DeckOfCards[8]);
            Assert.Equal(5, sut.DeckOfCards[9]);
        }
Exemple #5
0
        public void Day22Part1_TestSolution()
        {
            string[] cmds = DayDataUtilities.ReadLinesFromFile("day22.txt");
            Assert.NotNull(cmds);
            Assert.Equal(100, cmds.Length);
            SlamShuffler sut = new SlamShuffler(10007);

            foreach (string cmd in cmds)
            {
                sut.ShuffleCommand(cmd);
            }

            int actual = sut.DeckOfCards.FindIndex(c => c == 2019);

            Assert.Equal(3324, actual);
            //sut.DumpDeckOfCards(@"c:\work\cards.csv");
        }
Exemple #6
0
        public void Day22Part1_Example03()
        {
            int[]    expectedCards = new int[] { 6, 3, 0, 7, 4, 1, 8, 5, 2, 9 };
            string[] cmds          = new string[]
            {
                "deal with increment 7",
                "deal with increment 9",
                "cut -2"
            };
            SlamShuffler sut = new SlamShuffler(10);

            foreach (string cmd in cmds)
            {
                sut.ShuffleCommand(cmd);
            }

            for (int i = 0; i < 10; i++)
            {
                Assert.Equal(expectedCards[i], sut.DeckOfCards[i]);
            }
        }