From d185428d1d0c7f504f02047d0f5d584ce681380a Mon Sep 17 00:00:00 2001 From: kaldoran <kaldoran@live.fr> Date: Fri, 5 Aug 2016 10:45:42 -0400 Subject: [PATCH] =?UTF-8?q?[Python]=C2=A0Draw=20benchmark=20graph=20in=20a?= =?UTF-8?q?=20better=20way=20#104?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- python/tools/dht/tests.py | 21 ++++++++++++++++----- 1 file changed, 16 insertions(+), 5 deletions(-) diff --git a/python/tools/dht/tests.py b/python/tools/dht/tests.py index ccae96ef..b53f34dc 100644 --- a/python/tools/dht/tests.py +++ b/python/tools/dht/tests.py @@ -19,6 +19,8 @@ import math import numpy as np import matplotlib.pyplot as plt import networkx as nx +from networkx.drawing.nx_agraph import graphviz_layout + from opendht import * from dht.network import DhtNetwork, DhtNetworkSubProcess @@ -276,16 +278,23 @@ class PhtTest(FeatureTest): if len(prefixes) == 0: return - edges = set([]) + edges = list([]) for prefix in prefixes: for i in range(-1, len(prefix)-1): u = prefix[:i+1] - edges.add( ("" if i == -1 else u, u+"0") ) - edges.add( ("" if i == -1 else u, u+"1") ) + x = ("." if i == -1 else u, u+"0") + y = ("." if i == -1 else u, u+"1") + if x not in edges: + edges.append(x) + if y not in edges: + edges.append(y) # TODO: use a binary tree position layout... - G = nx.Graph(list(edges)) - nx.draw(G, with_labels=True, node_color='white') + # UPDATE : In a better way [change lib] + G = nx.Graph(sorted(edges, key=lambda x: len(x[0]))) + plt.title("PHT: Tree") + pos=graphviz_layout(G,prog='dot') + nx.draw(G, pos, with_labels=True, node_color='white') plt.show() def run(self): @@ -333,6 +342,8 @@ class PhtTest(FeatureTest): DhtNetwork.log('This insert step took : ', time_taken, 'second') FeatureTest.lock.wait() + time.sleep(1) + # Recover entries now that the trie is complete. for key in keys: PhtTest.key = key -- GitLab