@@ -579,10 +579,50 @@ def test_barrier(self):
579579 qiskit_circuit .barrier ()
580580 qiskit_circuit .x (1 )
581581
582- with pytest .warns (UserWarning , match = "contains barrier instructions" ):
583- braket_circuit = to_braket (qiskit_circuit )
582+ braket_circuit = to_braket (qiskit_circuit )
583+ expected_braket_circuit = Circuit ().x (0 ).barrier ([0 , 1 ]).x (1 )
584+ self .assertEqual (braket_circuit , expected_braket_circuit )
584585
585- expected_braket_circuit = Circuit ().x (0 ).x (1 )
586+ def test_barrier_with_qubits (self ):
587+ """Tests conversion with barrier on specific qubits."""
588+ qiskit_circuit = QuantumCircuit (3 )
589+ qiskit_circuit .x (0 )
590+ qiskit_circuit .barrier ([0 , 1 ])
591+ qiskit_circuit .x (2 )
592+
593+ braket_circuit = to_braket (qiskit_circuit )
594+ expected_braket_circuit = Circuit ().x (0 ).barrier ([0 , 1 ]).x (2 )
595+ self .assertEqual (braket_circuit , expected_braket_circuit )
596+
597+ def test_multiple_barriers (self ):
598+ """Tests conversion with multiple barriers."""
599+ qiskit_circuit = QuantumCircuit (2 )
600+ qiskit_circuit .h (0 )
601+ qiskit_circuit .barrier ()
602+ qiskit_circuit .x (1 )
603+ qiskit_circuit .barrier ([0 ])
604+ qiskit_circuit .y (0 )
605+ braket_circuit = to_braket (qiskit_circuit )
606+
607+ barriers = [
608+ instr for instr in braket_circuit .instructions if instr .operator .name == "Barrier"
609+ ]
610+ self .assertEqual (len (barriers ), 2 )
611+
612+ barrier_targets = [set (instr .target ) for instr in barriers ]
613+ self .assertIn ({0 , 1 }, barrier_targets ) # Global barrier
614+ self .assertIn ({0 }, barrier_targets ) # Single qubit barrier
615+
616+ def test_barrier_single_qubit (self ):
617+ """Tests conversion with barrier on single qubit."""
618+ qiskit_circuit = QuantumCircuit (3 )
619+ qiskit_circuit .h (0 )
620+ qiskit_circuit .barrier ([1 ])
621+ qiskit_circuit .x (2 )
622+
623+ braket_circuit = to_braket (qiskit_circuit )
624+
625+ expected_braket_circuit = Circuit ().h (0 ).barrier ([1 ]).x (2 )
586626
587627 self .assertEqual (braket_circuit , expected_braket_circuit )
588628
@@ -717,6 +757,7 @@ def test_measure_all(self):
717757 .cnot (0 , 1 )
718758 .cnot (1 , 2 )
719759 .cnot (2 , 3 )
760+ .barrier ([0 , 1 , 2 , 3 ])
720761 .measure (0 )
721762 .measure (1 )
722763 .measure (2 )
@@ -1067,7 +1108,9 @@ def test_all_braket_noises_converted_simulated(self):
10671108 res_orig = LocalSimulator ("braket_dm" ).run (qc , shots = 0 ).result ().values [0 ]
10681109 res_conv = LocalSimulator ("braket_dm" ).run (bqc , shots = 0 ).result ().values [0 ]
10691110
1070- assert len (bqc .instructions ) == len (qc .instructions )
1111+ # The converted circuit will have one more instruction (barrier) due to measure_all()
1112+ # adding a barrier before measurements in Qiskit
1113+ assert len (bqc .instructions ) == len (qc .instructions ) + 1
10711114 assert np .all (np .isclose (res_orig , res_conv ))
10721115
10731116 def test_kraus_braket_bit_ordering (self ):
@@ -1611,3 +1654,10 @@ def test_missing_qubit_in_properties_handled_gracefully(self):
16111654
16121655 # Verify the target still works with remaining qubits
16131656 self .assertEqual (target .num_qubits , len (MOCK_RIGETTI_TOPOLOGY_GRAPH .nodes ))
1657+
1658+ def test_empty_circuit_with_barrier (self ):
1659+ """Test edge case: empty Qiskit circuit with global barrier."""
1660+ circuit = QuantumCircuit (0 )
1661+ circuit .barrier ()
1662+ braket_circuit = to_braket (circuit )
1663+ self .assertEqual (len (braket_circuit .instructions ), 0 )
0 commit comments