Files
ziffers-python/tests/test_parser.py

46 lines
1.1 KiB
Python
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

from ziffers import *
import pytest
def test_can_parse():
expressions = [
"[1 [2 3]]",
"(1 (1,3) 1..3)",
"_^ q _qe^3 qww_4 _123 <1 2>",
"q _2 _ 3 ^ 343",
"2 qe2 e4",
"q 2 <3 343>",
"q (2 <3 343 (3 4)>)",
]
results = []
for expression in expressions:
try:
print(f"Parsing expression: {expression}")
result = parse_expression(expression)
results.append(True)
except Exception as e:
print(e)
results.append(False)
# Return true if all the results are true (succesfully parsed)
print(results)
assert all(results)
@pytest.mark.parametrize(
"pattern",
[
"1 2 3",
"q3 e4 s5",
],
)
def test_parsing_text(pattern: str):
assert parse_expression(pattern).text == pattern
@pytest.mark.parametrize(
"pattern,expected",
[
("1 2 3", [1,2,3]),
("q2 eq3", [2,3]),
],
)
def test_pcs(pattern: str, expected: list):
assert parse_expression(pattern).pcs == expected