1
1
import unittest
2
2
from 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 (
5
5
Provider ,
6
6
IonQSimulator ,
7
7
IonQQPU ,
@@ -14,24 +14,28 @@ class TestConverter(unittest.TestCase):
14
14
def test_convert_qutip_circuit (self ):
15
15
# Create a simple QubitCircuit with one gate for testing
16
16
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 ])
18
19
# Convert the qutip_qip circuit to IonQ format
19
20
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
+ ]
21
25
self .assertEqual (ionq_circuit , expected_output )
22
26
23
27
24
28
class TestIonQBackend (unittest .TestCase ):
25
29
def setUp (self ):
26
30
self .provider = Provider (token = "dummy_token" )
27
31
28
- @patch ("qutip .ionq.Provider" )
32
+ @patch ("qutip_qip .ionq.Provider" )
29
33
def test_simulator_initialization (self , mock_provider ):
30
34
simulator = IonQSimulator (provider = mock_provider )
31
35
self .assertEqual (simulator .provider , mock_provider )
32
36
self .assertEqual (simulator .gateset , "qis" )
33
37
34
- @patch ("qutip .ionq.Provider" )
38
+ @patch ("qutip_qip .ionq.Provider" )
35
39
def test_qpu_initialization (self , mock_provider ):
36
40
qpu = IonQQPU (provider = mock_provider , qpu = "harmony" )
37
41
self .assertEqual (qpu .provider , mock_provider )
@@ -55,8 +59,15 @@ def test_submit(self, mock_post):
55
59
56
60
@patch ("requests.get" )
57
61
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
+ ]
60
71
job = Job (
61
72
circuit = {},
62
73
shots = 1024 ,
0 commit comments