Esempio n. 1
0
def solve_part_2(code):
    """Find noun and verb to produce 19690720."""
    target = 19690720

    for noun in range(100):
        for verb in range(100):
            test_code = code[:]
            test_code[1:3] = [noun, verb]
            execute(test_code)

            if test_code[0] == target:
                print(f'part 2: {100 * noun + verb}')
Esempio n. 2
0
 def test_less_than_mode_00_true(self):
     code = [7, 5, 6, 7, 99, 1, 2, -1]
     execute(code)
     self.assertEqual(code, [7, 5, 6, 7, 99, 1, 2, 1])
Esempio n. 3
0
 def test_sample_4(self):
     code = [1, 1, 1, 4, 99, 5, 6, 0, 99]
     execute(code)
     self.assertEqual(code, [30, 1, 1, 4, 2, 5, 6, 0, 99])
Esempio n. 4
0
 def test_sample_2(self):
     code = [2, 3, 0, 3, 99]
     execute(code)
     self.assertEqual(code, [2, 3, 0, 6, 99])
Esempio n. 5
0
def solve_part_1(code):
    """Execute code with given noun and verb."""
    code = code[:]
    code[1:3] = [12, 2]
    execute(code)
    print(f'part 1: {code[0]}')
Esempio n. 6
0
 def test_jump_if_false_mode_00_false(self):
     code = [6, 3, 4, 0, 99]
     execute(code)
     self.assertEqual(code, [6, 3, 4, 0, 99])
Esempio n. 7
0
 def test_jump_if_true_mode_01_true(self):
     code = [105, 3, 4, 0, 99]
     execute(code)
     self.assertEqual(code, [105, 3, 4, 0, 99])
Esempio n. 8
0
 def test_sample_5(self):
     code = [1101, 100, -1, 4, 0]
     execute(code)
     self.assertEqual(code, [1101, 100, -1, 4, 99])
Esempio n. 9
0
 def test_sample_8_1eq8(self):
     code = [3, 3, 1108, -1, 8, 3, 4, 3, 99]
     output = execute(code, iter([8]))
     self.assertEqual(output, [1])
Esempio n. 10
0
 def test_sample_7_9lt8(self):
     code = [3, 9, 7, 9, 10, 9, 4, 9, 99, -1, 8]
     output = execute(code, iter([9]))
     self.assertEqual(output, [0])
Esempio n. 11
0
 def test_sample_6_input_8(self):
     code = [3, 9, 8, 9, 10, 9, 4, 9, 99, -1, 8]
     output = execute(code, iter([8]))
     self.assertEqual(output, [1])
Esempio n. 12
0
 def test_equals_mode_11_false(self):
     code = [8, -1, -2, 5, 99, -1]
     execute(code)
     self.assertEqual(code, [8, -1, -2, 5, 99, 0])
Esempio n. 13
0
 def test_equals_mode_00_true(self):
     code = [8, 5, 6, 7, 99, 3, 3, -1]
     execute(code)
     self.assertEqual(code, [8, 5, 6, 7, 99, 3, 3, 1])
Esempio n. 14
0
 def test_less_than_mode_11_false(self):
     code = [10001107, 10, -10, 5, 99, -1]
     execute(code)
     self.assertEqual(code, [10001107, 10, -10, 5, 99, 0])
Esempio n. 15
0
 def test_modes_mul_2(self):
     code = [1001102, 4, 5, 3, 99]
     execute(code)
     self.assertEqual(code, [1001102, 4, 5, 20, 99])
Esempio n. 16
0
 def test_modes_read(self):
     code = [104, 5, 99]
     output = execute(code)
     self.assertEqual(code, [104, 5, 99])
     self.assertEqual(output, [5])
Esempio n. 17
0
 def test_sample_9_9lt8(self):
     code = [3, 3, 1107, -1, 8, 3, 4, 3, 99]
     output = execute(code, iter([9]))
     self.assertEqual(output, [0])
Esempio n. 18
0
 def test_jump_if_true_mode_00_false(self):
     code = [5, 2, 0, 99]
     execute(code)
     self.assertEqual(code, [5, 2, 0, 99])
Esempio n. 19
0
 def test_sample_11_1(self):
     code = [3, 12, 6, 12, 15, 1, 13, 14, 13, 4, 13, 99, -1, 0, 1, 9]
     output = execute(code, iter([1]))
     self.assertEqual(output, [1])
Esempio n. 20
0
 def test_jump_if_true_mode_11_true(self):
     code = [101105, 1, 99]
     execute(code)
     self.assertEqual(code, [101105, 1, 99])
Esempio n. 21
0
 def test_io(self):
     code = [3, 9, 1002, 9, 2, 10, 4, 10, 99, 0, 0]
     output = execute(code, iter([3]))
     self.assertEqual(output, [6])
Esempio n. 22
0
 def test_jump_if_false_mode_00_true(self):
     code = [6, 4, 0, 99, 1]
     execute(code)
     self.assertEqual(code, [6, 4, 0, 99, 1])
Esempio n. 23
0
 def test_save(self):
     code = [3, 0, 99]
     execute(code, iter([1]))
     self.assertEqual(code, [1, 0, 99])
Esempio n. 24
0
 def test_read(self):
     code = [4, 2, 99]
     output = execute(code)
     self.assertEqual(code, [4, 2, 99])
     self.assertEqual(output, [99])
Esempio n. 25
0
 def test_modes_add_a(self):
     code = [1101, 4, 5, 3, 99]
     execute(code)
     self.assertEqual(code, [1101, 4, 5, 9, 99])
Esempio n. 26
0
 def test_sample_3(self):
     code = [2, 4, 4, 5, 99, 0]
     execute(code)
     self.assertEqual(code, [2, 4, 4, 5, 99, 9801])
Esempio n. 27
0
 def test_modes_add_c(self):
     code = [1001101, 4, 4, 3, 99]
     execute(code)
     self.assertEqual(code, [1001101, 4, 4, 8, 99])
Esempio n. 28
0
 def test_sample_1(self):
     code = [1, 0, 0, 0, 99]
     execute(code)
     self.assertEqual(code, [2, 0, 0, 0, 99])
Esempio n. 29
0
 def test_jump_if_false_mode_11_false(self):
     code = [1001106, 0, 99]
     execute(code)
     self.assertEqual(code, [1001106, 0, 99])