コード例 #1
0
        public void Test_NumberList_Process()
        {
            var numbers = new AdventOfCode2017Day10.NumberList(5);

            numbers.Process(3);
            Assert.IsTrue(numbers.Numbers.AreEqual(new List <int> {
                2, 1, 0, 3, 4
            }));
            Assert.AreEqual(3, numbers.Start);
            Assert.AreEqual(1, numbers.Skip);

            numbers.Process(4);
            Assert.IsTrue(numbers.Numbers.AreEqual(new List <int> {
                4, 3, 0, 1, 2
            }));
            Assert.AreEqual(3, numbers.Start);
            Assert.AreEqual(2, numbers.Skip);

            numbers.Process(1);
            Assert.IsTrue(numbers.Numbers.AreEqual(new List <int> {
                4, 3, 0, 1, 2
            }));
            Assert.AreEqual(1, numbers.Start);
            Assert.AreEqual(3, numbers.Skip);

            numbers.Process(5);
            Assert.IsTrue(numbers.Numbers.AreEqual(new List <int> {
                3, 4, 2, 1, 0
            }));
            Assert.AreEqual(4, numbers.Start);
            Assert.AreEqual(4, numbers.Skip);
        }
コード例 #2
0
        public void Test_SplitForHash()
        {
            var numbers = new AdventOfCode2017Day10.NumberList(256);
            var split   = AdventOfCode2017Day10.SplitForHash(numbers.Numbers);

            Assert.AreEqual(16, split.Count);
            Assert.AreEqual(16, split[0].Count);
            Assert.AreEqual(16, split[15].Count);
            Assert.AreEqual(0, split[0][0]);
            Assert.AreEqual(15, split[0][15]);
            Assert.AreEqual(16, split[1][0]);
        }
コード例 #3
0
        public void Test_NumberList_Next()
        {
            var numbers = new AdventOfCode2017Day10.NumberList(5);

            numbers.Next(2);
            Assert.AreEqual(2, numbers.Start);

            numbers.Next(1);
            Assert.AreEqual(4, numbers.Start);

            numbers.Next(1);
            Assert.AreEqual(2, numbers.Start);
        }
コード例 #4
0
        public void Test_NumberList_Get()
        {
            var numbers = new AdventOfCode2017Day10.NumberList(5);

            var res = numbers.Get(1);

            Assert.AreEqual(1, res.Count);
            Assert.AreEqual(0, res[0]);

            res = numbers.Get(5);
            Assert.AreEqual(5, res.Count);
            Assert.AreEqual(0, res[0]);
            Assert.AreEqual(4, res[4]);
        }
コード例 #5
0
        public void Test_NumberList_Replace()
        {
            var numbers = new AdventOfCode2017Day10.NumberList(5);

            numbers.Replace(1, new List <int> {
                8
            });

            Assert.AreEqual(8, numbers.Numbers[0]);
            Assert.AreEqual(1, numbers.Numbers[1]);

            numbers.Replace(2, new List <int> {
                7, 8
            });

            Assert.AreEqual(7, numbers.Numbers[0]);
            Assert.AreEqual(8, numbers.Numbers[1]);
            Assert.AreEqual(2, numbers.Numbers[2]);
        }