11import unittest
22from unittest .mock import patch , MagicMock
3- from qutip . qip .circuit import QubitCircuit , Gate
4- from qutip .ionq import (
3+ from qutip_qip .circuit import QubitCircuit , Gate
4+ from qutip_qip .ionq import (
55 Provider ,
66 IonQSimulator ,
77 IonQQPU ,
@@ -14,24 +14,28 @@ class TestConverter(unittest.TestCase):
1414 def test_convert_qutip_circuit (self ):
1515 # Create a simple QubitCircuit with one gate for testing
1616 qc = QubitCircuit (N = 1 )
17- qc .add_gate ("X" , targets = [0 ])
17+ qc .add_gate ("H" , targets = [0 ])
18+ qc .add_gate ("CNOT" , targets = [0 ], controls = [1 ])
1819 # Convert the qutip_qip circuit to IonQ format
1920 ionq_circuit = convert_qutip_circuit (qc )
20- expected_output = [{"gate" : "X" , "targets" : [0 ], "controls" : []}]
21+ expected_output = [
22+ {"gate" : "H" , "targets" : [0 ], "controls" : []},
23+ {"gate" : "CNOT" , "targets" : [0 ], "controls" : [1 ]},
24+ ]
2125 self .assertEqual (ionq_circuit , expected_output )
2226
2327
2428class TestIonQBackend (unittest .TestCase ):
2529 def setUp (self ):
2630 self .provider = Provider (token = "dummy_token" )
2731
28- @patch ("qutip .ionq.Provider" )
32+ @patch ("qutip_qip .ionq.Provider" )
2933 def test_simulator_initialization (self , mock_provider ):
3034 simulator = IonQSimulator (provider = mock_provider )
3135 self .assertEqual (simulator .provider , mock_provider )
3236 self .assertEqual (simulator .gateset , "qis" )
3337
34- @patch ("qutip .ionq.Provider" )
38+ @patch ("qutip_qip .ionq.Provider" )
3539 def test_qpu_initialization (self , mock_provider ):
3640 qpu = IonQQPU (provider = mock_provider , qpu = "harmony" )
3741 self .assertEqual (qpu .provider , mock_provider )
@@ -55,8 +59,15 @@ def test_submit(self, mock_post):
5559
5660 @patch ("requests.get" )
5761 def test_get_results (self , mock_get ):
58- mock_get .return_value .json .return_value = {"0" : 0.5 , "1" : 0.5 }
59- mock_get .return_value .status_code = 200
62+ # Simulate the status check response and the final result response
63+ mock_get .side_effect = [
64+ MagicMock (
65+ json = lambda : {"status" : "completed" }
66+ ), # Simulated status check response
67+ MagicMock (
68+ json = lambda : {"0" : 0.5 , "1" : 0.5 }
69+ ), # Simulated final results response
70+ ]
6071 job = Job (
6172 circuit = {},
6273 shots = 1024 ,
0 commit comments