( Gate.ZZ(angle=0.17), [4, 5], OpenQASMSerializationProperties( qubit_reference_type=QubitReferenceType.VIRTUAL), "zz(0.17) q[4], q[5];", ), ( Gate.ZZ(angle=0.17), [4, 5], OpenQASMSerializationProperties( qubit_reference_type=QubitReferenceType.PHYSICAL), "zz(0.17) $4, $5;", ), ( Gate.I(), [4], OpenQASMSerializationProperties( qubit_reference_type=QubitReferenceType.VIRTUAL), "i q[4];", ), ( Gate.I(), [4], OpenQASMSerializationProperties( qubit_reference_type=QubitReferenceType.PHYSICAL), "i $4;", ), ( Gate.V(), [4],
def i_unitary(): return Unitary(Gate.I().to_matrix())
# or in the "license" file accompanying this file. This file is # distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF # ANY KIND, either express or implied. See the License for the specific # language governing permissions and limitations under the License. import math import numpy as np import pytest from braket.circuits import Gate, Observable from braket.circuits.observables import observable_from_ir from braket.circuits.quantum_operator_helpers import get_pauli_eigenvalues testdata = [ (Observable.I(), Gate.I(), ["i"], (), np.array([1, 1])), (Observable.X(), Gate.X(), ["x"], tuple([Gate.H()]), get_pauli_eigenvalues(1)), ( Observable.Y(), Gate.Y(), ["y"], tuple([Gate.Z(), Gate.S(), Gate.H()]), get_pauli_eigenvalues(1), ), (Observable.Z(), Gate.Z(), ["z"], (), get_pauli_eigenvalues(1)), (Observable.H(), Gate.H(), ["h"], tuple([Gate.Ry(-math.pi / 4)]), get_pauli_eigenvalues(1)), ] invalid_hermitian_matrices = [
], [Instruction(Gate.CNot(), [0, 1])]), ( None, None, [Instruction(Gate.H(), 1), Instruction(Gate.CNot(), [0, 1])], [Instruction(Observable.X, 0)], ), ( Gate.H, range(3), [Instruction(Gate.H(), 0), Instruction(Gate.H(), 1)], [ Instruction(Gate.H(), 3), Instruction(Gate.I(), 1), [Instruction(Gate.H(), 0)], ], ), (Gate.H, 1, [Instruction(Gate.H(), 1)], [Instruction(Gate.H(), 0)]), ([Gate.H], [1], [Instruction(Gate.H(), 1)], [Instruction(Gate.H(), 0) ]), ( [Gate.CNot], [0, 1], [Instruction(Gate.CNot(), [0, 1])], [Instruction(Gate.CNot(), [1, 0])], ), ( [Gate.CNot], [[0, 1], [1, 2]],