public void Day23_CrabCups_Part1_Ok() { var sut = new CrabCupsGame(prodData); for (int i = 0; i < 100; i++) { sut.DoMove(9); } string actual = sut.CupsAfterOne(); Assert.Equal("49725386", actual); }
public void Day23_Example_100_Moves_Ok() { string data = "389125467"; var sut = new CrabCupsGame(data); for (int i = 0; i < 100; i++) { sut.DoMove(9); } string actual = sut.CupsAfterOne(); Assert.Equal("67384529", actual); }
public void Day23_CrabCups_Part2_Ok() { // Takes a long time to run. around 2 hours. var sut = new CrabCupsGame(prodData, true); for (int i = 0; i < 10000000; i++) { sut.DoMove(1000000); } var iOne = sut.Cups.IndexOf(1); var i1 = (iOne + 1) % 1000000; var i2 = (iOne + 2) % 1000000; Assert.Equal(1, sut.Cups[iOne]); long v1 = sut.Cups[i1]; long v2 = sut.Cups[i2]; long actual = v1 * v2; Assert.Equal(538935646702, actual); }