Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
49 changes: 49 additions & 0 deletions tests/01_test_gate.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,49 @@
import sys
import os
import matplotlib.pyplot as plt

# Add the directory containing your module to Python's search path
module_path = ".."
sys.path.insert(0, module_path)

from tensorcircuit import Circuit, Param, gates, waveforms
from tensorcircuit.cloud.apis import submit_task, get_device, set_provider, set_token, list_devices, list_properties
import re

# from dotenv import load_dotenv
# load_dotenv()

shots_const = 1000

print("✅ TEST FILE LOADED")
set_token(os.getenv("TOKEN"))
set_provider("tencent")
ds = list_devices()
print(ds)


def gen_gate_circuit(t):
qc = Circuit(2)
qc.h(0)
qc.cnot(0, 1)

return qc


def run_circuit(qc):
device_name = "tianji_s2"
d = get_device(device_name)
t = submit_task(
circuit=qc,
shots=shots_const,
device=d,
enable_qos_gate_decomposition=False,
enable_qos_qubit_mapping=False,
)
# print(qc.to_tqasm())
# n = qc._nqubits
rf = t.results()
print(rf)

qc = gen_gate_circuit(1.0)
result = run_circuit(qc)
59 changes: 59 additions & 0 deletions tests/02_test_param_pulse.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,59 @@
import sys
import os
import matplotlib.pyplot as plt

# Add the directory containing your module to Python's search path
module_path = ".."
sys.path.insert(0, module_path)

from tensorcircuit import Circuit, Param, gates, waveforms
from tensorcircuit.cloud.apis import submit_task, get_device, set_provider, set_token, list_devices, list_properties
import re

# from dotenv import load_dotenv
# load_dotenv()

shots_const = 1000

print("✅ TEST FILE LOADED")
set_token(os.getenv("TOKEN"))
set_provider("tencent")
ds = list_devices()
print(ds)


def gen_parametric_waveform_circuit(t):
qc = Circuit(2)

param0 = Param("a")

# 需根据以下定义的方式,修改代码
builder = qc.calibrate("basic_pulse", [param0])
frame = builder.new_frame("drive_frame", param0)
builder.play(frame, waveforms.CosineDrag(t, 0.2, 0.0, 0.0))

builder.build()

qc.add_calibration(builder, [0])

# print(qc.to_tqasm())
return qc


def run_circuit(qc):
device_name = "tianji_s2"
d = get_device(device_name)
t = submit_task(
circuit=qc,
shots=shots_const,
device=d,
enable_qos_gate_decomposition=False,
enable_qos_qubit_mapping=False,
)
# print(qc.to_tqasm())
# n = qc._nqubits
rf = t.results()
print(rf)

qc = gen_parametric_waveform_circuit(1.0)
result = run_circuit(qc)
60 changes: 60 additions & 0 deletions tests/03_test_gate_pulse_mix.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,60 @@
import sys
import os
import matplotlib.pyplot as plt

# Add the directory containing your module to Python's search path
module_path = ".."
sys.path.insert(0, module_path)

from tensorcircuit import Circuit, Param, gates, waveforms
from tensorcircuit.cloud.apis import submit_task, get_device, set_provider, set_token, list_devices, list_properties
import re

# from dotenv import load_dotenv
# load_dotenv()

shots_const = 1000

print("✅ TEST FILE LOADED")
set_token(os.getenv("TOKEN"))
set_provider("tencent")
ds = list_devices()
print(ds)


def gen_gate_pulse_mix_circuit(t):
qc = Circuit(2)

param0 = Param("a")

builder = qc.calibrate("basic_pulse", [param0])
frame = builder.new_frame("drive_frame", param0)
builder.play(frame, waveforms.CosineDrag(t, 0.2, 0.0, 0.0))

builder.build()

qc.add_calibration(builder, [0])

qc.i(0)
qc.x(0)

return qc


def run_circuit(qc):
device_name = "tianji_s2"
d = get_device(device_name)
t = submit_task(
circuit=qc,
shots=shots_const,
device=d,
enable_qos_gate_decomposition=False,
enable_qos_qubit_mapping=False,
)
# print(qc.to_tqasm())
# n = qc._nqubits
rf = t.results()
print(rf)

qc = gen_gate_pulse_mix_circuit(1.0)
result = run_circuit(qc)
82 changes: 82 additions & 0 deletions tests/04_test_custom_chip.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,82 @@
import sys
import os
import matplotlib.pyplot as plt

# Add the directory containing your module to Python's search path
module_path = ".."
sys.path.insert(0, module_path)

from tensorcircuit import Circuit, Param, gates, waveforms
from tensorcircuit.cloud.apis import submit_task, get_device, set_provider, set_token, list_devices, list_properties
import re

# from dotenv import load_dotenv
# load_dotenv()

shots_const = 1000

print("✅ TEST FILE LOADED")
set_token(os.getenv("TOKEN"))
set_provider("tencent")
ds = list_devices()
print(ds)

def gen_custom_chip_circuit(t):
qc = Circuit(2)

# 需添加 MapQubits(user_addr, chip_addr),对应 #pragram的qubits.mapping
# 需添加 GridQubit(left_user_addr, right_user_addr),对应 #pragram的qubits.coupling

# 以下是两种映射方式
qc.map_qubits([4,9,8,14])
qc.map_qubits([4,9,8,14], [3,2,1,0])


qc.i(0)
qc.cnot(0)

# print(qc.to_tqasm())
return qc



def gen_custom_chip_circuit(t):
qc = Circuit(2)

# 需添加 MapQubit(user_addr, chip_addr),对应 #pragram的qubits.mapping
# 需添加 GridQubit(left_user_addr, right_user_addr),对应 #pragram的qubits.coupling


qc.MapQubit(0, 4)
qc.MapQubit(1, 9)
qc.MapQubit(2, 8)
qc.MapQubit(3, 14)

qc.GridQubit(0, 1)
qc.GridQubit(0, 2)
qc.GridQubit(1, 3)

qc.i(0)
qc.cnot(0)

# print(qc.to_tqasm())
return qc


def run_circuit(qc):
device_name = "tianji_s2"
d = get_device(device_name)
t = submit_task(
circuit=qc,
shots=shots_const,
device=d,
enable_qos_gate_decomposition=False,
enable_qos_qubit_mapping=False,
)
# print(qc.to_tqasm())
# n = qc._nqubits
rf = t.results()
print(rf)

qc = gen_gate_pulse_mix_circuit(1.0)
result = run_circuit(qc)
60 changes: 60 additions & 0 deletions tests/05_test_multi_measure.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,60 @@
import sys
import os
import matplotlib.pyplot as plt

# Add the directory containing your module to Python's search path
module_path = ".."
sys.path.insert(0, module_path)

from tensorcircuit import Circuit, Param, gates, waveforms
from tensorcircuit.cloud.apis import submit_task, get_device, set_provider, set_token, list_devices, list_properties
import re

# from dotenv import load_dotenv
# load_dotenv()

shots_const = 1000

print("✅ TEST FILE LOADED")
set_token(os.getenv("TOKEN"))
set_provider("tencent")
ds = list_devices()
print(ds)


def gen_multi_measure_circuit(t):
qc = Circuit(6)

qc.h(0)
qc.cnot(0, 1)

# 参数门在 to_tqasm 中的转换丢失了参数
# qc.rxx(0, 5, theta=1.04632)

# 需添加测量指令
qc.measure(0, 1)
qc.cz(0, 1)
qc.measure(0, 1)


# print(qc.to_tqasm())
return qc


def run_circuit(qc):
device_name = "tianji_s2"
d = get_device(device_name)
t = submit_task(
circuit=qc,
shots=shots_const,
device=d,
enable_qos_gate_decomposition=False,
enable_qos_qubit_mapping=False,
)
# print(qc.to_tqasm())
# n = qc._nqubits
rf = t.results() # 需返回 multi_results
print(rf)

qc = gen_multi_measure_circuit(1.0)
result = run_circuit(qc)
Loading