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)
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), ]
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)) ]]
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)) ]]
def test_qubit_set(): assert cubic_device(2, 2, 2).qubit_set() == set(ThreeDGridQubit.cube(2, 0, 0, 0))