mirror of https://github.com/Qiskit/qiskit.git
Fix mpl conditional drawing (#3032)
* fix conditional drawing in mpl * changelog * add ref image * lint
This commit is contained in:
parent
7bc44b83aa
commit
7457aa9fad
|
@ -15,6 +15,9 @@ The format is based on [Keep a Changelog].
|
|||
|
||||
## [UNRELEASED]
|
||||
|
||||
### Fixed
|
||||
- Fixed a bug in drawing conditional gates with matplotlib circuit drawer.
|
||||
|
||||
### Removed
|
||||
|
||||
- Removed `DeviceSpecification` in favor of `PulseChannelSpec`. (\#3033)
|
||||
|
|
|
@ -727,7 +727,7 @@ class MatplotlibDrawer:
|
|||
ii in self._creg_dict]
|
||||
mask = 0
|
||||
for index, cbit in enumerate(self._creg):
|
||||
if cbit.reg == op.condition[0]:
|
||||
if cbit.register == op.condition[0]:
|
||||
mask |= (1 << index)
|
||||
val = op.condition[1]
|
||||
# cbit list to consider
|
||||
|
|
Binary file not shown.
After Width: | Height: | Size: 13 KiB |
|
@ -144,3 +144,29 @@ class TestMatplotlibDrawer(QiskitVisualizationTestCase):
|
|||
'visualization/references/matplotlib_long_name_ref.png')
|
||||
|
||||
self.assertImagesAreEqual(ref_filename, long_name_filename)
|
||||
|
||||
@unittest.skipIf(not visualization.HAS_MATPLOTLIB,
|
||||
'matplotlib not available.')
|
||||
@unittest.skip('Test is unreliable on some platforms')
|
||||
@unittest.skipIf(os.name == 'nt', 'Rendered image differs on windows')
|
||||
def test_conditional(self):
|
||||
"""Test that circuits with conditionals draw correctly
|
||||
"""
|
||||
qr = QuantumRegister(2, 'q')
|
||||
cr = ClassicalRegister(2, 'c')
|
||||
circuit = QuantumCircuit(qr, cr)
|
||||
|
||||
# check gates are shifted over accordingly
|
||||
circuit.h(qr)
|
||||
circuit.measure(qr, cr)
|
||||
circuit.h(qr[0]).c_if(cr, 2)
|
||||
|
||||
conditional_filename = self._get_resource_path('current_conditional_matplotlib_ref.png')
|
||||
visualization.circuit_drawer(circuit, output='mpl',
|
||||
filename=conditional_filename)
|
||||
self.addCleanup(os.remove, conditional_filename)
|
||||
|
||||
ref_filename = self._get_resource_path(
|
||||
'visualization/references/matplotlib_conditional_ref.png')
|
||||
|
||||
self.assertImagesAreEqual(ref_filename, conditional_filename)
|
||||
|
|
Loading…
Reference in New Issue