Esempio n. 1
0
def test_qudit_measure_quil():
    q0 = cirq.LineQid(0, 3)
    qubit_id_map = {q0: '0'}
    assert cirq.quil(
        cirq.measure(q0, key='a'),
        formatter=cirq.QuilFormatter(qubit_id_map=qubit_id_map,
                                     measurement_id_map={})) == None
Esempio n. 2
0
    def __init__(
        self,
        *,
        operations: cirq.OP_TREE,
        qubits: Tuple[cirq.Qid, ...],
        decompose_operation: Optional[Callable[[cirq.Operation],
                                               List[cirq.Operation]]] = None,
        qubit_id_map: Optional[Dict[cirq.Qid, str]] = None,
    ):
        """Initializes an instance of `RigettiQCSQuilOutput`.

        Args:
            operations: A list or tuple of `cirq.OP_TREE` arguments.
            qubits: The qubits used in the operations.
            decompose_operation: Optional; A callable that decomposes a circuit operation
                into a list of equivalent operations. If None provided, this class
                decomposes operations by invoking `QuilOutput._write_quil`.
            qubit_id_map: Optional; A dictionary mapping `cirq.Qid` to strings that
                address physical qubits in the outputted QUIL.
        """
        super().__init__(operations, qubits)
        self.qubit_id_map = qubit_id_map or self._generate_qubit_ids()
        self.measurement_id_map = self._generate_measurement_ids()

        self.formatter = cirq.QuilFormatter(
            qubit_id_map=self.qubit_id_map,
            measurement_id_map=self.measurement_id_map)
        self._decompose_operation = decompose_operation
Esempio n. 3
0
def test_qudit_measure_quil():
    q0 = cirq.LineQid(0, 3)
    qubit_id_map = {q0: '0'}
    with cirq.testing.assert_deprecated(deadline='v1.0', count=3):
        assert (cirq.quil(
            cirq.measure(q0, key='a'),
            formatter=cirq.QuilFormatter(qubit_id_map=qubit_id_map,
                                         measurement_id_map={}),
        ) is None)
Esempio n. 4
0
def test_confused_measure_quil():
    q0 = cirq.LineQubit(0)
    qubit_id_map = {q0: '0'}
    with cirq.testing.assert_deprecated(deadline='v1.0', count=3):
        assert (cirq.quil(
            cirq.measure(q0,
                         key='a',
                         confusion_map={(0, ): np.array([[0, 1], [1, 0]])}),
            formatter=cirq.QuilFormatter(qubit_id_map=qubit_id_map,
                                         measurement_id_map={}),
        ) is None)