200 lines
		
	
	
		
			4.1 KiB
		
	
	
	
		
			Gherkin
		
	
	
	
	
	
			
		
		
	
	
			200 lines
		
	
	
		
			4.1 KiB
		
	
	
	
		
			Gherkin
		
	
	
	
	
	
| @routing @bicycle @restrictions
 | |
| Feature: Bike - Turn restrictions
 | |
| 	Handle turn restrictions as defined by http://wiki.openstreetmap.org/wiki/Relation:restriction
 | |
| 	Note that if u-turns are allowed, turn restrictions can lead to suprising, but correct, routes.
 | |
| 	
 | |
| 	Background: Use car routing
 | |
| 		Given the speedprofile "bicycle"
 | |
| 	
 | |
| 	@no_turning
 | |
| 	Scenario: Bike - No left turn
 | |
| 		Given the node map
 | |
| 		 |   | n |   |
 | |
| 		 | w | j | e |
 | |
| 		 |   | s |   |
 | |
| 
 | |
| 		And the ways
 | |
| 		 | nodes | oneway  |
 | |
| 		 | sj    | yes     |
 | |
| 		 | nj    | -1      |
 | |
| 		 | wj    | -1      |
 | |
| 		 | ej    | -1      |
 | |
| 
 | |
| 		And the relations
 | |
| 		 | from | to | via | restriction  |
 | |
| 		 | sj   | wj | j   | no_left_turn |
 | |
| 
 | |
| 		When I route I should get
 | |
| 		 | from | to | route |
 | |
| 		 | s    | w  |       |
 | |
| 		 | s    | n  | sj,nj |
 | |
| 		 | s    | e  | sj,ej |
 | |
| 
 | |
| 	@no_turning
 | |
| 	Scenario: Bike - No right turn
 | |
| 		Given the node map
 | |
| 		 |   | n |   |
 | |
| 		 | w | j | e |
 | |
| 		 |   | s |   |
 | |
| 
 | |
| 		And the ways
 | |
| 		 | nodes | oneway  |
 | |
| 		 | sj    | yes     |
 | |
| 		 | nj    | -1      |
 | |
| 		 | wj    | -1      |
 | |
| 		 | ej    | -1      |
 | |
| 
 | |
| 		And the relations
 | |
| 		 | from | to | via | restriction   |
 | |
| 		 | sj   | ej | j   | no_right_turn |
 | |
| 
 | |
| 		When I route I should get
 | |
| 		 | from | to | route |
 | |
| 		 | s    | w  | sj,wj |
 | |
| 		 | s    | n  | sj,nj |
 | |
| 		 | s    | e  |       |
 | |
| 
 | |
| 	@no_turning
 | |
| 	Scenario: Bike - No u-turn
 | |
| 		Given the node map
 | |
| 		 |   | n |   |
 | |
| 		 | w | j | e |
 | |
| 		 |   | s |   |
 | |
| 
 | |
| 		And the ways
 | |
| 		 | nodes | oneway  |
 | |
| 		 | sj    | yes     |
 | |
| 		 | nj    | -1      |
 | |
| 		 | wj    | -1      |
 | |
| 		 | ej    | -1      |
 | |
| 
 | |
| 		And the relations
 | |
| 		 | from | to | via | restriction |
 | |
| 		 | sj   | wj | j   | no_u_turn   |
 | |
| 
 | |
| 		When I route I should get
 | |
| 		 | from | to | route |
 | |
| 		 | s    | w  |       |
 | |
| 		 | s    | n  | sj,nj |
 | |
| 		 | s    | e  | sj,ej |
 | |
| 
 | |
| 	@no_turning
 | |
| 	Scenario: Bike - Handle any no_* relation
 | |
| 		Given the node map
 | |
| 		 |   | n |   |
 | |
| 		 | w | j | e |
 | |
| 		 |   | s |   |
 | |
| 
 | |
| 		And the ways
 | |
| 		 | nodes | oneway  |
 | |
| 		 | sj    | yes     |
 | |
| 		 | nj    | -1      |
 | |
| 		 | wj    | -1      |
 | |
| 		 | ej    | -1      |
 | |
| 
 | |
| 		And the relations
 | |
| 		 | from | to | via | restriction      |
 | |
| 		 | sj   | wj | j   | no_weird_zigzags |
 | |
| 
 | |
| 		When I route I should get
 | |
| 		 | from | to | route |
 | |
| 		 | s    | w  |       |
 | |
| 		 | s    | n  | sj,nj |
 | |
| 		 | s    | e  | sj,ej |
 | |
| 
 | |
| 	@only_turning
 | |
| 	Scenario: Bike - Only left turn
 | |
| 		Given the node map
 | |
| 		 |   | n |   |
 | |
| 		 | w | j | e |
 | |
| 		 |   | s |   |
 | |
| 
 | |
| 		And the ways
 | |
| 		 | nodes | oneway  |
 | |
| 		 | sj    | yes     |
 | |
| 		 | nj    | -1      |
 | |
| 		 | wj    | -1      |
 | |
| 		 | ej    | -1      |
 | |
| 
 | |
| 		And the relations
 | |
| 		 | from | to | via | restriction    |
 | |
| 		 | sj   | wj | j   | only_left_turn |
 | |
| 
 | |
| 		When I route I should get
 | |
| 		 | from | to | route |
 | |
| 		 | s | w | sj,wj |
 | |
| 		 | s | n |       |
 | |
| 		 | s | e |       |
 | |
| 
 | |
| 	@only_turning
 | |
| 	Scenario: Bike - Only right turn
 | |
| 		Given the node map
 | |
| 		 |   | n |   |
 | |
| 		 | w | j | e |
 | |
| 		 |   | s |   |
 | |
| 
 | |
| 		And the ways
 | |
| 		 | nodes | oneway  |
 | |
| 		 | sj    | yes     |
 | |
| 		 | nj    | -1      |
 | |
| 		 | wj    | -1      |
 | |
| 		 | ej    | -1      |
 | |
| 
 | |
| 		And the relations
 | |
| 		 | from | to | via | restriction     |
 | |
| 		 | sj   | ej | j   | only_right_turn |
 | |
| 
 | |
| 		When I route I should get
 | |
| 		 | from | to | route |
 | |
| 		 | s    | w  |       |
 | |
| 		 | s    | n  |       |
 | |
| 		 | s    | e  | sj,ej |
 | |
| 	
 | |
| 	@only_turning
 | |
| 	Scenario: Bike - Only straight on
 | |
| 		Given the node map
 | |
| 		 |   | n |   |
 | |
| 		 | w | j | e |
 | |
| 		 |   | s |   |
 | |
| 
 | |
| 		And the ways
 | |
| 		 | nodes | oneway  |
 | |
| 		 | sj    | yes     |
 | |
| 		 | nj    | -1      |
 | |
| 		 | wj    | -1      |
 | |
| 		 | ej    | -1      |
 | |
| 
 | |
| 		And the relations
 | |
| 		 | from | to | via | restriction      |
 | |
| 		 | sj   | nj | j   | only_straight_on |
 | |
| 
 | |
| 		When I route I should get
 | |
| 		 | from | to | route |
 | |
| 		 | s    | w  |       |
 | |
| 		 | s    | n  | sj,nj |
 | |
| 		 | s    | e  |       |
 | |
| 
 | |
| 	@no_turning
 | |
| 	Scenario: Bike - Handle any only_* restriction
 | |
| 		Given the node map
 | |
| 		 |   | n |   |
 | |
| 		 | w | j | e |
 | |
| 		 |   | s |   |
 | |
| 
 | |
| 		And the ways
 | |
| 		 | nodes | oneway  |
 | |
| 		 | sj    | yes     |
 | |
| 		 | nj    | -1      |
 | |
| 		 | wj    | -1      |
 | |
| 		 | ej    | -1      |
 | |
| 
 | |
| 		And the relations
 | |
| 		 | from | to | via | restriction        |
 | |
| 		 | sj   | nj | j   | only_weird_zigzags |
 | |
| 
 | |
| 		When I route I should get
 | |
| 		 | from | to | route |
 | |
| 		 | s    | w  |       |
 | |
| 		 | s    | n  | sj,nj |
 | |
| 		 | s    | e  |       |
 |