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
Ejemplo n.º 2
0
 def basis_rotation_gates(self) -> Tuple[Gate]:
     return tuple([
         Gate.Unitary(
             matrix=self._get_eigendecomposition()["eigenvectors_conj_t"])
     ])