- import json
- import networkx as nx
- from abp import GraphState, fancy
- from abp import clifford
- from abp.util import xyz
- from mock import simple_graph
-
-
- def test_json_basic():
- """ Test that we can export to JSON """
- g = 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 = fancy.GraphState()
- 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 fancy graph states really behave like networkx graphs """
- g = fancy.GraphState()
- 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 = fancy.GraphState(g)
- assert psi.node[0]["vop"] == 0
- assert len(psi.edges()) > 0
- psi.measure(0, "px", detail=True)
-
- psi = fancy.GraphState(nx.Graph(((0, 1),)))
|