265 lines
		
	
	
		
			8.6 KiB
		
	
	
	
		
			Gherkin
		
	
	
	
	
	
			
		
		
	
	
			265 lines
		
	
	
		
			8.6 KiB
		
	
	
	
		
			Gherkin
		
	
	
	
	
	
| @routing  @guidance
 | |
| Feature: Motorway Guidance
 | |
| 
 | |
|     Background:
 | |
|         Given the profile "car"
 | |
|         Given a grid size of 10 meters
 | |
| 
 | |
|     Scenario: Ramp Exit Right
 | |
|         Given the node map
 | |
|             """
 | |
|             a b c d e
 | |
|                   f g
 | |
|             """
 | |
| 
 | |
|         And the ways
 | |
|             | nodes | highway       | oneway |
 | |
|             | abcde | motorway      |        |
 | |
|             | bfg   | motorway_link | yes    |
 | |
| 
 | |
|        When I route I should get
 | |
|             | waypoints | route         | turns                                |
 | |
|             | a,e       | abcde,abcde   | depart,arrive                        |
 | |
|             | a,g       | abcde,bfg,bfg | depart,off ramp slight right,arrive |
 | |
| 
 | |
|     Scenario: Ramp Exit Right Curved Right
 | |
|         Given the node map
 | |
|             """
 | |
|             a b c
 | |
|                 f d
 | |
|                   g e
 | |
|             """
 | |
| 
 | |
|         And the ways
 | |
|             | nodes | highway       | oneway |
 | |
|             | abcde | motorway      |        |
 | |
|             | bfg   | motorway_link | yes    |
 | |
| 
 | |
|        When I route I should get
 | |
|             | waypoints | route         | turns                         |
 | |
|             | a,e       | abcde,abcde   | depart,arrive                 |
 | |
|             | a,g       | abcde,bfg,bfg | depart,off ramp right,arrive |
 | |
| 
 | |
|     Scenario: Ramp Exit Right Curved Left
 | |
|         Given the node map
 | |
|             """
 | |
|                     e
 | |
|                   d g
 | |
|             a b c f
 | |
|             """
 | |
| 
 | |
| 
 | |
|         And the ways
 | |
|             | nodes | highway       | oneway |
 | |
|             | abcde | motorway      |        |
 | |
|             | cfg   | motorway_link | yes    |
 | |
| 
 | |
|        When I route I should get
 | |
|             | waypoints | route         | turns                                |
 | |
|             | a,e       | abcde,abcde   | depart,arrive                        |
 | |
|             | a,g       | abcde,cfg,cfg | depart,off ramp slight right,arrive |
 | |
| 
 | |
| 
 | |
|     Scenario: Ramp Exit Left
 | |
|         Given the node map
 | |
|             """
 | |
|                   f g
 | |
|             a b c d e
 | |
|             """
 | |
| 
 | |
|         And the ways
 | |
|             | nodes | highway       | oneway |
 | |
|             | abcde | motorway      |        |
 | |
|             | bfg   | motorway_link | yes    |
 | |
| 
 | |
|        When I route I should get
 | |
|             | waypoints | route         | turns                               |
 | |
|             | a,e       | abcde,abcde   | depart,arrive                       |
 | |
|             | a,g       | abcde,bfg,bfg | depart,off ramp slight left,arrive |
 | |
| 
 | |
|     Scenario: Ramp Exit Left Curved Left
 | |
|         Given the node map
 | |
|             """
 | |
|                   g e
 | |
|                 f d
 | |
|             a b c
 | |
|             """
 | |
| 
 | |
|         And the ways
 | |
|             | nodes | highway       | oneway |
 | |
|             | abcde | motorway      |        |
 | |
|             | bfg   | motorway_link | yes    |
 | |
| 
 | |
|        When I route I should get
 | |
|             | waypoints | route         | turns                        |
 | |
|             | a,e       | abcde,abcde   | depart,arrive                |
 | |
|             | a,g       | abcde,bfg,bfg | depart,off ramp left,arrive |
 | |
| 
 | |
|     Scenario: Ramp Exit Left Curved Right
 | |
|         Given the node map
 | |
|             """
 | |
|             a b c f
 | |
|                   d g
 | |
|                     e
 | |
|             """
 | |
| 
 | |
|         And the ways
 | |
|             | nodes | highway       | oneway |
 | |
|             | abcde | motorway      |        |
 | |
|             | cfg   | motorway_link | yes    |
 | |
| 
 | |
|        When I route I should get
 | |
|             | waypoints | route         | turns                               |
 | |
|             | a,e       | abcde,abcde   | depart,arrive                       |
 | |
|             | a,g       | abcde,cfg,cfg | depart,off ramp slight left,arrive |
 | |
| 
 | |
|     Scenario: On Ramp Right
 | |
|         Given the node map
 | |
|             """
 | |
|             a b c d e
 | |
|             f g
 | |
|             """
 | |
| 
 | |
|         And the ways
 | |
|             | nodes | highway       | oneway |
 | |
|             | abcde | motorway      |        |
 | |
|             | fgd   | motorway_link | yes    |
 | |
| 
 | |
|        When I route I should get
 | |
|             | waypoints | route           | turns                           |
 | |
|             | a,e       | abcde,abcde     | depart,arrive                   |
 | |
|             | f,e       | fgd,abcde,abcde | depart,merge slight left,arrive |
 | |
| 
 | |
|     Scenario: On Ramp Left
 | |
|         Given the node map
 | |
|             """
 | |
|             f g
 | |
|             a b c d e
 | |
|             """
 | |
| 
 | |
|         And the ways
 | |
|             | nodes | highway       | oneway |
 | |
|             | abcde | motorway      |        |
 | |
|             | fgd   | motorway_link | yes    |
 | |
| 
 | |
|        When I route I should get
 | |
|             | waypoints | route           | turns                            |
 | |
|             | a,e       | abcde,abcde     | depart,arrive                    |
 | |
|             | f,e       | fgd,abcde,abcde | depart,merge slight right,arrive |
 | |
| 
 | |
|     Scenario: Highway Fork
 | |
|         Given the node map
 | |
|             """
 | |
|                     d e
 | |
|             a b c
 | |
|                     f g
 | |
|             """
 | |
| 
 | |
|         And the ways
 | |
|             | nodes  | highway  |
 | |
|             | abcde  | motorway |
 | |
|             | cfg    | motorway |
 | |
| 
 | |
|        When I route I should get
 | |
|             | waypoints | route             | turns                           |
 | |
|             | a,e       | abcde,abcde,abcde | depart,fork slight left,arrive  |
 | |
|             | a,g       | abcde,cfg,cfg     | depart,fork slight right,arrive |
 | |
| 
 | |
|      Scenario: Fork After Ramp
 | |
|        Given the node map
 | |
|             """
 | |
|                     d e
 | |
|             a b c
 | |
|                     f g
 | |
|             """
 | |
| 
 | |
|         And the ways
 | |
|             | nodes | highway       | oneway |
 | |
|             | abc   | motorway_link | yes    |
 | |
|             | cde   | motorway      |        |
 | |
|             | cfg   | motorway      |        |
 | |
| 
 | |
|        When I route I should get
 | |
|             | waypoints | route       | turns                           |
 | |
|             | a,e       | abc,cde,cde | depart,fork slight left,arrive  |
 | |
|             | a,g       | abc,cfg,cfg | depart,fork slight right,arrive |
 | |
| 
 | |
|      Scenario: On And Off Ramp Right
 | |
|        Given the node map
 | |
|             """
 | |
|             a b   c   d e
 | |
|             f g       h i
 | |
|             """
 | |
| 
 | |
|         And the ways
 | |
|             | nodes | highway       | oneway |
 | |
|             | abcde | motorway      |        |
 | |
|             | fgc   | motorway_link | yes    |
 | |
|             | chi   | motorway_link | yes    |
 | |
| 
 | |
|        When I route I should get
 | |
|             | waypoints | route           | turns                              |
 | |
|             | a,e       | abcde,abcde     | depart,arrive                      |
 | |
|             | f,e       | fgc,abcde,abcde | depart,merge slight left,arrive    |
 | |
|             | a,i       | abcde,chi,chi   | depart,off ramp slight right,arrive |
 | |
|             | f,i       | fgc,chi,chi     | depart,off ramp right,arrive       |
 | |
| 
 | |
|     Scenario: On And Off Ramp Left
 | |
|        Given the node map
 | |
|             """
 | |
|             f g       h i
 | |
|             a b   c   d e
 | |
|             """
 | |
| 
 | |
|         And the ways
 | |
|             | nodes | highway       | oneway |
 | |
|             | abcde | motorway      |        |
 | |
|             | fgc   | motorway_link | yes    |
 | |
|             | chi   | motorway_link | yes    |
 | |
| 
 | |
|        When I route I should get
 | |
|             | waypoints | route           | turns                             |
 | |
|             | a,e       | abcde,abcde     | depart,arrive                     |
 | |
|             | f,e       | fgc,abcde,abcde | depart,merge slight right,arrive  |
 | |
|             | a,i       | abcde,chi,chi   | depart,off ramp slight left,arrive |
 | |
|             | f,i       | fgc,chi,chi     | depart,off ramp left,arrive       |
 | |
| 
 | |
|     Scenario: Merging Motorways
 | |
|         Given the node map
 | |
|             """
 | |
|             e
 | |
|             a b c
 | |
|             d
 | |
|             """
 | |
| 
 | |
|         And the ways
 | |
|             | nodes | highway  |
 | |
|             | abc   | motorway |
 | |
|             | db    | motorway |
 | |
|             | eb    | motorway |
 | |
| 
 | |
|         When I route I should get
 | |
|             | waypoints | route      | turns                            |
 | |
|             | d,c       | db,abc,abc | depart,merge slight left,arrive  |
 | |
|             | e,c       | eb,abc,abc | depart,merge slight right,arrive |
 | |
| 
 | |
|     Scenario: Handle 90 degree off ramps correctly
 | |
|         Given the node map
 | |
|             """
 | |
|             a
 | |
|             x b   c y
 | |
|                   d
 | |
|             """
 | |
| 
 | |
|         And the ways
 | |
|             | nodes | name | highway       | oneway |
 | |
|             | ab    | On   | motorway_link | yes    |
 | |
|             | xb    | Hwy  | motorway      |        |
 | |
|             | bc    | Hwy  | motorway      |        |
 | |
|             | cd    | Off  | motorway_link | yes    |
 | |
|             | cy    | Hwy  | motorway      |        |
 | |
| 
 | |
|        When I route I should get
 | |
|             | waypoints | route               | turns                                           |
 | |
|             | a,d       | On,Hwy,Off,Off      | depart,merge slight right,off ramp right,arrive |
 |