Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit fecb249

Browse files
author
v_anyuhe
committed
add to_tqasm test
1 parent ea6f217 commit fecb249

File tree

5 files changed

+310
-0
lines changed

5 files changed

+310
-0
lines changed

‎tests/01_test_gate.py‎

Lines changed: 49 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,49 @@
1+
import sys
2+
import os
3+
import matplotlib.pyplot as plt
4+
5+
# Add the directory containing your module to Python's search path
6+
module_path = ".."
7+
sys.path.insert(0, module_path)
8+
9+
from tensorcircuit import Circuit, Param, gates, waveforms
10+
from tensorcircuit.cloud.apis import submit_task, get_device, set_provider, set_token, list_devices, list_properties
11+
import re
12+
13+
# from dotenv import load_dotenv
14+
# load_dotenv()
15+
16+
shots_const = 1000
17+
18+
print("✅ TEST FILE LOADED")
19+
set_token(os.getenv("TOKEN"))
20+
set_provider("tencent")
21+
ds = list_devices()
22+
print(ds)
23+
24+
25+
def gen_gate_circuit(t):
26+
qc = Circuit(2)
27+
qc.h(0)
28+
qc.cnot(0, 1)
29+
30+
return qc
31+
32+
33+
def run_circuit(qc):
34+
device_name = "tianji_s2"
35+
d = get_device(device_name)
36+
t = submit_task(
37+
circuit=qc,
38+
shots=shots_const,
39+
device=d,
40+
enable_qos_gate_decomposition=False,
41+
enable_qos_qubit_mapping=False,
42+
)
43+
# print(qc.to_tqasm())
44+
# n = qc._nqubits
45+
rf = t.results()
46+
print(rf)
47+
48+
qc = gen_gate_circuit(1.0)
49+
result = run_circuit(qc)

‎tests/02_test_param_pulse.py‎

Lines changed: 59 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,59 @@
1+
import sys
2+
import os
3+
import matplotlib.pyplot as plt
4+
5+
# Add the directory containing your module to Python's search path
6+
module_path = ".."
7+
sys.path.insert(0, module_path)
8+
9+
from tensorcircuit import Circuit, Param, gates, waveforms
10+
from tensorcircuit.cloud.apis import submit_task, get_device, set_provider, set_token, list_devices, list_properties
11+
import re
12+
13+
# from dotenv import load_dotenv
14+
# load_dotenv()
15+
16+
shots_const = 1000
17+
18+
print("✅ TEST FILE LOADED")
19+
set_token(os.getenv("TOKEN"))
20+
set_provider("tencent")
21+
ds = list_devices()
22+
print(ds)
23+
24+
25+
def gen_parametric_waveform_circuit(t):
26+
qc = Circuit(2)
27+
28+
param0 = Param("a")
29+
30+
# 需根据以下定义的方式,修改代码
31+
builder = qc.calibrate("basic_pulse", [param0])
32+
frame = builder.new_frame("drive_frame", param0)
33+
builder.play(frame, waveforms.CosineDrag(t, 0.2, 0.0, 0.0))
34+
35+
builder.build()
36+
37+
qc.add_calibration(builder, [0])
38+
39+
# print(qc.to_tqasm())
40+
return qc
41+
42+
43+
def run_circuit(qc):
44+
device_name = "tianji_s2"
45+
d = get_device(device_name)
46+
t = submit_task(
47+
circuit=qc,
48+
shots=shots_const,
49+
device=d,
50+
enable_qos_gate_decomposition=False,
51+
enable_qos_qubit_mapping=False,
52+
)
53+
# print(qc.to_tqasm())
54+
# n = qc._nqubits
55+
rf = t.results()
56+
print(rf)
57+
58+
qc = gen_parametric_waveform_circuit(1.0)
59+
result = run_circuit(qc)

‎tests/03_test_gate_pulse_mix.py‎

Lines changed: 60 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,60 @@
1+
import sys
2+
import os
3+
import matplotlib.pyplot as plt
4+
5+
# Add the directory containing your module to Python's search path
6+
module_path = ".."
7+
sys.path.insert(0, module_path)
8+
9+
from tensorcircuit import Circuit, Param, gates, waveforms
10+
from tensorcircuit.cloud.apis import submit_task, get_device, set_provider, set_token, list_devices, list_properties
11+
import re
12+
13+
# from dotenv import load_dotenv
14+
# load_dotenv()
15+
16+
shots_const = 1000
17+
18+
print("✅ TEST FILE LOADED")
19+
set_token(os.getenv("TOKEN"))
20+
set_provider("tencent")
21+
ds = list_devices()
22+
print(ds)
23+
24+
25+
def gen_gate_pulse_mix_circuit(t):
26+
qc = Circuit(2)
27+
28+
param0 = Param("a")
29+
30+
builder = qc.calibrate("basic_pulse", [param0])
31+
frame = builder.new_frame("drive_frame", param0)
32+
builder.play(frame, waveforms.CosineDrag(t, 0.2, 0.0, 0.0))
33+
34+
builder.build()
35+
36+
qc.add_calibration(builder, [0])
37+
38+
qc.i(0)
39+
qc.x(0)
40+
41+
return qc
42+
43+
44+
def run_circuit(qc):
45+
device_name = "tianji_s2"
46+
d = get_device(device_name)
47+
t = submit_task(
48+
circuit=qc,
49+
shots=shots_const,
50+
device=d,
51+
enable_qos_gate_decomposition=False,
52+
enable_qos_qubit_mapping=False,
53+
)
54+
# print(qc.to_tqasm())
55+
# n = qc._nqubits
56+
rf = t.results()
57+
print(rf)
58+
59+
qc = gen_gate_pulse_mix_circuit(1.0)
60+
result = run_circuit(qc)

‎tests/04_test_custom_chip.py‎

Lines changed: 82 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,82 @@
1+
import sys
2+
import os
3+
import matplotlib.pyplot as plt
4+
5+
# Add the directory containing your module to Python's search path
6+
module_path = ".."
7+
sys.path.insert(0, module_path)
8+
9+
from tensorcircuit import Circuit, Param, gates, waveforms
10+
from tensorcircuit.cloud.apis import submit_task, get_device, set_provider, set_token, list_devices, list_properties
11+
import re
12+
13+
# from dotenv import load_dotenv
14+
# load_dotenv()
15+
16+
shots_const = 1000
17+
18+
print("✅ TEST FILE LOADED")
19+
set_token(os.getenv("TOKEN"))
20+
set_provider("tencent")
21+
ds = list_devices()
22+
print(ds)
23+
24+
def gen_custom_chip_circuit(t):
25+
qc = Circuit(2)
26+
27+
# 需添加 MapQubits(user_addr, chip_addr),对应 #pragram的qubits.mapping
28+
# 需添加 GridQubit(left_user_addr, right_user_addr),对应 #pragram的qubits.coupling
29+
30+
# 以下是两种映射方式
31+
qc.map_qubits([4,9,8,14])
32+
qc.map_qubits([4,9,8,14], [3,2,1,0])
33+
34+
35+
qc.i(0)
36+
qc.cnot(0)
37+
38+
# print(qc.to_tqasm())
39+
return qc
40+
41+
42+
43+
def gen_custom_chip_circuit(t):
44+
qc = Circuit(2)
45+
46+
# 需添加 MapQubit(user_addr, chip_addr),对应 #pragram的qubits.mapping
47+
# 需添加 GridQubit(left_user_addr, right_user_addr),对应 #pragram的qubits.coupling
48+
49+
50+
qc.MapQubit(0, 4)
51+
qc.MapQubit(1, 9)
52+
qc.MapQubit(2, 8)
53+
qc.MapQubit(3, 14)
54+
55+
qc.GridQubit(0, 1)
56+
qc.GridQubit(0, 2)
57+
qc.GridQubit(1, 3)
58+
59+
qc.i(0)
60+
qc.cnot(0)
61+
62+
# print(qc.to_tqasm())
63+
return qc
64+
65+
66+
def run_circuit(qc):
67+
device_name = "tianji_s2"
68+
d = get_device(device_name)
69+
t = submit_task(
70+
circuit=qc,
71+
shots=shots_const,
72+
device=d,
73+
enable_qos_gate_decomposition=False,
74+
enable_qos_qubit_mapping=False,
75+
)
76+
# print(qc.to_tqasm())
77+
# n = qc._nqubits
78+
rf = t.results()
79+
print(rf)
80+
81+
qc = gen_gate_pulse_mix_circuit(1.0)
82+
result = run_circuit(qc)

‎tests/05_test_multi_measure.py‎

Lines changed: 60 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,60 @@
1+
import sys
2+
import os
3+
import matplotlib.pyplot as plt
4+
5+
# Add the directory containing your module to Python's search path
6+
module_path = ".."
7+
sys.path.insert(0, module_path)
8+
9+
from tensorcircuit import Circuit, Param, gates, waveforms
10+
from tensorcircuit.cloud.apis import submit_task, get_device, set_provider, set_token, list_devices, list_properties
11+
import re
12+
13+
# from dotenv import load_dotenv
14+
# load_dotenv()
15+
16+
shots_const = 1000
17+
18+
print("✅ TEST FILE LOADED")
19+
set_token(os.getenv("TOKEN"))
20+
set_provider("tencent")
21+
ds = list_devices()
22+
print(ds)
23+
24+
25+
def gen_multi_measure_circuit(t):
26+
qc = Circuit(6)
27+
28+
qc.h(0)
29+
qc.cnot(0, 1)
30+
31+
# 参数门在 to_tqasm 中的转换丢失了参数
32+
# qc.rxx(0, 5, theta=1.04632)
33+
34+
# 需添加测量指令
35+
qc.measure(0, 1)
36+
qc.cz(0, 1)
37+
qc.measure(0, 1)
38+
39+
40+
# print(qc.to_tqasm())
41+
return qc
42+
43+
44+
def run_circuit(qc):
45+
device_name = "tianji_s2"
46+
d = get_device(device_name)
47+
t = submit_task(
48+
circuit=qc,
49+
shots=shots_const,
50+
device=d,
51+
enable_qos_gate_decomposition=False,
52+
enable_qos_qubit_mapping=False,
53+
)
54+
# print(qc.to_tqasm())
55+
# n = qc._nqubits
56+
rf = t.results() # 需返回 multi_results
57+
print(rf)
58+
59+
qc = gen_multi_measure_circuit(1.0)
60+
result = run_circuit(qc)

0 commit comments

Comments
(0)

AltStyle によって変換されたページ (->オリジナル) /