From c6cfdf1763c62bd1222a1bff07d738d3ba4be161 Mon Sep 17 00:00:00 2001 From: Bryn Pickering <17178478+brynpickering@users.noreply.github.com> Date: Tue, 12 Mar 2024 13:55:31 +0000 Subject: [PATCH] network_route -> network_links --- examples/4_3_using_network_routing.ipynb | 2 +- .../5_2_modifying_network_pt_schedule.ipynb | 4 +- .../example_data/example_json/schedule.json | 2 +- genet/core.py | 52 +++++++++---------- genet/input/matsim_reader.py | 2 +- genet/max_stable_set.py | 4 +- genet/output/matsim_xml_writer.py | 4 +- genet/schedule_elements.py | 26 +++++----- genet/use/schedule.py | 22 ++++---- genet/utils/simplification.py | 4 +- tests/conftest.py | 20 +++---- tests/test_core_components_route.py | 34 ++++++------ tests/test_core_components_service.py | 10 ++-- tests/test_core_network.py | 40 +++++++------- tests/test_core_schedule.py | 20 +++---- tests/test_core_schedule_elements.py | 26 +++++----- tests/test_data/json/schedule.json | 2 +- tests/test_input_matsim_reader.py | 51 ++++++------------ tests/test_input_read.py | 2 +- tests/test_max_stable_set.py | 4 +- tests/test_modify_schedule.py | 36 ++++++------- tests/test_output_geojson.py | 6 +-- 22 files changed, 177 insertions(+), 196 deletions(-) diff --git a/examples/4_3_using_network_routing.ipynb b/examples/4_3_using_network_routing.ipynb index aabe8ae5..6bddf7a7 100644 --- a/examples/4_3_using_network_routing.ipynb +++ b/examples/4_3_using_network_routing.ipynb @@ -481,7 +481,7 @@ } ], "source": [ - "list(n.schedule[\"17732\"].routes())[0].network_route" + "list(n.schedule[\"17732\"].routes())[0].network_links" ] }, { diff --git a/examples/5_2_modifying_network_pt_schedule.ipynb b/examples/5_2_modifying_network_pt_schedule.ipynb index e29caa7e..63f7c70d 100644 --- a/examples/5_2_modifying_network_pt_schedule.ipynb +++ b/examples/5_2_modifying_network_pt_schedule.ipynb @@ -821,7 +821,7 @@ } ], "source": [ - "n.schedule[\"new_service\"].route(\"new_route\").network_route" + "n.schedule[\"new_service\"].route(\"new_route\").network_links" ] }, { @@ -914,7 +914,7 @@ } ], "source": [ - "n.schedule[\"new_service\"].route(\"new_route\").network_route" + "n.schedule[\"new_service\"].route(\"new_route\").network_links" ] }, { diff --git a/examples/example_data/example_json/schedule.json b/examples/example_data/example_json/schedule.json index 3fc3025c..e18730ee 100644 --- a/examples/example_data/example_json/schedule.json +++ b/examples/example_data/example_json/schedule.json @@ -53,7 +53,7 @@ ], "route_long_name": "", "id": "VJ6c64ab7b477e201cae950efde5bd0cb4e2e8888e", - "network_route": [ + "network_links": [ "1", "10" ], diff --git a/genet/core.py b/genet/core.py index 4c934a7b..47d35b05 100644 --- a/genet/core.py +++ b/genet/core.py @@ -663,8 +663,8 @@ def subnetwork( "network routes will also be retained." ) subschedule = self.schedule.subschedule(services) - routes = subschedule.route_attribute_data(keys=["network_route"]) - links = links | set(np.concatenate(routes["network_route"].values)) + routes = subschedule.route_attribute_data(keys=["network_links"]) + links = links | set(np.concatenate(routes["network_links"].values)) subnetwork.schedule = subschedule subnetwork.graph = self.subgraph_on_link_conditions(conditions={"id": links}) subnetwork.link_id_mapping = {k: v for k, v in self.link_id_mapping.items() if k in links} @@ -2294,7 +2294,7 @@ def route_path(ordered_stops): routes = routes[ routes.index.to_series().isin({item for sublist in _rs for item in sublist}) ] - routes["network_route"] = routes["ordered_stops"].apply(lambda x: route_path(x)) + routes["network_links"] = routes["ordered_stops"].apply(lambda x: route_path(x)) routes = routes.drop("ordered_stops", axis=1).T.to_dict() self.add_nodes({node: nodes[node] for node in set(nodes) - set(self.graph.nodes)}) @@ -2383,18 +2383,18 @@ def _reroute_route(self, _id, additional_modes=None): logging.info(f"Rerouting Route `{_id}`") modes = {route.mode} | persistence.setify(additional_modes) subgraph = self.modal_subgraph(modes) - network_route = [linkrefids[0]] + network_links = [linkrefids[0]] for from_stop_link_id, to_stop_link_id in zip(linkrefids[:-1], linkrefids[1:]): - network_route += self.find_shortest_path( + network_links += self.find_shortest_path( self.link(from_stop_link_id)["to"], self.link(to_stop_link_id)["from"], subgraph=subgraph, ) - network_route.append(to_stop_link_id) - self.schedule.apply_attributes_to_routes({_id: {"network_route": network_route}}) + network_links.append(to_stop_link_id) + self.schedule.apply_attributes_to_routes({_id: {"network_links": network_links}}) links_for_mode_add = { link_id - for link_id in set(network_route) + for link_id in set(network_links) if not {route.mode}.issubset(persistence.setify(self.link(link_id)["modes"])) } if links_for_mode_add: @@ -2432,9 +2432,9 @@ def schedule_routes(self) -> Iterator[schedule_elements.Route]: def schedule_routes_nodes(self): routes = [] for _route in self.schedule_routes(): - if _route.network_route: + if _route.network_links: route_nodes = graph_operations.convert_list_of_link_ids_to_network_nodes( - self, _route.network_route + self, _route.network_links ) if len(route_nodes) != 1: logging.warning( @@ -2448,8 +2448,8 @@ def schedule_routes_nodes(self): def schedule_routes_links(self): routes = [] for service_id, _route in self.schedule_routes(): - if _route.network_route: - routes.append(_route.network_route) + if _route.network_links: + routes.append(_route.network_links) return routes def schedule_network_routes_geodataframe(self): @@ -2466,19 +2466,19 @@ def combine_geometry(group): gdf_links = self.to_geodataframe()["links"] routes = self.schedule.route_attribute_data( - keys=["id", "route_short_name", "mode", "network_route"] + keys=["id", "route_short_name", "mode", "network_links"] ) routes = routes.rename(columns={"id": "route_id"}) - routes["route_sequence"] = routes["network_route"].apply(lambda x: list(range(len(x)))) + routes["route_sequence"] = routes["network_links"].apply(lambda x: list(range(len(x)))) # expand on network route link sequence routes = pd.DataFrame( { - col: np.repeat(routes[col].values, routes["network_route"].str.len()) + col: np.repeat(routes[col].values, routes["network_links"].str.len()) for col in {"route_id", "route_short_name", "mode"} } ).assign( - network_route=np.concatenate(routes["network_route"].values), + network_links=np.concatenate(routes["network_links"].values), route_sequence=np.concatenate(routes["route_sequence"].values), ) routes["service_id"] = routes["route_id"].apply( @@ -2487,7 +2487,7 @@ def combine_geometry(group): # get geometry for link IDs routes = pd.merge( - routes, gdf_links[["id", "geometry"]], left_on="network_route", right_on="id" + routes, gdf_links[["id", "geometry"]], left_on="network_links", right_on="id" ) routes = routes.groupby("route_id").apply(combine_geometry).reset_index(drop=True) return gpd.GeoDataFrame(routes).set_crs(self.epsg) @@ -2678,12 +2678,12 @@ def index_graph_edges(self): def has_schedule_with_valid_network_routes(self): routes = [route for route in self.schedule_routes()] - if all([route.has_network_route() for route in routes]): + if all([route.has_network_links() for route in routes]): return all([self.is_valid_network_route(route) for route in routes]) return False def calculate_route_to_crow_fly_ratio(self, route: schedule_elements.Route): - route_dist = self.route_distance(route.network_route) + route_dist = self.route_distance(route.network_links) crowfly_dist = route.crowfly_distance() if crowfly_dist: return route_dist / crowfly_dist @@ -2691,10 +2691,10 @@ def calculate_route_to_crow_fly_ratio(self, route: schedule_elements.Route): return "Division by zero" def is_valid_network_route(self, route: schedule_elements.Route): - if self.has_links(route.network_route): - valid_link_chain = self.has_valid_link_chain(route.network_route) + if self.has_links(route.network_links): + valid_link_chain = self.has_valid_link_chain(route.network_links) links_have_correct_modes = self.has_links( - route.network_route, {"modes": route.mode}, mixed_dtypes=True + route.network_links, {"modes": route.mode}, mixed_dtypes=True ) if not links_have_correct_modes: logging.info( @@ -2754,7 +2754,7 @@ def invalid_network_routes(self): return [ route.id for route in self.schedule.routes() - if not route.has_network_route() or not self.is_valid_network_route(route) + if not route.has_network_links() or not self.is_valid_network_route(route) ] def generate_validation_report( @@ -3242,10 +3242,10 @@ def split_link_at_node( if self.schedule: logging.info("Updating network routes in the PT schedule.") # update schedule routes - df_routes = self.schedule.route_attribute_data(keys=["network_route"]) - df_routes = df_routes[df_routes["network_route"].apply(lambda x: link_id in x)] + df_routes = self.schedule.route_attribute_data(keys=["network_links"]) + df_routes = df_routes[df_routes["network_links"].apply(lambda x: link_id in x)] if not df_routes.empty: - df_routes["network_route"] = df_routes["network_route"].apply( + df_routes["network_links"] = df_routes["network_links"].apply( lambda x: replace_link_on_pt_route(x, {link_id: [new_link_1, new_link_2]}) ) self.schedule.apply_attributes_to_routes(df_routes.T.to_dict()) diff --git a/genet/input/matsim_reader.py b/genet/input/matsim_reader.py index 7dc9c175..e67c11d2 100644 --- a/genet/input/matsim_reader.py +++ b/genet/input/matsim_reader.py @@ -344,7 +344,7 @@ def write_transitLinesTransitRoute(transitLine, transitRoutes, transportMode): route_short_name=transitLine["transitLine_data"]["name"], mode=mode, stops=stops, - network_route=route, + network_links=route, trips=trips, arrival_offsets=arrival_offsets, departure_offsets=departure_offsets, diff --git a/genet/max_stable_set.py b/genet/max_stable_set.py index 89a6954f..3750d0d1 100644 --- a/genet/max_stable_set.py +++ b/genet/max_stable_set.py @@ -495,7 +495,7 @@ def new_network_nodes(self, max_stable_set): def update_df_route_data(self, df_route_data, max_stable_set): # update stops and generate routed paths - df_route_data.loc[:, "network_route"] = df_route_data.loc[:, "ordered_stops"].apply( + df_route_data.loc[:, "network_links"] = df_route_data.loc[:, "ordered_stops"].apply( lambda x: max_stable_set.routed_path(x) ) _map = max_stable_set.stops_to_artificial_stops_map() @@ -507,7 +507,7 @@ def update_df_route_data(self, df_route_data, max_stable_set): def generate_additional_links_modes(self, max_stable_set): link_ids = { link_id - for route_list in self.df_route_data["network_route"].values + for route_list in self.df_route_data["network_links"].values for link_id in route_list } links = max_stable_set.network_spatial_tree.links.copy() diff --git a/genet/output/matsim_xml_writer.py b/genet/output/matsim_xml_writer.py index e3e26ca7..be27f436 100644 --- a/genet/output/matsim_xml_writer.py +++ b/genet/output/matsim_xml_writer.py @@ -278,7 +278,7 @@ def write_matsim_schedule(output_dir, schedule, reproj_processes=1): ).lower() xf.write(etree.Element("stop", stop_attribs)) - if not route.network_route: + if not route.network_links: logging.warning( "Route needs to have a network route composed of a list of network links that " "the vehicle on this route traverses. If read the Schedule from GTFS, the " @@ -286,7 +286,7 @@ def write_matsim_schedule(output_dir, schedule, reproj_processes=1): ) else: with xf.element("route"): - for link_id in route.network_route: + for link_id in route.network_links: route_attribs = {"refId": str(link_id)} xf.write(etree.Element("link", route_attribs)) diff --git a/genet/schedule_elements.py b/genet/schedule_elements.py index 9b5ee007..7869fa55 100644 --- a/genet/schedule_elements.py +++ b/genet/schedule_elements.py @@ -797,7 +797,7 @@ def __init__( departure_offsets: list[str], trips: Optional[dict[str, list[str]]] = None, headway_spec: Optional[dict] = None, - network_route: Optional[list] = None, + network_links: Optional[list] = None, route_long_name: str = "", id: str = "", await_departure: Optional[list] = None, @@ -829,7 +829,7 @@ def __init__( Dictionary with tuple keys: (from time, to time) and headway values in minutes: `{('HH:MM:SS', 'HH:MM:SS'): headway_minutes}`. Defaults to None. - route (Optional[list], optional): + network_links (Optional[list], optional): Network link_ids traversed by the vehicles in this Route instance. Defaults to None. route_long_name (str, optional): Verbose name for the route if exists. Defaults to "". @@ -861,10 +861,10 @@ def __init__( "Please provide trip or headway information to initialise Route object" ) - if network_route is None: - self.network_route = [] + if network_links is None: + self.network_links = [] else: - self.network_route = network_route + self.network_links = network_links if await_departure is None: self.await_departure = [] else: @@ -1197,22 +1197,22 @@ def has_more_than_one_stop(self): return True return False - def has_network_route(self): - return self.network_route + def has_network_links(self) -> bool: + return bool(self.network_links) - def divide_network_route_between_stops(self): - if self.has_network_route(): + def divide_network_links_between_stops(self): + if self.has_network_links(): stops_linkrefids = [self._graph.nodes[i]["linkRefId"] for i in self.ordered_stops] if not stops_linkrefids: raise RuntimeError( "This Stops in this Route are not snapped to the network via `linkRefId` attribute" ) - return use_schedule.divide_network_route(self.network_route, stops_linkrefids) + return use_schedule.divide_network_route(self.network_links, stops_linkrefids) else: raise RuntimeError("This Route does not have a network route to divide") def has_correctly_ordered_route(self): - if self.has_network_route(): + if self.has_network_links(): stops_linkrefids = [ self._graph.nodes[i]["linkRefId"] for i in self.ordered_stops @@ -1221,7 +1221,7 @@ def has_correctly_ordered_route(self): if len(stops_linkrefids) != len(self.ordered_stops): logging.warning("Not all stops reference network link ids.") return False - divided_route = self.divide_network_route_between_stops() + divided_route = self.divide_network_links_between_stops() if not divided_route: return False reassembled_route = sum(divided_route, []) @@ -1231,7 +1231,7 @@ def has_correctly_ordered_route(self): if reassembled_route[i - 1] != reassembled_route[i] ] if (len(stops_linkrefids) - 1) == len(divided_route) and ( - reassembled_route == self.network_route + reassembled_route == self.network_links ): return True return False diff --git a/genet/use/schedule.py b/genet/use/schedule.py index 21585594..144366ef 100644 --- a/genet/use/schedule.py +++ b/genet/use/schedule.py @@ -203,7 +203,7 @@ def combine_route(group): "output as well." ) - routes_df = schedule.route_attribute_data(keys=["id", "network_route", "ordered_stops"]) + routes_df = schedule.route_attribute_data(keys=["id", "network_links", "ordered_stops"]) routes_df["linkrefids"] = routes_df.apply( lambda x: [ schedule._graph.nodes[i]["linkRefId"] @@ -211,35 +211,35 @@ def combine_route(group): ], axis=1, ) - routes_df["network_route"] = routes_df.apply( - lambda x: divide_network_route(x["network_route"], x["linkrefids"]), axis=1 + routes_df["network_links"] = routes_df.apply( + lambda x: divide_network_route(x["network_links"], x["linkrefids"]), axis=1 ) routes_df.drop("linkrefids", axis=1, inplace=True) routes_df["ordered_stops"] = routes_df["ordered_stops"].apply( lambda x: list(zip(x[:-1], x[1:])) ) stop_cols = np.concatenate(routes_df["ordered_stops"].values) - route_cols = sum(routes_df["network_route"].values, []) + route_cols = sum(routes_df["network_links"].values, []) # expand across stop pairs routes_df = pd.DataFrame( { col: np.repeat(routes_df[col].values, routes_df["ordered_stops"].str.len()) - for col in set(routes_df.columns) - {"ordered_stops", "network_route"} + for col in set(routes_df.columns) - {"ordered_stops", "network_links"} } - ).assign(from_stop=stop_cols[:, 0], to_stop=stop_cols[:, 1], network_route=route_cols) + ).assign(from_stop=stop_cols[:, 0], to_stop=stop_cols[:, 1], network_links=route_cols) # expand across route - routes_df["sequence"] = routes_df["network_route"].apply(lambda x: list(range(len(x)))) + routes_df["sequence"] = routes_df["network_links"].apply(lambda x: list(range(len(x)))) routes_df = pd.DataFrame( { - col: np.repeat(routes_df[col].values, routes_df["network_route"].str.len()) - for col in set(routes_df.columns) - {"network_route", "sequence"} + col: np.repeat(routes_df[col].values, routes_df["network_links"].str.len()) + for col in set(routes_df.columns) - {"network_links", "sequence"} } ).assign( - network_route=np.concatenate(routes_df["network_route"].values), + network_links=np.concatenate(routes_df["network_links"].values), sequence=np.concatenate(routes_df["sequence"].values), ) routes_gdf = gdf_network_links[["length", "geometry"]].merge( - routes_df, right_on="network_route", left_index=True + routes_df, right_on="network_links", left_index=True ) new_route = routes_gdf.groupby(["id", "from_stop", "to_stop"], as_index=False).apply( diff --git a/genet/utils/simplification.py b/genet/utils/simplification.py index b5d01093..7a0e7264 100644 --- a/genet/utils/simplification.py +++ b/genet/utils/simplification.py @@ -286,8 +286,8 @@ def simplify_graph(n, no_processes=1): logging.info("Updated Stop Link Reference Ids") # update schedule routes - df_routes = n.schedule.route_attribute_data(keys=["network_route"]) - df_routes["network_route"] = df_routes["network_route"].apply( + df_routes = n.schedule.route_attribute_data(keys=["network_links"]) + df_routes["network_links"] = df_routes["network_links"].apply( lambda x: update_link_ids(x, n.link_simplification_map) ) n.schedule.apply_attributes_to_routes(df_routes.T.to_dict()) diff --git a/tests/conftest.py b/tests/conftest.py index 11e8ee87..edec7258 100644 --- a/tests/conftest.py +++ b/tests/conftest.py @@ -303,7 +303,7 @@ def service(): }, arrival_offsets=["00:00:00", "00:03:00", "00:07:00", "00:13:00"], departure_offsets=["00:00:00", "00:05:00", "00:09:00", "00:15:00"], - network_route=["1", "2", "3", "4"], + network_links=["1", "2", "3", "4"], ) route_2 = Route( id="2", @@ -322,7 +322,7 @@ def service(): }, arrival_offsets=["00:00:00", "00:03:00", "00:07:00", "00:13:00"], departure_offsets=["00:00:00", "00:05:00", "00:09:00", "00:15:00"], - network_route=["5", "6", "7", "8"], + network_links=["5", "6", "7", "8"], ) return Service(id="service", routes=[route_1, route_2]) @@ -362,7 +362,7 @@ def correct_schedule(): }, arrival_offsets=["00:00:00", "00:02:00"], departure_offsets=["00:00:00", "00:02:00"], - network_route=["1", "2"], + network_links=["1", "2"], ), Route( id="2", @@ -391,7 +391,7 @@ def correct_schedule(): }, arrival_offsets=["00:00:00", "00:03:00"], departure_offsets=["00:00:00", "00:05:00"], - network_route=["1", "2"], + network_links=["1", "2"], ), ], ) @@ -417,7 +417,7 @@ def schedule_graph(): "departure_offsets": ["00:00:00", "00:05:00"], "route_long_name": "", "id": "4", - "network_route": ["4", "5"], + "network_links": ["4", "5"], "await_departure": [], }, "3": { @@ -433,7 +433,7 @@ def schedule_graph(): "departure_offsets": ["00:00:00", "00:02:00"], "route_long_name": "", "id": "3", - "network_route": ["3", "4"], + "network_links": ["3", "4"], "await_departure": [], }, "1": { @@ -449,7 +449,7 @@ def schedule_graph(): "departure_offsets": ["00:00:00", "00:02:00"], "route_long_name": "", "id": "1", - "network_route": ["0", "1"], + "network_links": ["0", "1"], "await_departure": [], }, "2": { @@ -465,7 +465,7 @@ def schedule_graph(): "departure_offsets": ["00:00:00", "00:05:00"], "route_long_name": "", "id": "2", - "network_route": ["1", "2"], + "network_links": ["1", "2"], "await_departure": [], }, }, @@ -727,7 +727,7 @@ def route(): }, arrival_offsets=["00:00:00", "00:03:00", "00:07:00", "00:13:00"], departure_offsets=["00:00:00", "00:05:00", "00:09:00", "00:15:00"], - network_route=["1", "2", "3", "4"], + network_links=["1", "2", "3", "4"], id="1", ) @@ -861,7 +861,7 @@ def __init__(self): "trip_departure_time": ["04:40:00"], "vehicle_id": ["veh_1_bus"], }, - network_route=["link_AB", "link_BA"], + network_links=["link_AB", "link_BA"], arrival_offsets=["00:00:00", "00:02:00"], departure_offsets=["00:00:00", "00:02:00"], ) diff --git a/tests/test_core_components_route.py b/tests/test_core_components_route.py index 35fd80f7..89f13b46 100644 --- a/tests/test_core_components_route.py +++ b/tests/test_core_components_route.py @@ -114,7 +114,7 @@ def test_initiating_route(assert_semantically_equal, route): "departure_offsets": ["00:00:00", "00:05:00", "00:09:00", "00:15:00"], "route_long_name": "", "id": "1", - "network_route": ["1", "2", "3", "4"], + "network_links": ["1", "2", "3", "4"], "await_departure": [], "ordered_stops": ["1", "2", "3", "4"], } @@ -447,13 +447,13 @@ def test_has_more_than_one_stop_with_route_with_single_stop(): assert not route.has_more_than_one_stop() -def test_has_network_route_with_route_that_has_a_network_route(route): - assert route.has_network_route() +def test_has_network_links_with_route_that_has_links(route): + assert route.has_network_links() -def test_has_network_route_with_route_without_a_network_route(route): - route.network_route = [] - assert not route.has_network_route() +def test_has_network_links_with_route_without_links(route): + route.network_links = [] + assert not route.has_network_links() def test_dividing_typical_network_route(): @@ -467,10 +467,10 @@ def test_dividing_typical_network_route(): headway_spec={("00:07:00", "08:00:00"): 30}, arrival_offsets=["00:00:00", "00:03:00", "00:07:00"], departure_offsets=["00:00:00", "00:05:00", "00:09:00"], - network_route=["a-a", "a-b", "b-b", "b-c", "c-c"], + network_links=["a-a", "a-b", "b-b", "b-c", "c-c"], id="1", ) - assert r.divide_network_route_between_stops() == [["a-a", "a-b", "b-b"], ["b-b", "b-c", "c-c"]] + assert r.divide_network_links_between_stops() == [["a-a", "a-b", "b-b"], ["b-b", "b-c", "c-c"]] def test_dividing_network_route_with_a_shared_linkrefid(): @@ -485,10 +485,10 @@ def test_dividing_network_route_with_a_shared_linkrefid(): headway_spec={("00:07:00", "08:00:00"): 30}, arrival_offsets=["00:00:00", "00:03:00", "00:07:00"], departure_offsets=["00:00:00", "00:05:00", "00:09:00"], - network_route=["a-a", "a-b", "b-b", "b-c", "c-c"], + network_links=["a-a", "a-b", "b-b", "b-c", "c-c"], id="1", ) - assert r.divide_network_route_between_stops() == [ + assert r.divide_network_links_between_stops() == [ ["a-a", "a-b", "b-b"], ["b-b"], ["b-b", "b-c", "c-c"], @@ -506,10 +506,10 @@ def test_dividing_network_route_with_a_longer_invalid_route_cuts_off_the_route() headway_spec={("00:07:00", "08:00:00"): 30}, arrival_offsets=["00:00:00", "00:03:00", "00:07:00"], departure_offsets=["00:00:00", "00:05:00", "00:09:00"], - network_route=["a-a", "a-b", "b-b", "b-c", "c-c", "c-d"], + network_links=["a-a", "a-b", "b-b", "b-c", "c-c", "c-d"], id="1", ) - assert r.divide_network_route_between_stops() == [["a-a", "a-b", "b-b"], ["b-b", "b-c", "c-c"]] + assert r.divide_network_links_between_stops() == [["a-a", "a-b", "b-b"], ["b-b", "b-c", "c-c"]] def test_has_correctly_ordered_route_with_a_correct_route(): @@ -531,7 +531,7 @@ def test_has_correctly_ordered_route_with_a_correct_route(): }, arrival_offsets=["1", "2"], departure_offsets=["1", "2"], - network_route=["10", "15", "20", "25", "30"], + network_links=["10", "15", "20", "25", "30"], id="1", ) assert r.has_correctly_ordered_route() @@ -556,7 +556,7 @@ def test_does_not_have_a_correctly_ordered_route_with_disordered_route(): }, arrival_offsets=["1", "2"], departure_offsets=["1", "2"], - network_route=["10", "15", "30", "25", "20"], + network_links=["10", "15", "30", "25", "20"], id="1", ) assert not r.has_correctly_ordered_route() @@ -580,7 +580,7 @@ def test_does_not_have_a_correctly_ordered_route_with_stop_missing_linkrefid(): }, arrival_offsets=["1", "2"], departure_offsets=["1", "2"], - network_route=["10", "15", "30", "25", "20"], + network_links=["10", "15", "30", "25", "20"], id="1", ) assert not r.has_correctly_ordered_route() @@ -605,7 +605,7 @@ def test_does_not_have_a_correctly_ordered_route_with_no_route(): }, arrival_offsets=["1", "2"], departure_offsets=["1", "2"], - network_route=[], + network_links=[], id="1", ) assert not r.has_correctly_ordered_route() @@ -646,7 +646,7 @@ def test_is_valid_with_looping_route(self_looping_route): def test_is_valid_with_non_network_route(route): - route.network_route = [] + route.network_links = [] assert not route.is_valid_route() diff --git a/tests/test_core_components_service.py b/tests/test_core_components_service.py index bc6e3831..6c887ec0 100644 --- a/tests/test_core_components_service.py +++ b/tests/test_core_components_service.py @@ -192,7 +192,7 @@ def test_initiating_service(assert_semantically_equal, service): "departure_offsets": ["00:00:00", "00:05:00", "00:09:00", "00:15:00"], "route_long_name": "", "id": "2", - "network_route": ["5", "6", "7", "8"], + "network_links": ["5", "6", "7", "8"], "await_departure": [], "ordered_stops": ["5", "6", "7", "8"], }, @@ -208,7 +208,7 @@ def test_initiating_service(assert_semantically_equal, service): "departure_offsets": ["00:00:00", "00:05:00", "00:09:00", "00:15:00"], "route_long_name": "", "id": "1", - "network_route": ["1", "2", "3", "4"], + "network_links": ["1", "2", "3", "4"], "await_departure": [], "ordered_stops": ["1", "2", "3", "4"], }, @@ -618,7 +618,7 @@ def test_has_valid_routes_with_only_valid_routes(route): }, arrival_offsets=["00:00:00", "00:03:00", "00:07:00", "00:13:00"], departure_offsets=["00:00:00", "00:05:00", "00:09:00", "00:15:00"], - network_route=["1", "2", "3", "4"], + network_links=["1", "2", "3", "4"], id="2", ) s = Service(id="1", routes=[route, r]) @@ -644,8 +644,8 @@ def test_is_valid_with_looping_route(self_looping_route, route): def test_is_valid_with_non_network_route(service): - service._graph.graph["routes"]["1"]["network_route"] = [] - service._graph.graph["routes"]["2"]["network_route"] = [] + service._graph.graph["routes"]["1"]["network_links"] = [] + service._graph.graph["routes"]["2"]["network_links"] = [] assert not service.is_valid_service() diff --git a/tests/test_core_network.py b/tests/test_core_network.py index d7077082..7a229872 100644 --- a/tests/test_core_network.py +++ b/tests/test_core_network.py @@ -386,7 +386,7 @@ def network_for_summary_stats(): }, arrival_offsets=["00:00:00", "00:02:00"], departure_offsets=["00:00:00", "00:02:00"], - network_route=["link_1", "link_2"], + network_links=["link_1", "link_2"], ), Route( id="2", @@ -433,7 +433,7 @@ def network_for_summary_stats(): }, arrival_offsets=["00:00:00", "00:03:00"], departure_offsets=["00:00:00", "00:05:00"], - network_route=["link_1", "link_2"], + network_links=["link_1", "link_2"], ), ], ), @@ -3466,7 +3466,7 @@ def test_schedule_routes_with_an_empty_service(network_object_from_test_data): "departure_offsets": [], "route_long_name": "", "id": "1", - "network_route": [], + "network_links": [], "await_departure": [], "ordered_stops": [], } @@ -3483,7 +3483,7 @@ def test_schedule_routes_with_disconnected_routes(network_object_from_test_data) n = network_object_from_test_data n.add_link("2", 2345678, 987875) n.schedule.apply_attributes_to_routes( - {"VJbd8660f05fe6f744e58a66ae12bd66acbca88b98": {"network_route": ["1", "2"]}} + {"VJbd8660f05fe6f744e58a66ae12bd66acbca88b98": {"network_links": ["1", "2"]}} ) correct_routes = [["25508485", "21667818"], [2345678, 987875]] routes = n.schedule_routes_nodes() @@ -3854,7 +3854,7 @@ def test_generating_pt_network_route_geodataframe(): "trip_departure_time": ["04:40:00"], "vehicle_id": ["veh_1_bus"], }, - network_route=["l1", "l2"], + network_links=["l1", "l2"], arrival_offsets=["00:00:00", "00:02:00", "00:04:00"], departure_offsets=["00:00:00", "00:02:00", "00:04:00"], ) @@ -4137,7 +4137,7 @@ def test_valid_network_route(): trips={}, arrival_offsets=[], departure_offsets=[], - network_route=["1", "2"], + network_links=["1", "2"], ) assert n.is_valid_network_route(r) @@ -4153,7 +4153,7 @@ def test_network_route_with_wrong_links(): trips={}, arrival_offsets=[], departure_offsets=[], - network_route=["1", "2"], + network_links=["1", "2"], ) assert not n.is_valid_network_route(r) @@ -4169,7 +4169,7 @@ def test_network_route_with_empty_link_list(): trips={}, arrival_offsets=[], departure_offsets=[], - network_route=[], + network_links=[], ) assert not n.is_valid_network_route(r) @@ -4185,7 +4185,7 @@ def test_network_route_with_incorrect_modes_on_link(): trips={}, arrival_offsets=[], departure_offsets=[], - network_route=["1", "2"], + network_links=["1", "2"], ) assert not n.is_valid_network_route(r) @@ -4277,12 +4277,12 @@ def test_has_schedule_with_valid_network_routes_with_valid_routes(simple_route): n = Network("epsg:27700") n.add_link("1", 1, 2, attribs={"modes": ["bus"]}) n.add_link("2", 2, 3, attribs={"modes": ["car", "bus"]}) - simple_route.network_route = ["1", "2"] + simple_route.network_links = ["1", "2"] n.schedule = Schedule(n.epsg, [Service(id="service", routes=[simple_route])]) simple_route.reindex("service_1") n.schedule.add_route("service", simple_route) n.schedule.apply_attributes_to_routes( - {"service_0": {"network_route": ["1", "2"]}, "service_1": {"network_route": ["1", "2"]}} + {"service_0": {"network_links": ["1", "2"]}, "service_1": {"network_links": ["1", "2"]}} ) assert n.has_schedule_with_valid_network_routes() @@ -4291,7 +4291,7 @@ def test_has_schedule_with_valid_network_routes_with_some_valid_routes(simple_ro n = Network("epsg:27700") n.add_link("1", 1, 2) n.add_link("2", 2, 3) - simple_route.network_route = ["1", "2"] + simple_route.network_links = ["1", "2"] route_2 = Route( route_short_name="", mode="bus", @@ -4299,7 +4299,7 @@ def test_has_schedule_with_valid_network_routes_with_some_valid_routes(simple_ro trips={"trip_id": ["1"], "trip_departure_time": ["13:00:00"], "vehicle_id": ["veh_1_bus"]}, arrival_offsets=[], departure_offsets=[], - network_route=["10000"], + network_links=["10000"], ) n.schedule = Schedule(n.epsg, [Service(id="service", routes=[simple_route, route_2])]) assert not n.has_schedule_with_valid_network_routes() @@ -4309,7 +4309,7 @@ def test_has_schedule_with_valid_network_routes_with_invalid_routes(simple_route n = Network("epsg:27700") n.add_link("1", 1, 2) n.add_link("2", 2, 3) - simple_route.network_route = ["3", "4"] + simple_route.network_links = ["3", "4"] n.schedule = Schedule(n.epsg, [Service(id="service", routes=[simple_route, simple_route])]) assert not n.has_schedule_with_valid_network_routes() @@ -4318,7 +4318,7 @@ def test_has_schedule_with_valid_network_routes_with_empty_routes(simple_route): n = Network("epsg:27700") n.add_link("1", 1, 2) n.add_link("2", 2, 3) - simple_route.network_route = [] + simple_route.network_links = [] n.schedule = Schedule(n.epsg, [Service(id="service", routes=[simple_route, simple_route])]) assert not n.has_schedule_with_valid_network_routes() @@ -4395,7 +4395,7 @@ def test_invalid_network_routes_with_valid_route(simple_route): n.add_link("2", 2, 3, attribs={"modes": ["bus"]}) simple_route.reindex("route") n.schedule = Schedule(n.epsg, [Service(id="service", routes=[simple_route])]) - n.schedule.apply_attributes_to_routes({"route": {"network_route": ["1", "2"]}}) + n.schedule.apply_attributes_to_routes({"route": {"network_links": ["1", "2"]}}) assert n.invalid_network_routes() == [] @@ -4405,7 +4405,7 @@ def test_invalid_network_routes_with_invalid_route(simple_route): n.add_link("2", 2, 3) simple_route.reindex("route") n.schedule = Schedule(n.epsg, [Service(id="service", routes=[simple_route])]) - n.schedule.apply_attributes_to_routes({"route": {"network_route": ["3", "4"]}}) + n.schedule.apply_attributes_to_routes({"route": {"network_links": ["3", "4"]}}) assert n.invalid_network_routes() == ["route"] @@ -4415,7 +4415,7 @@ def test_invalid_network_routes_with_empty_route(simple_route): n.add_link("2", 2, 3) simple_route.reindex("route") n.schedule = Schedule(n.epsg, [Service(id="service", routes=[simple_route])]) - n.schedule.apply_attributes_to_routes({"route": {"network_route": []}}) + n.schedule.apply_attributes_to_routes({"route": {"network_links": []}}) assert n.invalid_network_routes() == ["route"] @@ -5681,7 +5681,7 @@ def test_splitting_link_updates_route_in_schedule(mocker): }, arrival_offsets=["00:00:00", "00:02:00"], departure_offsets=["00:00:00", "00:02:00"], - network_route=["AAA", "l1", "BBB"], + network_links=["AAA", "l1", "BBB"], ) ], ) @@ -5689,7 +5689,7 @@ def test_splitting_link_updates_route_in_schedule(mocker): ) n.split_link_at_point("l1", 528568.5, 177243) - assert n.schedule.route("1").network_route == ["AAA", new_link_1_ID, new_link_2_ID, "BBB"] + assert n.schedule.route("1").network_links == ["AAA", new_link_1_ID, new_link_2_ID, "BBB"] def test_generating_summary_report(assert_semantically_equal, network_for_summary_stats): diff --git a/tests/test_core_schedule.py b/tests/test_core_schedule.py index dfe6eebb..dc200371 100644 --- a/tests/test_core_schedule.py +++ b/tests/test_core_schedule.py @@ -276,7 +276,7 @@ def test_initiating_schedule(assert_semantically_equal, schedule): "departure_offsets": ["00:00:00", "00:05:00", "00:09:00", "00:15:00"], "route_long_name": "", "id": "2", - "network_route": [], + "network_links": [], "await_departure": [], "ordered_stops": ["5", "6", "7", "8"], }, @@ -292,7 +292,7 @@ def test_initiating_schedule(assert_semantically_equal, schedule): "departure_offsets": ["00:00:00", "00:05:00", "00:09:00", "00:15:00"], "route_long_name": "", "id": "1", - "network_route": [], + "network_links": [], "await_departure": [], "ordered_stops": ["1", "2", "3", "4"], }, @@ -554,7 +554,7 @@ def test_reproject_changes_projection_for_all_stops_in_route(assert_semantically epsg="epsg:27700", ), ], - network_route=["1"], + network_links=["1"], trips={ "trip_id": ["VJ00938baa194cee94700312812d208fe79f3297ee_04:40:00"], "trip_departure_time": ["04:40:00"], @@ -602,7 +602,7 @@ def test_adding_merges_separable_schedules(route): }, arrival_offsets=["00:00:00", "00:03:00", "00:07:00", "00:13:00"], departure_offsets=["00:00:00", "00:05:00", "00:09:00", "00:15:00"], - network_route=["1", "2", "3", "4"], + network_links=["1", "2", "3", "4"], id="2", ) ], @@ -837,7 +837,7 @@ def schedule_with_two_services(): "trip_departure_time": ["13:00:00", "13:30:00"], "vehicle_id": ["veh_1_bus", "veh_2_bus"], }, - network_route=["1", "2", "3", "4"], + network_links=["1", "2", "3", "4"], arrival_offsets=["00:00:00", "00:03:00", "00:07:00", "00:13:00"], departure_offsets=["00:00:00", "00:05:00", "00:09:00", "00:15:00"], ) @@ -856,7 +856,7 @@ def schedule_with_two_services(): "trip_departure_time": ["11:00:00", "13:00:00"], "vehicle_id": ["veh_3_bus", "veh_4_bus"], }, - network_route=["4", "5", "6", "7"], + network_links=["4", "5", "6", "7"], arrival_offsets=["00:00:00", "00:03:00", "00:07:00", "00:13:00"], departure_offsets=["00:00:00", "00:05:00", "00:09:00", "00:15:00"], ) @@ -2303,7 +2303,7 @@ def test_read_matsim_schedule_returns_expected_schedule(assert_semantically_equa epsg="epsg:27700", ), ], - network_route=["1"], + network_links=["1"], trips={ "trip_id": ["VJ00938baa194cee94700312812d208fe79f3297ee_04:40:00"], "trip_departure_time": ["04:40:00"], @@ -2615,7 +2615,7 @@ def test_has_valid_services_with_only_valid_services(service): def test_invalid_services_shows_invalid_services(service): for route_id in service.route_ids(): - service._graph.graph["routes"][route_id]["network_route"] = ["1"] + service._graph.graph["routes"][route_id]["network_links"] = ["1"] s = Schedule("epsg:27700", [service]) assert s.invalid_services() == [service] @@ -4233,7 +4233,7 @@ def json_schedule(): "departure_offsets": ["00:00:00", "00:05:00", "00:09:00", "00:15:00"], "route_long_name": "", "id": "1", - "network_route": [], + "network_links": [], "await_departure": [], "ordered_stops": ["1", "2", "3", "4"], }, @@ -4249,7 +4249,7 @@ def json_schedule(): "departure_offsets": ["00:00:00", "00:05:00", "00:09:00", "00:15:00"], "route_long_name": "", "id": "2", - "network_route": [], + "network_links": [], "await_departure": [], "ordered_stops": ["5", "6", "7", "8"], }, diff --git a/tests/test_core_schedule_elements.py b/tests/test_core_schedule_elements.py index 318d1ec2..1399c784 100644 --- a/tests/test_core_schedule_elements.py +++ b/tests/test_core_schedule_elements.py @@ -53,7 +53,7 @@ def schedule(): }, arrival_offsets=["00:00:00", "00:02:00"], departure_offsets=["00:00:00", "00:02:00"], - network_route=["0", "1"], + network_links=["0", "1"], ), Route( id="2", @@ -82,7 +82,7 @@ def schedule(): }, arrival_offsets=["00:00:00", "00:03:00"], departure_offsets=["00:00:00", "00:05:00"], - network_route=["1", "2"], + network_links=["1", "2"], ), ], ), @@ -116,7 +116,7 @@ def schedule(): }, arrival_offsets=["00:00:00", "00:02:00"], departure_offsets=["00:00:00", "00:02:00"], - network_route=["3", "4"], + network_links=["3", "4"], ), Route( id="4", @@ -145,7 +145,7 @@ def schedule(): }, arrival_offsets=["00:00:00", "00:03:00"], departure_offsets=["00:00:00", "00:05:00"], - network_route=["4", "5"], + network_links=["4", "5"], ), ], ), @@ -319,7 +319,7 @@ def basic_service(): }, arrival_offsets=["00:00:00", "00:02:00"], departure_offsets=["00:00:00", "00:02:00"], - network_route=[], + network_links=[], ), Route( id="2", @@ -336,7 +336,7 @@ def basic_service(): }, arrival_offsets=["00:00:00", "00:03:00"], departure_offsets=["00:00:00", "00:05:00"], - network_route=[], + network_links=[], ), Route( id="3", @@ -353,7 +353,7 @@ def basic_service(): }, arrival_offsets=["00:00:00", "00:02:00"], departure_offsets=["00:00:00", "00:02:00"], - network_route=[], + network_links=[], ), Route( id="4", @@ -371,7 +371,7 @@ def basic_service(): }, arrival_offsets=["00:00:00", "00:03:00"], departure_offsets=["00:00:00", "00:05:00"], - network_route=[], + network_links=[], ), ], ) @@ -412,7 +412,7 @@ def service_with_separated_routes(): }, arrival_offsets=["00:00:00", "00:02:00"], departure_offsets=["00:00:00", "00:02:00"], - network_route=[], + network_links=[], ), Route( id="2", @@ -429,7 +429,7 @@ def service_with_separated_routes(): }, arrival_offsets=["00:00:00", "00:03:00"], departure_offsets=["00:00:00", "00:05:00"], - network_route=[], + network_links=[], ), Route( id="3", @@ -448,7 +448,7 @@ def service_with_separated_routes(): }, arrival_offsets=["00:00:00", "00:02:00"], departure_offsets=["00:00:00", "00:02:00"], - network_route=["0", "1", "2", "3"], + network_links=["0", "1", "2", "3"], ), ], ) @@ -848,7 +848,7 @@ def test_adding_schedules_retains_shared_graph(schedule): }, arrival_offsets=["00:00:00", "00:02:00"], departure_offsets=["00:00:00", "00:02:00"], - network_route=["0", "1"], + network_links=["0", "1"], ), Route( id="32", @@ -877,7 +877,7 @@ def test_adding_schedules_retains_shared_graph(schedule): }, arrival_offsets=["00:00:00", "00:03:00"], departure_offsets=["00:00:00", "00:05:00"], - network_route=["1", "2"], + network_links=["1", "2"], ), ], ) diff --git a/tests/test_data/json/schedule.json b/tests/test_data/json/schedule.json index 31341385..ea9fbe0c 100644 --- a/tests/test_data/json/schedule.json +++ b/tests/test_data/json/schedule.json @@ -53,7 +53,7 @@ ], "route_long_name": "", "id": "VJ6c64ab7b477e201cae950efde5bd0cb4e2e8888e", - "network_route": [ + "network_links": [ "1", "10" ], diff --git a/tests/test_input_matsim_reader.py b/tests/test_input_matsim_reader.py index 90d38b2c..0d0965d9 100644 --- a/tests/test_input_matsim_reader.py +++ b/tests/test_input_matsim_reader.py @@ -58,7 +58,7 @@ def correct_services_from_test_pt2matsim_schedule(): route_short_name="12", mode="bus", stops=stops, - network_route=["1"], + network_links=["1"], trips={ "trip_id": ["VJ00938baa194cee94700312812d208fe79f3297ee_04:40:00"], "trip_departure_time": ["04:40:00"], @@ -118,13 +118,9 @@ def test_read_network_builds_graph_with_correct_data_on_nodes_and_edges(assert_s transformer = Transformer.from_proj(Proj("epsg:27700"), Proj("epsg:4326"), always_xy=True) - ( - g, - link_id_mapping, - duplicated_nodes, - duplicated_link_ids, - attributes, - ) = matsim_reader.read_network(pt2matsim_network_test_file, transformer) + (g, _, duplicated_nodes, duplicated_link_ids, _) = matsim_reader.read_network( + pt2matsim_network_test_file, transformer + ) for u, data in g.nodes(data=True): assert str(u) in correct_nodes @@ -258,13 +254,9 @@ def test_read_network_builds_graph_with_multiple_edges_with_correct_data_on_node transformer = Transformer.from_proj(Proj("epsg:27700"), Proj("epsg:4326"), always_xy=True) - ( - g, - link_id_mapping, - duplicated_nodes, - duplicated_link_ids, - attributes, - ) = matsim_reader.read_network(pt2matsim_network_multiple_edges_test_file, transformer) + (g, link_id_mapping, duplicated_nodes, duplicated_link_ids, _) = matsim_reader.read_network( + pt2matsim_network_multiple_edges_test_file, transformer + ) for u, data in g.nodes(data=True): assert str(u) in correct_nodes @@ -356,13 +348,9 @@ def test_read_network_builds_graph_with_unique_links_given_matsim_network_with_c transformer = Transformer.from_proj(Proj("epsg:27700"), Proj("epsg:4326"), always_xy=True) - ( - g, - link_id_mapping, - duplicated_nodes, - duplicated_link_ids, - attributes, - ) = matsim_reader.read_network(pt2matsim_network_clashing_link_ids_test_file, transformer) + (g, link_id_mapping, duplicated_nodes, duplicated_link_ids, _) = matsim_reader.read_network( + pt2matsim_network_clashing_link_ids_test_file, transformer + ) assert len(g.nodes) == len(correct_nodes) for u, data in g.nodes(data=True): @@ -429,13 +417,9 @@ def test_read_network_rejects_non_unique_nodes(assert_semantically_equal): transformer = Transformer.from_proj(Proj("epsg:27700"), Proj("epsg:4326"), always_xy=True) - ( - g, - link_id_mapping, - duplicated_nodes, - duplicated_link_ids, - attributes, - ) = matsim_reader.read_network(pt2matsim_network_clashing_node_ids_test_file, transformer) + (g, link_id_mapping, duplicated_nodes, duplicated_link_ids, _) = matsim_reader.read_network( + pt2matsim_network_clashing_node_ids_test_file, transformer + ) assert len(g.nodes) == len(correct_nodes) for u, data in g.nodes(data=True): @@ -715,12 +699,9 @@ def test_forcing_long_form_in_network_with_additional_node_attributes_reads_netw def test_read_schedule_reads_the_data_correctly( assert_semantically_equal, correct_services_from_test_pt2matsim_schedule ): - ( - services, - minimalTransferTimes, - transit_stop_id_mapping, - schedule_attribs, - ) = matsim_reader.read_schedule(pt2matsim_schedule_file, "epsg:27700") + (services, minimalTransferTimes, _, _) = matsim_reader.read_schedule( + pt2matsim_schedule_file, "epsg:27700" + ) correct_minimalTransferTimes = { "26997928P": {"26997928P.link:1": 0.0}, diff --git a/tests/test_input_read.py b/tests/test_input_read.py index 09ee5ed6..fa0fda02 100644 --- a/tests/test_input_read.py +++ b/tests/test_input_read.py @@ -163,7 +163,7 @@ def test_reading_json(assert_semantically_equal): "departure_offsets": ["00:00:00", "00:02:20"], "route_long_name": "", "id": "VJ6c64ab7b477e201cae950efde5bd0cb4e2e8888e", - "network_route": ["1", "10"], + "network_links": ["1", "10"], "await_departure": [True, True], "ordered_stops": ["490000235X.link:1", "490000235YB.link:10"], } diff --git a/tests/test_max_stable_set.py b/tests/test_max_stable_set.py index 716963b4..d93c01f9 100644 --- a/tests/test_max_stable_set.py +++ b/tests/test_max_stable_set.py @@ -1073,7 +1073,7 @@ def test_partial_mss_problem_generates_correct_network_routes( "stop_1.link:artificial_link===from:stop_1===to:stop_1", ], }, - "network_route": { + "network_links": { "service_1_route_1": [ "artificial_link===from:stop_1===to:stop_1", "artificial_link===from:stop_1===to:node_5", @@ -1360,7 +1360,7 @@ def test_combining_two_changesets_with_overlap(assert_semantically_equal, partia "stop_3.link:link_7_8_car", ], }, - "network_route": { + "network_links": { "service_1_route_2": [ "link_7_8_car", "link_8_7_car", diff --git a/tests/test_modify_schedule.py b/tests/test_modify_schedule.py index cfdd070f..4726b4be 100644 --- a/tests/test_modify_schedule.py +++ b/tests/test_modify_schedule.py @@ -647,14 +647,14 @@ def test_teleporting_service(test_network, test_service): assert rep["graph"]["graph_connectivity"]["car"]["number_of_connected_subgraphs"] == 1 assert rep["schedule"]["schedule_level"]["is_valid_schedule"] assert rep["routing"]["services_have_routes_in_the_graph"] - assert test_network.schedule.route("route_1").network_route == [ + assert test_network.schedule.route("route_1").network_links == [ "artificial_link===from:490004695A===to:490004695A", "artificial_link===from:490004695A===to:490000235C", "artificial_link===from:490000235C===to:490000235C", "artificial_link===from:490000235C===to:490000089A", "artificial_link===from:490000089A===to:490000089A", ] - assert test_network.schedule.route("route_2").network_route == [ + assert test_network.schedule.route("route_2").network_links == [ "artificial_link===from:490000089A===to:490000089A", "artificial_link===from:490000089A===to:490000252X", "artificial_link===from:490000252X===to:490000252X", @@ -725,21 +725,21 @@ def test_teleporting_more_than_one_service(test_network, test_service): assert rep["graph"]["graph_connectivity"]["car"]["number_of_connected_subgraphs"] == 1 assert rep["schedule"]["schedule_level"]["is_valid_schedule"] assert rep["routing"]["services_have_routes_in_the_graph"] - assert test_network.schedule.route("route_1").network_route == [ + assert test_network.schedule.route("route_1").network_links == [ "artificial_link===from:490004695A===to:490004695A", "artificial_link===from:490004695A===to:490000235C", "artificial_link===from:490000235C===to:490000235C", "artificial_link===from:490000235C===to:490000089A", "artificial_link===from:490000089A===to:490000089A", ] - assert test_network.schedule.route("route_2").network_route == [ + assert test_network.schedule.route("route_2").network_links == [ "artificial_link===from:490000089A===to:490000089A", "artificial_link===from:490000089A===to:490000252X", "artificial_link===from:490000252X===to:490000252X", "artificial_link===from:490000252X===to:490000078Q", "artificial_link===from:490000078Q===to:490000078Q", ] - assert test_network.schedule.route("route_1_rail").network_route == [ + assert test_network.schedule.route("route_1_rail").network_links == [ "artificial_link===from:490004695A===to:490004695A", "artificial_link===from:490004695A===to:490000235C", "artificial_link===from:490000235C===to:490000235C", @@ -792,14 +792,14 @@ def test_teleporting_service_with_some_snapped_stops(test_network, test_service) assert rep["graph"]["graph_connectivity"]["car"]["number_of_connected_subgraphs"] == 1 assert rep["schedule"]["schedule_level"]["is_valid_schedule"] assert rep["routing"]["services_have_routes_in_the_graph"] - assert test_network.schedule.route("route_1").network_route == [ + assert test_network.schedule.route("route_1").network_links == [ "artificial_link===from:490004695A===to:490004695A", "artificial_link===from:490004695A===to:490000235C", "artificial_link===from:490000235C===to:490000235C", "artificial_link===from:490000235C===to:490000089A", "artificial_link===from:490000089A===to:490000089A", ] - assert test_network.schedule.route("route_2").network_route == [ + assert test_network.schedule.route("route_2").network_links == [ "artificial_link===from:490000089A===to:490000089A", "artificial_link===from:490000089A===to:5221366094904818311", "5221366094904818311_5221366094903752729", @@ -839,14 +839,14 @@ def test_teleporting_service_with_some_stops_snapped_to_non_existing_links( assert rep["graph"]["graph_connectivity"]["car"]["number_of_connected_subgraphs"] == 1 assert rep["schedule"]["schedule_level"]["is_valid_schedule"] assert rep["routing"]["services_have_routes_in_the_graph"] - assert test_network.schedule.route("route_1").network_route == [ + assert test_network.schedule.route("route_1").network_links == [ "artificial_link===from:490004695A===to:490004695A", "artificial_link===from:490004695A===to:490000235C", "artificial_link===from:490000235C===to:490000235C", "artificial_link===from:490000235C===to:490000089A", "artificial_link===from:490000089A===to:490000089A", ] - assert test_network.schedule.route("route_2").network_route == [ + assert test_network.schedule.route("route_2").network_links == [ "artificial_link===from:490000089A===to:490000089A", "artificial_link===from:490000089A===to:490000252X", "artificial_link===from:490000252X===to:490000252X", @@ -923,22 +923,22 @@ def test_routing_schedule_specifying_services(test_network, test_service): def test_rerouting_service(test_network): - test_network.schedule._graph.graph["routes"]["7797_0"]["network_route"] = [] - test_network.schedule._graph.graph["routes"]["7797_1"]["network_route"] = [] + test_network.schedule._graph.graph["routes"]["7797_0"]["network_links"] = [] + test_network.schedule._graph.graph["routes"]["7797_1"]["network_links"] = [] test_network.reroute("7797") - assert test_network.schedule._graph.graph["routes"]["7797_0"]["network_route"] - assert test_network.schedule._graph.graph["routes"]["7797_1"]["network_route"] + assert test_network.schedule._graph.graph["routes"]["7797_0"]["network_links"] + assert test_network.schedule._graph.graph["routes"]["7797_1"]["network_links"] test_network.schedule["7797"].is_valid_service() def test_rerouting_route(test_network): - test_network.schedule._graph.graph["routes"]["7797_0"]["network_route"] = [] + test_network.schedule._graph.graph["routes"]["7797_0"]["network_links"] = [] test_network.reroute("7797_0") - assert test_network.schedule._graph.graph["routes"]["7797_0"]["network_route"] + assert test_network.schedule._graph.graph["routes"]["7797_0"]["network_links"] test_network.schedule.route("7797_0").is_valid_route() @@ -965,7 +965,7 @@ def test_rerouting_with_stops_that_have_repeated_linkrefids_does_not_route_betwe ] test_network.reroute("7797_1") - new_route = test_network.schedule.route("7797_1").network_route + new_route = test_network.schedule.route("7797_1").network_links assert new_route != old_route # check double linkref is mentioned only once assert [i for i in new_route if i == "5221390688151572741_5221390688151572741"] == [ @@ -980,11 +980,11 @@ def test_rerouting_nonexistent_id_throws_error(test_network): def test_rerouting_with_extra_mode(test_network): - test_network.schedule._graph.graph["routes"]["7797_0"]["network_route"] = [] + test_network.schedule._graph.graph["routes"]["7797_0"]["network_links"] = [] test_network.reroute("7797_0", additional_modes="car") - assert test_network.schedule._graph.graph["routes"]["7797_0"]["network_route"] + assert test_network.schedule._graph.graph["routes"]["7797_0"]["network_links"] test_network.schedule.route("7797_0").is_valid_route() diff --git a/tests/test_output_geojson.py b/tests/test_output_geojson.py index 038293be..744bd741 100644 --- a/tests/test_output_geojson.py +++ b/tests/test_output_geojson.py @@ -218,7 +218,7 @@ def test_generating_standard_outputs(network, tmpdir): }, arrival_offsets=["00:00:00", "00:02:00"], departure_offsets=["00:00:00", "00:02:00"], - network_route=["link_1", "link_2"], + network_links=["link_1", "link_2"], ), Route( id="2", @@ -265,7 +265,7 @@ def test_generating_standard_outputs(network, tmpdir): }, arrival_offsets=["00:00:00", "00:03:00"], departure_offsets=["00:00:00", "00:05:00"], - network_route=["link_1", "link_2"], + network_links=["link_1", "link_2"], ), ], ), @@ -299,7 +299,7 @@ def test_generating_standard_outputs(network, tmpdir): }, arrival_offsets=["0:00:00", "0:02:00"], departure_offsets=["0:00:00", "0:02:00"], - network_route=["link_0", "link_1", "link_2"], + network_links=["link_0", "link_1", "link_2"], ) ], ),