|
@@ -118,16 +118,15 @@ def test_with_cphase_gates_hadamard_only(N=10): |
|
|
|
|
|
|
|
|
compare(a, b) |
|
|
compare(a, b) |
|
|
|
|
|
|
|
|
def test_all(N=3): |
|
|
|
|
|
""" Test all gates at random """ |
|
|
|
|
|
#TODO: Currently fails. Why??? |
|
|
|
|
|
|
|
|
def _test_cz_hadamard(N=3): |
|
|
|
|
|
""" Test CZs and Hadamards at random """ |
|
|
|
|
|
|
|
|
clifford.use_old_cz() |
|
|
clifford.use_old_cz() |
|
|
|
|
|
|
|
|
a = graphsim.GraphRegister(N) |
|
|
a = graphsim.GraphRegister(N) |
|
|
b = GraphState(range(N)) |
|
|
b = GraphState(range(N)) |
|
|
previous_state, previous_cz = None, None |
|
|
previous_state, previous_cz = None, None |
|
|
for i in tqdm(range(100000), desc="Testing against Anders and Briegel"): |
|
|
|
|
|
|
|
|
for i in tqdm(range(100000), desc="Testing CZ and Hadamard against A&B"): |
|
|
if random.random()>0.5: |
|
|
if random.random()>0.5: |
|
|
j = random.randint(0, N-1) |
|
|
j = random.randint(0, N-1) |
|
|
a.hadamard(j) |
|
|
a.hadamard(j) |
|
@@ -140,3 +139,26 @@ def test_all(N=3): |
|
|
compare(a, b) |
|
|
compare(a, b) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
def test_all(N=5): |
|
|
|
|
|
""" Test everything""" |
|
|
|
|
|
|
|
|
|
|
|
clifford.use_old_cz() |
|
|
|
|
|
|
|
|
|
|
|
a = graphsim.GraphRegister(N) |
|
|
|
|
|
b = GraphState(range(N)) |
|
|
|
|
|
previous_state, previous_cz = None, None |
|
|
|
|
|
for i in tqdm(range(100000), desc="Testing all gates against Anders and Briegel"): |
|
|
|
|
|
if random.random()>0.5: |
|
|
|
|
|
j = random.randint(0, N-1) |
|
|
|
|
|
u = random.randint(0, 23) |
|
|
|
|
|
a.local_op(j, graphsim.LocCliffOp(u)) |
|
|
|
|
|
b.act_local_rotation(j, u) |
|
|
|
|
|
else: |
|
|
|
|
|
q = random.randint(0, N-2) |
|
|
|
|
|
if a!=b: |
|
|
|
|
|
a.cphase(q, q+1) |
|
|
|
|
|
b.act_cz(q, q+1) |
|
|
|
|
|
compare(a, b) |
|
|
|
|
|
|
|
|
|
|
|
|