test_leda.py 1.4 KB

123456789101112131415161718192021222324252627282930
  1. import io
  2. import networkx as nx
  3. class TestLEDA:
  4. def test_parse_leda(self):
  5. data = """#header section \nLEDA.GRAPH \nstring\nint\n-1\n#nodes section\n5 \n|{v1}| \n|{v2}| \n|{v3}| \n|{v4}| \n|{v5}| \n\n#edges section\n7 \n1 2 0 |{4}| \n1 3 0 |{3}| \n2 3 0 |{2}| \n3 4 0 |{3}| \n3 5 0 |{7}| \n4 5 0 |{6}| \n5 1 0 |{foo}|"""
  6. G = nx.parse_leda(data)
  7. G = nx.parse_leda(data.split("\n"))
  8. assert sorted(G.nodes()) == ["v1", "v2", "v3", "v4", "v5"]
  9. assert sorted(G.edges(data=True)) == [
  10. ("v1", "v2", {"label": "4"}),
  11. ("v1", "v3", {"label": "3"}),
  12. ("v2", "v3", {"label": "2"}),
  13. ("v3", "v4", {"label": "3"}),
  14. ("v3", "v5", {"label": "7"}),
  15. ("v4", "v5", {"label": "6"}),
  16. ("v5", "v1", {"label": "foo"}),
  17. ]
  18. def test_read_LEDA(self):
  19. fh = io.BytesIO()
  20. data = """#header section \nLEDA.GRAPH \nstring\nint\n-1\n#nodes section\n5 \n|{v1}| \n|{v2}| \n|{v3}| \n|{v4}| \n|{v5}| \n\n#edges section\n7 \n1 2 0 |{4}| \n1 3 0 |{3}| \n2 3 0 |{2}| \n3 4 0 |{3}| \n3 5 0 |{7}| \n4 5 0 |{6}| \n5 1 0 |{foo}|"""
  21. G = nx.parse_leda(data)
  22. fh.write(data.encode("UTF-8"))
  23. fh.seek(0)
  24. Gin = nx.read_leda(fh)
  25. assert sorted(G.nodes()) == sorted(Gin.nodes())
  26. assert sorted(G.edges()) == sorted(Gin.edges())