Skip to content
Snippets Groups Projects
test_osm_charge.py 1.35 KiB
Newer Older
markn92's avatar
markn92 committed
import os

markn92's avatar
markn92 committed
import pytest
markn92's avatar
markn92 committed
import networkx as nx
markn92's avatar
markn92 committed
import rtree
markn92's avatar
markn92 committed

markn92's avatar
markn92 committed
from evrouting.osm import read_osm, insert_charging_stations
from evrouting.graph_tools import CHARGING_COEFFICIENT_KEY
markn92's avatar
markn92 committed


markn92's avatar
markn92 committed
@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


markn92's avatar
markn92 committed
def _test_read_osm():
    """Just check if it runs. Todo: Delete."""
    assert read_osm(os.path.join(os.path.dirname(__file__), 'static/map.osm'))


markn92's avatar
markn92 committed
def test_insert_charging_stations_close(graph):
markn92's avatar
markn92 committed
    # Close two node 1
    S = [{"lon": 7.0002593, "lat": 51.7705832, "power": 22.0}]

markn92's avatar
markn92 committed
    graph = insert_charging_stations(graph, S)
markn92's avatar
markn92 committed

markn92's avatar
markn92 committed
    assert graph.nodes[0][CHARGING_COEFFICIENT_KEY] == 22.0
    assert CHARGING_COEFFICIENT_KEY not in graph.nodes[1]
markn92's avatar
markn92 committed


markn92's avatar
markn92 committed
def test_insert_charging_stations_eq(graph):
markn92's avatar
markn92 committed
    # Close exactly at node 1
    S = [{"lon": 7.0002595, "lat": 51.7705832, "power": 22.0}]

markn92's avatar
markn92 committed
    graph = insert_charging_stations(graph, S)
markn92's avatar
markn92 committed

markn92's avatar
markn92 committed
    assert graph.nodes[0][CHARGING_COEFFICIENT_KEY] == 22.0
    assert CHARGING_COEFFICIENT_KEY not in graph.nodes[1]