From 47d9bc30361ee761a2d2881ee2b405b7306673f7 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 91eb810f..c82023a1 100644 --- a/python/tools/dht/tests.py +++ b/python/tools/dht/tests.py @@ -18,6 +18,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 @@ -246,16 +248,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): @@ -303,6 +312,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