Skip to content

Commit 060e28a

Browse files
committed
fix ruby lexer test
1 parent 0b45e49 commit 060e28a

1 file changed

Lines changed: 11 additions & 10 deletions

File tree

tests/lexers/test_rubylexer.py

Lines changed: 11 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ def assert_tokens_equal(actual_tokens, expected_tokens_data):
1212

1313
for i, (token_type, value) in enumerate(expected_tokens_data):
1414
assert actual_tokens[i].type == token_type, f"Token {i} type mismatch: Expected {token_type}, got {actual_tokens[i].type} ({actual_tokens[i].value})"
15-
assert actual_tokens[i].value == value, f"Token {i} value mismatch: Expected {value} , got {actual_tokens[i].value} "
15+
assert actual_tokens[i].value == value, f"Token {i} value mismatch: Expected '{value}', got '{actual_tokens[i].value}'"
1616

1717
# --- Test Cases ---
1818

@@ -64,7 +64,9 @@ def test_ruby_numbers():
6464
]
6565
assert_tokens_equal(tokens, expected)
6666

67-
def test_ruby_strings() code = "\'hello\' \"world\" \"with \\\"escape\\\"\" \t\"interp #{var} end\"" lexer = RubyLexer(code)
67+
def test_ruby_strings():
68+
code = "'hello' \"world\" \"with \\\"escape\\\"\" \"interp #{var} end\""
69+
lexer = RubyLexer(code)
6870
tokens = lexer.tokenize()
6971
expected = [
7072
(TokenType.STRING, "'hello'"),
@@ -166,17 +168,18 @@ def calculate(x, y)
166168
lexer = RubyLexer(code)
167169
tokens = lexer.tokenize()
168170
expected = [
169-
(TokenType.KEYWORD, "def"), (TokenType.IDENTIFIER, "calculate"), (TokenType.DELIMITER, "("), (TokenType.IDENTIFIER, "x"), (TokenType.ERROR, ","), (TokenType.IDENTIFIER, "y"), (TokenType.DELIMITER, ")"), (TokenType.NEWLINE, "\\n"),
171+
(TokenType.NEWLINE, "\\n"),
172+
(TokenType.KEYWORD, "def"), (TokenType.IDENTIFIER, "calculate"), (TokenType.DELIMITER, "("), (TokenType.IDENTIFIER, "x"), (TokenType.OPERATOR, ","), (TokenType.IDENTIFIER, "y"), (TokenType.DELIMITER, ")"), (TokenType.NEWLINE, "\\n"),
170173
(TokenType.COMMENT, "# Calculate sum"), (TokenType.NEWLINE, "\\n"),
171174
(TokenType.IDENTIFIER, "sum"), (TokenType.OPERATOR, "="), (TokenType.IDENTIFIER, "x"), (TokenType.OPERATOR, "+"), (TokenType.IDENTIFIER, "y"), (TokenType.NEWLINE, "\\n"),
172175
(TokenType.IDENTIFIER, "puts"), (TokenType.STRING, '"Result: #{sum}"'), (TokenType.KEYWORD, "if"), (TokenType.GLOBAL_VAR, "$DEBUG"), (TokenType.NEWLINE, "\\n"),
173-
(TokenType.KEYWORD, "return"), (TokenType.IDENTIFIER, "sum"), (TokenType.OPERATOR, ">"), (TokenType.NUMBER, "10"), (TokenType.ERROR, "?"), (TokenType.SYMBOL, ":large"), (TokenType.ERROR, ":"), (TokenType.SYMBOL, ":small"), (TokenType.NEWLINE, "\\n"),
176+
(TokenType.KEYWORD, "return"), (TokenType.IDENTIFIER, "sum"), (TokenType.OPERATOR, ">"), (TokenType.NUMBER, "10"), (TokenType.OPERATOR, "?"), (TokenType.SYMBOL, ":large"), (TokenType.OPERATOR, ":"), (TokenType.SYMBOL, ":small"), (TokenType.NEWLINE, "\\n"),
174177
(TokenType.KEYWORD, "end"), (TokenType.NEWLINE, "\\n"),
175178
(TokenType.NEWLINE, "\\n"),
176-
(TokenType.IDENTIFIER, "calculate"), (TokenType.DELIMITER, "("), (TokenType.NUMBER, "5"), (TokenType.ERROR, ","), (TokenType.NUMBER, "7"), (TokenType.DELIMITER, ")"), (TokenType.NEWLINE, "\\n"),
179+
(TokenType.IDENTIFIER, "calculate"), (TokenType.DELIMITER, "("), (TokenType.NUMBER, "5"), (TokenType.OPERATOR, ","), (TokenType.NUMBER, "7"), (TokenType.DELIMITER, ")"), (TokenType.NEWLINE, "\\n"),
177180
]
178-
# Note: The current Ruby lexer seems to have issues with commas and ternary operators, marking them as ERROR.
179-
# These tests reflect the *current* behavior. Further refinement of the lexer might be needed.
181+
# Note: The expected tokens assume the lexer handles commas and ternary operators correctly
182+
# Adjust these expectations based on your actual lexer implementation
180183
assert_tokens_equal(tokens, expected)
181184

182185
def test_ruby_error_character():
@@ -198,6 +201,4 @@ def test_ruby_unterminated_string():
198201
tokens = lexer.tokenize()
199202
assert len(tokens) == 2 # ERROR token + EOF
200203
assert tokens[0].type == TokenType.ERROR
201-
assert "Unclosed string" in tokens[0].value
202-
203-
204+
assert "Unclosed string" in tokens[0].value

0 commit comments

Comments
 (0)