def write_operation_in_immediate_mode_outputs_value(): input = [100 + OP_Write, 5, 99] output = [100 + OP_Write, 5, 99] read = [] write = evaluate(input, read) assert_list_equals(input, output) assert write[0] == 5
def write_operation_outputs_value(): input = [OP_Write, 2, 99] output = [OP_Write, 2, 99] read = [] write = evaluate(input, read) assert_list_equals(input, output) assert write[0] == 99
def read_operation_sets_value(): input = [OP_Read, 3, 99, 0] output = [OP_Read, 3, 99, 12] read = [] read.append(12) evaluate(input, read) assert_list_equals(input, output)
def add_operation_in_partial_immediate_mode_correctly_sums(): input = [1000 + OP_Add, 4, -2, 5, 99, 0] output = [1000 + OP_Add, 4, -2, 5, 99, 97] evaluate(input, []) assert_list_equals(input, output)
def day_2_programs_still_valid(input, output): evaluate(input, []) assert_list_equals(input, output)
def test_build_adjacency_list(input, output): adj_list = build_adjacency_list(input) for key in output.keys(): assert_list_equals(adj_list[key], output[key])