diff --git a/evrouting/graph_tools.py b/evrouting/graph_tools.py new file mode 100644 index 0000000000000000000000000000000000000000..65f9053df0818c64db0f95ef21186bd4c382d2e2 --- /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 92a27bbee150ad71d4c148667d5c35ba3029ca6d..b0a4fc2500923127697f3b1666d093694cdcad1e 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