def test_decompose_error(): d = cubic_device(2, 2, 1, holes=[ThreeDGridQubit(1, 1, 0)]) op = (cirq.ops.CCZ**1.5).on(*(d.qubit_list())) assert d.decompose_operation(op) == [op] op = cirq.H.on(ThreeDGridQubit(0, 0, 0)) decomposition = d.decompose_operation(op) assert len(decomposition) == 2 assert decomposition == [ (cirq.Y**0.5).on(ThreeDGridQubit(0, 0, 0)), cirq.XPowGate(exponent=1.0, global_shift=-0.25).on(ThreeDGridQubit(0, 0, 0)) ] # MeasurementGate is not a GateOperation with pytest.raises(TypeError): d.decompose_operation(cirq.ops.MeasurementGate(num_qubits=1)) # It has to be made into one assert PasqalDevice.is_pasqal_device_op( cirq.ops.GateOperation(cirq.ops.MeasurementGate(1), [ThreeDGridQubit(0, 0, 0)])) assert PasqalDevice.is_pasqal_device_op( cirq.ops.X(ThreeDGridQubit(0, 0, 0)))
def test_decompose_error(): d = generic_device(3) op = (cirq.ops.CCZ**1.5).on(*(d.qubit_list())) assert d.decompose_operation(op) == [op] op = cirq.H.on(cirq.NamedQubit('q0')) decomposition = d.decompose_operation(op) assert len(decomposition) == 2 assert decomposition == [ (cirq.Y**0.5).on(cirq.NamedQubit('q0')), cirq.XPowGate(exponent=1.0, global_shift=-0.25).on(cirq.NamedQubit('q0')) ] # MeasurementGate is not a GateOperation with pytest.raises(TypeError): d.decompose_operation(cirq.ops.MeasurementGate(num_qubits=2)) # It has to be made into one assert d.is_pasqal_device_op( cirq.ops.GateOperation(cirq.ops.MeasurementGate(2), [cirq.NamedQubit('q0'), cirq.NamedQubit('q1')])) assert PasqalDevice.is_pasqal_device_op(cirq.ops.X(cirq.NamedQubit('q0')))