public void ProcessTest_Example01() { // Arrange var input = new int[] { 1, 9, 10, 3, 2, 3, 11, 0, 99, 30, 40, 50 }; // Act var result = GravityAssistPart1.Process(input); // Arrange Assert.AreEqual(3500, result.Code(0), "position 0 is unexpected"); Assert.AreEqual(9, result.Code(1), "position 1 is unexpected"); Assert.AreEqual(10, result.Code(2), "position 2 is unexpected"); Assert.AreEqual(70, result.Code(3), "position 3 is unexpected"); Assert.AreEqual(2, result.Code(4), "position 4 is unexpected"); Assert.AreEqual(3, result.Code(5), "position 5 is unexpected"); Assert.AreEqual(11, result.Code(6), "position 6 is unexpected"); Assert.AreEqual(0, result.Code(7), "position 7 is unexpected"); Assert.AreEqual(99, result.Code(8), "position 8 is unexpected"); Assert.AreEqual(30, result.Code(9), "position 9 is unexpected"); Assert.AreEqual(40, result.Code(10), "position 10 is unexpected"); Assert.AreEqual(50, result.Code(11), "position 11 is unexpected"); }
public void Puzzle() { // Arrange var input = new int[] { 3, 225, 1, 225, 6, 6, 1100, 1, 238, 225, 104, 0, 1102, 91, 92, 225, 1102, 85, 13, 225, 1, 47, 17, 224, 101, -176, 224, 224, 4, 224, 1002, 223, 8, 223, 1001, 224, 7, 224, 1, 223, 224, 223, 1102, 79, 43, 225, 1102, 91, 79, 225, 1101, 94, 61, 225, 1002, 99, 42, 224, 1001, 224, -1890, 224, 4, 224, 1002, 223, 8, 223, 1001, 224, 6, 224, 1, 224, 223, 223, 102, 77, 52, 224, 1001, 224, -4697, 224, 4, 224, 102, 8, 223, 223, 1001, 224, 7, 224, 1, 224, 223, 223, 1101, 45, 47, 225, 1001, 43, 93, 224, 1001, 224, -172, 224, 4, 224, 102, 8, 223, 223, 1001, 224, 1, 224, 1, 224, 223, 223, 1102, 53, 88, 225, 1101, 64, 75, 225, 2, 14, 129, 224, 101, -5888, 224, 224, 4, 224, 102, 8, 223, 223, 101, 6, 224, 224, 1, 223, 224, 223, 101, 60, 126, 224, 101, -148, 224, 224, 4, 224, 1002, 223, 8, 223, 1001, 224, 2, 224, 1, 224, 223, 223, 1102, 82, 56, 224, 1001, 224, -4592, 224, 4, 224, 1002, 223, 8, 223, 101, 4, 224, 224, 1, 224, 223, 223, 1101, 22, 82, 224, 1001, 224, -104, 224, 4, 224, 1002, 223, 8, 223, 101, 4, 224, 224, 1, 223, 224, 223, 4, 223, 99, 0, 0, 0, 677, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1105, 0, 99999, 1105, 227, 247, 1105, 1, 99999, 1005, 227, 99999, 1005, 0, 256, 1105, 1, 99999, 1106, 227, 99999, 1106, 0, 265, 1105, 1, 99999, 1006, 0, 99999, 1006, 227, 274, 1105, 1, 99999, 1105, 1, 280, 1105, 1, 99999, 1, 225, 225, 225, 1101, 294, 0, 0, 105, 1, 0, 1105, 1, 99999, 1106, 0, 300, 1105, 1, 99999, 1, 225, 225, 225, 1101, 314, 0, 0, 106, 0, 0, 1105, 1, 99999, 8, 226, 677, 224, 102, 2, 223, 223, 1005, 224, 329, 1001, 223, 1, 223, 1007, 226, 226, 224, 1002, 223, 2, 223, 1006, 224, 344, 101, 1, 223, 223, 108, 226, 226, 224, 1002, 223, 2, 223, 1006, 224, 359, 1001, 223, 1, 223, 107, 226, 677, 224, 102, 2, 223, 223, 1006, 224, 374, 101, 1, 223, 223, 8, 677, 677, 224, 102, 2, 223, 223, 1006, 224, 389, 1001, 223, 1, 223, 1008, 226, 677, 224, 1002, 223, 2, 223, 1006, 224, 404, 101, 1, 223, 223, 7, 677, 677, 224, 1002, 223, 2, 223, 1005, 224, 419, 101, 1, 223, 223, 1108, 226, 677, 224, 1002, 223, 2, 223, 1005, 224, 434, 101, 1, 223, 223, 1108, 226, 226, 224, 102, 2, 223, 223, 1005, 224, 449, 1001, 223, 1, 223, 107, 226, 226, 224, 102, 2, 223, 223, 1005, 224, 464, 101, 1, 223, 223, 1007, 677, 677, 224, 102, 2, 223, 223, 1006, 224, 479, 101, 1, 223, 223, 1007, 226, 677, 224, 102, 2, 223, 223, 1005, 224, 494, 1001, 223, 1, 223, 1008, 226, 226, 224, 1002, 223, 2, 223, 1005, 224, 509, 1001, 223, 1, 223, 1108, 677, 226, 224, 1002, 223, 2, 223, 1006, 224, 524, 1001, 223, 1, 223, 108, 677, 677, 224, 1002, 223, 2, 223, 1005, 224, 539, 101, 1, 223, 223, 108, 226, 677, 224, 1002, 223, 2, 223, 1005, 224, 554, 101, 1, 223, 223, 1008, 677, 677, 224, 1002, 223, 2, 223, 1006, 224, 569, 1001, 223, 1, 223, 1107, 677, 677, 224, 102, 2, 223, 223, 1005, 224, 584, 1001, 223, 1, 223, 7, 677, 226, 224, 102, 2, 223, 223, 1005, 224, 599, 1001, 223, 1, 223, 8, 677, 226, 224, 1002, 223, 2, 223, 1005, 224, 614, 1001, 223, 1, 223, 7, 226, 677, 224, 1002, 223, 2, 223, 1006, 224, 629, 101, 1, 223, 223, 1107, 677, 226, 224, 1002, 223, 2, 223, 1005, 224, 644, 1001, 223, 1, 223, 1107, 226, 677, 224, 102, 2, 223, 223, 1006, 224, 659, 1001, 223, 1, 223, 107, 677, 677, 224, 1002, 223, 2, 223, 1005, 224, 674, 101, 1, 223, 223, 4, 223, 99, 226 }; // Act var result = GravityAssistPart1.Process(input); // Arrange Assert.AreEqual(@"0 0 0 0 0 0 0 0 0 16489636 HALT ", result.Output.ToString()); }
public void ProcessTest_CalculateNounAndVerbToGetAnswer19690720() { // Arrange int answer = 0; // Act for (var noun = 0; noun < 100; noun++) { for (var verb = 0; verb < 100; verb++) { try { var input = new int[] { 1, 0, 0, 3, 1, 1, 2, 3, 1, 3, 4, 3, 1, 5, 0, 3, 2, 13, 1, 19, 1, 19, 9, 23, 1, 5, 23, 27, 1, 27, 9, 31, 1, 6, 31, 35, 2, 35, 9, 39, 1, 39, 6, 43, 2, 9, 43, 47, 1, 47, 6, 51, 2, 51, 9, 55, 1, 5, 55, 59, 2, 59, 6, 63, 1, 9, 63, 67, 1, 67, 10, 71, 1, 71, 13, 75, 2, 13, 75, 79, 1, 6, 79, 83, 2, 9, 83, 87, 1, 87, 6, 91, 2, 10, 91, 95, 2, 13, 95, 99, 1, 9, 99, 103, 1, 5, 103, 107, 2, 9, 107, 111, 1, 111, 5, 115, 1, 115, 5, 119, 1, 10, 119, 123, 1, 13, 123, 127, 1, 2, 127, 131, 1, 131, 13, 0, 99, 2, 14, 0, 0 }; var result = GravityAssistPart1.RestoreGravityAsistAndProcessCodes(noun, verb, input); var address0 = result.Code(0); Console.WriteLine($"noun: {noun} | verb {verb} > address 0: {address0}"); if (address0 == 19690720) { answer = 100 * result.Noun + result.Verb; break; } } catch (Exception ex) { } } if (answer > 0) { break; } } // Arrange Assert.AreEqual(7912, answer, "position 0 is unexpected"); }
public void ProcessTest_PuzzleInput() { // Arrange var input = new int[] { 1, 0, 0, 3, 1, 1, 2, 3, 1, 3, 4, 3, 1, 5, 0, 3, 2, 13, 1, 19, 1, 19, 9, 23, 1, 5, 23, 27, 1, 27, 9, 31, 1, 6, 31, 35, 2, 35, 9, 39, 1, 39, 6, 43, 2, 9, 43, 47, 1, 47, 6, 51, 2, 51, 9, 55, 1, 5, 55, 59, 2, 59, 6, 63, 1, 9, 63, 67, 1, 67, 10, 71, 1, 71, 13, 75, 2, 13, 75, 79, 1, 6, 79, 83, 2, 9, 83, 87, 1, 87, 6, 91, 2, 10, 91, 95, 2, 13, 95, 99, 1, 9, 99, 103, 1, 5, 103, 107, 2, 9, 107, 111, 1, 111, 5, 115, 1, 115, 5, 119, 1, 10, 119, 123, 1, 13, 123, 127, 1, 2, 127, 131, 1, 131, 13, 0, 99, 2, 14, 0, 0 }; // Act var result = GravityAssistPart1.RestoreGravityAsistAndProcessCodes(input); // Arrange Assert.AreEqual(3409710, result.Code(0), "position 0 is unexpected"); }
public void ProcessTest_Example04() { // Arrange var input = new int[] { 2, 4, 4, 5, 99, 0 }; // Act var result = GravityAssistPart1.Process(input); // Arrange var expected = new int[] { 2, 4, 4, 5, 99, 9801 }; AreEqual(expected, result.Codes); }
public void ProcessTest_Example05() { // Arrange var input = new int[] { 1, 1, 1, 4, 99, 5, 6, 0, 99 }; // Act var result = GravityAssistPart1.Process(input); // Arrange var expected = new int[] { 30, 1, 1, 4, 2, 5, 6, 0, 99 }; AreEqual(expected, result.Codes); }
public void ExampleDay5Part1_Test02() { // Arrange var input = new int[] { 1101, 100, -1, 4, 0, }; // Act var result = GravityAssistPart1.Process(input); // Arrange Assert.AreEqual(1101, result.Code(0), "position 0 is unexpected"); Assert.AreEqual(100, result.Code(1), "position 1 is unexpected"); Assert.AreEqual(-1, result.Code(2), "position 2 is unexpected"); Assert.AreEqual(4, result.Code(3), "position 3 is unexpected"); Assert.AreEqual(99, result.Code(4), "position 4 is unexpected"); }
public void ProcessTest() { // Arrange var input = new int[] { 1, 2, 6, 2, 99, 1, 2, 3, 4 }; // Act var result = GravityAssistPart1.Process(input); // Arrange Assert.AreEqual(1, result.Code(0), "position 0 is unexpected"); Assert.AreEqual(2, result.Code(1), "position 1 is unexpected"); Assert.AreEqual(8, result.Code(2), "position 2 is unexpected"); Assert.AreEqual(2, result.Code(3), "position 3 is unexpected"); }
public void Output_Test01() { // Arrange var input = new int[] { 4, 0, 99 }; // Act var result = GravityAssistPart1.Process(input); // Arrange Assert.AreEqual(3, result.Codes.Keys.Count, "unexpected number of elements"); Assert.AreEqual(4, result.Code(0), "position 0 is unexpected"); Assert.AreEqual(@"4 HALT ", result.Output.ToString()); }