Skip to content

Commit

Permalink
add test
Browse files Browse the repository at this point in the history
  • Loading branch information
patochectp committed Oct 7, 2019
1 parent 6ca1727 commit 57ae67d
Show file tree
Hide file tree
Showing 25 changed files with 220 additions and 1 deletion.
84 changes: 83 additions & 1 deletion src/gtfs/read.rs
Original file line number Diff line number Diff line change
Expand Up @@ -1240,7 +1240,7 @@ mod tests {
gtfs::read::EquipmentList,
model::Collections,
objects::*,
read_utils::{self, PathFileHandler},
read_utils::{self, PathFileHandler, read_opt_collection},
test_utils::*,
AddPrefix,
};
Expand Down Expand Up @@ -3012,4 +3012,86 @@ mod tests {
assert_eq!(format!("{}", err), "the first stop time of the vj '1' has no departure/arrival, the stop_times.txt file is not valid");
});
}
#[test]
fn stop_location_on_stops() {
let stops_content =
"stop_id,stop_code,stop_name,stop_lat,stop_lon,location_type,parent_station\n\
stoppoint_id,1234,my stop name,0.1,1.2,0,stop_area_id\n\
stoparea_id,5678,stop area name,0.1,1.2,1,\n\
entrance_id,,entrance name,0.1,1.2,2,stop_area_id\n\
node_id,,node name,0.1,1.2,3,stop_area_id\n\
boarding_id,,boarding name,0.1,1.2,4,stoppoint_id";
test_in_tmp_dir(|path| {
let mut handler = PathFileHandler::new(path.to_path_buf());
create_file_with_content(path, "stops.txt", stops_content);
let mut equipments = EquipmentList::default();
let mut comments: CollectionWithId<Comment> = CollectionWithId::default();
let (_, _, mut stop_locations) =
super::manage_stops(&mut handler, &mut comments, &mut equipments).unwrap();
let stop_entrance = stop_locations
.clone()
.take()
.into_iter()
.filter(|sl| sl.stop_type == StopType::StopEntrance)
.collect::<Vec<_>>();
assert_eq!(1, stop_entrance.len());
let stop_node = stop_locations
.clone()
.take()
.into_iter()
.filter(|sl| sl.stop_type == StopType::GenericNode)
.collect::<Vec<_>>();
assert_eq!(1, stop_node.len());
let stop_boarding = stop_locations
.take()
.into_iter()
.filter(|sl| sl.stop_type == StopType::GenericNode)
.collect::<Vec<_>>();
assert_eq!(1, stop_boarding.len());
});
}
#[test]
fn filter_pathway() {
let stops_content =
"stop_id,stop_code,stop_name,stop_lat,stop_lon,location_type,parent_station,level_id\n\
stoppoint_id,1234,my stop name,0.1,1.2,0,stop_area_id,2\n\
stoparea_id,5678,stop area name,0.1,1.2,1,,\n\
entrance_id,,entrance name,0.1,1.2,2,stop_area_id,1\n\
node_id,,node name,0.1,1.2,3,stop_area_id,2\n\
boarding_id,,boarding name,0.1,1.2,4,stoppoint_id,";
let pathway_content = "pathway_id,from_stop_id,to_stop_id,pathway_mode,is_bidirectional\n\
1;stoppoint_id,stoparea_id,8,0\n\
2,stoppoint_id,stoparea_id,1,3\n\
3,stoppoint_id,stoparea_id_0,2,0\n\
4,stoppoint_id,stoparea_id,1,0";
test_in_tmp_dir(|path| {
let mut handler = PathFileHandler::new(path.to_path_buf());
create_file_with_content(path, "stops.txt", stops_content);
create_file_with_content(path, "pathways.txt", pathway_content);
let pathways = super::read_pathways(&mut handler).unwrap();
assert_eq!(1, pathways.len());
})
}
#[test]
fn read_levels() {
let stops_content =
"stop_id,stop_code,stop_name,stop_lat,stop_lon,location_type,parent_station,level_id\n\
stoppoint_id,1234,my stop name,0.1,1.2,0,stop_area_id,2\n\
stoparea_id,5678,stop area name,0.1,1.2,1,,\n\
entrance_id,,entrance name,0.1,1.2,2,stop_area_id,1\n\
node_id,,node name,0.1,1.2,3,stop_area_id,2\n\
boarding_id,,boarding name,0.1,1.2,4,stoppoint_id,";
let level_content = "level_id,level_index\n\
1,0\n\
2,2\n\
3,1\n\
4,4";
test_in_tmp_dir(|path| {
let mut handler = PathFileHandler::new(path.to_path_buf());
create_file_with_content(path, "stops.txt", stops_content);
create_file_with_content(path, "levels.txt", level_content);
let levels : CollectionWithId<Level> = read_opt_collection(&mut handler, "levels.txt").unwrap();
assert_eq!(4, levels.len());
})
}
}
2 changes: 2 additions & 0 deletions tests/fixtures/gtfs2ntfs/levels_and_pathways/input/agency.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
agency_name,agency_url,agency_timezone
mon agence,http://kisio.org,Europe/Paris
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
4 changes: 4 additions & 0 deletions tests/fixtures/gtfs2ntfs/levels_and_pathways/input/levels.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
level_id,level_index
0,0
1,-1
2,1
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
pathway_id,from_stop_id,to_stop_id,pathway_mode,is_bidirectional
1,entrance:1,node:1,1,0
2,node:1,boarding:1,2,1

5 changes: 5 additions & 0 deletions tests/fixtures/gtfs2ntfs/levels_and_pathways/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
route_not_in_trip:1,ma route 1,,line:1,1
route:2,ma route 1,,line:1,1
route:3,ma route 2,,line:2,1
route_not_in_trip:4,ma route 3,,line:2,1
12 changes: 12 additions & 0 deletions tests/fixtures/gtfs2ntfs/levels_and_pathways/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
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
trip:4,1,stop:22,07:32:00,07:32:00
trip:4,2,stop:33,07:40:00,07:42:00
trip:5,0,stop:51,13:23:00,13:23:00
trip:5,1,stop:52,14:10:00,14:10:00
trip:5,2,stop:53,14:40:00,14:40:00
trip:6,0,stop:61,14:40:00,14:40:00
trip:6,1,stop:61,15:20:00,15:20:00
19 changes: 19 additions & 0 deletions tests/fixtures/gtfs2ntfs/levels_and_pathways/input/stops.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
stop_id,stop_name,stop_lat,stop_lon,location_type,parent_station,level_id
stoparea:1,plop,48.844746,2.372987,1,,
stop:11,pouet,48.844746,2.372987,0,stoparea:1,1
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,
entrance:1,Entrance 1,48.844747,2.372988,2,stoparea:1,0
node:1,Node 1,48.844748,2.372989,3,stoparea:2,0
boarding:1,Boarding 1,48.844749,2.372990,4,stop:11,1
6 changes: 6 additions & 0 deletions tests/fixtures/gtfs2ntfs/levels_and_pathways/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
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,2 @@
commercial_mode_id,commercial_mode_name
Metro,Metro
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
company_id,company_name,company_address,company_url,company_mail,company_phone
default_agency_id,mon agence,,http://kisio.org,,
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,
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,6 @@
feed_info_param,feed_info_value
feed_creation_date,20191007
feed_creation_time,09:22:53
feed_end_date,20180106
feed_start_date,20180101
ntfs_version,0.9.2
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
level_id,level_index,level_name
0,0.0,
1,-1.0,
3 changes: 3 additions & 0 deletions tests/fixtures/gtfs2ntfs/levels_and_pathways/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,,,,,,,default_agency_id,Metro,,,
route:3,ma route 2,,,,,,,default_agency_id,Metro,,,
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
network_id,network_name,network_url,network_timezone,network_lang,network_phone,network_address,network_sort_order
default_agency_id,mon agence,http://kisio.org,Europe/Paris,,,,
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
pathway_id,from_stop_id,to_stop_id,pathway_mode,is_bidirectional,length,traversal_time,stair_count,max_slope,min_width,signposted_as,reversed_signposted_as
1,entrance:1,node:1,1,0,,,,,,,
2,node:1,boarding:1,2,1,,,,,,,
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
physical_mode_id,physical_mode_name,co2_emission
Metro,Metro,
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,,forward,route:2,,
route:3,,forward,route:3,,
12 changes: 12 additions & 0 deletions tests/fixtures/gtfs2ntfs/levels_and_pathways/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:31,trip:3,0,23:50:00,23:50:00,0,0,0,0,0,,,
stop:32,trip:3,1,24:03:00,24:05:00,0,0,0,0,0,,,
stop:33,trip:3,2,24:10:00,24:15:00,0,0,0,0,0,,,
stop:11,trip:4,0,07:23:00,07:23:00,0,0,0,0,0,,,
stop:22,trip:4,1,07:32:00,07:32:00,0,0,0,0,0,,,
stop:33,trip:4,2,07:40:00,07:42:00,0,0,0,0,0,,,
stop:51,trip:5,0,13:23:00,13:23:00,0,0,0,0,0,,,
stop:52,trip:5,1,14:10:00,14:10:00,0,0,0,0,0,,,
stop:53,trip:5,2,14:40:00,14:40:00,0,0,0,0,0,,,
stop:61,trip:6,0,14:40:00,14:40:00,0,0,0,0,0,,,
stop:61,trip:6,1,15:20:00,15:20:00,0,0,0,0,0,,,
14 changes: 14 additions & 0 deletions tests/fixtures/gtfs2ntfs/levels_and_pathways/output/stops.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
stop_id,stop_name,visible,fare_zone_id,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,,,,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,,,,,,
entrance:1,Entrance 1,0,,,2.372988,48.844747,3,stoparea:1,,,,0,
node:1,Node 1,0,,,2.372989,48.844748,4,stoparea:2,,,,0,
boarding:1,Boarding 1,0,,,2.37299,48.844749,5,stop:11,,,,1,
6 changes: 6 additions & 0 deletions tests/fixtures/gtfs2ntfs/levels_and_pathways/output/trips.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
trip_id,route_id,physical_mode_id,dataset_id,service_id,trip_headsign,block_id,company_id,trip_property_id,geometry_id
trip:3,route:2,Metro,default_dataset,service:1,,,default_agency_id,,
trip:4,route:2,Metro,default_dataset,service:1,,,default_agency_id,,
trip:5,route:3,Metro,default_dataset,service:2,,,default_agency_id,,
trip:6,route:3,Metro,default_dataset,service:2,,,default_agency_id,,
with_no_stop_times,route:3,Metro,default_dataset,service:2,,,default_agency_id,,
14 changes: 14 additions & 0 deletions tests/gtfs2ntfs.rs
Original file line number Diff line number Diff line change
Expand Up @@ -139,3 +139,17 @@ fn test_gtfs_with_platforms() {
);
});
}

#[test]
fn test_gtfs_with_levels() {
test_in_tmp_dir(|path| {
let input_dir = "./tests/fixtures/gtfs2ntfs/levels_and_pathways/input";
let model = transit_model::gtfs::read_from_path(input_dir, None, None).unwrap();
transit_model::ntfs::write(&model, path, get_test_datetime()).unwrap();
compare_output_dir_with_expected(
&path,
Some(vec!["stops.txt", "pathways.txt", "levels.txt",],),
"./tests/fixtures/gtfs2ntfs/levels_and_pathways/output",
);
});
}

0 comments on commit 57ae67d

Please sign in to comment.