コード例 #1
0
ファイル: test.py プロジェクト: mdumke/aoc2019
 def test_adjust_relative_mode_1(self):
     code = [109, 3, 99]
     computer = Intcomputer(code)
     computer.execute()
     self.assertEqual(computer.relative_base, 3)
コード例 #2
0
from intcomputer import Intcomputer

assert type(Intcomputer("[99]")) == Intcomputer


def test_loading() -> None:
    ic = Intcomputer([1101, 1, 1, 3, 4, 3, 99])
    assert ic.ram == [1101, 1, 1, 3, 4, 3, 99]


def test_positional_add() -> None:
    ic = Intcomputer([1, 0, 0, 3, 99])
    ic.run()
    assert ic.ram[3] == 2


def test_immediate_add() -> None:
    ic = Intcomputer([1101, 1, 1, 3, 99])
    ic.run()
    assert ic.ram[3] == 2


def test_positional_mul() -> None:
    ic = Intcomputer([2, 0, 0, 3, 99])
    ic.run()
    assert ic.ram[3] == 4


def test_immediate_mul() -> None:
    ic = Intcomputer([1102, 2, 2, 3, 99])
    ic.run()
コード例 #3
0
def test_immediate_add() -> None:
    ic = Intcomputer([1101, 1, 1, 3, 99])
    ic.run()
    assert ic.ram[3] == 2
コード例 #4
0
ファイル: test.py プロジェクト: mdumke/aoc2019
 def test_command_1006a(self):
     code = [1006, 3, 4, 0, 99]
     computer = Intcomputer(code)
     computer.execute()
     self.assertTrue(True)
コード例 #5
0
ファイル: part1.py プロジェクト: PaoDerDoktor/aoc2019
from intcomputer import Intcomputer

with open("inputs.txt", "r+") as inputs:
    raw_intcode = ''.join(inputs.readlines())

    intcode = [int(elt) for elt in raw_intcode.split(',')]

    intcom = Intcomputer(intcode)
    intcom.run()


    while(True):
        try:
            print("Output -->",intcom.output())
        except StopIteration:
            print("Nothing to output")
            break
コード例 #6
0
ファイル: test.py プロジェクト: mdumke/aoc2019
 def test_command_21001(self):
     code = [21001, 5, 1, -4, 99, 2, 0]
     computer = Intcomputer(code)
     computer.relative_base = 10
     computer.execute()
     self.assertEqual(computer.memory[:7], [21001, 5, 1, -4, 99, 2, 3])
コード例 #7
0
ファイル: test.py プロジェクト: mdumke/aoc2019
 def test_command_1105(self):
     code = [1105, 1, 4, 0, 99]
     computer = Intcomputer(code)
     computer.execute()
     self.assertTrue(True)
コード例 #8
0
ファイル: test.py プロジェクト: mdumke/aoc2019
 def test_jump_if_true_mode_2_b(self):
     code = [205, 3, 6, 0, 99, 1, 4]
     computer = Intcomputer(code)
     computer.relative_base = 2
     computer.execute()
     self.assertTrue(True)
コード例 #9
0
ファイル: test.py プロジェクト: mdumke/aoc2019
 def test_jump_if_false_mode_2(self):
     code = [1206, 3, 4, 1, 99, 0]
     computer = Intcomputer(code)
     computer.relative_base = 2
     computer.execute()
     self.assertTrue(True)
コード例 #10
0
ファイル: test.py プロジェクト: mdumke/aoc2019
 def test_add_mode_12(self):
     code = [1201, -5, 5, 3, 99, 11]
     computer = Intcomputer(code)
     computer.relative_base = 10
     computer.execute()
     self.assertEqual(computer.memory[:6], [1201, -5, 5, 16, 99, 11])
コード例 #11
0
ファイル: test.py プロジェクト: mdumke/aoc2019
 def test_mul_mode_12(self):
     code = [1202, -5, 2, 3, 99, 6]
     computer = Intcomputer(code)
     computer.relative_base = 10
     computer.execute()
     self.assertEqual(computer.memory[:6], [1202, -5, 2, 12, 99, 6])
コード例 #12
0
ファイル: test.py プロジェクト: mdumke/aoc2019
 def test_command_1001(self):
     code = [1001, 5, 10, 6, 99, 7, 0]
     computer = Intcomputer(code)
     computer.execute()
     self.assertEqual(computer.memory[:7], [1001, 5, 10, 6, 99, 7, 17])
コード例 #13
0
ファイル: test.py プロジェクト: mdumke/aoc2019
 def test_add_mode_21(self):
     code = [2101, 5, -5, 6, 99, 11]
     computer = Intcomputer(code)
     computer.relative_base = 10
     computer.execute()
     self.assertEqual(computer.memory[:7], [2101, 5, -5, 6, 99, 11, 16])
コード例 #14
0
ファイル: test.py プロジェクト: mdumke/aoc2019
 def test_adjust_relative_mode_2(self):
     code = [209, -1, 99, 20]
     computer = Intcomputer(code)
     computer.relative_base = 4
     computer.execute()
     self.assertEqual(computer.relative_base, 24)
コード例 #15
0
ファイル: test.py プロジェクト: mdumke/aoc2019
 def test_command_20001(self):
     code = [20001, 5, 6, -3, 99, 2, 4, 0]
     computer = Intcomputer(code)
     computer.relative_base = 10
     computer.execute()
     self.assertEqual(computer.memory[:8], [20001, 5, 6, -3, 99, 2, 4, 6])
コード例 #16
0
ファイル: test.py プロジェクト: mdumke/aoc2019
 def test_io(self):
     code = [3, 9, 1002, 9, 2, 10, 4, 10, 99, 0, 0]
     computer = Intcomputer(code)
     status, output = computer.execute(3)
     self.assertEqual(status, 'OUTPUT')
     self.assertEqual(output, 6)
コード例 #17
0
ファイル: test.py プロジェクト: mdumke/aoc2019
 def test_command_1(self):
     code = [1, 5, 6, 7, 99, 2, 3, 0]
     computer = Intcomputer(code)
     computer.execute()
     self.assertEqual(computer.memory[:8], [1, 5, 6, 7, 99, 2, 3, 5])
コード例 #18
0
ファイル: test.py プロジェクト: mdumke/aoc2019
 def test_command_201(self):
     code = [201, -4, 5, 7, 99, 3, 1, 0]
     computer = Intcomputer(code)
     computer.relative_base = 10
     computer.execute()
     self.assertEqual(computer.memory[:8], [201, -4, 5, 7, 99, 3, 1, 4])
コード例 #19
0
ファイル: test.py プロジェクト: mdumke/aoc2019
 def test_command_20101(self):
     code = [20101, 5, 1, -5, 99, 0]
     computer = Intcomputer(code)
     computer.relative_base = 10
     computer.execute()
     self.assertEqual(computer.memory[:6], [20101, 5, 1, -5, 99, 10])
コード例 #20
0
ファイル: test.py プロジェクト: mdumke/aoc2019
 def test_sample_3(self):
     code = [104, 1125899906842624, 99]
     computer = Intcomputer(code)
     status, out = computer.execute()
     self.assertEqual(out, 1125899906842624)
コード例 #21
0
ファイル: test.py プロジェクト: mdumke/aoc2019
 def test_command_2105(self):
     code = [2105, 1, -7, 4, 99]
     computer = Intcomputer(code)
     computer.relative_base = 10
     computer.execute()
     self.assertTrue(True)
コード例 #22
0
ファイル: test.py プロジェクト: mdumke/aoc2019
 def test_203_input(self):
     code = [203, -6, 99, -1, -1]
     computer = Intcomputer(code)
     computer.relative_base = 10
     status, out = computer.execute(1)
     self.assertEqual(computer.memory[:5], [203, -6, 99, -1, 1])
コード例 #23
0
ファイル: test.py プロジェクト: mdumke/aoc2019
 def test_command_1006b(self):
     code = [1006, 4, 5, 99, 1, 0]
     computer = Intcomputer(code)
     computer.execute()
     self.assertTrue(True)
コード例 #24
0
ファイル: test.py プロジェクト: mdumke/aoc2019
 def test_21107_less_than(self):
     code = [21107, 1, 2, -5, 99, -1]
     computer = Intcomputer(code)
     computer.relative_base = 10
     computer.execute()
     self.assertEqual(computer.memory[:6], [21107, 1, 2, -5, 99, 1])
コード例 #25
0
 def __init__(self, code, initial_color=0):
     self.computer = Intcomputer(code)
     self.grid = defaultdict(int)
     self.grid[(0, 0)] = initial_color
     self.orientation = 0
     self.position = (0, 0)
コード例 #26
0
ファイル: test.py プロジェクト: mdumke/aoc2019
 def test_solution_part_1(self):
     with open('input.txt') as f:
         code = [int(i) for i in f.readline().strip().split(',')]
     self.assertEqual(Intcomputer(code).execute(1)[1], 2351176124)
コード例 #27
0
def test_positional_add() -> None:
    ic = Intcomputer([1, 0, 0, 3, 99])
    ic.run()
    assert ic.ram[3] == 2
コード例 #28
0
ファイル: test.py プロジェクト: mdumke/aoc2019
 def test_command_1101(self):
     code = [1101, 5, -4, 5, 99, 0]
     computer = Intcomputer(code)
     computer.execute()
     self.assertEqual(computer.memory[:6], [1101, 5, -4, 5, 99, 1])
コード例 #29
0
def test_positional_mul() -> None:
    ic = Intcomputer([2, 0, 0, 3, 99])
    ic.run()
    assert ic.ram[3] == 4
コード例 #30
0
ファイル: test.py プロジェクト: mdumke/aoc2019
 def test_adjust_relative_mode_0(self):
     code = [9, 3, 99, 10]
     computer = Intcomputer(code)
     computer.execute()
     self.assertEqual(computer.relative_base, 10)