def test_code_generation_3(self): self.maxDiff = None scanner = Scanner(self.valid_input_3) Parser(scanner, DEBUG=False, OUTPUT=False) with open('output/output.txt', 'r') as output_file: output = output_file.read() self.assertEqual(output, self.expected_output_3)
def test_token_column(self): scanner = Scanner(self.valid_input, OUTPUT=False) expected_columns = [ 0, 4, 6, 8, 9, 0, 2, 4, 6, 8, 9, 0, 3, 5, 8, 9 ] for expected_column in expected_columns: current_token = scanner() self.assertEqual(current_token.get_column(), expected_column)
def test_token_row(self): scanner = Scanner(self.valid_input, OUTPUT=False) expected_rows = [ 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 4, 4, 4, 4, 4 ] for expected_row in expected_rows: current_token = scanner() self.assertEqual(current_token.get_row(), expected_row)
def test_token_lexeme(self): scanner = Scanner(self.valid_input, OUTPUT=False) expected_lexemes = [ 'int', 'a', '=', '0', ';', 'a', '=', '2', '+', '2', ';', 'if', 'a', '==', '0', ';' ] for expected_lexeme in expected_lexemes: current_token = scanner() self.assertEqual(current_token.get_lexeme(), expected_lexeme)
def test_invalid_input_lexeme(self): scanner = Scanner(self.invalid_input, OUTPUT=False) expected_lexemes = [ 'if', '(', 'b', '==', ')', '{', 'a', '=', '3', ';', 'e', '=', '7', ';', '}', 'else' ] for expected_lexeme in expected_lexemes: current_token = scanner() self.assertEqual(current_token.get_lexeme(), expected_lexeme)
def test_invalid_input_types(self): scanner = Scanner(self.invalid_input, OUTPUT=False) expected_tokens = [ TokenType.KEYWORD, TokenType.SYMBOL, TokenType.ID, TokenType.SYMBOL, TokenType.SYMBOL, TokenType.SYMBOL, TokenType.ID, TokenType.SYMBOL, TokenType.NUM, TokenType.SYMBOL, TokenType.ID, TokenType.SYMBOL, TokenType.NUM, TokenType.SYMBOL, TokenType.SYMBOL, TokenType.KEYWORD ] for expected_token in expected_tokens: current_token = scanner() self.assertEqual(current_token.get_type(), expected_token)
def test_parse_tree(self, mocked_analyzer): self.maxDiff = None scanner = Scanner(self.valid_input, OUTPUT=False) parser = Parser(scanner, OUTPUT=False) parse_tree = parser.get_parse_tree() self.assertEqual(parse_tree, expected_parse_tree)