388 lines
		
	
	
		
			12 KiB
		
	
	
	
		
			Gherkin
		
	
	
	
	
	
			
		
		
	
	
			388 lines
		
	
	
		
			12 KiB
		
	
	
	
		
			Gherkin
		
	
	
	
	
	
| @routing  @guidance
 | |
| Feature: Fork Instructions
 | |
| 
 | |
|     Background:
 | |
|         Given the profile "car"
 | |
|         Given a grid size of 10 meters
 | |
| 
 | |
|     Scenario: Fork Same Road Class
 | |
|         Given the node map
 | |
|             """
 | |
|                     c
 | |
|             a   b
 | |
|                     d
 | |
|             """
 | |
| 
 | |
|         And the ways
 | |
|             | nodes  | highway |
 | |
|             | ab     | primary |
 | |
|             | bc     | primary |
 | |
|             | bd     | primary |
 | |
| 
 | |
|        When I route I should get
 | |
|             | waypoints | route    | turns                           |
 | |
|             | a,c       | ab,bc,bc | depart,fork slight left,arrive  |
 | |
|             | a,d       | ab,bd,bd | depart,fork slight right,arrive |
 | |
| 
 | |
|     Scenario: Don't Fork On Single Road
 | |
|         Given the node map
 | |
|             """
 | |
|                     c
 | |
|             a   b
 | |
|                     d
 | |
|             """
 | |
| 
 | |
|         And the ways
 | |
|             | nodes  | highway | oneway |
 | |
|             | ab     | primary | no     |
 | |
|             | cb     | primary | yes    |
 | |
|             | bd     | primary | yes    |
 | |
| 
 | |
|        When I route I should get
 | |
|             | waypoints | route    | turns                               |
 | |
|             | a,d       | ab,bd,bd | depart,new name slight right,arrive |
 | |
| 
 | |
|     Scenario: Don't Fork On Single Road
 | |
|         Given the node map
 | |
|             """
 | |
|                         c
 | |
|             a   b   d
 | |
|             """
 | |
| 
 | |
|         And the ways
 | |
|             | nodes  | highway | oneway | name |
 | |
|             | ab     | primary | no     | road |
 | |
|             | cb     | primary | yes    | road |
 | |
|             | bd     | primary | yes    | turn |
 | |
| 
 | |
|        When I route I should get
 | |
|             | waypoints | route          | turns                           |
 | |
|             | a,d       | road,turn,turn | depart,new name straight,arrive |
 | |
| 
 | |
|     Scenario: Do not fork on link type
 | |
|         Given the node map
 | |
|             """
 | |
|                     c
 | |
|             a   b
 | |
|                     d
 | |
|             """
 | |
| 
 | |
|         And the ways
 | |
|             | nodes  | highway      |
 | |
|             | abc    | primary      |
 | |
|             | bd     | primary_link |
 | |
| 
 | |
| 
 | |
|        When I route I should get
 | |
|             | waypoints | route      | turns                           |
 | |
|             | a,c       | abc,abc    | depart,arrive                   |
 | |
|             | a,d       | abc,bd,bd  | depart,turn slight right,arrive |
 | |
| 
 | |
|     Scenario: Fork in presence of other roads
 | |
|         Given the node map
 | |
|             """
 | |
|                     c
 | |
|             a   b
 | |
|               e     d
 | |
|             """
 | |
| 
 | |
|         And the ways
 | |
|             | nodes  | highway |
 | |
|             | ab     | primary |
 | |
|             | bc     | primary |
 | |
|             | bd     | primary |
 | |
|             | eb     | primary |
 | |
| 
 | |
|        When I route I should get
 | |
|             | waypoints | route    | turns                           |
 | |
|             | a,c       | ab,bc,bc | depart,fork slight left,arrive  |
 | |
|             | a,d       | ab,bd,bd | depart,fork slight right,arrive |
 | |
| 
 | |
|     Scenario: Fork Turning Slight Left
 | |
|         Given the node map
 | |
|             """
 | |
|                       c
 | |
| 
 | |
|             a   b
 | |
|                     d
 | |
|             """
 | |
| 
 | |
|         And the ways
 | |
|             | nodes  | highway |
 | |
|             | ab     | primary |
 | |
|             | bc     | primary |
 | |
|             | bd     | primary |
 | |
| 
 | |
|        When I route I should get
 | |
|             | waypoints | route    | turns                           |
 | |
|             | a,c       | ab,bc,bc | depart,fork slight left,arrive  |
 | |
|             | a,d       | ab,bd,bd | depart,fork slight right,arrive |
 | |
| 
 | |
|     Scenario: Fork Turning Slight Right
 | |
|         Given the node map
 | |
|             """
 | |
|                     c
 | |
|             a   b
 | |
| 
 | |
|                       d
 | |
|             """
 | |
| 
 | |
|         And the ways
 | |
|             | nodes  | highway |
 | |
|             | ab     | primary |
 | |
|             | bc     | primary |
 | |
|             | bd     | primary |
 | |
| 
 | |
|        When I route I should get
 | |
|             | waypoints | route    | turns                           |
 | |
|             | a,c       | ab,bc,bc | depart,fork slight left,arrive  |
 | |
|             | a,d       | ab,bd,bd | depart,fork slight right,arrive |
 | |
| 
 | |
|     Scenario: Do not fork on service
 | |
|         Given the node map
 | |
|             """
 | |
|                     c
 | |
|             a   b
 | |
|                     d
 | |
|             """
 | |
| 
 | |
|         And the ways
 | |
|             | nodes  | highway     |
 | |
|             | abc    | residential |
 | |
|             | bd     | service     |
 | |
| 
 | |
|        When I route I should get
 | |
|             | waypoints | route     | turns                           |
 | |
|             | a,c       | abc,abc   | depart,arrive                   |
 | |
|             | a,d       | abc,bd,bd | depart,turn slight right,arrive |
 | |
| 
 | |
|     Scenario: Fork Both Turning Slight Right
 | |
|         Given the node map
 | |
|             """
 | |
|             a   b
 | |
|                       c
 | |
|                       d
 | |
|             """
 | |
| 
 | |
|         And the ways
 | |
|             | nodes  | highway |
 | |
|             | ab     | primary |
 | |
|             | bc     | primary |
 | |
|             | bd     | primary |
 | |
| 
 | |
|        When I route I should get
 | |
|             | waypoints | route    | turns                           |
 | |
|             | a,c       | ab,bc,bc | depart,fork slight left,arrive  |
 | |
|             | a,d       | ab,bd,bd | depart,fork slight right,arrive |
 | |
| 
 | |
|     Scenario: Fork Both Turning Slight Left
 | |
|         Given the node map
 | |
|             """
 | |
|                       c
 | |
|                       d
 | |
|             a   b
 | |
|             """
 | |
| 
 | |
|         And the ways
 | |
|             | nodes  | highway |
 | |
|             | ab     | primary |
 | |
|             | bc     | primary |
 | |
|             | bd     | primary |
 | |
| 
 | |
|        When I route I should get
 | |
|             | waypoints | route    | turns                           |
 | |
|             | a,c       | ab,bc,bc | depart,fork slight left,arrive  |
 | |
|             | a,d       | ab,bd,bd | depart,fork slight right,arrive |
 | |
| 
 | |
|     Scenario: Fork Both Turning Slight Right - Unnamed
 | |
|         Given the node map
 | |
|             """
 | |
|             a   b
 | |
|                       c
 | |
|                       d
 | |
|             """
 | |
| 
 | |
|         And the ways
 | |
|             | nodes  | highway | name |
 | |
|             | ab     | primary |      |
 | |
|             | bc     | primary |      |
 | |
|             | bd     | primary |      |
 | |
| 
 | |
|        When I route I should get
 | |
|             | waypoints | route | turns                           |
 | |
|             | a,c       | ,,    | depart,fork slight left,arrive  |
 | |
|             | a,d       | ,,    | depart,fork slight right,arrive |
 | |
| 
 | |
|     Scenario: Fork Both Turning Slight Left - Unnamed
 | |
|         Given the node map
 | |
|             """
 | |
|                       c
 | |
|                       d
 | |
|             a   b
 | |
|             """
 | |
| 
 | |
|         And the ways
 | |
|             | nodes  | highway | name |
 | |
|             | ab     | primary |      |
 | |
|             | bc     | primary |      |
 | |
|             | bd     | primary |      |
 | |
| 
 | |
|        When I route I should get
 | |
|             | waypoints | route | turns                           |
 | |
|             | a,c       | ,,    | depart,fork slight left,arrive  |
 | |
|             | a,d       | ,,    | depart,fork slight right,arrive |
 | |
| 
 | |
|     Scenario: Fork Both Turning Very Slightly Right - Unnamed
 | |
|         Given the node map
 | |
|             """
 | |
|             a   b
 | |
|                                   c
 | |
|                                               d
 | |
|             """
 | |
| 
 | |
|         And the ways
 | |
|             | nodes  | highway | name |
 | |
|             | ab     | primary |      |
 | |
|             | bc     | primary |      |
 | |
|             | bd     | primary |      |
 | |
| 
 | |
|        When I route I should get
 | |
|             | waypoints | route | turns                           |
 | |
|             | a,c       | ,,    | depart,fork slight left,arrive  |
 | |
|             | a,d       | ,,    | depart,fork slight right,arrive |
 | |
| 
 | |
|     Scenario: Fork Both Turning Very Slightly Right - Unnamed Ramps
 | |
|         Given the node map
 | |
|             """
 | |
|             a   b
 | |
|                                   c
 | |
|                                               d
 | |
|             """
 | |
| 
 | |
|         And the ways
 | |
|             | nodes  | highway       | name |
 | |
|             | ab     | motorway_link |      |
 | |
|             | bc     | motorway_link |      |
 | |
|             | bd     | motorway_link |      |
 | |
| 
 | |
|        When I route I should get
 | |
|             | waypoints | route | turns                           |
 | |
|             | a,c       | ,,    | depart,fork slight left,arrive  |
 | |
|             | a,d       | ,,    | depart,fork slight right,arrive |
 | |
| 
 | |
|     Scenario: Non-Fork on complex intersection - left
 | |
|         Given the node map
 | |
|             """
 | |
|                     c
 | |
|             a   b
 | |
|               e     d
 | |
|             """
 | |
| 
 | |
|         And the ways
 | |
|             | nodes  | highway   |
 | |
|             | abc    | secondary |
 | |
|             | bd     | tertiary  |
 | |
|             | eb     | tertiary  |
 | |
| 
 | |
|        When I route I should get
 | |
|             | waypoints | route     | turns                           |
 | |
|             | a,c       | abc,abc   | depart,arrive                   |
 | |
|             | a,d       | abc,bd,bd | depart,turn slight right,arrive |
 | |
| 
 | |
|     Scenario: Non-Fork on complex intersection - right
 | |
|         Given the node map
 | |
|             """
 | |
|               e     c
 | |
|             a   b
 | |
|                     d
 | |
|             """
 | |
| 
 | |
|         And the ways
 | |
|             | nodes  | highway   |
 | |
|             | abd    | secondary |
 | |
|             | bc     | tertiary  |
 | |
|             | eb     | tertiary  |
 | |
| 
 | |
|        When I route I should get
 | |
|             | waypoints | route     | turns                          |
 | |
|             | a,c       | abd,bc,bc | depart,turn slight left,arrive |
 | |
|             | a,d       | abd,abd   | depart,arrive                  |
 | |
| 
 | |
|     Scenario: Tripple fork
 | |
|         Given the node map
 | |
|             """
 | |
|                             c
 | |
|             a   b   d
 | |
|                             e
 | |
|             """
 | |
| 
 | |
|         And the ways
 | |
|             | nodes  | highway   |
 | |
|             | ab     | secondary |
 | |
|             | bc     | secondary |
 | |
|             | bd     | secondary |
 | |
|             | be     | secondary |
 | |
| 
 | |
|        When I route I should get
 | |
|             | waypoints | route    | turns                           |
 | |
|             | a,c       | ab,bc,bc | depart,fork slight left,arrive  |
 | |
|             | a,d       | ab,bd,bd | depart,fork straight,arrive     |
 | |
|             | a,e       | ab,be,be | depart,fork slight right,arrive |
 | |
| 
 | |
|     Scenario: Tripple fork -- middle obvious
 | |
|         Given the node map
 | |
|             """
 | |
|                     c
 | |
|             a   b   d
 | |
|                     e
 | |
|             """
 | |
| 
 | |
|         And the ways
 | |
|             | nodes  | highway   |
 | |
|             | abd    | secondary |
 | |
|             | bc     | secondary |
 | |
|             | be     | secondary |
 | |
| 
 | |
|        When I route I should get
 | |
|             | waypoints | route     | turns                           |
 | |
|             | a,c       | abd,bc,bc | depart,turn slight left,arrive  |
 | |
|             | a,d       | abd,abd   | depart,arrive                   |
 | |
|             | a,e       | abd,be,be | depart,turn slight right,arrive |
 | |
| 
 | |
|     Scenario: Don't Fork when leaving Road
 | |
|         Given the node map
 | |
|             """
 | |
|             a   b   c
 | |
|                     d
 | |
|             """
 | |
| 
 | |
|         And the ways
 | |
|             | nodes  | highway   |
 | |
|             | abc    | secondary |
 | |
|             | bd     | secondary |
 | |
| 
 | |
|        When I route I should get
 | |
|             | waypoints | route     | turns                           |
 | |
|             | a,c       | abc,abc   | depart,arrive                   |
 | |
|             | a,d       | abc,bd,bd | depart,turn slight right,arrive |
 | |
| 
 | |
|      Scenario: Fork on motorway links - don't fork on through
 | |
|         Given the node map
 | |
|             """
 | |
|             i         a
 | |
|             j   c b   x
 | |
|             """
 | |
| 
 | |
|         And the ways
 | |
|             | nodes | name | highway       |
 | |
|             | xb    | xbcj | motorway_link |
 | |
|             | bc    | xbcj | motorway_link |
 | |
|             | cj    | xbcj | motorway_link |
 | |
|             | ci    | off  | motorway_link |
 | |
|             | ab    | on   | motorway_link |
 | |
| 
 | |
|         When I route I should get
 | |
|             | waypoints | route      | turns                           |
 | |
|             | a,j       | on,xbcj    | depart,arrive                   |
 | |
|             | a,i       | on,off,off | depart,turn slight right,arrive |
 |