|
@@ -1,45 +0,0 @@ |
|
|
import json |
|
|
|
|
|
import networkx as nx |
|
|
|
|
|
from abp import GraphState, NXGraphState |
|
|
|
|
|
from abp import clifford |
|
|
|
|
|
from abp.util import xyz |
|
|
|
|
|
import mock |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
def test_json_basic(): |
|
|
|
|
|
""" Test that we can export to JSON """ |
|
|
|
|
|
g = mock.simple_graph() |
|
|
|
|
|
js = g.to_json() |
|
|
|
|
|
assert "adj" in js |
|
|
|
|
|
assert "node" in js |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
def test_tuple_keys(): |
|
|
|
|
|
""" Test that we can use tuple-ish keys """ |
|
|
|
|
|
g = NXGraphState() |
|
|
|
|
|
g.add_qubit("string") |
|
|
|
|
|
g.add_qubit((1, 2, 3)) |
|
|
|
|
|
g.add_edge((1, 2, 3), "string") |
|
|
|
|
|
json.dumps(g.to_json(True)) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
def networkx_test(): |
|
|
|
|
|
""" Test that NXGraphStates really behave like networkx graphs """ |
|
|
|
|
|
g = NXGraphState() |
|
|
|
|
|
g.add_qubit(0, position=xyz(10, 0, 0)) |
|
|
|
|
|
g.add_qubit(1, position=xyz(1, 0, 0)) |
|
|
|
|
|
g.act_hadamard(0) |
|
|
|
|
|
g.act_hadamard(1) |
|
|
|
|
|
g.act_cz(0, 1) |
|
|
|
|
|
g.copy() |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
def test_from_nx(): |
|
|
|
|
|
""" Test that making graphs from networkx objects goes smoothly """ |
|
|
|
|
|
g = nx.random_geometric_graph(100, 2) |
|
|
|
|
|
psi = NXGraphState(g) |
|
|
|
|
|
assert psi.node[0]["vop"] == 0 |
|
|
|
|
|
assert len(psi.edges()) > 0 |
|
|
|
|
|
psi.measure(0, "px", detail=True) |
|
|
|
|
|
|
|
|
|
|
|
psi = NXGraphState(nx.Graph(((0, 1),))) |
|
|
|