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
def _write_quil(self, output_func: Callable[[str], None]) -> None: """Calls `output_func` for successive lines of QUIL output. Args: output_func: A function that accepts a string of QUIL. This will likely write the QUIL to a file. Returns: None. """ if self._decompose_operation is None: return super()._write_quil(output_func) output_func("# Created using Cirq.\n\n") if len(self.measurements) > 0: measurements_declared: Set[str] = set() for m in self.measurements: key = cirq.measurement_key_name(m) if key in measurements_declared: continue measurements_declared.add(key) output_func( f"DECLARE {self.measurement_id_map[key]} BIT[{len(m.qubits)}]\n" ) output_func("\n") for main_op in self.operations: decomposed = self._decompose_operation(main_op) for decomposed_op in decomposed: output_func(cirq.quil(decomposed_op, formatter=self.formatter))
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)
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)