Skip to content

Commit 4fa1c27

Browse files
authored
Skip qiskit-machine-learning tests until the downstream dependencies are updated to 2.0 (#56)
* Skip ML tests until aer and ml are updated * Move conflictive imports to the aer backend plugin
1 parent e45e2ff commit 4fa1c27

3 files changed

Lines changed: 47 additions & 13 deletions

File tree

qiskit_neko/aer_plugin.py

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -12,16 +12,15 @@
1212

1313
"""Qiskit Aer default backend plugin."""
1414

15-
import qiskit_aer as aer
16-
from qiskit_ibm_runtime.fake_provider import FakeProviderForBackendV2
17-
1815
from qiskit_neko import backend_plugin
1916

2017

2118
class AerBackendPlugin(backend_plugin.BackendPlugin):
2219
"""A backend plugin for using qiskit-aer as the backend."""
2320

2421
def __init__(self):
22+
from qiskit_ibm_runtime.fake_provider import FakeProviderForBackendV2
23+
2524
super().__init__()
2625
self.mock_provider = FakeProviderForBackendV2()
2726
self.mock_provider_backend_names = set()
@@ -46,6 +45,8 @@ def get_backend(self, backend_selection=None):
4645
the defailt settings.
4746
:raises ValueError: If an invalid backend selection string is passed in
4847
"""
48+
import qiskit_aer as aer
49+
4950
if backend_selection is None:
5051
return aer.AerSimulator()
5152
if backend_selection.startswith("method="):

qiskit_neko/tests/machine_learning/test_neural_network_classifier.py

Lines changed: 19 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -13,14 +13,10 @@
1313
"""Tests for quantum neural networks classifier."""
1414
import numpy as np
1515
from ddt import ddt, data
16+
import unittest
1617

18+
from qiskit import __version__ as qiskit_version
1719
from qiskit.primitives import StatevectorSampler as ReferenceSampler
18-
from qiskit_aer.primitives import Sampler as AerSampler
19-
20-
from qiskit_machine_learning.optimizers import COBYLA
21-
from qiskit_machine_learning.utils import algorithm_globals
22-
23-
from qiskit_machine_learning.algorithms.classifiers import VQC
2420

2521
from qiskit_neko import decorators
2622
from qiskit_neko.tests import base
@@ -30,15 +26,31 @@
3026
class TestNeuralNetworkClassifierOnPrimitives(base.BaseTestCase):
3127
"""Test adapted from the qiskit_machine_learning tutorials."""
3228

29+
@unittest.skipIf(
30+
tuple(map(int, qiskit_version.split(".")[:2])) >= (2, 0),
31+
"Skipping test until Qiskit Aer and Machine Learning are ready for Qiskit 2.0. "
32+
"Tracked in: https://github.com/Qiskit/qiskit-neko/issues/54",
33+
)
3334
def setUp(self):
34-
super().setUp()
35+
from qiskit_aer.primitives import Sampler as AerSampler
3536

37+
super().setUp()
3638
self.samplers = dict(reference=ReferenceSampler(), aer=AerSampler(run_options={"seed": 42}))
3739

40+
@unittest.skipIf(
41+
tuple(map(int, qiskit_version.split(".")[:2])) >= (2, 0),
42+
"Skipping test until Qiskit Aer and Machine Learning are ready for Qiskit 2.0. "
43+
"Tracked in: https://github.com/Qiskit/qiskit-neko/issues/54",
44+
)
3845
@decorators.component_attr("terra", "aer", "machine_learning")
3946
@data("reference", "aer")
4047
def test_neural_network_classifier(self, implementation):
4148
"""Test the execution of quantum neural networks using VQC."""
49+
50+
from qiskit_machine_learning.optimizers import COBYLA
51+
from qiskit_machine_learning.utils import algorithm_globals
52+
from qiskit_machine_learning.algorithms.classifiers import VQC
53+
4254
rng = np.random.default_rng(seed=42)
4355
algorithm_globals.random_seed = 42
4456

qiskit_neko/tests/machine_learning/test_neural_networks_primitives.py

Lines changed: 24 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -14,16 +14,16 @@
1414

1515
import numpy as np
1616
from ddt import ddt, data, unpack
17+
import unittest
18+
19+
from qiskit import __version__ as qiskit_version
1720
from qiskit import QuantumCircuit
1821
from qiskit.circuit import Parameter
1922
from qiskit.quantum_info import SparsePauliOp
20-
2123
from qiskit.primitives import (
2224
StatevectorSampler as ReferenceSampler,
2325
StatevectorEstimator as ReferenceEstimator,
2426
)
25-
from qiskit_aer.primitives import Sampler as AerSampler, Estimator as AerEstimator
26-
from qiskit_machine_learning.neural_networks import SamplerQNN, EstimatorQNN
2727

2828
from qiskit_neko import decorators
2929
from qiskit_neko.tests import base
@@ -33,9 +33,16 @@
3333
class TestNeuralNetworksOnPrimitives(base.BaseTestCase):
3434
"""Test adapted from the qiskit_machine_learning tutorials."""
3535

36+
@unittest.skipIf(
37+
tuple(map(int, qiskit_version.split(".")[:2])) >= (2, 0),
38+
"Skipping test until Qiskit Aer and Machine Learning are ready for Qiskit 2.0. "
39+
"Tracked in: https://github.com/Qiskit/qiskit-neko/issues/54",
40+
)
3641
def setUp(self):
3742
super().setUp()
3843

44+
from qiskit_aer.primitives import Sampler as AerSampler, Estimator as AerEstimator
45+
3946
self.input_params = [Parameter("x")]
4047
self.weight_params = [Parameter("w")]
4148
self.circuit = QuantumCircuit(1)
@@ -48,11 +55,18 @@ def setUp(self):
4855
reference=ReferenceEstimator(seed=42), aer=AerEstimator(run_options={"seed": 42})
4956
)
5057

58+
@unittest.skipIf(
59+
tuple(map(int, qiskit_version.split(".")[:2])) >= (2, 0),
60+
"Skipping test until Qiskit Aer and Machine Learning are ready for Qiskit 2.0. "
61+
"Tracked in: https://github.com/Qiskit/qiskit-neko/issues/54",
62+
)
5163
@decorators.component_attr("terra", "aer", "machine_learning")
5264
@data(["reference", 2], ["aer", 1])
5365
@unpack
5466
def test_sampler_qnn(self, implementation, decimal):
5567
"""Test the execution of quantum neural networks using SamplerQNN."""
68+
from qiskit_machine_learning.neural_networks import SamplerQNN
69+
5670
sampler = self.samplers[implementation]
5771

5872
qnn = SamplerQNN(
@@ -70,11 +84,18 @@ def test_sampler_qnn(self, implementation, decimal):
7084
np.testing.assert_array_almost_equal(input_grad, [[[-0.2273], [0.2273]]], decimal)
7185
np.testing.assert_array_almost_equal(weight_grad, [[[-0.2273], [0.2273]]], decimal)
7286

87+
@unittest.skipIf(
88+
tuple(map(int, qiskit_version.split(".")[:2])) >= (2, 0),
89+
"Skipping test until Qiskit Aer and Machine Learning are ready for Qiskit 2.0. "
90+
"Tracked in: https://github.com/Qiskit/qiskit-neko/issues/54",
91+
)
7392
@decorators.component_attr("terra", "aer", "machine_learning")
7493
@data(["reference", 2], ["aer", 1])
7594
@unpack
7695
def test_estimator_qnn(self, implementation, decimal):
7796
"""Test the execution of quantum neural networks using EstimatorQNN."""
97+
from qiskit_machine_learning.neural_networks import EstimatorQNN
98+
7899
estimator = self.estimators[implementation]
79100

80101
qnn = EstimatorQNN(

0 commit comments

Comments
 (0)