@@ -238,18 +238,23 @@ def test_no_coupling_map(self, level):
238
238
239
239
@combine (level = [0 , 1 , 2 , 3 ], name = "level{level}" )
240
240
def test_7677 (self , level ):
241
- """Melbourne ( with inconsistency configuration/properties) should not fail with noise_adaptive
241
+ """Backends with inconsistency in configuration/properties should not fail with noise_adaptive
242
242
See: https://github.com/Qiskit/qiskit/issues/7677
243
243
"""
244
244
qc = QuantumCircuit (12 ) # circuit has 12 qubits (and only uses 3)
245
245
qc .cx (1 , 8 )
246
246
qc .cx (1 , 11 )
247
- backend = FakeMelbourne ()
247
+ backend = Fake20QV1 ()
248
+ # add extra qubit to properties to reproduce
249
+ # Melbourne's inconsistency with configuration
250
+ backend .properties ().qubits .append (backend .properties ().qubits [- 1 ])
248
251
249
252
result = transpile (qc , backend , layout_method = "noise_adaptive" , optimization_level = level )
250
253
251
254
self .assertIsInstance (result , QuantumCircuit )
252
- self .assertEqual (result .num_qubits , 14 )
255
+ # the final num. qubits should be consistent
256
+ # with the configuration
257
+ self .assertEqual (result .num_qubits , 20 )
253
258
254
259
def test_layout_3239 (self , level = 3 ):
255
260
"""Test final layout after preset level3 passmanager does not include diagonal gates
@@ -934,7 +939,8 @@ class TestFinalLayouts(QiskitTestCase):
934
939
935
940
@data (0 , 1 , 2 , 3 )
936
941
def test_layout_tokyo_2845 (self , level ):
937
- """Test that final layout in tokyo #2845
942
+ """Test that final layout in a Tokyo-like device
943
+ is not the trivial layout for optimization level>0
938
944
See: https://github.com/Qiskit/qiskit-terra/issues/2845
939
945
"""
940
946
qr1 = QuantumRegister (3 , "qr1" )
@@ -990,29 +996,7 @@ def test_layout_tokyo_2845(self, level):
990
996
18 : Qubit (QuantumRegister (15 , "ancilla" ), 14 ),
991
997
19 : Qubit (QuantumRegister (2 , "qr2" ), 0 ),
992
998
}
993
- # layout for ibm_Tokyo
994
- # vf2_layout = {
995
- # 0: Qubit(QuantumRegister(15, "ancilla"), 0),
996
- # 1: Qubit(QuantumRegister(15, "ancilla"), 1),
997
- # 2: Qubit(QuantumRegister(15, "ancilla"), 2),
998
- # 3: Qubit(QuantumRegister(15, "ancilla"), 3),
999
- # 4: Qubit(QuantumRegister(15, "ancilla"), 4),
1000
- # 5: Qubit(QuantumRegister(15, "ancilla"), 5),
1001
- # 6: Qubit(QuantumRegister(3, "qr1"), 1),
1002
- # 7: Qubit(QuantumRegister(15, "ancilla"), 6),
1003
- # 8: Qubit(QuantumRegister(15, "ancilla"), 7),
1004
- # 9: Qubit(QuantumRegister(15, "ancilla"), 8),
1005
- # 10: Qubit(QuantumRegister(3, "qr1"), 0),
1006
- # 11: Qubit(QuantumRegister(3, "qr1"), 2),
1007
- # 12: Qubit(QuantumRegister(15, "ancilla"), 9),
1008
- # 13: Qubit(QuantumRegister(15, "ancilla"), 10),
1009
- # 14: Qubit(QuantumRegister(15, "ancilla"), 11),
1010
- # 15: Qubit(QuantumRegister(15, "ancilla"), 12),
1011
- # 16: Qubit(QuantumRegister(2, "qr2"), 0),
1012
- # 17: Qubit(QuantumRegister(2, "qr2"), 1),
1013
- # 18: Qubit(QuantumRegister(15, "ancilla"), 13),
1014
- # 19: Qubit(QuantumRegister(15, "ancilla"), 14),
1015
- # }
999
+
1016
1000
# Trivial layout
1017
1001
expected_layout_level0 = trivial_layout
1018
1002
# Dense layout
@@ -1034,7 +1018,9 @@ def test_layout_tokyo_2845(self, level):
1034
1018
1035
1019
@data (0 , 1 , 2 , 3 )
1036
1020
def test_layout_tokyo_fully_connected_cx (self , level ):
1037
- """Test that final layout in tokyo in a fully connected circuit"""
1021
+ """Test that final layout in a Tokyo-like device
1022
+ is a fully connected circuit
1023
+ """
1038
1024
qr = QuantumRegister (5 , "qr" )
1039
1025
qc = QuantumCircuit (qr )
1040
1026
for qubit_target in qr :
0 commit comments