/
srv
/
osrm
/
osrm-backend
/
features
/
testbot
/
/srv/osrm/osrm-backend/features/testbot
mkdir
upload
Name
Size
Mode
Actions
64bit.feature
856
0644
edit
dl
rm
alternative.feature
1734
0644
edit
dl
rm
alternative_loop.feature
2328
0644
edit
dl
rm
annotations.feature
3838
0644
edit
dl
rm
approaches.feature
9011
0644
edit
dl
rm
bad.feature
2335
0644
edit
dl
rm
basic.feature
9262
0644
edit
dl
rm
bearing.feature
8226
0644
edit
dl
rm
bearing_param.feature
4881
0644
edit
dl
rm
compression.feature
637
0644
edit
dl
rm
continue_straight.feature
2511
0644
edit
dl
rm
distance.feature
6996
0644
edit
dl
rm
distance_matrix.feature
23582
0644
edit
dl
rm
duration.feature
1318
0644
edit
dl
rm
duration_matrix.feature
23189
0644
edit
dl
rm
example.feature
1300
0644
edit
dl
rm
exclude.feature
3865
0644
edit
dl
rm
exclude_regressions.feature
2407
0644
edit
dl
rm
fastest.feature
1106
0644
edit
dl
rm
ferry.feature
7935
0644
edit
dl
rm
fixed.feature
5148
0644
edit
dl
rm
geometry.feature
712
0644
edit
dl
rm
graph.feature
1038
0644
edit
dl
rm
impedance.feature
3370
0644
edit
dl
rm
load.feature
2363
0644
edit
dl
rm
loop.feature
2913
0644
edit
dl
rm
matching.feature
23225
0644
edit
dl
rm
maxspeed.feature
1332
0644
edit
dl
rm
mode.feature
11092
0644
edit
dl
rm
multi_level_routing.feature
8916
0644
edit
dl
rm
nil.feature
1100
0644
edit
dl
rm
oneway.feature
1075
0644
edit
dl
rm
oneway_phantom.feature
2648
0644
edit
dl
rm
opposite.feature
582
0644
edit
dl
rm
origin.feature
2680
0644
edit
dl
rm
overlap.feature
1100
0644
edit
dl
rm
penalty.feature
5161
0644
edit
dl
rm
planetary.feature
2474
0644
edit
dl
rm
projection.feature
2983
0644
edit
dl
rm
routes.feature
1074
0644
edit
dl
rm
snap.feature
5131
0644
edit
dl
rm
snap_intersection.feature
18784
0644
edit
dl
rm
speed.feature
1005
0644
edit
dl
rm
status.feature
3808
0644
edit
dl
rm
summary.feature
2342
0644
edit
dl
rm
time.feature
8240
0644
edit
dl
rm
traffic_speeds.feature
6899
0644
edit
dl
rm
traffic_speeds_overflow.feature
1060
0644
edit
dl
rm
traffic_turn_penalties.feature
2633
0644
edit
dl
rm
trip.feature
12981
0644
edit
dl
rm
turn_penalty.feature
1031
0644
edit
dl
rm
utf.feature
4303
0644
edit
dl
rm
via.feature
12213
0644
edit
dl
rm
weight.feature
13634
0644
edit
dl
rm
zero-speed-updates.feature
4965
0644
edit
dl
rm
Edit:
/srv/osrm/osrm-backend/features/testbot/snap_intersection.feature
(18784B)
Feature: Snapping at intersections Background: # Use turnbot so that we can validate when we are # snapping to one of many potential candidate ways Given the profile "turnbot" # https://github.com/Project-OSRM/osrm-backend/issues/4465 Scenario: Snapping source to intersection with one-way roads Given the node map """ a e c \ | / d 1 """ And the ways | nodes | oneway | | da | yes | | dc | yes | | de | yes | When I route I should get | from | to | route | time | | 1 | e | de,de | 20s | | 1 | a | da,da | 28.3s | | 1 | c | dc,dc | 28.3s | When I request a travel time matrix I should get | | a | c | e | | 1 | 28.3 | 28.3 | 20 | Scenario: Snapping destination to intersection with one-way roads Given the node map """ a e c \ | / d 1 """ And the ways | nodes | oneway | | da | -1 | | dc | -1 | | de | -1 | When I route I should get | from | to | route | time | | e | 1 | de,de | 20s | | a | 1 | da,da | 28.3s | | c | 1 | dc,dc | 28.3s | When I request a travel time matrix I should get | | 1 | | a | 28.3 | | c | 28.3 | | e | 20 | Scenario: Snapping to intersection with bi-directional roads Given the node map """ a e | / d---c 1 """ And the ways | nodes | | ad | | ed | | dc | When I route I should get | from | to | route | time | weight | | 1 | c | dc,dc | 20s | 20 | | 1 | a | ad,ad | 20s | 20 | | 1 | e | ed,ed | 28.3s | 28.3 | | c | 1 | dc,dc | 20s | 20 | | a | 1 | ad,ad | 20s | 20 | | e | 1 | ed,ed | 28.3s | 28.3 | When I request a travel time matrix I should get | | a | c | e | | 1 | 20 | 20 | 28.3 | When I request a travel time matrix I should get | | 1 | | a | 20 | | c | 20 | | e | 28.3 | Scenario: Snapping at compressible node Given the node map """ a---b---c """ And the ways | nodes | | abc | When I route I should get | from | to | route | time | weight | | b | c | abc,abc | 20s | 20 | | b | a | abc,abc | 20s | 20 | | a | b | abc,abc | 20s | 20 | | c | b | abc,abc | 20s | 20 | Scenario: Snapping at compressible node with traffic lights Given the node map """ a---b---c """ And the ways | nodes | | abc | # Turnbot will use the turn penalty instead of traffic penalty. # We do this to induce a penalty between two edges of the same # segment. And the nodes | node | highway | | b | traffic_signals | # Snaps to first edge in forward direction When I route I should get | from | to | route | time | weight | | b | c | abc,abc | 40s | 40 | | b | a | abc,abc | 20s | 20 | | a | b | abc,abc | 20s | 20 | | c | b | abc,abc | 40s | 40 | Scenario: Snapping at compressible node traffic lights, one-way Given the node map """ a-->b-->c """ And the ways | nodes | oneway | | abc | yes | # Turnbot will use the turn penalty instead of traffic penalty. # We do this to induce a penalty between two edges of the same # segment. And the nodes | node | highway | | b | traffic_signals | # Snaps to first edge in forward direction When I route I should get | from | to | route | time | weight | | b | c | abc,abc | 40s | 40 | | a | b | abc,abc | 20s | 20 | When I route I should get | from | to | code | | b | a | NoRoute | | c | b | NoRoute | Scenario: Snapping at compressible node traffic lights, reverse one-way Given the node map """ a<--b<--c """ And the ways | nodes | oneway | | abc | -1 | # Turnbot will use the turn penalty instead of traffic penalty. # We do this to induce a penalty between two edges of the same # segment. And the nodes | node | highway | | b | traffic_signals | # Snaps to first edge in forward direction - as this is one-way, # the forward direction has changed. When I route I should get | from | to | route | time | weight | | b | a | abc,abc | 40s | 40 | | c | b | abc,abc | 20s | 20 | When I route I should get | from | to | code | | b | c | NoRoute | | a | b | NoRoute | Scenario: Snapping at traffic lights, reverse disabled Given the node map """ a-->b-->c """ And the ways | nodes | | abc | And the contract extra arguments "--segment-speed-file {speeds_file}" And the customize extra arguments "--segment-speed-file {speeds_file}" And the speed file """ 2,1,0 3,2,0 """ # Turnbot will use the turn penalty instead of traffic penalty. # We do this to induce a penalty between two edges of the same # segment. And the nodes | node | highway | | b | traffic_signals | # Snaps to first edge in forward direction. When I route I should get | from | to | route | time | weight | | b | c | abc,abc | 40s | 40 | | a | b | abc,abc | 20s | 20 | When I route I should get | from | to | code | | b | a | NoRoute | | c | b | NoRoute | Scenario: Snapping at traffic lights, forward disabled Given the node map """ a<--b<--c """ And the ways | nodes | | abc | And the contract extra arguments "--segment-speed-file {speeds_file}" And the customize extra arguments "--segment-speed-file {speeds_file}" And the speed file """ 1,2,0 2,3,0 """ # Turnbot will use the turn penalty instead of traffic penalty. # We do this to induce a penalty between two edges of the same # segment. And the nodes | node | highway | | b | traffic_signals | # Forward direction is disabled, still snaps to first edge in forward direction When I route I should get | from | to | route | time | weight | | b | a | abc,abc | 20s | 20 | | c | b | abc,abc | 40s | 40 | When I route I should get | from | to | code | | b | c | NoRoute | | a | b | NoRoute | Scenario: Snap to target node with next section of segment blocked Given the node map """ a-->b---c---d<--e """ And the ways | nodes | | abc | | cde | And the contract extra arguments "--segment-speed-file {speeds_file}" And the customize extra arguments "--segment-speed-file {speeds_file}" And the speed file """ 2,1,0 4,5,0 """ When I route I should get | from | to | route | time | weight | | a | d | abc,cde,cde | 60s | 60 | | e | b | cde,abc,abc | 60s | 60 | When I route I should get | from | to | code | | a | e | NoRoute | | e | a | NoRoute | Scenario: Snapping to source node with previous section of segment blocked Given the node map """ a<--b---c---d-->e """ And the ways | nodes | | abc | | cde | And the contract extra arguments "--segment-speed-file {speeds_file}" And the customize extra arguments "--segment-speed-file {speeds_file}" And the speed file """ 1,2,0 5,4,0 """ When I route I should get | from | to | code | | a | e | NoRoute | | b | e | NoRoute | | e | a | NoRoute | | d | a | NoRoute | Scenario: Only snaps to one of many equidistant nearest locations Given the node map """ b-------c | | | | a 1 d """ And the ways | nodes | | ab | | bc | | cd | When I route I should get | from | to | route | time | weight | | 1 | b | ab,ab | 30s | 30 | | 1 | c | ab,bc,bc | 80s +-1 | 80 +-1 | Scenario: Snaps to alternative big SCC candidate if nearest candidates are not strongly connected Given the node map """ 1 g---h---i a-----b-----c | f-----e-----d j---k---l 2 """ Given the extract extra arguments "--small-component-size=4" And the ways | nodes | | abc | | cd | | fed | | ghi | | jkl | # As forward direction is disabled... When I route I should get | from | to | route | time | weight | locations | | 1 | 2 | abc,cd,fed,fed | 100s +-1 | 100 +-1 | b,c,d,e | Scenario: Can use big or small SCC nearest candidates if at same location Given the node map """ 1 a-----b-----c | | g | | f-----e-----d """ Given the extract extra arguments "--small-component-size=4" And the ways | nodes | oneway | | ab | no | | bc | no | | cd | no | | fed | no | | bg | yes | # small SCC And the relations | type | way:from | way:to | node:via | restriction | | restriction | ab | bg | b | no_right_turn | | restriction | bc | bg | b | no_left_turn | When I route I should get | from | to | route | time | weight | locations | | 1 | g | bg,bg | 20s | 20 | b,g | | 1 | e | bc,cd,fed,fed | 120s +-1 | 120 +-1 | b,c,d,e | Scenario: Using small SCC candidates when at same location as big SCC alternatives is not supported Given the node map """ 1 g---h---i a-----b-----c | | | | m | f-----e-----d j---k---l 2 """ Given the extract extra arguments "--small-component-size=4" And the ways | nodes | oneway | | ab | no | | bc | no | | cd | no | | fed | no | | ghi | no | | jkl | no | | bm | yes | # small SCC And the relations | type | way:from | way:to | node:via | restriction | | restriction | ab | bm | b | no_right_turn | | restriction | bc | bm | b | no_left_turn | When I route I should get | from | to | route | time | weight | locations | | 1 | 2 | bc,cd,fed,fed | 120s +-1 | 120 +-1 | b,c,d,e | | 1 | m | bc,cd,fed,fed | 120s +-1 | 120 +-1 | b,c,d,e | Scenario: Shortest via path with continuation, simple loop Given the node map """ a---b """ And the ways | nodes | | ab | When I route I should get | waypoints | route | time | weight | | a,b,a | ab,ab,ab,ab | 60s | 60 | Scenario: Shortest via path with uturns, simple loop Given the node map """ a---b """ Given the query options | continue_straight | false | And the ways | nodes | | ab | # Does not pay the cost of the turn When I route I should get | waypoints | route | time | weight | | a,b,a | ab,ab,ab,ab | 40s | 40 | Scenario: Shortest path with multiple endpoint snapping candidates Given the node map """ b c a d f e """ And the ways | nodes | oneway | | ab | no | | ac | no | | ad | no | | ae | no | | bf | no | | cf | yes | | df | yes | | ef | no | When I route I should get | from | to | route | time | weight | | a | f | ad,df,df | 40s | 40 | | f | a | ef,ae,ae | 66.6s | 66.6 | When I request a travel time matrix I should get | | a | f | | a | 0 | 40 | | f | 66.6 | 0 | Scenario: Shortest via path with continuation, multiple waypoint snapping candidates Given the node map """ b g c h a d f i k e j """ And the ways | nodes | oneway | | ab | no | | ac | no | | ad | no | | ae | no | | bf | no | | cf | yes | | df | yes | | ef | no | | fg | no | | fh | -1 | | fi | -1 | | fj | no | | gk | no | | hk | no | | ik | no | | kj | no | And the relations | type | way:from | way:to | node:via | restriction | | restriction | df | fg | f | only_left_turn | | restriction | fi | bf | f | only_right_turn | # Longer routes can take different paths from sub-routes When I route I should get | waypoints | route | time | weight | | a,f | ad,df,df | 40s | 40 | | f,k | fj,kj,kj | 65.6s | 65.6 | | a,f,k | ac,cf,cf,fj,kj,kj | 132.8s | 132.8 | | k,f | ik,fi,fi | 54.3s | 54.3 | | f,a | ef,ae,ae | 66.6s | 66.6 | | k,f,a | kj,fj,fj,ef,ae,ae | 141.4s | 141.4 | When I request a travel time matrix I should get | | a | f | k | | a | 0 | 40 | 132.8 | | f | 66.6 | 0 | 65.6 | | k | 141.4 | 54.3 | 0 | Scenario: Shortest via path with uturns, multiple waypoint snapping candidates Given the node map """ b g c h a d f i k e j """ Given the query options | continue_straight | false | And the ways | nodes | oneway | | ab | no | | ac | no | | ad | no | | ae | no | | bf | no | | cf | yes | | df | yes | | ef | no | | fg | no | | fh | -1 | | fi | -1 | | fj | no | | gk | no | | hk | no | | ik | no | | kj | no | And the relations | type | way:from | way:to | node:via | restriction | | restriction | df | fg | f | only_left_turn | | restriction | fi | bf | f | only_right_turn | # Longer routes use same path as sub-routes When I route I should get | waypoints | route | time | weight | | a,f | ad,df,df | 40s | 40 | | f,k | fj,kj,kj | 65.6s | 65.6 | | a,f,k | ad,df,df,fj,kj,kj | 105.6s | 105.6 | | k,f | ik,fi,fi | 54.3s | 54.3 | | f,a | ef,ae,ae | 66.6s | 66.6 | | k,f,a | ik,fi,fi,ef,ae,ae | 120.9s | 120.9 |
Save
cmd:
run