11import csv
22
33fieldnames = ["testCaseId" , "description" , "departure" , "arrival" , "fromLat" ,
4- "fromLon" , "toLat" , "toLon" , "origin" , "destination" , "modes" , "category" ]
4+ "fromLon" , "toLat" , "toLon" , "origin" , "destination" , "modes" , "category" ,
5+ "viaLabel" , "viaMinimumWaitTime" , "viaLat" , "viaLon" ]
56
67locations = [
78 # Helsinki
89 {
9- "coordinates" : "60.169665, 24.934652" ,
10+ "coordinates" : "60.169665,24.934652" ,
1011 "name" : "Kamppi"
1112 },
1213 {
13- "coordinates" : "60.179022, 24.924151" ,
14+ "coordinates" : "60.179022,24.924151" ,
1415 "name" : "Töölöntori"
1516 },
1617 {
17- "coordinates" : "60.22070, 24.86094" ,
18+ "coordinates" : "60.22070,24.86094" ,
1819 "name" : "Pitäjänmäki"
1920 },
2021 {
21- "coordinates" : "60.20863, 25.07946" ,
22+ "coordinates" : "60.20863,25.07946" ,
2223 "name" : "Itäkeskus"
2324 },
2425 {
2728 },
2829 # Espoo
2930 {
30- "coordinates" : "60.18234, 24.82531" ,
31+ "coordinates" : "60.18234,24.82531" ,
3132 "name" : "Otaniemi"
3233 },
3334 {
34- "coordinates" : "60.205940, 24.656711" ,
35+ "coordinates" : "60.205940,24.656711" ,
3536 "name" : "Espoon Keskusta"
3637 },
3738 {
38- "coordinates" : "60.15509, 24.74546" ,
39+ "coordinates" : "60.15509,24.74546" ,
3940 "name" : "Matinkylä"
4041 },
4142 {
42- "coordinates" : "60.19586, 24.58912" ,
43+ "coordinates" : "60.19586,24.58912" ,
4344 "name" : "Kauklahti"
4445 },
4546 {
46- "coordinates" : "60.29030, 24.56324" ,
47+ "coordinates" : "60.29030,24.56324" ,
4748 "name" : "Nuuksio"
4849 },
4950 {
50- "coordinates" : "60.17892, 24.65813" ,
51+ "coordinates" : "60.17892,24.65813" ,
5152 "name" : "Latokaski"
5253 },
5354 # Vantaa
5455 {
55- "coordinates" : "60.29246, 25.03861" ,
56+ "coordinates" : "60.29246,25.03861" ,
5657 "name" : "Tikkurila"
5758 },
5859 # Airport
5960 {
60- "coordinates" : "60.317508, 24.969089" ,
61+ "coordinates" : "60.317508,24.969089" ,
6162 "name" : "Airport"
6263 },
6364 # Kirkkonummi
6465 {
65- "coordinates" : "60.12640, 24.43613" ,
66+ "coordinates" : "60.12640,24.43613" ,
6667 "name" : "Kirkkonummi"
6768 }
6869]
6970
71+ complicated_area_location = {
72+ "coordinates" : "60.16968,24.93486" ,
73+ "name" : "Narinkkatori"
74+ }
75+
7076arrival = "13:00"
7177departure = "13:00"
7278
@@ -80,6 +86,8 @@ def parse_coords(input):
8086 }
8187
8288counter = 0
89+
90+ # depart-after
8391for start in locations :
8492 for end in locations :
8593 if end ["coordinates" ] is not start ["coordinates" ]:
@@ -88,7 +96,6 @@ def parse_coords(input):
8896 end_coords = parse_coords (end ["coordinates" ])
8997
9098 counter = counter + 1
91-
9299 rows .append ({
93100 "testCaseId" : counter ,
94101 "description" : f'{ start ["name" ]} to { end ["name" ]} (transit)' ,
@@ -100,9 +107,10 @@ def parse_coords(input):
100107 "origin" : start ["name" ],
101108 "destination" : end ["name" ],
102109 "modes" : "TRANSIT|WALK" ,
103- "category" : "transit "
110+ "category" : "depart-after "
104111 })
105112
113+ # arrive-by
106114for start in locations :
107115 for end in locations :
108116 if end ["coordinates" ] is not start ["coordinates" ]:
@@ -111,7 +119,6 @@ def parse_coords(input):
111119 end_coords = parse_coords (end ["coordinates" ])
112120
113121 counter = counter + 1
114-
115122 rows .append ({
116123 "testCaseId" : counter ,
117124 "description" : f'{ start ["name" ]} to { end ["name" ]} (transit)' ,
@@ -123,9 +130,72 @@ def parse_coords(input):
123130 "origin" : start ["name" ],
124131 "destination" : end ["name" ],
125132 "modes" : "TRANSIT|WALK" ,
126- "category" : "transit "
133+ "category" : "arrive-by "
127134 })
128135
136+ # complicated-area
137+ for location in locations :
138+ location_coords = parse_coords (location ["coordinates" ])
139+ area_coords = parse_coords (complicated_area_location ["coordinates" ])
140+
141+ counter = counter + 1
142+ rows .append ({
143+ "testCaseId" : counter ,
144+ "description" : f'{ location ["name" ]} to { complicated_area_location ["name" ]} (transit)' ,
145+ "departure" : departure ,
146+ "fromLat" : location_coords ["lat" ],
147+ "fromLon" : location_coords ["lon" ],
148+ "toLat" : area_coords ["lat" ],
149+ "toLon" : area_coords ["lon" ],
150+ "origin" : location ["name" ],
151+ "destination" : complicated_area_location ["name" ],
152+ "modes" : "TRANSIT|WALK" ,
153+ "category" : "complicated-area"
154+ })
155+
156+ counter = counter + 1
157+ rows .append ({
158+ "testCaseId" : counter ,
159+ "description" : f'{ complicated_area_location ["name" ]} to { location ["name" ]} (transit)' ,
160+ "departure" : departure ,
161+ "fromLat" : area_coords ["lat" ],
162+ "fromLon" : area_coords ["lon" ],
163+ "toLat" : location_coords ["lat" ],
164+ "toLon" : location_coords ["lon" ],
165+ "origin" : complicated_area_location ["name" ],
166+ "destination" : location ["name" ],
167+ "modes" : "TRANSIT|WALK" ,
168+ "category" : "complicated-area"
169+ })
170+
171+ # viapoint
172+ via_start = locations [0 ]
173+ via_end = locations [1 ]
174+ via_start_coords = parse_coords (via_start ["coordinates" ])
175+ via_end_coords = parse_coords (via_end ["coordinates" ])
176+ via_locations = locations [2 :]
177+ for via_location in via_locations :
178+ via_coords = parse_coords (via_location ["coordinates" ])
179+
180+ counter = counter + 1
181+ rows .append ({
182+ "testCaseId" : counter ,
183+ "description" : f'{ via_start ["name" ]} to { via_end ["name" ]} (transit)' ,
184+ "departure" : departure ,
185+ "fromLat" : via_start_coords ["lat" ],
186+ "fromLon" : via_start_coords ["lon" ],
187+ "toLat" : via_end_coords ["lat" ],
188+ "toLon" : via_end_coords ["lon" ],
189+ "origin" : via_start ["name" ],
190+ "destination" : via_end ["name" ],
191+ "modes" : "TRANSIT|WALK" ,
192+ "category" : "viapoint" ,
193+ "viaLabel" : via_location ["name" ],
194+ "viaMinimumWaitTime" : "60s" ,
195+ "viaLat" : via_coords ["lat" ],
196+ "viaLon" : via_coords ["lon" ]
197+ })
198+
129199with open ('travelSearch.csv' , 'w' , encoding = 'UTF8' , newline = '' ) as f :
130200 writer = csv .DictWriter (f , fieldnames = fieldnames )
131201 writer .writeheader ()
0 commit comments