|
|
@@ -4,6 +4,58 @@ import random |
|
|
|
import difflib |
|
|
|
import re |
|
|
|
|
|
|
|
def compare(a, b): |
|
|
|
""" Sketchy as you like. Remove this abomination """ |
|
|
|
aa = a.get_adj_list() |
|
|
|
bb = b.adj_list() |
|
|
|
try: |
|
|
|
assert re.sub("\\s", "", aa) == re.sub("\\s", "", bb) |
|
|
|
except AssertionError: |
|
|
|
print aa |
|
|
|
print bb |
|
|
|
|
|
|
|
def test_hadamard(): |
|
|
|
""" Test hadamards """ |
|
|
|
a = graphsim.GraphRegister(1) |
|
|
|
b = GraphState() |
|
|
|
b.add_vertex(0) |
|
|
|
|
|
|
|
compare(a, b) |
|
|
|
a.hadamard(0) |
|
|
|
b.act_hadamard(0) |
|
|
|
compare(a, b) |
|
|
|
a.hadamard(0) |
|
|
|
b.act_hadamard(0) |
|
|
|
compare(a, b) |
|
|
|
|
|
|
|
def test_local_1(): |
|
|
|
""" Test local rotations """ |
|
|
|
a = graphsim.GraphRegister(1) |
|
|
|
b = GraphState() |
|
|
|
b.add_vertex(0) |
|
|
|
|
|
|
|
compare(a, b) |
|
|
|
a.local_op(0, graphsim.LocCliffOp(10)) |
|
|
|
b.act_local_rotation(0, 10) |
|
|
|
compare(a, b) |
|
|
|
a.local_op(0, graphsim.LocCliffOp(10)) |
|
|
|
b.act_local_rotation(0, 10) |
|
|
|
compare(a, b) |
|
|
|
|
|
|
|
def test_local_2(): |
|
|
|
""" Test local rotations """ |
|
|
|
a = graphsim.GraphRegister(1) |
|
|
|
b = GraphState() |
|
|
|
b.add_vertex(0) |
|
|
|
compare(a, b) |
|
|
|
|
|
|
|
for i in range(1000): |
|
|
|
j = random.randint(0, 23) |
|
|
|
a.local_op(0, graphsim.LocCliffOp(j)) |
|
|
|
b.act_local_rotation(0, j) |
|
|
|
compare(a, b) |
|
|
|
|
|
|
|
|
|
|
|
def test_1(): |
|
|
|
N=10 |
|
|
|
|
|
|
@@ -19,10 +71,10 @@ def test_1(): |
|
|
|
a.cphase(i, i+1) |
|
|
|
b.act_cz(i, i+1) |
|
|
|
|
|
|
|
assert a.get_adj_list() == b.adj_list() |
|
|
|
compare(a, b) |
|
|
|
|
|
|
|
|
|
|
|
def test_2(): |
|
|
|
def _test_2(): |
|
|
|
N=10 |
|
|
|
|
|
|
|
a = graphsim.GraphRegister(N) |
|
|
@@ -43,9 +95,5 @@ def test_2(): |
|
|
|
|
|
|
|
aa = a.get_adj_list() |
|
|
|
bb = b.adj_list() |
|
|
|
try: |
|
|
|
assert re.sub("\\s", "", aa) == re.sub("\\s", "", bb) |
|
|
|
except AssertionError: |
|
|
|
print aa |
|
|
|
print bb |
|
|
|
compare(a, b) |
|
|
|
|