Skip to content

Commit

Permalink
gtfs2ntfs: read route_desc into comments
Browse files Browse the repository at this point in the history
  • Loading branch information
Tristram Gräbener committed Jan 26, 2021
1 parent 663c273 commit 2392e1a
Show file tree
Hide file tree
Showing 24 changed files with 175 additions and 0 deletions.
27 changes: 27 additions & 0 deletions src/gtfs/read.rs
Original file line number Diff line number Diff line change
Expand Up @@ -631,6 +631,26 @@ fn manage_comment_from_stop(
comment_links
}

fn manage_comment_from_route(
comments: &mut CollectionWithId<objects::Comment>,
route: &Route,
) -> CommentLinksT {
let mut comment_links: CommentLinksT = CommentLinksT::default();
if let Some(desc) = &route.desc {
let comment_id = "route:".to_string() + &route.id;
let comment = objects::Comment {
id: comment_id.clone(),
comment_type: objects::CommentType::Information,
label: None,
name: desc.to_string(),
url: None,
};
comments.push(comment).unwrap();
comment_links.insert(comment_id);
}
comment_links
}

fn manage_odt_comment_from_stop_time(
collections: &mut Collections,
on_demand_transport_comment: &str,
Expand Down Expand Up @@ -1184,6 +1204,13 @@ where
let routes = make_routes(&gtfs_trips, &map_line_routes);
collections.routes = CollectionWithId::new(routes)?;

gtfs_routes_collection.iter().for_each(|(_id, gtfs_route)| {
let comments = manage_comment_from_route(&mut collections.comments, gtfs_route);
if let Some(mut route) = collections.routes.get_mut(&gtfs_route.id) {
route.comment_links = comments;
}
});

let (vehicle_journeys, trip_properties) = make_ntfs_vehicle_journeys(
&gtfs_trips,
&gtfs_routes_collection,
Expand Down
3 changes: 3 additions & 0 deletions tests/fixtures/gtfs2ntfs/routes_comments/input/agency.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
agency_id,agency_name,agency_url,agency_timezone,agency_phone
1,mon agence,http://kisio.org,Europe/Paris,
2,my agency,http://kisio.org,Europe/Paris,0123456789
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
service_id,date,exception_type
service:1,20180101,1
service:1,20180102,1
service:1,20180103,1
service:2,20180105,1
service:2,20180106,1
5 changes: 5 additions & 0 deletions tests/fixtures/gtfs2ntfs/routes_comments/input/routes.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
route_id,route_short_name,route_long_name,line_id,route_type,agency_id,route_desc
route_not_in_trip:1,ma route 1,,line:1,1,1,
route:2,ma route 1,,line:1,1,1,route 2 comment
route:3,ma route 2,,line:2,1,2,
route_not_in_trip:4,ma route 3,,line:2,1,2,
12 changes: 12 additions & 0 deletions tests/fixtures/gtfs2ntfs/routes_comments/input/stop_times.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
trip_id,stop_sequence,stop_id,arrival_time,departure_time,pickup_type,drop_off_type
trip:3,0,stop:31,23:50:00,23:50:00,,
trip:3,1,stop:32,24:03:00,24:05:00,,
trip:3,2,stop:33,24:10:00,24:15:00,,
trip:4,0,stop:11,07:23:00,07:23:00,2,
trip:4,1,stop:22,07:32:00,07:32:00,2,
trip:4,2,stop:33,07:40:00,07:42:00,2,
trip:5,0,stop:51,13:23:00,13:23:00,2,
trip:5,1,stop:52,14:10:00,14:10:00,2,
trip:5,2,stop:53,14:40:00,14:40:00,,2
trip:6,0,stop:61,14:40:00,14:40:00,2,
trip:6,1,stop:61,15:20:00,15:20:00,2,
16 changes: 16 additions & 0 deletions tests/fixtures/gtfs2ntfs/routes_comments/input/stops.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
stop_id,stop_name,stop_lat,stop_lon,location_type,parent_station,stop_desc
stoparea:1,plop,48.844746,2.372987,1,,stoparea:1_comment
stop:11,pouet,48.844746,2.372987,0,stoparea:1,stop:11_comment
stop:12,pouet,48.844746,2.372987,0,stoparea:1,
stop:13,pouet,48.844746,2.372987,0,stoparea:1,
stop:14,pouet,48.844746,2.372987,0,stoparea:1,
stop:21,pouet,48.844746,2.372987,0,stoparea:1,
stop:22,pouet,48.844746,2.372987,0,stoparea:1,
stop:31,pouet,48.844746,2.372987,0,stoparea:1,
stop:32,pouet,48.844746,2.372987,0,stoparea:1,
stop:33,pouet,48.844746,2.372987,0,stoparea:1,
stop:51,pouet,48.844746,2.372987,0,stoparea:1,
stop:52,pouet,48.844746,2.372987,0,stoparea:1,
stop:53,pouet,48.844746,2.372987,0,stoparea:1,
stop:61,pouet,48.844746,2.372987,0,stoparea:1,
stop:62,pouet,48.844746,2.372987,0,stoparea:1,
6 changes: 6 additions & 0 deletions tests/fixtures/gtfs2ntfs/routes_comments/input/trips.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
route_id,service_id,trip_id
route:2,service:1,trip:3
route:2,service:1,trip:4
route:3,service:2,trip:5
route:3,service:2,trip:6
route:3,service:2,with_no_stop_times
3 changes: 3 additions & 0 deletions tests/fixtures/gtfs2ntfs/routes_comments/output/calendar.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
service_id,monday,tuesday,wednesday,thursday,friday,saturday,sunday,start_date,end_date
service:1,1,1,1,0,0,0,0,20180101,20180103
service:2,0,0,0,0,1,1,0,20180105,20180106
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
object_id,object_type,comment_id
route:2,route,route:route:2
stoparea:1,stop_area,stop:stoparea:1
stop:11,stop_point,stop:stop:11
4 changes: 4 additions & 0 deletions tests/fixtures/gtfs2ntfs/routes_comments/output/comments.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
comment_id,comment_type,comment_label,comment_name,comment_url
stop:stoparea:1,information,,stoparea:1_comment,
stop:stop:11,information,,stop:11_comment,
route:route:2,information,,route 2 comment,
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
commercial_mode_id,commercial_mode_name
Metro,Metro
3 changes: 3 additions & 0 deletions tests/fixtures/gtfs2ntfs/routes_comments/output/companies.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
company_id,company_name,company_address,company_url,company_mail,company_phone
1,mon agence,,http://kisio.org,,
2,my agency,,http://kisio.org,,0123456789
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
contributor_id,contributor_name,contributor_license,contributor_website
default_contributor,Default contributor,Unknown license,
2 changes: 2 additions & 0 deletions tests/fixtures/gtfs2ntfs/routes_comments/output/datasets.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
dataset_id,contributor_id,dataset_start_date,dataset_end_date,dataset_type,dataset_extrapolation,dataset_desc,dataset_system
default_dataset,default_contributor,20180101,20180106,,0,,
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
feed_info_param,feed_info_value
feed_creation_date,20190403
feed_creation_time,17:19:00
feed_creation_datetime,2019-04-03T17:19:00+00:00
feed_end_date,20180106
feed_start_date,20180101
ntfs_version,0.11.4
3 changes: 3 additions & 0 deletions tests/fixtures/gtfs2ntfs/routes_comments/output/lines.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
line_id,line_code,line_name,forward_line_name,backward_line_name,line_color,line_text_color,line_sort_order,network_id,commercial_mode_id,geometry_id,line_opening_time,line_closing_time
route:2,ma route 1,,,,,,,1,Metro,,23:50:00,31:40:00
route:3,ma route 2,,,,,,,2,Metro,,13:23:00,15:20:00
3 changes: 3 additions & 0 deletions tests/fixtures/gtfs2ntfs/routes_comments/output/networks.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
network_id,network_name,network_url,network_timezone,network_lang,network_phone,network_address,network_sort_order
1,mon agence,http://kisio.org,Europe/Paris,,,,
2,my agency,http://kisio.org,Europe/Paris,,0123456789,,
17 changes: 17 additions & 0 deletions tests/fixtures/gtfs2ntfs/routes_comments/output/object_codes.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
object_type,object_id,object_system,object_code
stop_area,stoparea:1,source,stoparea:1
stop_point,stop:11,source,stop:11
stop_point,stop:22,source,stop:22
stop_point,stop:31,source,stop:31
stop_point,stop:32,source,stop:32
stop_point,stop:33,source,stop:33
stop_point,stop:51,source,stop:51
stop_point,stop:52,source,stop:52
stop_point,stop:53,source,stop:53
stop_point,stop:61,source,stop:61
network,1,source,1
network,2,source,2
trip,trip:4,source,trip:4
trip,trip:5,source,trip:5
trip,trip:3,source,trip:3
trip,trip:6,source,trip:6
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
physical_mode_id,physical_mode_name,co2_emission
Metro,Metro,3.0
Bike,Bike,0.0
BikeSharingService,BikeSharingService,0.0
Car,Car,184.0
3 changes: 3 additions & 0 deletions tests/fixtures/gtfs2ntfs/routes_comments/output/routes.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
route_id,route_name,direction_type,line_id,geometry_id,destination_id
route:2,ma route 1,forward,route:2,,stoparea:1
route:3,ma route 2,forward,route:3,,stoparea:1
12 changes: 12 additions & 0 deletions tests/fixtures/gtfs2ntfs/routes_comments/output/stop_times.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
stop_id,trip_id,stop_sequence,arrival_time,departure_time,boarding_duration,alighting_duration,pickup_type,drop_off_type,datetime_estimated,local_zone_id,stop_headsign,stop_time_id,stop_time_precision
stop:11,trip:4,0,07:23:00,07:23:00,0,0,2,1,0,,,,0
stop:22,trip:4,1,07:32:00,07:32:00,0,0,2,0,0,,,,0
stop:33,trip:4,2,07:40:00,07:42:00,0,0,1,0,0,,,,0
stop:51,trip:5,0,13:23:00,13:23:00,0,0,2,1,0,,,,0
stop:52,trip:5,1,14:10:00,14:10:00,0,0,2,0,0,,,,0
stop:53,trip:5,2,14:40:00,14:40:00,0,0,1,2,0,,,,0
stop:31,trip:3,0,23:50:00,23:50:00,0,0,0,1,0,,,,0
stop:32,trip:3,1,24:03:00,24:05:00,0,0,0,0,0,,,,0
stop:33,trip:3,2,24:10:00,24:15:00,0,0,1,0,0,,,,0
stop:61,trip:6,0,14:40:00,14:40:00,0,0,2,1,0,,,,0
stop:61,trip:6,1,15:20:00,15:20:00,0,0,1,0,0,,,,0
11 changes: 11 additions & 0 deletions tests/fixtures/gtfs2ntfs/routes_comments/output/stops.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
stop_id,stop_name,stop_code,visible,fare_zone_id,stop_lon,stop_lat,location_type,parent_station,stop_timezone,geometry_id,equipment_id,level_id,platform_code
stop:11,pouet,,1,,2.372987,48.844746,0,stoparea:1,,,,,
stop:22,pouet,,1,,2.372987,48.844746,0,stoparea:1,,,,,
stop:31,pouet,,1,,2.372987,48.844746,0,stoparea:1,,,,,
stop:32,pouet,,1,,2.372987,48.844746,0,stoparea:1,,,,,
stop:33,pouet,,1,,2.372987,48.844746,0,stoparea:1,,,,,
stop:51,pouet,,1,,2.372987,48.844746,0,stoparea:1,,,,,
stop:52,pouet,,1,,2.372987,48.844746,0,stoparea:1,,,,,
stop:53,pouet,,1,,2.372987,48.844746,0,stoparea:1,,,,,
stop:61,pouet,,1,,2.372987,48.844746,0,stoparea:1,,,,,
stoparea:1,plop,,1,,2.372987,48.844746,1,,,,,,
5 changes: 5 additions & 0 deletions tests/fixtures/gtfs2ntfs/routes_comments/output/trips.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
trip_id,route_id,physical_mode_id,dataset_id,service_id,trip_headsign,trip_short_name,block_id,company_id,trip_property_id,geometry_id,journey_pattern_id
trip:4,route:2,Metro,default_dataset,service:1,pouet,,,1,,,
trip:5,route:3,Metro,default_dataset,service:2,pouet,,,2,,,
trip:3,route:2,Metro,default_dataset,service:1,pouet,,,1,,,
trip:6,route:3,Metro,default_dataset,service:2,pouet,,,2,,,
14 changes: 14 additions & 0 deletions tests/gtfs2ntfs.rs
Original file line number Diff line number Diff line change
Expand Up @@ -179,3 +179,17 @@ fn test_minimal_gtfs_frequencies_with_odt_comment() {
);
});
}

#[test]
fn test_minimal_gtfs_with_routes_comments() {
test_in_tmp_dir(|path| {
let input_dir = "./tests/fixtures/gtfs2ntfs/routes_comments/input";
let model = gtfs::read_from_path(input_dir, gtfs::Configuration::default()).unwrap();
ntfs::write(&model, path, get_test_datetime()).unwrap();
compare_output_dir_with_expected(
&path,
None,
"./tests/fixtures/gtfs2ntfs/routes_comments/output",
);
});
}

0 comments on commit 2392e1a

Please sign in to comment.