Exemplo n.º 1
0
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")])
Exemplo n.º 2
0
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)