예제 #1
0
파일: alu_test.py 프로젝트: yazici/lmarv
    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
예제 #2
0
    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)
예제 #3
0
    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)
예제 #4
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)