Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Improve grammar syntax #94

Merged
merged 14 commits into from
Feb 26, 2024
4 changes: 2 additions & 2 deletions Testing/objects_testing.py
Original file line number Diff line number Diff line change
Expand Up @@ -178,7 +178,7 @@

cx1 = Complex([a20], "cyt")
cx2 = Complex([s46], "cyt")
cx3 = Complex([s47], "cyt") # K(S{u},T{i})::cyt
cx3 = Complex([s47], "cyt") # K(S{u},T{i})::cyt
cx4 = Complex([s46, a20], "cyt")
cx5 = Complex([s47, a20], "cyt")

Expand Down Expand Up @@ -261,7 +261,7 @@
pairs_5 = [(0, 2), (1, 3), (None, 4)]
rate_5 = Rate("3.0*[K()::cyt]/2.0*v_1")

r5 = Rule(sequence_5, mid_5, compartments_5, complexes_5, pairs_2, rate_5)
r5 = Rule(sequence_5, mid_5, compartments_5, complexes_5, pairs_5, rate_5)

sequence_6 = (s39, s35, s38, s40, s37)
mid_6 = 3
Expand Down
34 changes: 18 additions & 16 deletions Testing/parsing/test_complex.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,57 +2,59 @@


def test_parser():
ret = objects.complex_parser.parse("B(T{s})::cell")
ret = objects.rate_complex_parser.parse("B(T{s})::cell")
assert ret.success
assert ret.data.children[0] == objects.c1

ret = objects.complex_parser.parse("B(T{s}).D().K(T{s},S{s},S{_})::cell")
ret = objects.rate_complex_parser.parse("B(T{s}).D().K(T{s},S{s},S{_})::cell")
assert ret.success
assert ret.data.children[0] == objects.c2

ret = objects.complex_parser.parse("B(T{s}).K(T{s}, S{s}, S{_}).D(S{_},T{p})::cyt")
ret = objects.rate_complex_parser.parse(
"B(T{s}).K(T{s}, S{s}, S{_}).D(S{_},T{p})::cyt"
)
assert ret.success
assert ret.data.children[0] == objects.c3

ret = objects.complex_parser.parse("B(T{s}).T{s}::cyt")
ret = objects.rate_complex_parser.parse("B(T{s}).T{s}::cyt")
assert ret.success
assert ret.data.children[0] == objects.c4

ret = objects.complex_parser.parse("D().D().D().B(T{_}).B(T{_}).B(T{_})::cell")
ret = objects.rate_complex_parser.parse("D().D().D().B(T{_}).B(T{_}).B(T{_})::cell")
assert ret.success
assert ret.data.children[0] == objects.c5

ret = objects.complex_parser.parse("K().K().T{p}::cyt")
ret = objects.rate_complex_parser.parse("K().K().T{p}::cyt")
assert ret.success
assert ret.data.children[0] == objects.c6

ret = objects.complex_parser.parse("T{u}.T{_}::cell")
ret = objects.rate_complex_parser.parse("T{u}.T{_}::cell")
assert ret.success
assert ret.data.children[0] == objects.c7

ret = objects.complex_parser.parse("(T{s})::cell")
ret = objects.rate_complex_parser.parse("(T{s})::cell")
assert not ret.success

ret = objects.complex_parser.parse("()::cell")
ret = objects.rate_complex_parser.parse("()::cell")
assert not ret.success

ret = objects.complex_parser.parse("x::cell")
ret = objects.rate_complex_parser.parse("x::cell")
assert not ret.success

ret = objects.complex_parser.parse("BT{s})::cell")
ret = objects.rate_complex_parser.parse("BT{s})::cell")
assert not ret.success

ret = objects.complex_parser.parse("B(T{s}::cell")
ret = objects.rate_complex_parser.parse("B(T{s}::cell")
assert not ret.success

ret = objects.complex_parser.parse("B(T{s}::cell)")
ret = objects.rate_complex_parser.parse("B(T{s}::cell)")
assert not ret.success

ret = objects.complex_parser.parse("B(T{})::cell")
ret = objects.rate_complex_parser.parse("B(T{})::cell")
assert not ret.success

ret = objects.complex_parser.parse("B(T{s}))::cell")
ret = objects.rate_complex_parser.parse("B(T{s}))::cell")
assert not ret.success

ret = objects.complex_parser.parse("B(T{s})::")
ret = objects.rate_complex_parser.parse("B(T{s})::")
assert not ret.success
2 changes: 2 additions & 0 deletions Testing/test_complex.py
Original file line number Diff line number Diff line change
Expand Up @@ -55,6 +55,7 @@ def test_create_all_compatible(self):
results = set()
with open("Testing/complexes_1.txt") as file:
for complex in file.readlines():
complex = complex.strip()
results.add(objects.rate_complex_parser.parse(complex).data.children[0])

complex = objects.rate_complex_parser.parse(
Expand All @@ -71,6 +72,7 @@ def test_create_all_compatible(self):
results = set()
with open("Testing/complexes_2.txt") as file:
for complex in file.readlines():
complex = complex.strip()
results.add(objects.rate_complex_parser.parse(complex).data.children[0])

complex = objects.rate_complex_parser.parse(
Expand Down
1 change: 1 addition & 0 deletions Testing/test_rule.py
Original file line number Diff line number Diff line change
Expand Up @@ -37,6 +37,7 @@ def test_create_reactions(self):
reactions = set()
with open("Testing/reactions.txt") as file:
for complex in file.readlines():
complex = complex.strip()
rule = objects.rule_parser.parse(complex).data[1]
reactions.add(rule.to_reaction())

Expand Down
2 changes: 2 additions & 0 deletions Testing/test_side.py
Original file line number Diff line number Diff line change
Expand Up @@ -36,10 +36,12 @@ def test_create_all_compatible(self):
results = set()
with open("Testing/complexes_1.txt") as file:
for complex in file.readlines():
complex = complex.strip()
results.add(objects.rate_complex_parser.parse(complex).data.children[0])

with open("Testing/complexes_2.txt") as file:
for complex in file.readlines():
complex = complex.strip()
results.add(objects.rate_complex_parser.parse(complex).data.children[0])

side = "KaiC().KaiC().KaiC().KaiC().KaiC().KaiC()::cyt + 2 KaiB().KaiB().KaiB()::cyt"
Expand Down
Loading
Loading