diff --git a/src/qibo/transpiler/placer.py b/src/qibo/transpiler/placer.py index 1399f85ea2..c67e664fc2 100644 --- a/src/qibo/transpiler/placer.py +++ b/src/qibo/transpiler/placer.py @@ -126,7 +126,7 @@ def __call__(self, circuit: Circuit): """ assert_placement(circuit, self.connectivity) gates_qubits_pairs = _find_gates_qubits_pairs(circuit) - if len(gates_qubits_pairs) < 3: + if len(gates_qubits_pairs) < 2: raise_error( ValueError, "Circuit must contain at least two two-qubit gates " diff --git a/tests/test_transpiler_placer.py b/tests/test_transpiler_placer.py index 13fef50904..65dcbd7bbd 100644 --- a/tests/test_transpiler_placer.py +++ b/tests/test_transpiler_placer.py @@ -93,6 +93,16 @@ def test_subgraph_restricted(star_connectivity): assert_placement(circuit, restricted_connectivity) +def test_subgraph_leasttwoqubitgates(star_connectivity): + circuit = Circuit(5) + circuit.add(gates.CNOT(0, 3)) + circuit.add(gates.CNOT(1, 2)) + connectivity = star_connectivity() + placer = Subgraph(connectivity=connectivity) + placer(circuit) + assert_placement(circuit, connectivity) + + @pytest.mark.parametrize("reps", [1, 10, 100]) @pytest.mark.parametrize("names", [["A", "B", "C", "D", "E"], [0, 1, 2, 3, 4]]) def test_random(reps, names, star_connectivity):