def test_apply_noise_to_gates_2QubitNoise_2( circuit_3qubit, noise_2qubit, noise_1qubit, noise_1qubit_2 ): circ = apply_noise_to_gates( circuit_3qubit, [noise_1qubit, noise_2qubit, noise_1qubit_2], target_gates=[Gate.CZ], target_qubits=QubitSet([1, 2]), ) expected = ( Circuit() .add_instruction(Instruction(Gate.X(), 0)) .add_instruction(Instruction(Gate.Y(), 1)) .add_instruction(Instruction(Gate.CNot(), [0, 1])) .add_instruction(Instruction(Gate.Z(), 2)) .add_instruction(Instruction(Gate.CZ(), [2, 1])) .add_instruction(Instruction(noise_1qubit, 1)) .add_instruction(Instruction(noise_1qubit, 2)) .add_instruction(Instruction(noise_2qubit, [2, 1])) .add_instruction(Instruction(noise_1qubit_2, 1)) .add_instruction(Instruction(noise_1qubit_2, 2)) .add_instruction(Instruction(Gate.CNot(), [0, 2])) .add_instruction(Instruction(Gate.CZ(), [1, 2])) .add_instruction(Instruction(noise_1qubit, 1)) .add_instruction(Instruction(noise_1qubit, 2)) .add_instruction(Instruction(noise_2qubit, [1, 2])) .add_instruction(Instruction(noise_1qubit_2, 1)) .add_instruction(Instruction(noise_1qubit_2, 2)) ) assert circ == expected
def cz(control: QubitInput, target: QubitInput) -> Instruction: """Registers this function into the circuit class. Args: control (Qubit or int): Control qubit index. target (Qubit or int): Target qubit index. Returns: Instruction: CZ instruction. Examples: >>> circ = Circuit().cz(0, 1) """ return Instruction(Gate.CZ(), target=[control, target])