Esempio n. 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()
Esempio n. 2
0
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);
Esempio n. 3
0
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);
Esempio n. 4
0
 def test_le_AB_e_exibe_AB(self):
     programa = ',.,.'
     entrada = 'AB'
     saida = '\x41\x42'
     self.assertEquals(saida, brainfuck(programa, entrada))
Esempio n. 5
0
 def test_le_A_e_exibe_A(self):
     programa = ',.'
     entrada = 'A'
     saida = '\x41'
     self.assertEquals(saida, brainfuck(programa, entrada))
Esempio n. 6
0
 def test_exibe_0_1_2(self):
     programa = '.+.+.'
     entrada = ''
     saida = '\x00\x01\x02'
     self.assertEquals(saida, brainfuck(programa, entrada))
Esempio n. 7
0
	def test_exibe_255(self):
		programa = '-.'
		entrada = ''
		saida = '\xFF'
		self.assertEquals(saida, brainfuck(programa, entrada))
Esempio n. 8
0
 def test_a(self):
     self.assertEqual(brainfuck("a", ",."), "a")
Esempio n. 9
0
	def test_exibe_0_1_2(self):
		programa = '.+.+.'
		entrada = ''
		saida = '\x00\x01\x02'
		self.assertEquals(saida, brainfuck(programa, entrada))
Esempio n. 10
0
 def test_incrementa_anda_volta_na_fita(self):
     programa = '+><.'
     entrada = ''
     saida = '\x01'
     self.assertEquals(saida, brainfuck(programa, entrada))
Esempio n. 11
0
	def test_le_AB_exibe_BA(self):
		programa = ',>,.<.'
		entrada = 'AB'
		saida = 'BA'
		self.assertEquals(saida, brainfuck(programa, entrada))
Esempio n. 12
0
	def test_incrementa_le_entrada_vazia_e_exibe_0(self):
		programa = '+,.'
		entrada = ''
		saida = '\x00'
		self.assertEquals(saida, brainfuck(programa, entrada))
Esempio n. 13
0
	def test_incrementa_anda_volta_na_fita(self):
		programa = '+><.'
		entrada = ''
		saida = '\x01'
		self.assertEquals(saida, brainfuck(programa, entrada))
Esempio n. 14
0
	def test_le_AB_e_exibe_AB(self):
		programa = ',.,.'
		entrada = 'AB'
		saida = '\x41\x42'
		self.assertEquals(saida, brainfuck(programa, entrada))
Esempio n. 15
0
	def test_exibe_0(self):
		programa = '.'
		entrada = ''
		saida = '\x00'
		self.assertEquals(saida, brainfuck(programa, entrada))
Esempio n. 16
0
	def test_le_A_e_exibe_A(self):
		programa = ',.'
		entrada = 'A'
		saida = '\x41'
		self.assertEquals(saida, brainfuck(programa, entrada))
Esempio n. 17
0
 def test_exibe_0(self):
     programa = '.'
     entrada = ''
     saida = '\x00'
     self.assertEquals(saida, brainfuck(programa, entrada))
Esempio n. 18
0
 def test_ab_next_back(self):
     self.assertEqual(brainfuck("aba", ",.>,.<."), "aba")
Esempio n. 19
0
 def test_incrementa_le_entrada_vazia_e_exibe_0(self):
     programa = '+,.'
     entrada = ''
     saida = '\x00'
     self.assertEquals(saida, brainfuck(programa, entrada))
Esempio n. 20
0
 def test_b_decrement(self):
     self.assertEqual(brainfuck("b", ",-."), "a")
Esempio n. 21
0
 def test_le_AB_exibe_BA(self):
     programa = ',>,.<.'
     entrada = 'AB'
     saida = 'BA'
     self.assertEquals(saida, brainfuck(programa, entrada))
Esempio n. 22
0
	def test_incrementa_256_vezes_e_exibe_0(self):
		programa = '+' * 256 + '.'
		entrada = ''
		saida = '\x00'
		self.assertEquals(saida, brainfuck(programa, entrada))
Esempio n. 23
0
 def test_a_increment(self):
     self.assertEqual(brainfuck("a", ",+."), "b")
Esempio n. 24
0
 def test_exibir_o_mesmo_que_leu(self):
     programa = ',[.,]'
     entrada = 'abc'
     saida = 'abc'
     self.assertEquals(saida, brainfuck(programa, entrada))
Esempio n. 25
0
 def test_loop(self):
     self.assertEqual(brainfuck("abab", "[,.>]"), "abab")
Esempio n. 26
0
 def test_exibe_255(self):
     programa = '-.'
     entrada = ''
     saida = '\xFF'
     self.assertEquals(saida, brainfuck(programa, entrada))
Esempio n. 27
0
 def test_incrementa_256_vezes_e_exibe_0(self):
     programa = '+' * 256 + '.'
     entrada = ''
     saida = '\x00'
     self.assertEquals(saida, brainfuck(programa, entrada))
Esempio n. 28
0
	def test_exibir_o_mesmo_que_leu(self):
		programa = ',[.,]'
		entrada = 'abc'
		saida = 'abc'
		self.assertEquals(saida, brainfuck(programa, entrada))