瀏覽代碼

Modify test

master
Pete Shadbolt 8 年之前
父節點
當前提交
bbc89eb4de
共有 2 個檔案被更改,包括 22 行新增24 行删除
  1. +1
    -1
      abp/clifford.py
  2. +21
    -23
      tests/test_against_circuit_model.py

+ 1
- 1
abp/clifford.py 查看文件

@@ -150,7 +150,7 @@ except IOError:
conjugation_table = get_conjugation_table(unitaries)
times_table = get_times_table(unitaries)
cz_table = get_cz_table(unitaries)
cz_table = get_ab_cz_table()
#cz_table = get_ab_cz_table()

# Write it all to disk
np.save("unitaries.npy", unitaries)


+ 21
- 23
tests/test_against_circuit_model.py 查看文件

@@ -4,6 +4,7 @@ from abp import clifford
import numpy as np
import random


def test_hadamard_only_multiqubit():
""" A multi qubit test with Hadamards only"""
n = 4
@@ -17,7 +18,7 @@ def test_hadamard_only_multiqubit():
assert g.to_state_vector() == c

for i in range(100):
a, b = np.random.randint(0, n-1, 2)
a, b = np.random.randint(0, n - 1, 2)
if a != b:
g.act_cz(a, b)
c.act_cz(a, b)
@@ -25,26 +26,23 @@ def test_hadamard_only_multiqubit():
assert g.to_state_vector() == c


def test_all_multiqubit():
def test_all_multiqubit(n=4):
""" A multi qubit test with arbitrary local rotations """
n = 4
g = GraphState(range(n))
c = CircuitModel(n)

for i in range(10):
qubit = np.random.randint(0, n-1)
rotation = np.random.randint(0, 24-1)
g.act_local_rotation(qubit, rotation)
c.act_local_rotation(qubit, clifford.unitaries[rotation])


assert g.to_state_vector() == c

#for i in range(100):
#a, b = np.random.randint(0, n-1, 2)
#if a != b:
#g.act_cz(a, b)
#c.act_cz(a, b)

assert g.to_state_vector() == c

for j in range(100):
n = 4
g = GraphState(range(n))
c = CircuitModel(n)
for i in range(10):
qubit = np.random.randint(0, n - 1)
rotation = np.random.randint(0, 24 - 1)
g.act_local_rotation(qubit, rotation)
c.act_local_rotation(qubit, clifford.unitaries[rotation])
assert g.to_state_vector() == c

for i in range(1):
a, b = np.random.randint(0, n-1, 2)
if a != b:
g.act_cz(a, b)
c.act_cz(a, b)

assert g.to_state_vector() == c

Loading…
取消
儲存