示例#1
0
def run_program(program, input = None):
    old_stdout = sys.stdout
    old_stdin = sys.stdin
    try:
        out = StringIO()
        sys.stdout = out
        if input is not None:
            input = StringIO(input) 
            sys.stdin = input
        brainfuck.brainfuck(program)
    finally:
        sys.stdout = old_stdout
        sys.stdin = old_stdin

    return out.getvalue().strip()
示例#2
0
文件: brainy.py 项目: mohlendo/brainy
def UpdateProgram(blip, context):
  logging.debug('update program')
  result = brainfuck(blip.document.GetText())
  if result:
    logging.debug('updated brainfuck result: %s ' % result)
    inline_blip = blip.GetDocument().AppendInlineBlip()
    inline_blip.document.SetText(result)
    inline_blip.document.AnnotateDocument('brainy-robot.result',id);
示例#3
0
文件: brainy.py 项目: mohlendo/brainy
def HandleNewProgram(blip, context):
  logging.debug('handle new program')
  result = brainfuck(blip.GetDocument().GetText())
  logging.debug('brainfuck result: %s ' % result)
  if result:
    id = uuid.uuid4().urn
    blip.GetDocument().AnnotateDocument('brainy-robot.brainfuck',id);
    inline_blip = blip.GetDocument().AppendInlineBlip()
    inline_blip.document.SetText(result)
    inline_blip.document.AnnotateDocument('brainy-robot.result',id);
示例#4
0
 def test_le_AB_e_exibe_AB(self):
     programa = ',.,.'
     entrada = 'AB'
     saida = '\x41\x42'
     self.assertEquals(saida, brainfuck(programa, entrada))
示例#5
0
 def test_le_A_e_exibe_A(self):
     programa = ',.'
     entrada = 'A'
     saida = '\x41'
     self.assertEquals(saida, brainfuck(programa, entrada))
示例#6
0
 def test_exibe_0_1_2(self):
     programa = '.+.+.'
     entrada = ''
     saida = '\x00\x01\x02'
     self.assertEquals(saida, brainfuck(programa, entrada))
	def test_exibe_255(self):
		programa = '-.'
		entrada = ''
		saida = '\xFF'
		self.assertEquals(saida, brainfuck(programa, entrada))
示例#8
0
 def test_a(self):
     self.assertEqual(brainfuck("a", ",."), "a")
	def test_exibe_0_1_2(self):
		programa = '.+.+.'
		entrada = ''
		saida = '\x00\x01\x02'
		self.assertEquals(saida, brainfuck(programa, entrada))
示例#10
0
 def test_incrementa_anda_volta_na_fita(self):
     programa = '+><.'
     entrada = ''
     saida = '\x01'
     self.assertEquals(saida, brainfuck(programa, entrada))
示例#11
0
	def test_le_AB_exibe_BA(self):
		programa = ',>,.<.'
		entrada = 'AB'
		saida = 'BA'
		self.assertEquals(saida, brainfuck(programa, entrada))
示例#12
0
	def test_incrementa_le_entrada_vazia_e_exibe_0(self):
		programa = '+,.'
		entrada = ''
		saida = '\x00'
		self.assertEquals(saida, brainfuck(programa, entrada))
示例#13
0
	def test_incrementa_anda_volta_na_fita(self):
		programa = '+><.'
		entrada = ''
		saida = '\x01'
		self.assertEquals(saida, brainfuck(programa, entrada))
示例#14
0
	def test_le_AB_e_exibe_AB(self):
		programa = ',.,.'
		entrada = 'AB'
		saida = '\x41\x42'
		self.assertEquals(saida, brainfuck(programa, entrada))
示例#15
0
	def test_exibe_0(self):
		programa = '.'
		entrada = ''
		saida = '\x00'
		self.assertEquals(saida, brainfuck(programa, entrada))
示例#16
0
	def test_le_A_e_exibe_A(self):
		programa = ',.'
		entrada = 'A'
		saida = '\x41'
		self.assertEquals(saida, brainfuck(programa, entrada))
示例#17
0
 def test_exibe_0(self):
     programa = '.'
     entrada = ''
     saida = '\x00'
     self.assertEquals(saida, brainfuck(programa, entrada))
示例#18
0
 def test_ab_next_back(self):
     self.assertEqual(brainfuck("aba", ",.>,.<."), "aba")
示例#19
0
 def test_incrementa_le_entrada_vazia_e_exibe_0(self):
     programa = '+,.'
     entrada = ''
     saida = '\x00'
     self.assertEquals(saida, brainfuck(programa, entrada))
示例#20
0
 def test_b_decrement(self):
     self.assertEqual(brainfuck("b", ",-."), "a")
示例#21
0
 def test_le_AB_exibe_BA(self):
     programa = ',>,.<.'
     entrada = 'AB'
     saida = 'BA'
     self.assertEquals(saida, brainfuck(programa, entrada))
示例#22
0
	def test_incrementa_256_vezes_e_exibe_0(self):
		programa = '+' * 256 + '.'
		entrada = ''
		saida = '\x00'
		self.assertEquals(saida, brainfuck(programa, entrada))
示例#23
0
 def test_a_increment(self):
     self.assertEqual(brainfuck("a", ",+."), "b")
示例#24
0
 def test_exibir_o_mesmo_que_leu(self):
     programa = ',[.,]'
     entrada = 'abc'
     saida = 'abc'
     self.assertEquals(saida, brainfuck(programa, entrada))
示例#25
0
 def test_loop(self):
     self.assertEqual(brainfuck("abab", "[,.>]"), "abab")
示例#26
0
 def test_exibe_255(self):
     programa = '-.'
     entrada = ''
     saida = '\xFF'
     self.assertEquals(saida, brainfuck(programa, entrada))
示例#27
0
 def test_incrementa_256_vezes_e_exibe_0(self):
     programa = '+' * 256 + '.'
     entrada = ''
     saida = '\x00'
     self.assertEquals(saida, brainfuck(programa, entrada))
示例#28
0
	def test_exibir_o_mesmo_que_leu(self):
		programa = ',[.,]'
		entrada = 'abc'
		saida = 'abc'
		self.assertEquals(saida, brainfuck(programa, entrada))