def test_LI(self): self.assertEqual(0b1000000100001111, int(compiler.parse_line('LI 1 15')))
def test_BE_label(self): self.assertEqual(intermediate.Label('hoge'), compiler.parse_line('BE hoge').d)
def test_ST_sign_ext(self): self.assertEqual(0b0101000111111011, int(compiler.parse_line('ST 1 -5(2)')))
def test_SUB(self): self.assertEqual(0b1101101000010000, int(compiler.parse_line('SUB 2 3')))
def test_MOV(self): self.assertEqual(0b1101101001100000, int(compiler.parse_line('MOV 2 3')))
def test_ST(self): self.assertEqual(0b0101000100000101, int(compiler.parse_line('ST 1 5(2)')))
def test_OUT(self): self.assertEqual(0b1101100011010000, int(compiler.parse_line('OUT 3')))
def test_AND(self): self.assertEqual(0b1101101000100000, int(compiler.parse_line('AND 2 3')))
def test_SRA(self): self.assertEqual(0b1100001010110011, int(compiler.parse_line('SRA 2 3')))
def test_IN(self): self.assertEqual(0b1100001111000000, int(compiler.parse_line('IN 3')))
def test_ADI_sign_ext(self): self.assertEqual(0b1100001001111101, int(compiler.parse_line('ADI 2 -3')))
def test_ADI(self): self.assertEqual(0b1100001001110011, int(compiler.parse_line('ADI 2 3')))
def test_LD(self): self.assertEqual(0b0001000100000101, int(compiler.parse_line('LD 1 5(2)')))
def test_BNE(self): self.assertEqual(0b1011101100001111, int(compiler.parse_line('BNE 15')))
def test_HLT(self): self.assertEqual(0b1100000011110000, int(compiler.parse_line('HLT')))
def test_BNE_sign_ext(self): self.assertEqual(0b1011101111110001, int(compiler.parse_line('BNE -15')))
def test_label(self): self.assertEqual('hoge', compiler.parse_line('hoge:').name)
def test_XOR(self): self.assertEqual(0b1101101001000000, int(compiler.parse_line('XOR 2 3')))
def test_CMP(self): self.assertEqual(0b1101101001010000, int(compiler.parse_line('CMP 2 3')))