def test_apply_gate_noise_1QubitNoise_1_unitary(circuit_2qubit_with_unitary, noise_1qubit): circ = circuit_2qubit_with_unitary.apply_gate_noise( noise_1qubit, target_unitary=np.array([[0, 1], [1, 0]]), target_qubits=[0, 1], ) expected = (Circuit().add_instruction(Instruction( Gate.X(), 0)).add_instruction(Instruction(Gate.Y(), 1)).add_instruction( Instruction(Gate.X(), 0)).add_instruction( Instruction(Gate.X(), 1)).add_instruction( Instruction(Gate.CNot(), [0, 1])).add_instruction( Instruction( Gate.Unitary(np.array([[0, 1], [1, 0]]), "U"), 0)).add_instruction(Instruction(noise_1qubit, 0))) assert circ == expected
def basis_rotation_gates(self) -> Tuple[Gate]: return tuple([ Gate.Unitary( matrix=self._get_eigendecomposition()["eigenvectors_conj_t"]) ])