コード例 #1
0
ファイル: tests.py プロジェクト: toddsifleet/brainfuck_py
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))
コード例 #7
0
	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")
コード例 #9
0
	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))