def test_transform_qubits_wrong_number(): real = np.zeros(shape=(16, 16)) qreg = [cirq.NamedQubit("Dummy 1"), cirq.NamedQubit("Dummy 2")] ideal = cirq.Circuit(cirq.ops.CNOT.on(*qreg)) noisy_op = NoisyOperation(ideal, real) with pytest.raises(ValueError, match="Expected 2 qubits but received"): noisy_op.transform_qubits(qubits=[cirq.NamedQubit("new")])
def test_transform_qubits_multiple_qubits(qubits, real): qreg = [cirq.NamedQubit("Dummy 1"), cirq.NamedQubit("Dummy 2")] ideal = cirq.Circuit(cirq.ops.H.on(qreg[0]), cirq.ops.CNOT.on(*qreg)) noisy_op = NoisyOperation(ideal, real) assert set(noisy_op.qubits) != set(qubits) if real is not None: assert np.allclose(noisy_op.real_matrix, real) noisy_op.transform_qubits(qubits) assert set(noisy_op.qubits) == set(qubits) if real is not None: assert np.allclose(noisy_op.real_matrix, real)