Skip to content

Commit bd90c75

Browse files
committed
test: Improve ComposablePass tests (#2688)
Suggestion missing from #2636, makes sure we test the actual implementation rather than the dummy one. drive-by: Improve `name` impl for ComposedPass
1 parent fcd1026 commit bd90c75

File tree

2 files changed

+16
-12
lines changed

2 files changed

+16
-12
lines changed

hugr-py/src/hugr/passes/_composable_pass.py

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -52,3 +52,7 @@ def __call__(self, hugr: Hugr):
5252
"""Call all of the passes in sequence."""
5353
for comp_pass in self.passes:
5454
comp_pass(hugr)
55+
56+
@property
57+
def name(self) -> str:
58+
return f"Composed({ ', '.join(pass_.name for pass_ in self.passes) })"

hugr-py/tests/test_passes.py

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -7,20 +7,20 @@ class MyDummyPass(ComposablePass):
77
def __call__(self, hugr: Hugr) -> None:
88
return self(hugr)
99

10-
def then(self, other: ComposablePass) -> ComposablePass:
11-
return ComposedPass([self, other])
12-
13-
@property
14-
def name(self) -> str:
15-
return "Dummy"
16-
1710
dummy = MyDummyPass()
1811

19-
composed = dummy.then(dummy)
12+
composed_dummies = dummy.then(dummy)
2013

2114
my_composed_pass = ComposedPass([dummy, dummy])
22-
2315
assert my_composed_pass.passes == [dummy, dummy]
24-
assert isinstance(my_composed_pass, ComposablePass)
25-
assert isinstance(composed, ComposablePass)
26-
assert dummy.name == "Dummy"
16+
17+
assert isinstance(composed_dummies, ComposablePass)
18+
assert composed_dummies == my_composed_pass
19+
20+
assert dummy.name == "MyDummyPass"
21+
assert composed_dummies.name == "Composed(MyDummyPass, MyDummyPass)"
22+
23+
assert (
24+
composed_dummies.then(my_composed_pass).name
25+
== "Composed(MyDummyPass, MyDummyPass, MyDummyPass, MyDummyPass)"
26+
)

0 commit comments

Comments
 (0)