@@ -107,35 +107,45 @@ def test_circuit_with_measurement_gates():
107
107
cirq .testing .assert_same_circuits (routed_circuit , circuit )
108
108
109
109
110
- def test_circuit_with_valid_intermediate_multi_qubit_measurement_gates ():
111
- device = cirq .testing .construct_ring_device (3 )
110
+ def test_circuit_with_two_qubit_intermediate_measurement_gate ():
111
+ device = cirq .testing .construct_ring_device (2 )
112
112
device_graph = device .metadata .nx_graph
113
113
router = cirq .RouteCQC (device_graph )
114
- q = cirq .LineQubit .range (2 )
115
- hard_coded_mapper = cirq .HardCodedInitialMapper ({q [i ]: q [i ] for i in range (2 )})
116
-
117
- valid_circuit = cirq .Circuit (cirq .measure_each (* q ), cirq .H .on_each (q ))
118
-
119
- c_routed = router (
120
- valid_circuit , initial_mapper = hard_coded_mapper , context = cirq .TransformerContext (deep = True )
114
+ qs = cirq .LineQubit .range (2 )
115
+ hard_coded_mapper = cirq .HardCodedInitialMapper ({qs [i ]: qs [i ] for i in range (2 )})
116
+ circuit = cirq .Circuit ([cirq .Moment (cirq .measure (qs )), cirq .Moment (cirq .H .on_each (qs ))])
117
+ routed_circuit = router (
118
+ circuit , initial_mapper = hard_coded_mapper , context = cirq .TransformerContext (deep = True )
121
119
)
122
- device .validate_circuit (c_routed )
120
+ device .validate_circuit (routed_circuit )
123
121
124
122
125
- def test_circuit_with_invalid_intermediate_multi_qubit_measurement_gates ():
123
+ def test_circuit_with_multi_qubit_intermediate_measurement_gate_and_with_default_key ():
126
124
device = cirq .testing .construct_ring_device (3 )
127
125
device_graph = device .metadata .nx_graph
128
126
router = cirq .RouteCQC (device_graph )
129
- q = cirq .LineQubit .range (3 )
130
- hard_coded_mapper = cirq .HardCodedInitialMapper ({q [i ]: q [i ] for i in range (3 )})
127
+ qs = cirq .LineQubit .range (3 )
128
+ hard_coded_mapper = cirq .HardCodedInitialMapper ({qs [i ]: qs [i ] for i in range (3 )})
129
+ circuit = cirq .Circuit ([cirq .Moment (cirq .measure (qs )), cirq .Moment (cirq .H .on_each (qs ))])
130
+ routed_circuit = router (
131
+ circuit , initial_mapper = hard_coded_mapper , context = cirq .TransformerContext (deep = True )
132
+ )
133
+ expected = cirq .Circuit ([cirq .Moment (cirq .measure_each (qs )), cirq .Moment (cirq .H .on_each (qs ))])
134
+ cirq .testing .assert_same_circuits (routed_circuit , expected )
131
135
132
- invalid_circuit = cirq .Circuit (cirq .MeasurementGate (3 ).on (* q ), cirq .H .on_each (* q ))
133
136
137
+ def test_circuit_with_multi_qubit_intermediate_measurement_gate_with_custom_key ():
138
+ device = cirq .testing .construct_ring_device (3 )
139
+ device_graph = device .metadata .nx_graph
140
+ router = cirq .RouteCQC (device_graph )
141
+ qs = cirq .LineQubit .range (3 )
142
+ hard_coded_mapper = cirq .HardCodedInitialMapper ({qs [i ]: qs [i ] for i in range (3 )})
143
+ circuit = cirq .Circuit (
144
+ [cirq .Moment (cirq .measure (qs , key = "test" )), cirq .Moment (cirq .H .on_each (qs ))]
145
+ )
134
146
with pytest .raises (ValueError ):
135
147
_ = router (
136
- invalid_circuit ,
137
- initial_mapper = hard_coded_mapper ,
138
- context = cirq .TransformerContext (deep = True ),
148
+ circuit , initial_mapper = hard_coded_mapper , context = cirq .TransformerContext (deep = True )
139
149
)
140
150
141
151
0 commit comments