* Added post process logic to collapse segregated turn instructions * format updates * Fixed coordinates to reflect reality Updated left turn road name * fixed coordinates to fix test * Skip last step when processing segregated steps * updated segregated turn test * Updated segregated test * Updated test: Segregated Intersection, Cross Belonging to Correct Street - features/guidance/collapse.feature:79 * Fixed all but one for features/guidance/collapse.feature:124 * Fixed Scenario: Partly Segregated Intersection, Two Segregated Roads, Intersection belongs to Second - features/guidance/collapse.feature:219 * Fixed 7 of th 9 failures for Scenario: Partly Segregated Intersection, Two Segregated Roads, Intersection belongs to Second - features/guidance/collapse.feature:219 * Fixed 7 of the 9 failures for Scenario: Segregated Intersection, Cross Belonging to Mixed Streets - Slight Angles (2) - features/guidance/collapse.feature:318 * Fixed Scenario: Segregated Intersection into Slight Turn - features/guidance/collapse.feature:581 * Updated Scenario: U-turn after a traffic light - features/guidance/turn-lanes.feature:1220 * Updated how we combine segregated steps * Added test to Verify end of road left turn across divided roads * Fixed divided highwat tests * Fixed test failure * fixed Scenario: Partitioned turn, Slight Curve - maxspeed - features/guidance/turn-lanes.feature:936 * Fixed Scenario: Partitioned turn, Slight Curve - features/guidance/turn-lanes.feature:961 * Added strategies to combine segrgated intersections * Added setModifier alias for readability * Added strategies to combine segrgated intersections * Format updates * Fixes segregated indentification to not mark `circular` edge as segregated * Added intersection prior to turn so we still call out end of road * updated expectation to be turn instead of continue * Confirmed with @oxidase that the lane information if correct - updated the expectation * Added logic to handle wider straights Fixed tests * Update CHANGELOG.md Added #4925 * Removed TODO * Process straight step prior to wider straight step
		
			
				
	
	
		
			1057 lines
		
	
	
		
			44 KiB
		
	
	
	
		
			Gherkin
		
	
	
	
	
	
			
		
		
	
	
			1057 lines
		
	
	
		
			44 KiB
		
	
	
	
		
			Gherkin
		
	
	
	
	
	
| @routing @car @restrictions
 | |
| Feature: Car - 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 profile "car"
 | |
|         Given a grid size of 200 meters
 | |
|         Given the origin -9.2972,10.3811
 | |
|         # coordinate in Guinée, a country that observes GMT year round
 | |
| 
 | |
|     @no_turning @conditionals
 | |
|     Scenario: Car - ignores unrecognized restriction
 | |
|         Given the extract extra arguments "--parse-conditional-restrictions"
 | |
|                                             # time stamp for 10am on Tues, 02 May 2017 GMT
 | |
|         Given the contract extra arguments "--time-zone-file=test/data/tz/{timezone_names}/guinea.geojson --parse-conditionals-from-now=1493719200"
 | |
|         Given the customize extra arguments "--time-zone-file=test/data/tz/{timezone_names}/guinea.geojson --parse-conditionals-from-now=1493719200"
 | |
|         Given the node map
 | |
|             """
 | |
|               a
 | |
|             d j b
 | |
|               c
 | |
|             """
 | |
| 
 | |
|         And the ways
 | |
|             | nodes | oneway |
 | |
|             | aj    | no     |
 | |
|             | jc    | no     |
 | |
|             | bj    | yes    |
 | |
|             | jd    | yes    |
 | |
| 
 | |
|         And the relations
 | |
|             | type        | way:from | way:to | node:via | restriction:conditional                |
 | |
|             | restriction | bj       | aj     | j        | only_right_turn @ (has_pygmies > 10 p) |
 | |
| 
 | |
|         When I route I should get
 | |
|             | from | to | route    |
 | |
|             | b    | c  | bj,jc,jc |
 | |
|             | b    | a  | bj,aj,aj |
 | |
|             | b    | d  | bj,jd,jd |
 | |
| 
 | |
|     @no_turning @conditionals
 | |
|     Scenario: Car - Restriction would be on, but the restriction was badly tagged
 | |
|         Given the extract extra arguments "--parse-conditional-restrictions"
 | |
|                                             # time stamp for 10am on Tues, 02 May 2017 GMT
 | |
|         Given the contract extra arguments "--time-zone-file=test/data/tz/{timezone_names}/guinea.geojson --parse-conditionals-from-now=1493719200"
 | |
|         Given the customize extra arguments "--time-zone-file=test/data/tz/{timezone_names}/guinea.geojson --parse-conditionals-from-now=1493719200"
 | |
| 
 | |
|         Given the node map
 | |
|             """
 | |
|               a
 | |
|            p  |
 | |
|             \ |
 | |
|               j
 | |
|               | \
 | |
|               c  m
 | |
|             """
 | |
| 
 | |
|         And the ways
 | |
|             | nodes |
 | |
|             | aj    |
 | |
|             | jc    |
 | |
|             | pjm   |
 | |
| 
 | |
|         And the relations
 | |
|             | type        | way:from | way:to | node:via | restriction:conditional             |
 | |
|             | restriction | aj       | pjm    | j        | no_left_turn @ (Mo-Fr 07:00-10:30)  |
 | |
|             | restriction | jc       | pjm    | j        | no_right_turn @ (Mo-Fr 07:00-10:30) |
 | |
| 
 | |
|         When I route I should get
 | |
|             | from | to | route      |
 | |
|             | a    | m  | aj,pjm,pjm |
 | |
|             | c    | m  | jc,pjm,pjm |
 | |
| 
 | |
|     @no_turning @conditionals
 | |
|     Scenario: Car - Restriction With Compressed Geometry
 | |
|         Given the extract extra arguments "--parse-conditional-restrictions"
 | |
|                                             # time stamp for 10am on Tues, 02 May 2017 GMT
 | |
|         Given the contract extra arguments "--time-zone-file=test/data/tz/{timezone_names}/guinea.geojson --parse-conditionals-from-now=1493719200"
 | |
|         Given the customize extra arguments "--time-zone-file=test/data/tz/{timezone_names}/guinea.geojson --parse-conditionals-from-now=1493719200"
 | |
| 
 | |
|         Given the node map
 | |
|             """
 | |
|             n
 | |
|             |
 | |
|             i
 | |
|             |
 | |
|             j-k-l-m
 | |
|             |
 | |
|             s
 | |
|             """
 | |
| 
 | |
|         And the ways
 | |
|             | nodes |
 | |
|             | nij   |
 | |
|             | js    |
 | |
|             | jklm  |
 | |
| 
 | |
|         And the relations
 | |
|             | type        | way:from | way:to | node:via | restriction:conditional             |
 | |
|             | restriction | nij      | jklm   | j        | no_left_turn @ (Mo-Fr 07:00-10:30)  |
 | |
| 
 | |
|         When I route I should get
 | |
|             | from | to | route               |
 | |
|             | n    | m  | nij,js,js,jklm,jklm |
 | |
| 
 | |
|     @no_turning @conditionals
 | |
|     Scenario: Car - Restriction With Compressed Geometry and Traffic Signal
 | |
|         Given the extract extra arguments "--parse-conditional-restrictions"
 | |
|                                             # time stamp for 10am on Tues, 02 May 2017 GMT
 | |
|         Given the contract extra arguments "--time-zone-file=test/data/tz/{timezone_names}/guinea.geojson --parse-conditionals-from-now=1493719200"
 | |
|         Given the customize extra arguments "--time-zone-file=test/data/tz/{timezone_names}/guinea.geojson --parse-conditionals-from-now=1493719200"
 | |
| 
 | |
|         Given the node map
 | |
|             """
 | |
|             n
 | |
|             |
 | |
|             i
 | |
|             |
 | |
|             j-k-l-m
 | |
|             |
 | |
|             s
 | |
|             """
 | |
| 
 | |
|         And the ways
 | |
|             | nodes |
 | |
|             | nij   |
 | |
|             | js    |
 | |
|             | jklm  |
 | |
| 
 | |
|         And the nodes
 | |
|             | node | highway        |
 | |
|             | i    | traffic_signal |
 | |
|             | k    | traffic_signal |
 | |
| 
 | |
|         And the relations
 | |
|             | type        | way:from | way:to | node:via | restriction:conditional             |
 | |
|             | restriction | nij      | jklm   | j        | no_left_turn @ (Mo-Fr 07:00-10:30)  |
 | |
| 
 | |
|         When I route I should get
 | |
|             | from | to | route               |
 | |
|             | n    | m  | nij,js,js,jklm,jklm |
 | |
| 
 | |
|     @no_turning @conditionals
 | |
|     Scenario: Car - ignores except restriction
 | |
|         Given the extract extra arguments "--parse-conditional-restrictions"
 | |
|                                             # time stamp for 10am on Tues, 02 May 2017 GMT
 | |
|         Given the contract extra arguments "--time-zone-file=test/data/tz/{timezone_names}/guinea.geojson --parse-conditionals-from-now=1493719200"
 | |
|         Given the customize extra arguments "--time-zone-file=test/data/tz/{timezone_names}/guinea.geojson --parse-conditionals-from-now=1493719200"
 | |
|         Given the node map
 | |
|             """
 | |
|               a
 | |
|             d j b
 | |
|               c
 | |
|             """
 | |
| 
 | |
|         And the ways
 | |
|             | nodes | oneway |
 | |
|             | aj    | no     |
 | |
|             | jc    | no     |
 | |
|             | bj    | no     |
 | |
|             | jd    | no     |
 | |
| 
 | |
|         And the relations
 | |
|             | type        | way:from | way:to | node:via | restriction:conditional               | except   |
 | |
|             | restriction | bj       | aj     | j        | only_right_turn @ (Mo-Su 08:00-12:00) | motorcar |
 | |
|             | restriction | jd       | aj     | j        | only_left_turn @ (Mo-Su 08:00-12:00)  | bus      |
 | |
| 
 | |
|         When I route I should get
 | |
|             | from | to | route          | # |
 | |
|             | b    | c  | bj,jc,jc       |   |
 | |
|             | b    | a  | bj,aj,aj       | restriction does not apply to cars |
 | |
|             | b    | d  | bj,jd,jd       |   |
 | |
|             | d    | c  | jd,aj,aj,jc,jc | restriction excepting busses still applies to cars  |
 | |
| 
 | |
|     @no_turning @conditionals
 | |
|     Scenario: Car - only_right_turn
 | |
|         Given the extract extra arguments "--parse-conditional-restrictions"
 | |
|                                             # time stamp for 10am on Tues, 02 May 2017 GMT
 | |
|         Given the contract extra arguments "--time-zone-file=test/data/tz/{timezone_names}/guinea.geojson --parse-conditionals-from-now=1493719200"
 | |
|         Given the customize extra arguments "--time-zone-file=test/data/tz/{timezone_names}/guinea.geojson --parse-conditionals-from-now=1493719200"
 | |
|         Given the node map
 | |
|             """
 | |
|               a
 | |
|             d j b
 | |
|               c
 | |
|             """
 | |
| 
 | |
|         And the ways
 | |
|             | nodes | oneway |
 | |
|             | aj    | no     |
 | |
|             | jc    | no     |
 | |
|             | bj    | yes    |
 | |
|             | jd    | yes    |
 | |
| 
 | |
|         And the relations
 | |
|             | type        | way:from | way:to | node:via | restriction:conditional               |
 | |
|             | restriction | bj       | aj     | j        | only_right_turn @ (Mo-Su 07:00-14:00) |
 | |
| 
 | |
|         When I route I should get
 | |
|             | from | to | route          |
 | |
|             | b    | c  | bj,aj,aj,jc,jc |
 | |
|             | b    | a  | bj,aj,aj       |
 | |
|             | b    | d  | bj,aj,aj,jd,jd |
 | |
| 
 | |
|     @no_turning @conditionals
 | |
|     Scenario: Car - No right turn
 | |
|         Given the extract extra arguments "--parse-conditional-restrictions"
 | |
|                                             # time stamp for 10am on Tues, 02 May 2017 GMT
 | |
|         Given the contract extra arguments "--time-zone-file=test/data/tz/{timezone_names}/guinea.geojson --parse-conditionals-from-now=1493719200"
 | |
|         Given the customize extra arguments "--time-zone-file=test/data/tz/{timezone_names}/guinea.geojson --parse-conditionals-from-now=1493719200"
 | |
|         Given the node map
 | |
|             """
 | |
|               a
 | |
|             d j b
 | |
|               c
 | |
|             """
 | |
| 
 | |
|         And the ways
 | |
|             | nodes | oneway |
 | |
|             | aj    | no     |
 | |
|             | jc    | no     |
 | |
|             | bj    | yes    |
 | |
|             | jd    | yes    |
 | |
| 
 | |
|         And the relations
 | |
|             | type        | way:from | way:to | node:via | restriction:conditional               |
 | |
|             | restriction | bj       | aj     | j        | no_right_turn @ (Mo-Fr 07:00-13:00)   |
 | |
| 
 | |
|         When I route I should get
 | |
|             | from | to | route          | # |
 | |
|             | b    | c  | bj,jc,jc       | normal turn |
 | |
|             | b    | a  | bj,jc,jc,aj,aj | avoids right turn |
 | |
|             | b    | d  | bj,jd,jd       | normal maneuver |
 | |
| 
 | |
|     @only_turning @conditionals
 | |
|     Scenario: Car - only_left_turn
 | |
|         Given the extract extra arguments "--parse-conditional-restrictions"
 | |
|                                             # time stamp for 10am on Tues, 02 May 2017 GMT
 | |
|         Given the contract extra arguments "--time-zone-file=test/data/tz/{timezone_names}/guinea.geojson --parse-conditionals-from-now=1493719200"
 | |
|         Given the customize extra arguments "--time-zone-file=test/data/tz/{timezone_names}/guinea.geojson --parse-conditionals-from-now=1493719200"
 | |
|         Given the node map
 | |
|             """
 | |
|               a
 | |
|             d j b
 | |
|               c
 | |
|             """
 | |
| 
 | |
|         And the ways
 | |
|             | nodes | oneway |
 | |
|             | aj    | no     |
 | |
|             | jc    | no     |
 | |
|             | bj    | yes    |
 | |
|             | jd    | yes    |
 | |
| 
 | |
|         And the relations
 | |
|             | type        | way:from | way:to | node:via | restriction:conditional              |
 | |
|             | restriction | bj       | jc     | j        | only_left_turn @ (Mo-Fr 07:00-16:00) |
 | |
| 
 | |
|         When I route I should get
 | |
|             | from | to | route          |
 | |
|             | b    | c  | bj,jc,jc       |
 | |
|             | b    | a  | bj,jc,jc,aj,aj |
 | |
|             | b    | d  | bj,jc,jc,jd,jd |
 | |
| 
 | |
|     @no_turning @conditionals
 | |
|     Scenario: Car - No left turn
 | |
|         Given the extract extra arguments "--parse-conditional-restrictions"
 | |
|                                             # time stamp for 10am on Tues, 02 May 2017 GMT
 | |
|         Given the contract extra arguments "--time-zone-file=test/data/tz/{timezone_names}/guinea.geojson --parse-conditionals-from-now=1493719200"
 | |
|         Given the customize extra arguments "--time-zone-file=test/data/tz/{timezone_names}/guinea.geojson --parse-conditionals-from-now=1493719200"
 | |
|         Given the node map
 | |
|             """
 | |
|               a
 | |
|             d j b
 | |
|               c
 | |
|             """
 | |
| 
 | |
|         And the ways
 | |
|             | nodes | oneway |
 | |
|             | aj    | no     |
 | |
|             | jc    | no     |
 | |
|             | bj    | yes    |
 | |
|             | jd    | yes    |
 | |
| 
 | |
|         And the relations
 | |
|             | type        | way:from | way:to | node:via | restriction:conditional            |
 | |
|             | restriction | bj       | jc     | j        | no_left_turn @ (Mo-Su 00:00-23:59) |
 | |
| 
 | |
|         When I route I should get
 | |
|             | from | to | route          |
 | |
|             | b    | c  | bj,aj,aj,jc,jc |
 | |
|             | b    | a  | bj,aj,aj       |
 | |
|             | b    | d  | bj,jd,jd       |
 | |
| 
 | |
|     @no_turning @conditionals
 | |
|     Scenario: Car - Conditional restriction is off
 | |
|         Given the extract extra arguments "--parse-conditional-restrictions"
 | |
|                                             # time stamp for 10am on Tues, 02 May 2017 GMT
 | |
|         Given the contract extra arguments "--time-zone-file=test/data/tz/{timezone_names}/guinea.geojson --parse-conditionals-from-now=1493719200"
 | |
|         Given the customize extra arguments "--time-zone-file=test/data/tz/{timezone_names}/guinea.geojson --parse-conditionals-from-now=1493719200"
 | |
|         Given the node map
 | |
|             """
 | |
|               a
 | |
|             d j b
 | |
|               c
 | |
|             """
 | |
| 
 | |
|         And the ways
 | |
|             | nodes | oneway |
 | |
|             | aj    | no     |
 | |
|             | jc    | no     |
 | |
|             | bj    | yes    |
 | |
|             | jd    | yes    |
 | |
| 
 | |
|         And the relations
 | |
|             | type        | way:from | way:to | node:via | restriction:conditional             |
 | |
|             | restriction | bj       | aj     | j        | no_right_turn @ (Mo-Su 16:00-20:00) |
 | |
| 
 | |
|         When I route I should get
 | |
|             | from | to | route    |
 | |
|             | b    | c  | bj,jc,jc |
 | |
|             | b    | a  | bj,aj,aj |
 | |
|             | b    | d  | bj,jd,jd |
 | |
| 
 | |
|     @no_turning @conditionals
 | |
|     Scenario: Car - Conditional restriction is on
 | |
|         Given the extract extra arguments "--parse-conditional-restrictions"
 | |
|         # 10am utc, wed
 | |
|         Given the contract extra arguments "--time-zone-file=test/data/tz/{timezone_names}/guinea.geojson --parse-conditionals-from-now=1493805600"
 | |
|         Given the customize extra arguments "--time-zone-file=test/data/tz/{timezone_names}/guinea.geojson --parse-conditionals-from-now=1493805600"
 | |
|         Given the node map
 | |
|             """
 | |
|               a
 | |
|             d j b
 | |
|               c
 | |
|             """
 | |
| 
 | |
|         And the ways
 | |
|             | nodes | oneway |
 | |
|             | aj    | no     |
 | |
|             | jc    | no     |
 | |
|             | bj    | yes    |
 | |
|             | jd    | yes    |
 | |
| 
 | |
|         And the relations
 | |
|             | type        | way:from | way:to | node:via | restriction:conditional             |
 | |
|             | restriction | bj       | aj     | j        | no_right_turn @ (Mo-Fr 07:00-14:00) |
 | |
| 
 | |
|         When I route I should get
 | |
|             | from | to | route          |
 | |
|             | b    | c  | bj,jc,jc       |
 | |
|             | b    | a  | bj,jc,jc,aj,aj |
 | |
|             | b    | d  | bj,jd,jd       |
 | |
| 
 | |
|     @no_turning @conditionals
 | |
|     Scenario: Car - Conditional restriction with multiple time windows
 | |
|         Given the extract extra arguments "--parse-conditional-restrictions"
 | |
|         # 5pm Wed 02 May, 2017 GMT
 | |
|         Given the contract extra arguments "--time-zone-file=test/data/tz/{timezone_names}/guinea.geojson --parse-conditionals-from-now=1493744400"
 | |
|         Given the customize extra arguments "--time-zone-file=test/data/tz/{timezone_names}/guinea.geojson --parse-conditionals-from-now=1493744400"
 | |
| 
 | |
|         Given the node map
 | |
|             """
 | |
|               a
 | |
|            p  |
 | |
|             \ |
 | |
|               j
 | |
|               | \
 | |
|               c  m
 | |
|             """
 | |
| 
 | |
|         And the ways
 | |
|             | nodes | oneway |
 | |
|             | aj    | no     |
 | |
|             | jc    | no     |
 | |
|             | jp    | yes    |
 | |
|             | mj    | yes    |
 | |
| 
 | |
|         And the relations
 | |
|             | type        | way:from | way:to | node:via | restriction:conditional                         |
 | |
|             | restriction | aj       | jp     | j        | no_right_turn @ (Mo-Fr 07:00-11:00,16:00-18:30) |
 | |
| 
 | |
|         When I route I should get
 | |
|             | from | to | route          |
 | |
|             | a    | p  | aj,jc,jc,jp,jp |
 | |
|             | m    | p  | mj,jp,jp       |
 | |
| 
 | |
|     @no_turning @conditionals
 | |
|     Scenario: Car - only_right_turn
 | |
|         Given the extract extra arguments "--parse-conditional-restrictions"
 | |
|                                             # time stamp for 10am on Tues, 02 May 2017 GMT
 | |
|         Given the contract extra arguments "--time-zone-file=test/data/tz/{timezone_names}/guinea.geojson --parse-conditionals-from-now=1493719200"
 | |
|         Given the customize extra arguments "--time-zone-file=test/data/tz/{timezone_names}/guinea.geojson --parse-conditionals-from-now=1493719200"
 | |
|         Given the node map
 | |
|             """
 | |
|               a
 | |
|             d j b
 | |
|               c
 | |
|             """
 | |
| 
 | |
|         And the ways
 | |
|             | nodes | oneway |
 | |
|             | aj    | no     |
 | |
|             | jc    | no     |
 | |
|             | bj    | yes    |
 | |
|             | jd    | yes    |
 | |
| 
 | |
|         And the relations
 | |
|             | type        | way:from | way:to | node:via | restriction:conditional               |
 | |
|             | restriction | bj       | aj     | j        | only_right_turn @ (Mo-Su 07:00-14:00) |
 | |
| 
 | |
|         When I route I should get
 | |
|             | from | to | route          |
 | |
|             | b    | c  | bj,aj,aj,jc,jc |
 | |
|             | b    | a  | bj,aj,aj       |
 | |
|             | b    | d  | bj,aj,aj,jd,jd |
 | |
| 
 | |
|     @no_turning @conditionals
 | |
|     Scenario: Car - No right turn
 | |
|         Given the extract extra arguments "--parse-conditional-restrictions"
 | |
|                                             # time stamp for 10am on Tues, 02 May 2017 GMT
 | |
|         Given the contract extra arguments "--time-zone-file=test/data/tz/{timezone_names}/guinea.geojson --parse-conditionals-from-now=1493719200"
 | |
|         Given the customize extra arguments "--time-zone-file=test/data/tz/{timezone_names}/guinea.geojson --parse-conditionals-from-now=1493719200"
 | |
|         Given the node map
 | |
|             """
 | |
|               a
 | |
|             d j b
 | |
|               c
 | |
|             """
 | |
| 
 | |
|         And the ways
 | |
|             | nodes | oneway |
 | |
|             | aj    | no     |
 | |
|             | jc    | no     |
 | |
|             | bj    | yes    |
 | |
|             | jd    | yes    |
 | |
| 
 | |
|         And the relations
 | |
|             | type        | way:from | way:to | node:via | restriction:conditional               |
 | |
|             | restriction | bj       | aj     | j        | no_right_turn @ (Mo-Fr 07:00-13:00)   |
 | |
| 
 | |
|         When I route I should get
 | |
|             | from | to | route          | # |
 | |
|             | b    | c  | bj,jc,jc       | normal turn |
 | |
|             | b    | a  | bj,jc,jc,aj,aj | avoids right turn |
 | |
|             | b    | d  | bj,jd,jd       | normal maneuver |
 | |
| 
 | |
|     @only_turning @conditionals
 | |
|     Scenario: Car - only_left_turn
 | |
|         Given the extract extra arguments "--parse-conditional-restrictions"
 | |
|                                             # time stamp for 10am on Tues, 02 May 2017 GMT
 | |
|         Given the contract extra arguments "--time-zone-file=test/data/tz/{timezone_names}/guinea.geojson --parse-conditionals-from-now=1493719200"
 | |
|         Given the customize extra arguments "--time-zone-file=test/data/tz/{timezone_names}/guinea.geojson --parse-conditionals-from-now=1493719200"
 | |
|         Given the node map
 | |
|             """
 | |
|               a
 | |
|             d j b
 | |
|               c
 | |
|             """
 | |
| 
 | |
|         And the ways
 | |
|             | nodes | oneway |
 | |
|             | aj    | no     |
 | |
|             | jc    | no     |
 | |
|             | bj    | yes    |
 | |
|             | jd    | yes    |
 | |
| 
 | |
|         And the relations
 | |
|             | type        | way:from | way:to | node:via | restriction:conditional              |
 | |
|             | restriction | bj       | jc     | j        | only_left_turn @ (Mo-Fr 07:00-16:00) |
 | |
| 
 | |
|         When I route I should get
 | |
|             | from | to | route          |
 | |
|             | b    | c  | bj,jc,jc       |
 | |
|             | b    | a  | bj,jc,jc,aj,aj |
 | |
|             | b    | d  | bj,jc,jc,jd,jd |
 | |
| 
 | |
|     @no_turning @conditionals
 | |
|     Scenario: Car - No left turn
 | |
|         Given the extract extra arguments "--parse-conditional-restrictions"
 | |
|                                             # time stamp for 10am on Tues, 02 May 2017 GMT
 | |
|         Given the contract extra arguments "--time-zone-file=test/data/tz/{timezone_names}/guinea.geojson --parse-conditionals-from-now=1493719200"
 | |
|         Given the customize extra arguments "--time-zone-file=test/data/tz/{timezone_names}/guinea.geojson --parse-conditionals-from-now=1493719200"
 | |
|         Given the node map
 | |
|             """
 | |
|               a
 | |
|             d j b
 | |
|               c
 | |
|             """
 | |
| 
 | |
|         And the ways
 | |
|             | nodes | oneway |
 | |
|             | aj    | no     |
 | |
|             | jc    | no     |
 | |
|             | bj    | yes    |
 | |
|             | jd    | yes    |
 | |
| 
 | |
|         And the relations
 | |
|             | type        | way:from | way:to | node:via | restriction:conditional            |
 | |
|             | restriction | bj       | jc     | j        | no_left_turn @ (Mo-Su 00:00-23:59) |
 | |
| 
 | |
|         When I route I should get
 | |
|             | from | to | route          |
 | |
|             | b    | c  | bj,aj,aj,jc,jc |
 | |
|             | b    | a  | bj,aj,aj       |
 | |
|             | b    | d  | bj,jd,jd       |
 | |
| 
 | |
|     @no_turning @conditionals
 | |
|     Scenario: Car - Conditional restriction is off
 | |
|         Given the extract extra arguments "--parse-conditional-restrictions"
 | |
|                                             # time stamp for 10am on Tues, 02 May 2017 GMT
 | |
|         Given the contract extra arguments "--time-zone-file=test/data/tz/{timezone_names}/guinea.geojson --parse-conditionals-from-now=1493719200"
 | |
|         Given the customize extra arguments "--time-zone-file=test/data/tz/{timezone_names}/guinea.geojson --parse-conditionals-from-now=1493719200"
 | |
|         Given the node map
 | |
|             """
 | |
|               a
 | |
|             d j b
 | |
|               c
 | |
|             """
 | |
| 
 | |
|         And the ways
 | |
|             | nodes | oneway |
 | |
|             | aj    | no     |
 | |
|             | jc    | no     |
 | |
|             | bj    | yes    |
 | |
|             | jd    | yes    |
 | |
| 
 | |
|         And the relations
 | |
|             | type        | way:from | way:to | node:via | restriction:conditional             |
 | |
|             | restriction | bj       | aj     | j        | no_right_turn @ (Mo-Su 16:00-20:00) |
 | |
| 
 | |
|         When I route I should get
 | |
|             | from | to | route    |
 | |
|             | b    | c  | bj,jc,jc |
 | |
|             | b    | a  | bj,aj,aj |
 | |
|             | b    | d  | bj,jd,jd |
 | |
| 
 | |
|     @no_turning @conditionals
 | |
|     Scenario: Car - Conditional restriction is on
 | |
|         Given the extract extra arguments "--parse-conditional-restrictions"
 | |
|         # 10am utc, wed
 | |
|         Given the contract extra arguments "--time-zone-file=test/data/tz/{timezone_names}/guinea.geojson --parse-conditionals-from-now=1493805600"
 | |
|         Given the customize extra arguments "--time-zone-file=test/data/tz/{timezone_names}/guinea.geojson --parse-conditionals-from-now=1493805600"
 | |
|         Given the node map
 | |
|             """
 | |
|               a
 | |
|             d j b
 | |
|               c
 | |
|             """
 | |
| 
 | |
|         And the ways
 | |
|             | nodes | oneway |
 | |
|             | aj    | no     |
 | |
|             | jc    | no     |
 | |
|             | bj    | yes    |
 | |
|             | jd    | yes    |
 | |
| 
 | |
|         And the relations
 | |
|             | type        | way:from | way:to | node:via | restriction:conditional             |
 | |
|             | restriction | jb       | aj     | j        | no_right_turn @ (Mo-Fr 07:00-14:00) |
 | |
| 
 | |
|         When I route I should get
 | |
|             | from | to | route          |
 | |
|             | b    | c  | bj,jc,jc       |
 | |
|             | b    | a  | bj,jc,jc,aj,aj |
 | |
|             | b    | d  | bj,jd,jd       |
 | |
| 
 | |
|     @no_turning @conditionals
 | |
|     Scenario: Car - Conditional restriction with multiple time windows
 | |
|         Given the extract extra arguments "--parse-conditional-restrictions"
 | |
|         # 5pm Wed 02 May, 2017 GMT
 | |
|         Given the contract extra arguments "--time-zone-file=test/data/tz/{timezone_names}/guinea.geojson --parse-conditionals-from-now=1493744400"
 | |
|         Given the customize extra arguments "--time-zone-file=test/data/tz/{timezone_names}/guinea.geojson --parse-conditionals-from-now=1493744400"
 | |
| 
 | |
|         Given the node map
 | |
|             """
 | |
|               a
 | |
|            p  |
 | |
|             \ |
 | |
|               j
 | |
|               | \
 | |
|               c  m
 | |
|             """
 | |
| 
 | |
|         And the ways
 | |
|             | nodes | oneway |
 | |
|             | aj    | no     |
 | |
|             | jc    | no     |
 | |
|             | jp    | yes    |
 | |
|             | mj    | yes    |
 | |
| 
 | |
|         And the relations
 | |
|             | type        | way:from | way:to | node:via | restriction:conditional                         |
 | |
|             | restriction | aj       | jp     | j        | no_right_turn @ (Mo-Fr 07:00-11:00,16:00-18:30) |
 | |
| 
 | |
|         When I route I should get
 | |
|             | from | to | route          |
 | |
|             | a    | p  | aj,jc,jc,jp,jp |
 | |
|             | m    | p  | mj,jp,jp       |
 | |
| 
 | |
|     @restriction-way
 | |
|     Scenario: Car - prohibit turn
 | |
|         Given the extract extra arguments "--parse-conditional-restrictions"
 | |
|         # 5pm Wed 02 May, 2017 GMT
 | |
|         Given the contract extra arguments "--time-zone-file=test/data/tz/{timezone_names}/guinea.geojson --parse-conditionals-from-now=1493744400"
 | |
|         Given the customize extra arguments "--time-zone-file=test/data/tz/{timezone_names}/guinea.geojson --parse-conditionals-from-now=1493744400"
 | |
| 
 | |
|         Given the node map
 | |
|             """
 | |
|             c
 | |
|             |
 | |
|             |   f
 | |
|             |   |
 | |
|             b---e
 | |
|             |   |
 | |
|             a   d
 | |
|             """
 | |
| 
 | |
|         And the ways
 | |
|             | nodes |
 | |
|             | ab    |
 | |
|             | bc    |
 | |
|             | be    |
 | |
|             | de    |
 | |
|             | ef    |
 | |
| 
 | |
|         And the relations
 | |
|             | type        | way:from | way:via | way:to | restriction:conditional                         |
 | |
|             | restriction | ab       | be      | de     | no_right_turn @ (Mo-Fr 07:00-11:00,16:00-18:30) |
 | |
| 
 | |
|         When I route I should get
 | |
|             | from | to | route             | turns                                                               | locations   |
 | |
|             | a    | d  | ab,be,ef,ef,de,de | depart,turn right,turn left,continue uturn,new name straight,arrive | a,b,e,f,e,d |
 | |
|             | a    | f  | ab,be,ef,ef       | depart,turn right,turn left,arrive                                  | a,b,e,f     |
 | |
|             | c    | d  | bc,be,de,de       | depart,turn left,turn right,arrive                                  | c,b,e,d     |
 | |
|             | c    | f  | bc,be,ef,ef       | depart,turn left,turn left,arrive                                   | c,b,e,f     |
 | |
| 
 | |
|     # condition is off
 | |
|     @restriction-way
 | |
|     Scenario: Car - prohibit turn
 | |
|         Given the extract extra arguments "--parse-conditional-restrictions"
 | |
|         # time stamp for 12am on Tues, 02 May 2017 GMT
 | |
|         Given the contract extra arguments "--time-zone-file=test/data/tz/{timezone_names}/guinea.geojson --parse-conditionals-from-now=1493726400"
 | |
|         Given the customize extra arguments "--time-zone-file=test/data/tz/{timezone_names}/guinea.geojson --parse-conditionals-from-now=1493726400"
 | |
| 
 | |
|         Given the node map
 | |
|             """
 | |
|             c
 | |
|             |
 | |
|             |   f
 | |
|             |   |
 | |
|             b---e
 | |
|             |   |
 | |
|             a   d
 | |
|             """
 | |
| 
 | |
|         And the ways
 | |
|             | nodes |
 | |
|             | ab    |
 | |
|             | bc    |
 | |
|             | be    |
 | |
|             | de    |
 | |
|             | ef    |
 | |
| 
 | |
|         And the relations
 | |
|             | type        | way:from | way:via | way:to | restriction:conditional                         |
 | |
|             | restriction | ab       | be      | de     | no_right_turn @ (Mo-Fr 07:00-11:00,16:00-18:30) |
 | |
| 
 | |
|         When I route I should get
 | |
|             | from | to | route       |
 | |
|             | a    | d  | ab,be,de,de |
 | |
|             | a    | f  | ab,be,ef,ef |
 | |
|             | c    | d  | bc,be,de,de |
 | |
|             | c    | f  | bc,be,ef,ef |
 | |
| 
 | |
|     # https://www.openstreetmap.org/#map=18/38.91099/-77.00888
 | |
|     @no_turning @conditionals
 | |
|     Scenario: Car - DC North capitol situation, two on one off
 | |
|         Given the extract extra arguments "--parse-conditional-restrictions"
 | |
|         # 9pm Wed 02 May, 2017 UTC, 5pm EDT
 | |
|         Given the contract extra arguments "--time-zone-file=test/data/tz/{timezone_names}/dc.geojson --parse-conditionals-from-now=1493845200"
 | |
|         Given the customize extra arguments "--time-zone-file=test/data/tz/{timezone_names}/dc.geojson --parse-conditionals-from-now=1493845200"
 | |
| 
 | |
|         #    """
 | |
|         #      a h
 | |
|         #   d
 | |
|         #      b g
 | |
|         #           e
 | |
|         #      c f
 | |
|         #    """
 | |
|         Given the node locations
 | |
|             | node | lat     | lon      |
 | |
|             | a    | 38.91124 | -77.00909 |
 | |
|             | b    | 38.91080 | -77.00909 |
 | |
|             | c    | 38.91038 | -77.00909 |
 | |
|             | d    | 38.91105 | -77.00967 |
 | |
|             | e    | 38.91037 | -77.00807 |
 | |
|             | f    | 38.91036 | -77.00899 |
 | |
|             | g    | 38.91076 | -77.00901 |
 | |
|             | h    | 38.91124 | -77.00900 |
 | |
| 
 | |
|         And the ways
 | |
|             | nodes | oneway | name       |
 | |
|             | ab    | yes    | cap south  |
 | |
|             | bc    | yes    | cap south  |
 | |
|             | fg    | yes    | cap north  |
 | |
|             | gh    | yes    | cap north  |
 | |
|             | db    | no     | florida nw |
 | |
|             | bg    | no     | florida    |
 | |
|             | ge    | no     | florida ne |
 | |
| 
 | |
|         And the relations
 | |
|             | type        | way:from  | way:to  | node:via | restriction:conditional                        |
 | |
|             | restriction | ab        | bg      | b        | no_left_turn @ (Mo-Fr 07:00-09:30,16:00-18:30) |
 | |
|             | restriction | fg        | bg      | g        | no_left_turn @ (Mo-Fr 06:00-10:00)             |
 | |
|             | restriction | bg        | bc      | b        | no_left_turn @ (Mo-Fr 07:00-09:30,16:00-18:30) |
 | |
| 
 | |
|         When I route I should get
 | |
|             | from | to | route                                      | turns                                       |
 | |
|             | a    | e  | cap south,florida nw,florida nw,florida ne | depart,turn right,continue uturn,arrive     |
 | |
|             | f    | d  | cap north,florida nw,florida nw               | depart,turn left,arrive                     |
 | |
|             | e    | c  | florida ne,florida nw,cap south,cap south  | depart,continue uturn,turn right,arrive     |
 | |
| 
 | |
|     @no_turning @conditionals
 | |
|     Scenario: Car - DC North capitol situation, one on two off
 | |
|         Given the extract extra arguments "--parse-conditional-restrictions"
 | |
|         # 10:30am utc, wed, 6:30am est
 | |
|         Given the contract extra arguments "--time-zone-file=test/data/tz/{timezone_names}/dc.geojson --parse-conditionals-from-now=1493807400"
 | |
|         Given the customize extra arguments "--time-zone-file=test/data/tz/{timezone_names}/dc.geojson --parse-conditionals-from-now=1493807400"
 | |
| 
 | |
|         #    """
 | |
|         #      a h
 | |
|         #   d
 | |
|         #      b g
 | |
|         #           e
 | |
|         #      c f
 | |
|         #    """
 | |
|         Given the node locations
 | |
|             | node | lat     | lon      |
 | |
|             | a    | 38.91124 | -77.00909 |
 | |
|             | b    | 38.91080 | -77.00909 |
 | |
|             | c    | 38.91038 | -77.00909 |
 | |
|             | d    | 38.91105 | -77.00967 |
 | |
|             | e    | 38.91037 | -77.00807 |
 | |
|             | f    | 38.91036 | -77.00899 |
 | |
|             | g    | 38.91076 | -77.00901 |
 | |
|             | h    | 38.91124 | -77.00900 |
 | |
| 
 | |
|         And the ways
 | |
|             | nodes | oneway | name       |
 | |
|             | ab    | yes    | cap south  |
 | |
|             | bc    | yes    | cap south  |
 | |
|             | fg    | yes    | cap north  |
 | |
|             | gh    | yes    | cap north  |
 | |
|             | db    | no     | florida nw |
 | |
|             | bg    | no     | florida    |
 | |
|             | ge    | no     | florida ne |
 | |
| 
 | |
|         And the relations
 | |
|             | type        | way:from  | way:to  | node:via | restriction:conditional                        |
 | |
|             | restriction | ab        | bg      | b        | no_left_turn @ (Mo-Fr 07:00-09:30,16:00-18:30) |
 | |
|             | restriction | fg        | bg      | g        | no_left_turn @ (Mo-Fr 06:00-10:00)             |
 | |
|             | restriction | bg        | bc      | b        | no_left_turn @ (Mo-Fr 07:00-09:30,16:00-18:30) |
 | |
| 
 | |
|         When I route I should get
 | |
|             | from | to | route                                      | turns                                         |
 | |
|             | a    | e  | cap south,florida ne,florida ne            | depart,turn left,arrive                       |
 | |
|             | f    | d  | cap north,florida ne,florida ne,florida nw | depart,turn sharp right,continue uturn,arrive |
 | |
|             | e    | c  | florida ne,cap south,cap south             | depart,turn left,arrive                       |
 | |
| 
 | |
|     @only_turning @conditionals
 | |
|     Scenario: Car - Restriction is always off when point not found in timezone files
 | |
|         # same test as the following one, but given a different time zone file
 | |
|         Given the extract extra arguments "--parse-conditional-restrictions"
 | |
|         # 9am UTC, 10am BST
 | |
|         Given the contract extra arguments "--time-zone-file=test/data/tz/{timezone_names}/dc.geojson --parse-conditionals-from-now=1493802000"
 | |
|         Given the customize extra arguments "--time-zone-file=test/data/tz/{timezone_names}/dc.geojson --parse-conditionals-from-now=1493802000"
 | |
| 
 | |
|         #    """
 | |
|         #     a
 | |
|         #          e
 | |
|         #      b
 | |
|         #   d
 | |
|         #       c
 | |
|         #    """
 | |
|         Given the node locations
 | |
|             | node | lat     | lon     |
 | |
|             | a    | 51.5250 | -0.1166 |
 | |
|             | b    | 51.5243 | -0.1159 |
 | |
|             | c    | 51.5238 | -0.1152 |
 | |
|             | d    | 51.5241 | -0.1167 |
 | |
|             | e    | 51.5247 | -0.1153 |
 | |
| 
 | |
|         And the ways
 | |
|             | nodes | name  |
 | |
|             | ab    | albic |
 | |
|             | bc    | albic |
 | |
|             | db    | dobe |
 | |
|             | be    | dobe |
 | |
| 
 | |
|         And the relations
 | |
|             | type        | way:from  | way:to  | node:via | restriction:conditional               |
 | |
|             | restriction | ab        | be      | b        | only_left_turn @ (Mo-Fr 07:00-11:00)  |
 | |
| 
 | |
|         When I route I should get
 | |
|             | from | to | route           | turns                   |
 | |
|             | a    | c  | albic,albic     | depart,arrive           |
 | |
|             | a    | e  | albic,dobe,dobe | depart,turn left,arrive |
 | |
| 
 | |
|     @only_turning @conditionals
 | |
|     Scenario: Car - Somewhere in london, the UK, GMT timezone
 | |
|         Given the extract extra arguments "--parse-conditional-restrictions"
 | |
|         # 9am UTC, 10am BST
 | |
|         Given the contract extra arguments "--time-zone-file=test/data/tz/{timezone_names}/london.geojson --parse-conditionals-from-now=1493802000"
 | |
|         Given the customize extra arguments "--time-zone-file=test/data/tz/{timezone_names}/london.geojson --parse-conditionals-from-now=1493802000"
 | |
| 
 | |
|         #    """
 | |
|         #     a
 | |
|         #          e
 | |
|         #      b
 | |
|         #   d
 | |
|         #       c
 | |
|         #    """
 | |
|         Given the node locations
 | |
|             | node | lat     | lon     |
 | |
|             | a    | 51.5250 | -0.1166 |
 | |
|             | b    | 51.5243 | -0.1159 |
 | |
|             | c    | 51.5238 | -0.1152 |
 | |
|             | d    | 51.5241 | -0.1167 |
 | |
|             | e    | 51.5247 | -0.1153 |
 | |
| 
 | |
|         And the ways
 | |
|             | nodes | name  |
 | |
|             | ab    | albic |
 | |
|             | bc    | albic |
 | |
|             | db    | dobe |
 | |
|             | be    | dobe |
 | |
| 
 | |
|         And the relations
 | |
|             | type        | way:from  | way:to  | node:via | restriction:conditional               |
 | |
|             | restriction | ab        | be      | b        | only_left_turn @ (Mo-Fr 07:00-11:00)  |
 | |
| 
 | |
|         When I route I should get
 | |
|             | from | to | route                       | turns                                            |
 | |
|             | a    | c  | albic,dobe,dobe,albic,albic | depart,turn left,continue uturn,turn left,arrive |
 | |
|             | a    | e  | albic,dobe,dobe             | depart,turn left,arrive                          |
 | |
| 
 | |
|     @only_turning @conditionals
 | |
|     Scenario: Car - Somewhere in London, the UK, GMT timezone
 | |
|         Given the extract extra arguments "--parse-conditional-restrictions"
 | |
|         # 9am UTC, 10am BST
 | |
|         Given the contract extra arguments "--time-zone-file=test/data/tz/{timezone_names}/london.geojson --parse-conditionals-from-now=1493802000"
 | |
|         Given the customize extra arguments "--time-zone-file=test/data/tz/{timezone_names}/london.geojson --parse-conditionals-from-now=1493802000"
 | |
| 
 | |
|         #    """
 | |
|         #     a
 | |
|         #          e
 | |
|         #      b
 | |
|         #   d
 | |
|         #       c
 | |
|         #    """
 | |
|         Given the node locations
 | |
|             | node | lat     | lon     |
 | |
|             | a    | 51.5250 | -0.1166 |
 | |
|             | b    | 51.5243 | -0.1159 |
 | |
|             | c    | 51.5238 | -0.1152 |
 | |
|             | d    | 51.5241 | -0.1167 |
 | |
|             | e    | 51.5247 | -0.1153 |
 | |
| 
 | |
|         And the ways
 | |
|             | nodes | name  |
 | |
|             | ab    | albic |
 | |
|             | bc    | albic |
 | |
|             | db    | dobe |
 | |
|             | be    | dobe |
 | |
| 
 | |
|         And the relations
 | |
|             | type        | way:from  | way:to  | node:via | restriction:conditional               |
 | |
|             | restriction | ab        | be      | b        | only_left_turn @ (Mo-Fr 07:00-11:00)  |
 | |
| 
 | |
|         When I route I should get
 | |
|             | from | to | route                       | turns                                            |
 | |
|             | a    | c  | albic,dobe,dobe,albic,albic | depart,turn left,continue uturn,turn left,arrive |
 | |
|             | a    | e  | albic,dobe,dobe             | depart,turn left,arrive                          |
 | |
| 
 | |
|     @no_turning @conditionals @restriction-way
 | |
|     Scenario: Car - Conditional restriction with multiple time windows
 | |
|         Given the extract extra arguments "--parse-conditional-restrictions"
 | |
|         # 5pm Wed 02 May, 2017 GMT
 | |
|         Given the contract extra arguments "--time-zone-file=test/data/tz/{timezone_names}/guinea.geojson --parse-conditionals-from-now=1493744400"
 | |
|         Given the customize extra arguments "--time-zone-file=test/data/tz/{timezone_names}/guinea.geojson --parse-conditionals-from-now=1493744400"
 | |
| 
 | |
|         Given the node map
 | |
|             """
 | |
|             a   f
 | |
|             |   |
 | |
|             b - e - h
 | |
|             |   |   |
 | |
|             c   d - g
 | |
|                   1
 | |
|             """
 | |
| 
 | |
|         And the ways
 | |
|             | nodes |
 | |
|             | ab    |
 | |
|             | bc    |
 | |
|             | de    |
 | |
|             | ef    |
 | |
|             | be    |
 | |
|             | eh    |
 | |
|             | gh    |
 | |
|             | dg    |
 | |
| 
 | |
|         And the relations
 | |
|             | type        | way:from | way:via | way:to | restriction:conditional                    |
 | |
|             | restriction | ab       | be      | ef     | no_uturn @ (Mo-Fr 07:00-11:00,16:00-18:30) |
 | |
| 
 | |
|         And the relations
 | |
|             | type        | way:from | way:to | node:via | restriction:conditional                    |
 | |
|             | restriction | ed       | dg     | d        | no_uturn @ (Mo-Fr 07:00-11:00,16:00-18:30) |
 | |
| 
 | |
|         When I route I should get
 | |
|             | from | to | route             |
 | |
|             | a    | f  | ab,bc,bc,be,ef,ef |
 | |
|             | f    | 1  | ef,eh,gh,dg,dg    |
 | |
| 
 | |
|     @restriction-way @overlap
 | |
|     Scenario: Car - prohibit turn
 | |
|         Given the extract extra arguments "--parse-conditional-restrictions"
 | |
|         # 5pm Wed 02 May, 2017 GMT
 | |
|         Given the contract extra arguments "--time-zone-file=test/data/tz/{timezone_names}/guinea.geojson --parse-conditionals-from-now=1493744400"
 | |
|         Given the customize extra arguments "--time-zone-file=test/data/tz/{timezone_names}/guinea.geojson --parse-conditionals-from-now=1493744400"
 | |
| 
 | |
|         Given the node map
 | |
|             """
 | |
|             c
 | |
|             |
 | |
|             |   f
 | |
|             |   |
 | |
|             b---e
 | |
|             |   |
 | |
|             a   d
 | |
|             """
 | |
| 
 | |
|         And the ways
 | |
|             | nodes |
 | |
|             | ab    |
 | |
|             | bc    |
 | |
|             | be    |
 | |
|             | de    |
 | |
|             | ef    |
 | |
| 
 | |
|         And the relations
 | |
|             | type        | way:from | way:via | way:to | restriction:conditional             |
 | |
|             | restriction | ab       | be      | de     | no_right_turn @ (Mo-Fr 07:00-11:00) |
 | |
| 
 | |
|         And the relations
 | |
|             | type        | way:from | way:via | way:to | restriction   |
 | |
|             | restriction | ab       | be      | de     | no_right_turn |
 | |
| 
 | |
|         # condition is off, but the general restriction should take precedence
 | |
|         When I route I should get
 | |
|             | from | to | route             | turns                                                               | locations   |
 | |
|             | a    | d  | ab,be,ef,ef,de,de | depart,turn right,turn left,continue uturn,new name straight,arrive | a,b,e,f,e,d |
 | |
|             | a    | f  | ab,be,ef,ef       | depart,turn right,turn left,arrive                                  | a,b,e,f     |
 | |
|             | c    | d  | bc,be,de,de       | depart,turn left,turn right,arrive                                  | c,b,e,d     |
 | |
|             | c    | f  | bc,be,ef,ef       | depart,turn left,turn left,arrive                                   | c,b,e,f     |
 | |
| 
 | |
|     @restriction-way @overlap
 | |
|     Scenario: Car - prohibit turn
 | |
|         Given the extract extra arguments "--parse-conditional-restrictions"
 | |
|         # 5pm Wed 02 May, 2017 GMT
 | |
|         Given the contract extra arguments "--time-zone-file=test/data/tz/{timezone_names}/guinea.geojson --parse-conditionals-from-now=1493744400"
 | |
|         Given the customize extra arguments "--time-zone-file=test/data/tz/{timezone_names}/guinea.geojson --parse-conditionals-from-now=1493744400"
 | |
| 
 | |
|         Given the node map
 | |
|             """
 | |
|             c
 | |
|             |
 | |
|             |   f
 | |
|             |   |
 | |
|             b---e
 | |
|             |   |
 | |
|             |   d
 | |
|             |
 | |
|             a
 | |
|             """
 | |
| 
 | |
|         And the ways
 | |
|             | nodes |
 | |
|             | ab    |
 | |
|             | bc    |
 | |
|             | be    |
 | |
|             | de    |
 | |
|             | ef    |
 | |
| 
 | |
|         And the relations
 | |
|             | type        | way:from | way:via | way:to | restriction:conditional             |
 | |
|             | restriction | ab       | be      | de     | no_right_turn @ (Mo-Fr 07:00-11:00) |
 | |
| 
 | |
|         And the relations
 | |
|             | type        | way:from | node:via | way:to | restriction:conditional             |
 | |
|             | restriction | be       | e        | de     | no_right_turn @ (Mo-Fr 16:00-18:00) |
 | |
| 
 | |
|         # way restriction is off, node-restriction is on
 | |
|         When I route I should get
 | |
|             | from | to | route             | turns                                                               | locations   |
 | |
|             | a    | d  | ab,be,ef,ef,de,de | depart,turn right,turn left,continue uturn,new name straight,arrive | a,b,e,f,e,d |
 | |
|             | a    | f  | ab,be,ef,ef       | depart,turn right,turn left,arrive                                  | a,b,e,f     |
 | |
|             | c    | d  | bc,be,ef,ef,de,de | depart,turn left,turn left,continue uturn,new name straight,arrive  | c,b,e,f,e,d |
 | |
|             | c    | f  | bc,be,ef,ef       | depart,turn left,turn left,arrive                                   | c,b,e,f     |
 | |
| 
 | |
|     @restriction-way @overlap
 | |
|     Scenario: Car - prohibit turn
 | |
|         Given the extract extra arguments "--parse-conditional-restrictions"
 | |
|         # 5pm Wed 02 May, 2017 GMT
 | |
|         Given the contract extra arguments "--time-zone-file=test/data/tz/{timezone_names}/guinea.geojson --parse-conditionals-from-now=1493744400"
 | |
|         Given the customize extra arguments "--time-zone-file=test/data/tz/{timezone_names}/guinea.geojson --parse-conditionals-from-now=1493744400"
 | |
| 
 | |
|         Given the node map
 | |
|             """
 | |
|             c
 | |
|             |
 | |
|             |   f
 | |
|             |   |
 | |
|             b---e
 | |
|             |   |
 | |
|             |   d
 | |
|             |
 | |
|             a
 | |
|             """
 | |
| 
 | |
|         And the ways
 | |
|             | nodes |
 | |
|             | ab    |
 | |
|             | bc    |
 | |
|             | be    |
 | |
|             | de    |
 | |
|             | ef    |
 | |
| 
 | |
|         And the relations
 | |
|             | type        | way:from | way:via | way:to | restriction:conditional             |
 | |
|             | restriction | ab       | be      | de     | no_right_turn @ (Mo-Fr 16:00-18:00) |
 | |
| 
 | |
|         And the relations
 | |
|             | type        | way:from | node:via | way:to | restriction:conditional             |
 | |
|             | restriction | be       | e        | de     | no_right_turn @ (Mo-Fr 07:00-11:00) |
 | |
| 
 | |
|         # node restrictino is off, way restriction is on
 | |
|         When I route I should get
 | |
|             | from | to | route             | turns                                                               | locations   |
 | |
|             | a    | d  | ab,be,ef,ef,de,de | depart,turn right,turn left,continue uturn,new name straight,arrive | a,b,e,f,e,d |
 | |
|             | a    | f  | ab,be,ef,ef       | depart,turn right,turn left,arrive                                  | a,b,e,f     |
 | |
|             | c    | d  | bc,be,de,de       | depart,turn left,turn right,arrive                                  | c,b,e,d     |
 | |
|             | c    | f  | bc,be,ef,ef       | depart,turn left,turn left,arrive                                   | c,b,e,f     |
 |