|
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495 |
- from abp.graphstate import GraphState
- from abp import clifford
- from demograph import demograph
- import time
-
-
- def test_graph_basic():
- """ Test that we can construct graphs, delete edges, whatever """
- g = demograph()
- assert g.ngbh[0] == set([1, 2, 3])
- g.del_edge(0, 1)
- assert g.ngbh[0] == set([2, 3])
- assert g.has_edge(1, 2)
- assert not g.has_edge(0, 1)
-
-
- def test_local_complementation():
- """ Test that local complementation works as expected """
- g = demograph()
- g.local_complementation(0)
- assert g.has_edge(0, 1)
- assert g.has_edge(0, 2)
- assert not g.has_edge(1, 2)
- assert g.has_edge(3, 2)
- assert g.has_edge(3, 1)
-
- # TODO: test VOP conditions
-
-
- #def test_remove_vop_simple():
- #""" Test that removing VOPs really works """
- #g = GraphState(xrange(2))
- #print g
- #g.remove_vop(0, 1)
- #print g
- #assert g.vops[0] == clifford.by_name["identity"]
- #g.remove_vop(1, 1)
- #assert g.vops[1] == clifford.by_name["identity"]
- #g.remove_vop(2, 1)
- #assert g.vops[2] == clifford.by_name["identity"]
- #g.remove_vop(0, 1)
- #assert g.vops[0] == clifford.by_name["identity"]
-
-
-
- def test_remove_vop():
- """ Test that removing VOPs really works """
- g = demograph()
- g.remove_vop(0, 1)
- assert g.vops[0] == clifford.by_name["identity"]
- g.remove_vop(1, 1)
- assert g.vops[1] == clifford.by_name["identity"]
- g.remove_vop(2, 1)
- assert g.vops[2] == clifford.by_name["identity"]
- g.remove_vop(0, 1)
- assert g.vops[0] == clifford.by_name["identity"]
-
-
- def test_edgelist():
- """ Test making edgelists """
- g = demograph()
- el = g.edgelist()
- assert (0, 3) in el
- assert (0, 2) in el
- assert (100, 200) in el
-
-
- def test_stress(n = int(1e5)):
- """ Testing that making a graph of ten thousand qubits takes less than half a second"""
- g = GraphState(range(n+1))
- t = time.clock()
- for i in xrange(n):
- g.add_edge(i, i + 1)
- assert time.clock() - t < .5
-
-
- def test_cz():
- """ Test CZ gate """
- g = GraphState([0, 1])
- g.add_node(0)
- g.add_node(1)
- g.act_local_rotation(0, clifford.by_name["hadamard"])
- g.act_local_rotation(1, clifford.by_name["hadamard"])
- g.act_local_rotation(1, clifford.by_name["py"])
- assert not g.has_edge(0, 1)
- g.act_cz(0, 1)
- assert g.has_edge(0, 1)
-
- def test_stabilizer():
- """ Test that we can generate stabilizers okay """
- g = demograph()
- stab = g.to_stabilizer()
- #TODO: sux
- #assert len(stab.split("\n")) == g.order()
-
|