def test_assume_travel_modes_doesnt_assume_modes_for_no_tags( full_fat_default_config): edge = {'osmid': 0, 'nodes': [0, 1]} assumed_modes = osm_reader.assume_travel_modes(edge, full_fat_default_config) assert assumed_modes == []
def get_path(element, config): """ function from osmnx, adding our own spin on this - need extra tags Convert an OSM way element into the format for a networkx graph path. Parameters ---------- element : dict an OSM way element Returns ------- dict """ path = {} path['osmid'] = element['id'] # remove any consecutive duplicate elements in the list of nodes grouped_list = groupby(element['nodes']) path['nodes'] = [group[0] for group in grouped_list] if 'tags' in element: for useful_tag in config.USEFUL_TAGS_PATH: if useful_tag in element['tags']: path[useful_tag] = element['tags'][useful_tag] path['modes'] = osm_reader.assume_travel_modes(path, config) return path
def test_assume_travel_modes_doesnt_assume_modes_for_proposed_highway_tags( full_fat_default_config): edge = {'osmid': 0, 'nodes': [0, 1], 'highway': 'proposed'} assumed_modes = osm_reader.assume_travel_modes(edge, full_fat_default_config) assert assumed_modes == []
def test_assume_travel_modes_doesnt_assume_modes_for_tags_unspecified_in_config( full_fat_default_config): edge = {'osmid': 0, 'nodes': [0, 1], 'highway': 'what did you say?'} assumed_modes = osm_reader.assume_travel_modes(edge, full_fat_default_config) assert assumed_modes == []
def test_assume_travel_modes_works_with_other_non_nested_tags( full_fat_default_config): modes_to_assume = ['rail'] full_fat_default_config.MODE_INDICATORS['railway'] = modes_to_assume edge = {'osmid': 0, 'nodes': [0, 1], 'railway': 'yassss'} assumed_modes = osm_reader.assume_travel_modes(edge, full_fat_default_config) assert_semantically_equal(assumed_modes, modes_to_assume)
def test_assume_travel_modes_assumes_unclassified_highway_tag_if_given_highway_road_tag( full_fat_default_config): modes_to_assume = ['car', 'bike', 'am_special_unclassified_mode'] full_fat_default_config.MODE_INDICATORS['highway'][ 'unclassified'] = modes_to_assume edge = {'osmid': 0, 'nodes': [0, 1], 'highway': 'road'} assumed_modes = osm_reader.assume_travel_modes(edge, full_fat_default_config) assert_semantically_equal(assumed_modes, modes_to_assume)
def test_assume_travel_modes_works_with_nested_highway_tags( full_fat_default_config): modes_to_assume = ['car', 'bike'] full_fat_default_config.MODE_INDICATORS['highway'][ 'unclassified'] = modes_to_assume edge = {'osmid': 0, 'nodes': [0, 1], 'highway': 'unclassified'} assumed_modes = osm_reader.assume_travel_modes(edge, full_fat_default_config) assert_semantically_equal(assumed_modes, modes_to_assume)