예제 #1
0
 def test_integer_stream(self):
     tokenstream_oracle = TokenStream(
         [Integer(0, 152),
          InputCharCell(3),
          Integer(6, 546)])
     actual_tokenstream = Lexer.start('152 DH@   546')
     self.assertEqual(actual_tokenstream, tokenstream_oracle)
예제 #2
0
 def test_io_char_stream(self):
     tokenstream_oracle = TokenStream(
         [OutputCharCell(0),
          InputCharCell(3),
          OutputCharCell(18)])
     actual_tokenstream = Lexer.start('HD@ Del1ghtH4ckers@ HD@')
     self.assertEqual(actual_tokenstream, tokenstream_oracle)
예제 #3
0
 def test_edit_cell_stream(self):
     tokenstream_oracle = TokenStream([
         IncrementCell(0),
         IncrementCell(15),
         IncrementCell(18),
         DecrementCell(21)
     ])
     actual_tokenstream = Lexer.start(
         'H4ck3rs Delight! HD! HD! Del1ghtH4ck3rs!')
     self.assertEqual(actual_tokenstream, tokenstream_oracle)
예제 #4
0
 def test_move_pointer_stream(self):
     tokenstream_oracle = TokenStream([PointerRight(0), PointerLeft(15)])
     actual_tokenstream = Lexer.start('H4ck3rs Delight. Del1ghtH4ck3rs.')
     self.assertEqual(actual_tokenstream, tokenstream_oracle)
예제 #5
0
 def test_separate_integers_as_one_stream(self):
     tokenstream_oracle = TokenStream([Integer(0, 152546)])
     actual_tokenstream = Lexer.start('152          546')
     self.assertEqual(actual_tokenstream, tokenstream_oracle)
예제 #6
0
 def test_io_num_stream(self):
     tokenstream_oracle = TokenStream([OutputNumCell(0), InputNumCell(15)])
     actual_tokenstream = Lexer.start('H4ckers Del1ght= DH=')
     self.assertEqual(actual_tokenstream, tokenstream_oracle)
예제 #7
0
 def run_interpreter(stream):
     token_stream = Lexer.start(stream)
     parsed_stream = Parser.start(token_stream)
     return Interpreter.simulate_statements(parsed_stream)
예제 #8
0
 def test_move_pointer_stream(self):
     tokenstream_oracle = TokenStream([PointerRight(0), PointerLeft(15)])
     actual_tokenstream = Lexer.start('H4ck3rs Delight. Del1ghtH4ck3rs.')
     self.assertEqual(actual_tokenstream, tokenstream_oracle)
예제 #9
0
 def run_interpreter(stream):
     token_stream = Lexer.start(stream)
     parsed_stream = Parser.start(token_stream)
     return Interpreter.simulate_statements(parsed_stream)
예제 #10
0
 def test_separate_integers_as_one_stream(self):
     tokenstream_oracle = TokenStream([Integer(0, 152546)])
     actual_tokenstream = Lexer.start('152          546')
     self.assertEqual(actual_tokenstream, tokenstream_oracle)
예제 #11
0
 def test_integer_stream(self):
     tokenstream_oracle = TokenStream([Integer(0, 152), InputCharCell(3), Integer(6, 546)])
     actual_tokenstream = Lexer.start('152 DH@   546')
     self.assertEqual(actual_tokenstream, tokenstream_oracle)
예제 #12
0
 def test_io_char_stream(self):
     tokenstream_oracle = TokenStream([OutputCharCell(0), InputCharCell(3), OutputCharCell(18)])
     actual_tokenstream = Lexer.start('HD@ Del1ghtH4ckers@ HD@')
     self.assertEqual(actual_tokenstream, tokenstream_oracle)
예제 #13
0
 def test_io_num_stream(self):
     tokenstream_oracle = TokenStream([OutputNumCell(0), InputNumCell(15)])
     actual_tokenstream = Lexer.start('H4ckers Del1ght= DH=')
     self.assertEqual(actual_tokenstream, tokenstream_oracle)
예제 #14
0
 def test_edit_cell_stream(self):
     tokenstream_oracle = TokenStream([IncrementCell(0), IncrementCell(15),
                                       IncrementCell(18), DecrementCell(21)])
     actual_tokenstream = Lexer.start('H4ck3rs Delight! HD! HD! Del1ghtH4ck3rs!')
     self.assertEqual(actual_tokenstream, tokenstream_oracle)