Skip to content

Commit 49616d8

Browse files
Remove partial runnability checks in Pattern.add
1 parent 745a98c commit 49616d8

File tree

2 files changed

+8
-8
lines changed

2 files changed

+8
-8
lines changed

graphix/pattern.py

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -124,14 +124,11 @@ def add(self, cmd: Command) -> None:
124124
MBQC command.
125125
"""
126126
if cmd.kind == CommandKind.N:
127-
if cmd.node in self.__output_nodes:
128-
raise RunnabilityError(cmd, cmd.node, RunnabilityErrorReason.AlreadyActive)
129127
self.__n_node += 1
130128
self.__output_nodes.append(cmd.node)
131129
elif cmd.kind == CommandKind.M:
132-
if cmd.node not in self.__output_nodes:
133-
raise RunnabilityError(cmd, cmd.node, RunnabilityErrorReason.AlreadyMeasured)
134-
self.__output_nodes.remove(cmd.node)
130+
if cmd.node in self.__output_nodes:
131+
self.__output_nodes.remove(cmd.node)
135132
self.__seq.append(cmd)
136133

137134
def extend(self, *cmds: Command | Iterable[Command]) -> None:

tests/test_pattern.py

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -692,13 +692,15 @@ def test_check_runnability_success(self, fx_rng: Generator) -> None:
692692
pattern.check_runnability()
693693

694694
def test_check_runnability_failures(self) -> None:
695+
pattern = Pattern(input_nodes=[0], cmds=[N(0)])
695696
with pytest.raises(RunnabilityError) as exc_info:
696-
pattern = Pattern(input_nodes=[0], cmds=[N(0)])
697+
pattern.check_runnability()
697698
assert exc_info.value.node == 0
698699
assert exc_info.value.reason == RunnabilityErrorReason.AlreadyActive
699700

701+
pattern = Pattern(cmds=[N(1), N(1)])
700702
with pytest.raises(RunnabilityError) as exc_info:
701-
pattern = Pattern(cmds=[N(1), N(1)])
703+
pattern.check_runnability()
702704
assert exc_info.value.node == 1
703705
assert exc_info.value.reason == RunnabilityErrorReason.AlreadyActive
704706

@@ -720,8 +722,9 @@ def test_check_runnability_failures(self) -> None:
720722
assert exc_info.value.node == 0
721723
assert exc_info.value.reason == RunnabilityErrorReason.NotYetMeasured
722724

725+
pattern = Pattern(cmds=[N(1), M(1), M(1)])
723726
with pytest.raises(RunnabilityError) as exc_info:
724-
pattern = Pattern(cmds=[N(1), M(1), M(1)])
727+
pattern.check_runnability()
725728
assert exc_info.value.node == 1
726729
assert exc_info.value.reason == RunnabilityErrorReason.AlreadyMeasured
727730

0 commit comments

Comments
 (0)