@@ -107,35 +107,45 @@ def test_circuit_with_measurement_gates():
107107 cirq .testing .assert_same_circuits (routed_circuit , circuit )
108108
109109
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 )
112112 device_graph = device .metadata .nx_graph
113113 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 )
121119 )
122- device .validate_circuit (c_routed )
120+ device .validate_circuit (routed_circuit )
123121
124122
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 ():
126124 device = cirq .testing .construct_ring_device (3 )
127125 device_graph = device .metadata .nx_graph
128126 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 )
131135
132- invalid_circuit = cirq .Circuit (cirq .MeasurementGate (3 ).on (* q ), cirq .H .on_each (* q ))
133136
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+ )
134146 with pytest .raises (ValueError ):
135147 _ = 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 )
139149 )
140150
141151
0 commit comments