pyqpanda.Algorithm.test.state_preparation_test 源代码

'''
State Preparation Test\n
Copyright (C) Origin Quantum 2017-2018\n
Licensed Under Apache Licence 2.0
'''

from pyqpanda import *
from pyqpanda.utils import *
from .test_utils import test_begin_str, test_end_str

[文档] def entanglement_test(): """ Test a two qubit entanglement state """ print(test_begin_str('Entanglement Test')) # init the environment init() # allocate qubit/cbit q_list=qAlloc_many(20) c_list=cAlloc_many(20) # Create empty program qprog=QProg() # insert gates qprog.insert(single_gate_apply_to_all(H,q_list)) \ .insert(CZ(q_list[1],q_list[0])) \ .insert(H(q_list[1])) \ .insert(meas_all(q_list[0:2],c_list[0:2])) shots_num=1000 result=run_with_configuration(program=qprog,shots=shots_num,cbit_list=c_list[0:2]) print("Shots:",shots_num,"Results:",result) # finalize finalize() print(test_end_str('Entanglement Test'))
[文档] def qif_test(): """ The the qif module test """ print(test_begin_str('Q-If Test')) #init the environment init() #allocate resources q=qAlloc_many(10) c=cAlloc_many(10) #set the true branch and false branch #ready for qif true_branch=X(q[2]) false_branch=X(q[1]) qprog=QProg().insert(H(q[0])) \ .insert(Measure(q[0],c[0])) \ .insert(CreateIfProg(bind_a_cbit(c[0]),true_branch,false_branch)) \ .insert(meas_all(q[1:3],c[1:3])) shots_num=1000 result=run_with_configuration(program=qprog,shots=shots_num,cbit_list=c[0:3]) print("Shots:",shots_num,"Results:",result) # finalize finalize() print(test_end_str('Q-If Test'))
[文档] def full_test(): test_list=[entanglement_test, qif_test] for i in range(len(test_list)): test_list[i]() print('State_preparation test: %d/%d pass' % (i+1,len(test_list))) print(" ")