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()
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);
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);
def test_le_AB_e_exibe_AB(self): programa = ',.,.' entrada = 'AB' saida = '\x41\x42' self.assertEquals(saida, brainfuck(programa, entrada))
def test_le_A_e_exibe_A(self): programa = ',.' entrada = 'A' saida = '\x41' self.assertEquals(saida, brainfuck(programa, entrada))
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))
def test_a(self): self.assertEqual(brainfuck("a", ",."), "a")
def test_incrementa_anda_volta_na_fita(self): programa = '+><.' entrada = '' saida = '\x01' self.assertEquals(saida, brainfuck(programa, entrada))
def test_le_AB_exibe_BA(self): programa = ',>,.<.' entrada = 'AB' saida = 'BA' self.assertEquals(saida, brainfuck(programa, entrada))
def test_incrementa_le_entrada_vazia_e_exibe_0(self): programa = '+,.' entrada = '' saida = '\x00' self.assertEquals(saida, brainfuck(programa, entrada))
def test_exibe_0(self): programa = '.' entrada = '' saida = '\x00' self.assertEquals(saida, brainfuck(programa, entrada))
def test_ab_next_back(self): self.assertEqual(brainfuck("aba", ",.>,.<."), "aba")
def test_b_decrement(self): self.assertEqual(brainfuck("b", ",-."), "a")
def test_incrementa_256_vezes_e_exibe_0(self): programa = '+' * 256 + '.' entrada = '' saida = '\x00' self.assertEquals(saida, brainfuck(programa, entrada))
def test_a_increment(self): self.assertEqual(brainfuck("a", ",+."), "b")
def test_exibir_o_mesmo_que_leu(self): programa = ',[.,]' entrada = 'abc' saida = 'abc' self.assertEquals(saida, brainfuck(programa, entrada))
def test_loop(self): self.assertEqual(brainfuck("abab", "[,.>]"), "abab")