import os import pytest import networkx as nx import rtree from evrouting.osm.imports import read_osm, insert_charging_stations from evrouting.osm.profiles import car from evrouting.graph_tools import CHARGING_COEFFICIENT_KEY @pytest.fixture def graph(): G = nx.DiGraph() G.rtree = rtree.index.Index() node_coordinates = [ (51.7705832, 7.0002595), (51.7696529, 6.9568520) ] for n_id, coordinates in enumerate(node_coordinates): lat, lon = coordinates # Add two nodes, that exist in osm test map G.add_node(n_id, lat=lat, lon=lon) G.rtree.insert(n_id, (lon, lat, lon, lat)) yield G del G def test_read_osm(): """Just check if it runs. Todo: Delete.""" G = read_osm(os.path.join(os.path.dirname(__file__), 'static/map.osm'), car) assert True def test_insert_charging_stations_close(graph): # Close two node 1 S = [{"lon": 7.0002593, "lat": 51.7705832, "power": 22.0}] graph = insert_charging_stations(graph, S) assert graph.nodes[0][CHARGING_COEFFICIENT_KEY] == 22.0 assert CHARGING_COEFFICIENT_KEY not in graph.nodes[1] def test_insert_charging_stations_eq(graph): # Close exactly at node 1 S = [{"lon": 7.0002595, "lat": 51.7705832, "power": 22.0}] graph = insert_charging_stations(graph, S) assert graph.nodes[0][CHARGING_COEFFICIENT_KEY] == 22.0 assert CHARGING_COEFFICIENT_KEY not in graph.nodes[1]