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); }
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]); }
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); }
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]); }
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]); }