def test_empty_returning_main_block(self):
     block = InstructionBlock()
     self.assertEqual(0, block.get_start_address())
     self.assertIsNone(block.return_ip)
     ip = InstructionPointer(InstructionBlock(), 7)
     block.return_ip = ip # must have no effect
     self.__verify_block(block, [], [STOPInstruction()])
 def test_empty_relative_block(self):
     return_block = InstructionBlock()
     block = InstructionBlock(return_block)
     self.assertRaises(InstructionBlockNotYetPlacedException, block.get_start_address)
     self.assertRaises(MissingReturnAddressException, block.compile_sequence)
     ip = InstructionPointer(return_block, 7)
     block.return_ip = ip
     self.__verify_block(block, [], [GOTOInstruction(ip.block, ip.offset)])