From c55e382b6e8c11f2ce1f79bbdca0865fee9037a7 Mon Sep 17 00:00:00 2001
From: "niehues.mark@gmail.com" <niehues.mark@gmail.com>
Date: Fri, 13 Mar 2020 12:40:34 +0100
Subject: [PATCH] reorg

---
 evrouting/graph_tools.py | 12 ++++++++++++
 tests/config.py          |  9 +++------
 2 files changed, 15 insertions(+), 6 deletions(-)
 create mode 100644 evrouting/graph_tools.py

diff --git a/evrouting/graph_tools.py b/evrouting/graph_tools.py
new file mode 100644
index 0000000..65f9053
--- /dev/null
+++ b/evrouting/graph_tools.py
@@ -0,0 +1,12 @@
+from collections import namedtuple
+
+Street = namedtuple('Street', ['u', 'v', 'distance', 'consumption'])
+Node = namedtuple('Node', ['label', 'charging_coeff'], defaults=(None, None))
+
+
+def node_convert(n: Node) -> dict:
+    return {'label': n.label, 'c': n.charging_coeff}
+
+
+def street_convert(s: Street) -> dict:
+    return {'weight': s.distance, 'c': s.consumption}
diff --git a/tests/config.py b/tests/config.py
index 92a27bb..b0a4fc2 100644
--- a/tests/config.py
+++ b/tests/config.py
@@ -1,9 +1,6 @@
-from collections import namedtuple
-
 import networkx as nx
 
-Street = namedtuple('Street', ['u', 'v', 'distance', 'consumption'])
-Node = namedtuple('Node', ['label', 'charging_coeff'], defaults=(None, None))
+from evrouting.graph_tools import Node, Street, node_convert, street_convert
 
 # List of configs
 config_list = ['edge_case']
@@ -31,9 +28,9 @@ def get_graph(config):
     G = nx.Graph()
 
     for node_id, node in enumerate(config['nodes']):
-        G.add_node(node_id, label=node.label, c=node.charging_coeff)
+        G.add_node(node_id, **node_convert(node))
 
     for edge in config['edges']:
-        G.add_edge(edge.u, edge.v, weight=edge.distance, c=edge.consumption)
+        G.add_edge(edge.u, edge.v, **street_convert(edge))
 
     return G
-- 
GitLab