def testSimpleIdentifier(self):
        bytes, _ = assemble_str("""
a = 1
b = 2
b+a b*a
""")
        self.assertEqual((0x03, 0x02), tuple(bytes))
    def testSimpleMacro(self):
        bytes, _ = assemble_str("""
.macro A(a) { a a a a }
.macro B(b) { A(b+1) }
A(1) B(1)
""")
        self.assertEqual((0x01, 0x01, 0x01, 0x01, 0x02, 0x02, 0x02, 0x02),
                         tuple(bytes))
    def testBreakPoints(self):
        bytes, breakpoints = assemble_str("""0 0 0 0 
.breakpoint
0 0 
.breakpoint
18
""")
        self.assertEqual((0, 0, 0, 0, 0, 0, 18), tuple(bytes))
        self.assertSetEqual({4, 6}, breakpoints)
 def testNoByte(self):
     bytes, _ = assemble_str("""""")
     self.assertEqual((), tuple(bytes))
 def testSimpleOperatiosn(self):
     bytes, _ = assemble_str("""2+1 1<<5 2/3 2*5 1024/1000""")
     self.assertEqual((0x03, 0x20, 0x00, 0x0A, 0x01), tuple(bytes))
 def testSimpleBytes(self):
     bytes, _ = assemble_str("""-1 0x0 5 18 3000""")
     self.assertEqual((0xFF, 0x00, 0x05, 0x12, 0xB8), tuple(bytes))