def setUp(self): self.alu0_ = alu.Alu() self.alu0_.copy_roms_() self.alu0_.booted = True self.alu1_ = alu.Alu() # TODO: replace with real ALU self.alu1_.copy_roms_() self.alu1_.booted = True
def test_text_three(self): "Test the Alu object creation from text - example three" # 1. Create Alu object from text myobj = alu.Alu(text=aoc_24.from_text(EXAMPLE_THREE), inp='6') # 2. Make sure it has the expected values self.assertEqual(myobj.part2, False) self.assertEqual(len(myobj.text), 11) self.assertEqual(len(myobj.regs), 4) self.assertEqual(len(myobj.inst), 11) self.assertEqual(myobj.step, 0) self.assertEqual(len(myobj.inp), 1) # 3. Check methods self.assertEqual(myobj.regs['w'], 0) self.assertEqual(myobj.regs['x'], 0) self.assertEqual(myobj.regs['y'], 0) self.assertEqual(myobj.regs['z'], 0) self.assertEqual(myobj.run(), 0) self.assertEqual(myobj.regs['w'], 0) self.assertEqual(myobj.regs['x'], 1) self.assertEqual(myobj.regs['y'], 1) self.assertEqual(myobj.regs['z'], 0) self.assertEqual(len(myobj.inp), 0) self.assertEqual(myobj.one_step(), False)
def test_empty_init(self): "Test the default Alu creation" # 1. Create default Alu object myobj = alu.Alu() # 2. Make sure it has the default values self.assertEqual(myobj.part2, False) self.assertEqual(myobj.text, None) self.assertEqual(len(myobj.regs), 4) self.assertEqual(len(myobj.inst), 0) self.assertEqual(myobj.step, 0) self.assertEqual(len(myobj.inp), 0)
def __init__(self, text=None, part2=False, inp=None): # 1. Set the initial values self.part2 = part2 self.text = text self.alu = None self.constants = [] # 2. Process text (if any) if text is not None and len(text) > 0: self.alu = alu.Alu(text=text, part2=part2, inp=inp) for offset in CONSTANTS: constants = [] for loop in range(NUM_LOOP): index = loop * LEN_LOOP + offset value = self.alu.inst[index][2] constants.append(value) self.constants.append(constants)