def test_qid_pair(): q0, q1, q2, q3 = cirq.LineQubit.range(4) e1 = cirq.SymmetricalQidPair(q0, q1) e2 = cirq.SymmetricalQidPair(q1, q0) e3 = cirq.SymmetricalQidPair(q2, q3) assert e1 == e2 assert e2 != e3 assert repr(e1) == "cirq.QidPair(cirq.LineQubit(0), cirq.LineQubit(1))" assert len(e1) == 2 a, b = e1 assert (a, b) == (q0, q1) a, b = e2 assert (a, b) == (q0, q1) assert q0 in e1 assert q1 in e1 assert q2 not in e1 set1 = frozenset([e1, e2]) set2 = frozenset([e2, e3]) assert len(set1) == 1 assert len(set2) == 2 with pytest.raises(ValueError, match='A QidPair cannot have identical qids.'): cirq.SymmetricalQidPair(q0, q0)
def test_qid_pair_deprecated(): q0, q1, q2, q3 = cirq.LineQubit.range(4) with cirq.testing.assert_deprecated('device.metadata', deadline='v0.15', count=3): e1 = cirq.SymmetricalQidPair(q0, q1) e2 = cirq.SymmetricalQidPair(q1, q0) e3 = cirq.SymmetricalQidPair(q2, q3) assert e1 == e2 assert e2 != e3 assert repr(e1) == "cirq.QidPair(cirq.LineQubit(0), cirq.LineQubit(1))" assert len(e1) == 2 a, b = e1 assert (a, b) == (q0, q1) a, b = e2 assert (a, b) == (q0, q1) assert q0 in e1 assert q1 in e1 assert q2 not in e1 set1 = frozenset([e1, e2]) set2 = frozenset([e2, e3]) assert len(set1) == 1 assert len(set2) == 2 with cirq.testing.assert_deprecated('device.metadata', deadline='v0.15', count=1): with pytest.raises(ValueError, match='A QidPair cannot have identical qids.'): cirq.SymmetricalQidPair(q0, q0)
def qid_pairs(self) -> FrozenSet['cirq.SymmetricalQidPair']: """Returns a list of qubit edges on the device. Returns: All qubit pairs that are less or equal to the control radius apart. """ qs = self.qubits return frozenset([ cirq.SymmetricalQidPair(q, q2) for q in qs for q2 in qs if q < q2 and self.distance(q, q2) <= self.control_radius ])
def qid_pairs(self) -> FrozenSet['cirq.SymmetricalQidPair']: """Returns a list of qubit edges on the device. Returns: All qubit pairs that are less or equal to the control radius apart. """ with _compat.block_overlapping_deprecation('device\\.metadata'): qs = self.qubits return frozenset([ cirq.SymmetricalQidPair(q, q2) for q in qs for q2 in qs if q < q2 and self.distance(q, q2) <= self.control_radius ])
def qid_pairs(self) -> FrozenSet['cirq.SymmetricalQidPair']: """Returns a list of qubit edges on the device, defined by the gate definitions. Returns: The list of qubit edges on the device. """ return frozenset([ cirq.SymmetricalQidPair(pair[0], pair[1]) for gate_defs in self.gate_definitions.values() for gate_def in gate_defs if gate_def.number_of_qubits == 2 for pair in gate_def.target_set if len(pair) == 2 and pair[0] < pair[1] ])
def qid_pairs(self) -> FrozenSet['cirq.SymmetricalQidPair']: """Returns a list of qubit edges on the device, defined by the gate definitions. Returns: The list of qubit edges on the device. """ with _compat.block_overlapping_deprecation('device\\.metadata'): return frozenset([ cirq.SymmetricalQidPair(pair[0], pair[1]) for gate_defs in self.gate_definitions.values() for gate_def in gate_defs if gate_def.number_of_qubits == 2 for pair in gate_def.target_set if len(pair) == 2 and pair[0] < pair[1] ])