Exemplo n.º 1
0
def test_get_op_string():
    noise_model = PasqalNoiseModel()
    p_qubits = ThreeDGridQubit.cube(4)
    circuit = cirq.Circuit()
    circuit.append(cirq.ops.H(p_qubits[0]))

    with pytest.raises(ValueError, match='Got unknown operation:'):
        for moment in circuit._moments:
            _ = noise_model.noisy_moment(moment, p_qubits)

    with pytest.raises(ValueError, match='Got unknown operation:'):
        _ = cirq.pasqal.pasqal_noise_model.get_op_string(circuit)
Exemplo n.º 2
0
def test_cube():
    assert ThreeDGridQubit.cube(2, top=1, left=1, upper=1) == [
        ThreeDGridQubit(1, 1, 1),
        ThreeDGridQubit(1, 1, 2),
        ThreeDGridQubit(1, 2, 1),
        ThreeDGridQubit(1, 2, 2),
        ThreeDGridQubit(2, 1, 1),
        ThreeDGridQubit(2, 1, 2),
        ThreeDGridQubit(2, 2, 1),
        ThreeDGridQubit(2, 2, 2)
    ]
    assert ThreeDGridQubit.cube(2) == [
        ThreeDGridQubit(0, 0, 0),
        ThreeDGridQubit(0, 0, 1),
        ThreeDGridQubit(0, 1, 0),
        ThreeDGridQubit(0, 1, 1),
        ThreeDGridQubit(1, 0, 0),
        ThreeDGridQubit(1, 0, 1),
        ThreeDGridQubit(1, 1, 0),
        ThreeDGridQubit(1, 1, 1),
    ]
Exemplo n.º 3
0
def test_default_noise():
    noise_model = PasqalNoiseModel()
    p_qubits = ThreeDGridQubit.cube(4)
    p_device = PasqalDevice(control_radius=2, qubits=p_qubits)
    circuit = cirq.Circuit()
    Gate_l = cirq.ops.CZPowGate(exponent=2)
    circuit.append(Gate_l.on(p_qubits[0], p_qubits[1]))
    p_circuit = cirq.Circuit(circuit, device=p_device)
    n_mts = []
    for moment in p_circuit._moments:
        n_mts.append(noise_model.noisy_moment(moment, p_qubits))

    assert n_mts == [[
        cirq.ops.CZPowGate(exponent=2).on(ThreeDGridQubit(0, 0, 0),
                                          ThreeDGridQubit(0, 0, 1)),
        cirq.depolarize(p=0.05).on(ThreeDGridQubit(0, 0, 0)),
        cirq.depolarize(p=0.05).on(ThreeDGridQubit(0, 0, 1))
    ]]
Exemplo n.º 4
0
def test_noisy_moments():
    noise_model = PasqalNoiseModel()
    p_qubits = ThreeDGridQubit.cube(4)
    p_device = PasqalDevice(control_radius=2, qubits=p_qubits)
    circuit = cirq.Circuit()
    circuit.append(cirq.ops.CZ(p_qubits[0], p_qubits[1]))
    circuit.append(cirq.ops.Z(p_qubits[1]))
    p_circuit = cirq.Circuit(circuit, device=p_device)

    n_mts = []
    for moment in p_circuit._moments:
        n_mts.append(noise_model.noisy_moment(moment, p_qubits))

    assert n_mts == [[
        cirq.ops.CZ.on(ThreeDGridQubit(0, 0, 0), ThreeDGridQubit(0, 0, 1)),
        cirq.depolarize(p=0.03).on(ThreeDGridQubit(0, 0, 0)),
        cirq.depolarize(p=0.03).on(ThreeDGridQubit(0, 0, 1))
    ],
                     [
                         cirq.ops.Z.on(ThreeDGridQubit(0, 0, 1)),
                         cirq.depolarize(p=0.01).on(ThreeDGridQubit(0, 0, 1))
                     ]]
Exemplo n.º 5
0
def test_qubit_set():
    assert cubic_device(2, 2,
                        2).qubit_set() == set(ThreeDGridQubit.cube(2, 0, 0, 0))