1436 lines
		
	
	
		
			46 KiB
		
	
	
	
		
			Gherkin
		
	
	
	
	
	
			
		
		
	
	
			1436 lines
		
	
	
		
			46 KiB
		
	
	
	
		
			Gherkin
		
	
	
	
	
	
@routing  @guidance
 | 
						|
Feature: Simple Turns
 | 
						|
 | 
						|
    Background:
 | 
						|
        Given the profile "car"
 | 
						|
        Given a grid size of 10 meters
 | 
						|
 | 
						|
    Scenario: Four Way Intersection
 | 
						|
        Given the node map
 | 
						|
            """
 | 
						|
              c
 | 
						|
            a b e
 | 
						|
              d
 | 
						|
            """
 | 
						|
 | 
						|
        And the ways
 | 
						|
            | nodes  | highway |
 | 
						|
            | ab     | primary |
 | 
						|
            | cb     | primary |
 | 
						|
            | db     | primary |
 | 
						|
            | eb     | primary |
 | 
						|
 | 
						|
       When I route I should get
 | 
						|
            | waypoints | route    | turns                           |
 | 
						|
            | a,c       | ab,cb,cb | depart,turn left,arrive         |
 | 
						|
            | a,e       | ab,eb    | depart,arrive                   |
 | 
						|
            | a,d       | ab,db,db | depart,turn right,arrive        |
 | 
						|
            | c,a       | cb,ab,ab | depart,turn right,arrive        |
 | 
						|
            | c,d       | cb,db    | depart,arrive                   |
 | 
						|
            | c,e       | cb,eb,eb | depart,turn left,arrive         |
 | 
						|
            | d,a       | db,ab,ab | depart,turn left,arrive         |
 | 
						|
            | d,c       | db,cb    | depart,arrive                   |
 | 
						|
            | d,e       | db,eb,eb | depart,turn right,arrive        |
 | 
						|
            | e,a       | eb,ab    | depart,arrive                   |
 | 
						|
            | e,c       | eb,cb,cb | depart,turn right,arrive        |
 | 
						|
            | e,d       | eb,db,db | depart,turn left,arrive         |
 | 
						|
 | 
						|
    Scenario: Rotated Four Way Intersection
 | 
						|
        Given the node map
 | 
						|
            """
 | 
						|
            a   c
 | 
						|
              b
 | 
						|
            d   e
 | 
						|
            """
 | 
						|
 | 
						|
        And the ways
 | 
						|
            | nodes  | highway |
 | 
						|
            | ab     | primary |
 | 
						|
            | cb     | primary |
 | 
						|
            | db     | primary |
 | 
						|
            | eb     | primary |
 | 
						|
 | 
						|
       When I route I should get
 | 
						|
            | waypoints | route    | turns                           |
 | 
						|
            | a,c       | ab,cb,cb | depart,turn left,arrive         |
 | 
						|
            | a,e       | ab,eb    | depart,arrive                   |
 | 
						|
            | a,d       | ab,db,db | depart,turn right,arrive        |
 | 
						|
            | c,a       | cb,ab,ab | depart,turn right,arrive        |
 | 
						|
            | c,d       | cb,db    | depart,arrive                   |
 | 
						|
            | c,e       | cb,eb,eb | depart,turn left,arrive         |
 | 
						|
            | d,a       | db,ab,ab | depart,turn left,arrive         |
 | 
						|
            | d,c       | db,cb    | depart,arrive                   |
 | 
						|
            | d,e       | db,eb,eb | depart,turn right,arrive        |
 | 
						|
            | e,a       | eb,ab    | depart,arrive                   |
 | 
						|
            | e,c       | eb,cb,cb | depart,turn right,arrive        |
 | 
						|
            | e,d       | eb,db,db | depart,turn left,arrive         |
 | 
						|
 | 
						|
 | 
						|
    Scenario: Four Way Intersection Through Street
 | 
						|
        Given the node map
 | 
						|
            """
 | 
						|
              c
 | 
						|
            a b e
 | 
						|
              d
 | 
						|
            """
 | 
						|
 | 
						|
        And the ways
 | 
						|
            | nodes  | highway |
 | 
						|
            | abe    | primary |
 | 
						|
            | cb     | primary |
 | 
						|
            | db     | primary |
 | 
						|
 | 
						|
       When I route I should get
 | 
						|
            | waypoints | route      | turns                           |
 | 
						|
            | a,c       | abe,cb,cb  | depart,turn left,arrive         |
 | 
						|
            | a,e       | abe,abe    | depart,arrive                   |
 | 
						|
            | a,d       | abe,db,db  | depart,turn right,arrive        |
 | 
						|
            | c,a       | cb,abe,abe | depart,turn right,arrive        |
 | 
						|
            | c,d       | cb,db      | depart,arrive                   |
 | 
						|
            | c,e       | cb,abe,abe | depart,turn left,arrive         |
 | 
						|
            | d,a       | db,abe,abe | depart,turn left,arrive         |
 | 
						|
            | d,c       | db,cb      | depart,arrive                   |
 | 
						|
            | d,e       | db,abe,abe | depart,turn right,arrive        |
 | 
						|
            | e,a       | abe,abe    | depart,arrive                   |
 | 
						|
            | e,c       | abe,cb,cb  | depart,turn right,arrive        |
 | 
						|
            | e,d       | abe,db,db  | depart,turn left,arrive         |
 | 
						|
 | 
						|
    Scenario: Four Way Intersection Double Through Street
 | 
						|
        Given the node map
 | 
						|
            """
 | 
						|
              c
 | 
						|
            a b e
 | 
						|
              d
 | 
						|
            """
 | 
						|
 | 
						|
        And the ways
 | 
						|
            | nodes  | highway |
 | 
						|
            | abe    | primary |
 | 
						|
            | cbd    | primary |
 | 
						|
 | 
						|
       When I route I should get
 | 
						|
            | waypoints | route       | turns                    |
 | 
						|
            | a,c       | abe,cbd,cbd | depart,turn left,arrive  |
 | 
						|
            | a,e       | abe,abe     | depart,arrive            |
 | 
						|
            | a,d       | abe,cbd,cbd | depart,turn right,arrive |
 | 
						|
            | c,a       | cbd,abe,abe | depart,turn right,arrive |
 | 
						|
            | c,d       | cbd,cbd     | depart,arrive            |
 | 
						|
            | c,e       | cbd,abe,abe | depart,turn left,arrive  |
 | 
						|
            | d,a       | cbd,abe,abe | depart,turn left,arrive  |
 | 
						|
            | d,c       | cbd,cbd     | depart,arrive            |
 | 
						|
            | d,e       | cbd,abe,abe | depart,turn right,arrive |
 | 
						|
            | e,a       | abe,abe     | depart,arrive            |
 | 
						|
            | e,c       | abe,cbd,cbd | depart,turn right,arrive |
 | 
						|
            | e,d       | abe,cbd,cbd | depart,turn left,arrive  |
 | 
						|
 | 
						|
    Scenario: Three Way Intersection
 | 
						|
        Given the node map
 | 
						|
            """
 | 
						|
              c
 | 
						|
            a b d
 | 
						|
            """
 | 
						|
 | 
						|
        And the ways
 | 
						|
            | nodes  | highway |
 | 
						|
            | ab     | primary |
 | 
						|
            | cb     | primary |
 | 
						|
            | db     | primary |
 | 
						|
 | 
						|
       When I route I should get
 | 
						|
            | waypoints | route    | turns                           |
 | 
						|
            | a,c       | ab,cb,cb | depart,turn left,arrive         |
 | 
						|
            | a,d       | ab,db    | depart,arrive                   |
 | 
						|
            | d,c       | db,cb,cb | depart,turn right,arrive        |
 | 
						|
            | d,a       | db,ab    | depart,arrive                   |
 | 
						|
 | 
						|
    Scenario: Three Way Intersection - Meeting Oneways
 | 
						|
        Given the node map
 | 
						|
            """
 | 
						|
              c
 | 
						|
            a b d
 | 
						|
            """
 | 
						|
 | 
						|
        And the ways
 | 
						|
            | nodes  | highway | oneway |
 | 
						|
            | ab     | primary | yes    |
 | 
						|
            | bc     | primary | yes    |
 | 
						|
            | db     | primary | yes    |
 | 
						|
 | 
						|
       When I route I should get
 | 
						|
            | waypoints | route    | turns                           |
 | 
						|
            | a,c       | ab,bc,bc | depart,turn left,arrive         |
 | 
						|
            | d,c       | db,bc,bc | depart,turn right,arrive        |
 | 
						|
 | 
						|
    Scenario: Three Way Intersection on Through Street
 | 
						|
        Given the node map
 | 
						|
            """
 | 
						|
              d
 | 
						|
            a b c
 | 
						|
            """
 | 
						|
 | 
						|
        And the ways
 | 
						|
            | nodes  | highway |
 | 
						|
            | abc    | primary |
 | 
						|
            | db     | primary |
 | 
						|
 | 
						|
       When I route I should get
 | 
						|
            | waypoints | route     | turns                    |
 | 
						|
            | a,c       | abc,abc   | depart,arrive            |
 | 
						|
            | a,d       | abc,db,db | depart,turn left,arrive  |
 | 
						|
            | c,a       | abc,abc   | depart,arrive            |
 | 
						|
            | c,d       | abc,db,db | depart,turn right,arrive |
 | 
						|
 | 
						|
     Scenario: High Degree Intersection
 | 
						|
        Given the node map
 | 
						|
            """
 | 
						|
            i   b   c
 | 
						|
 | 
						|
 | 
						|
            h   a   d
 | 
						|
 | 
						|
 | 
						|
            g   f   e
 | 
						|
            """
 | 
						|
 | 
						|
        And the ways
 | 
						|
            | nodes | highway |
 | 
						|
            | ab    | primary |
 | 
						|
            | ac    | primary |
 | 
						|
            | ad    | primary |
 | 
						|
            | ae    | primary |
 | 
						|
            | af    | primary |
 | 
						|
            | ag    | primary |
 | 
						|
            | ah    | primary |
 | 
						|
            | ai    | primary |
 | 
						|
 | 
						|
        When I route I should get
 | 
						|
            | waypoints | route    | turns                           |
 | 
						|
            | b,c       | ab,ac,ac | depart,turn sharp left,arrive   |
 | 
						|
            | b,d       | ab,ad,ad | depart,turn left,arrive         |
 | 
						|
            | b,e       | ab,ae,ae | depart,turn slight left,arrive  |
 | 
						|
            | b,f       | ab,af    | depart,arrive                   |
 | 
						|
            | b,g       | ab,ag,ag | depart,turn slight right,arrive |
 | 
						|
            | b,h       | ab,ah,ah | depart,turn right,arrive        |
 | 
						|
            | b,i       | ab,ai,ai | depart,turn sharp right,arrive  |
 | 
						|
 | 
						|
    Scenario: Disturbed High Degree Intersection
 | 
						|
        Given the node map
 | 
						|
            """
 | 
						|
                b
 | 
						|
            i       c
 | 
						|
 | 
						|
            h   a   d
 | 
						|
 | 
						|
            g       e
 | 
						|
                f
 | 
						|
            """
 | 
						|
 | 
						|
        And the ways
 | 
						|
            | nodes | highway |
 | 
						|
            | ab    | primary |
 | 
						|
            | ac    | primary |
 | 
						|
            | ad    | primary |
 | 
						|
            | ae    | primary |
 | 
						|
            | af    | primary |
 | 
						|
            | ag    | primary |
 | 
						|
            | ah    | primary |
 | 
						|
            | ai    | primary |
 | 
						|
 | 
						|
        When I route I should get
 | 
						|
            | waypoints | route    | turns                           |
 | 
						|
            | b,c       | ab,ac,ac | depart,turn sharp left,arrive   |
 | 
						|
            | b,d       | ab,ad,ad | depart,turn left,arrive         |
 | 
						|
            | b,e       | ab,ae,ae | depart,turn slight left,arrive  |
 | 
						|
            | b,f       | ab,af    | depart,arrive                   |
 | 
						|
            | b,g       | ab,ag,ag | depart,turn slight right,arrive |
 | 
						|
            | b,h       | ab,ah,ah | depart,turn right,arrive        |
 | 
						|
            | b,i       | ab,ai,ai | depart,turn sharp right,arrive  |
 | 
						|
 | 
						|
    Scenario: Turn instructions at high latitude
 | 
						|
        Given the node locations
 | 
						|
            | node | lat       | lon      |
 | 
						|
            | a    | 55.68740  | 12.52430 |
 | 
						|
            | b    | 55.68745  | 12.52409 |
 | 
						|
            | c    | 55.68711  | 12.52383 |
 | 
						|
            | d    | 55.68745  | 12.52450 |
 | 
						|
            | e    | 55.68755  | 12.52450 |
 | 
						|
            | x    | -55.68740 | 12.52430 |
 | 
						|
            | y    | -55.68745 | 12.52409 |
 | 
						|
            | z    | -55.68711 | 12.52383 |
 | 
						|
            | v    | -55.68745 | 12.52450 |
 | 
						|
            | w    | -55.68755 | 12.52450 |
 | 
						|
 | 
						|
        And the ways
 | 
						|
            | nodes |
 | 
						|
            | ab    |
 | 
						|
            | bc    |
 | 
						|
            | bd    |
 | 
						|
            | be    |
 | 
						|
            | xy    |
 | 
						|
            | yz    |
 | 
						|
            | vy    |
 | 
						|
            | wy    |
 | 
						|
 | 
						|
        When I route I should get
 | 
						|
            | from | to | route    | turns                    |
 | 
						|
            | a    | c  | ab,bc,bc | depart,turn left,arrive  |
 | 
						|
            | c    | a  | bc,ab,ab | depart,turn right,arrive |
 | 
						|
            | x    | z  | xy,yz,yz | depart,turn right,arrive |
 | 
						|
            | z    | x  | yz,xy,xy | depart,turn left,arrive  |
 | 
						|
 | 
						|
    Scenario: Three Way Similar Sharp Turns
 | 
						|
        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,turn sharp right,arrive |
 | 
						|
            | a,d       | ab,bd,bd | depart,turn sharp right,arrive |
 | 
						|
            | d,c       | bd,bc,bc | depart,turn sharp left,arrive  |
 | 
						|
            | d,a       | bd,ab,ab | depart,turn sharp left,arrive  |
 | 
						|
 | 
						|
    Scenario: Left Turn Assignment (1)
 | 
						|
        Given the node map
 | 
						|
            """
 | 
						|
                    d
 | 
						|
            a   b   c
 | 
						|
                e
 | 
						|
            """
 | 
						|
 | 
						|
        And the ways
 | 
						|
            | nodes | highway |
 | 
						|
            | abc   | primary |
 | 
						|
            | bd    | primary |
 | 
						|
            | be    | primary |
 | 
						|
 | 
						|
        When I route I should get
 | 
						|
            | waypoints | route     | turns                          |
 | 
						|
            | a,d       | abc,bd,bd | depart,turn slight left,arrive |
 | 
						|
 | 
						|
    Scenario: Left Turn Assignment (2)
 | 
						|
        Given the node map
 | 
						|
            """
 | 
						|
                    d
 | 
						|
 | 
						|
            a   b   c
 | 
						|
                e
 | 
						|
            """
 | 
						|
 | 
						|
        And the ways
 | 
						|
            | nodes | highway |
 | 
						|
            | abc   | primary |
 | 
						|
            | bd    | primary |
 | 
						|
            | be    | primary |
 | 
						|
 | 
						|
        When I route I should get
 | 
						|
            | waypoints | route     | turns                   |
 | 
						|
            | a,d       | abc,bd,bd | depart,turn left,arrive |
 | 
						|
 | 
						|
    Scenario: Left Turn Assignment (3)
 | 
						|
        Given the node map
 | 
						|
            """
 | 
						|
                  d
 | 
						|
 | 
						|
 | 
						|
            a   b   c
 | 
						|
                e
 | 
						|
            """
 | 
						|
 | 
						|
        And the ways
 | 
						|
            | nodes | highway |
 | 
						|
            | abc   | primary |
 | 
						|
            | bd    | primary |
 | 
						|
            | be    | primary |
 | 
						|
 | 
						|
        When I route I should get
 | 
						|
            | waypoints | route     | turns                   |
 | 
						|
            | a,d       | abc,bd,bd | depart,turn left,arrive |
 | 
						|
 | 
						|
    Scenario: Left Turn Assignment (4)
 | 
						|
        Given the node map
 | 
						|
            """
 | 
						|
                d
 | 
						|
 | 
						|
 | 
						|
 | 
						|
            a   b   c
 | 
						|
                e
 | 
						|
            """
 | 
						|
 | 
						|
        And the ways
 | 
						|
            | nodes | highway |
 | 
						|
            | abc   | primary |
 | 
						|
            | bd    | primary |
 | 
						|
            | be    | primary |
 | 
						|
 | 
						|
        When I route I should get
 | 
						|
            | waypoints | route     | turns                   |
 | 
						|
            | a,d       | abc,bd,bd | depart,turn left,arrive |
 | 
						|
 | 
						|
    Scenario: Left Turn Assignment (5)
 | 
						|
        Given the node map
 | 
						|
            """
 | 
						|
              d
 | 
						|
 | 
						|
 | 
						|
            a   b   c
 | 
						|
                e
 | 
						|
            """
 | 
						|
 | 
						|
        And the ways
 | 
						|
            | nodes | highway |
 | 
						|
            | abc   | primary |
 | 
						|
            | bd    | primary |
 | 
						|
            | be    | primary |
 | 
						|
 | 
						|
        When I route I should get
 | 
						|
            | waypoints | route     | turns                   |
 | 
						|
            | a,d       | abc,bd,bd | depart,turn left,arrive |
 | 
						|
 | 
						|
    Scenario: Left Turn Assignment (6)
 | 
						|
        Given the node map
 | 
						|
            """
 | 
						|
            d
 | 
						|
 | 
						|
            a   b   c
 | 
						|
                e
 | 
						|
            """
 | 
						|
 | 
						|
        And the ways
 | 
						|
            | nodes | highway |
 | 
						|
            | abc   | primary |
 | 
						|
            | bd    | primary |
 | 
						|
            | be    | primary |
 | 
						|
 | 
						|
        When I route I should get
 | 
						|
            | waypoints | route     | turns                         |
 | 
						|
            | a,d       | abc,bd,bd | depart,turn sharp left,arrive |
 | 
						|
 | 
						|
    Scenario: Left Turn Assignment (7)
 | 
						|
        Given the node map
 | 
						|
            """
 | 
						|
            d
 | 
						|
            a   b   c
 | 
						|
                e
 | 
						|
            """
 | 
						|
 | 
						|
        And the ways
 | 
						|
            | nodes | highway |
 | 
						|
            | abc   | primary |
 | 
						|
            | bd    | primary |
 | 
						|
            | be    | primary |
 | 
						|
 | 
						|
        When I route I should get
 | 
						|
            | waypoints | route     | turns                         |
 | 
						|
            | a,d       | abc,bd,bd | depart,turn sharp left,arrive |
 | 
						|
 | 
						|
    Scenario: Right Turn Assignment (1)
 | 
						|
        Given the node map
 | 
						|
            """
 | 
						|
                e
 | 
						|
            a   b   c
 | 
						|
                    d
 | 
						|
            """
 | 
						|
 | 
						|
        And the ways
 | 
						|
            | nodes | highway |
 | 
						|
            | abc   | primary |
 | 
						|
            | bd    | primary |
 | 
						|
            | be    | primary |
 | 
						|
 | 
						|
        When I route I should get
 | 
						|
            | waypoints | route     | turns                           |
 | 
						|
            | a,d       | abc,bd,bd | depart,turn slight right,arrive |
 | 
						|
 | 
						|
    Scenario: Right Turn Assignment (2)
 | 
						|
        Given the node map
 | 
						|
            """
 | 
						|
                e
 | 
						|
            a   b   c
 | 
						|
 | 
						|
                    d
 | 
						|
            """
 | 
						|
 | 
						|
        And the ways
 | 
						|
            | nodes | highway |
 | 
						|
            | abc   | primary |
 | 
						|
            | bd    | primary |
 | 
						|
            | be    | primary |
 | 
						|
 | 
						|
        When I route I should get
 | 
						|
            | waypoints | route     | turns                    |
 | 
						|
            | a,d       | abc,bd,bd | depart,turn right,arrive |
 | 
						|
 | 
						|
    Scenario: Right Turn Assignment (3)
 | 
						|
        Given the node map
 | 
						|
            """
 | 
						|
                e
 | 
						|
            a   b   c
 | 
						|
 | 
						|
 | 
						|
                  d
 | 
						|
            """
 | 
						|
 | 
						|
        And the ways
 | 
						|
            | nodes | highway |
 | 
						|
            | abc   | primary |
 | 
						|
            | bd    | primary |
 | 
						|
            | be    | primary |
 | 
						|
 | 
						|
        When I route I should get
 | 
						|
            | waypoints | route     | turns                    |
 | 
						|
            | a,d       | abc,bd,bd | depart,turn right,arrive |
 | 
						|
 | 
						|
    Scenario: Right Turn Assignment (4)
 | 
						|
        Given the node map
 | 
						|
            """
 | 
						|
                e
 | 
						|
            a   b   c
 | 
						|
 | 
						|
 | 
						|
 | 
						|
                d
 | 
						|
            """
 | 
						|
 | 
						|
        And the ways
 | 
						|
            | nodes | highway |
 | 
						|
            | abc   | primary |
 | 
						|
            | bd    | primary |
 | 
						|
            | be    | primary |
 | 
						|
 | 
						|
        When I route I should get
 | 
						|
            | waypoints | route     | turns                    |
 | 
						|
            | a,d       | abc,bd,bd | depart,turn right,arrive |
 | 
						|
 | 
						|
    Scenario: Right Turn Assignment (5)
 | 
						|
        Given the node map
 | 
						|
            """
 | 
						|
                e
 | 
						|
            a   b   c
 | 
						|
 | 
						|
 | 
						|
              d
 | 
						|
            """
 | 
						|
 | 
						|
        And the ways
 | 
						|
            | nodes | highway |
 | 
						|
            | abc   | primary |
 | 
						|
            | bd    | primary |
 | 
						|
            | be    | primary |
 | 
						|
 | 
						|
        When I route I should get
 | 
						|
            | waypoints | route     | turns                    |
 | 
						|
            | a,d       | abc,bd,bd | depart,turn right,arrive |
 | 
						|
 | 
						|
    Scenario: Right Turn Assignment (6)
 | 
						|
        Given the node map
 | 
						|
            """
 | 
						|
                e
 | 
						|
            a   b   c
 | 
						|
 | 
						|
            d
 | 
						|
            """
 | 
						|
 | 
						|
 | 
						|
        And the ways
 | 
						|
            | nodes | highway |
 | 
						|
            | abc   | primary |
 | 
						|
            | bd    | primary |
 | 
						|
            | be    | primary |
 | 
						|
 | 
						|
        When I route I should get
 | 
						|
            | waypoints | route     | turns                          |
 | 
						|
            | a,d       | abc,bd,bd | depart,turn sharp right,arrive |
 | 
						|
 | 
						|
    Scenario: Right Turn Assignment (7)
 | 
						|
        Given the node map
 | 
						|
            """
 | 
						|
                e
 | 
						|
            a   b   c
 | 
						|
            d
 | 
						|
            """
 | 
						|
 | 
						|
 | 
						|
        And the ways
 | 
						|
            | nodes | highway |
 | 
						|
            | abc   | primary |
 | 
						|
            | bd    | primary |
 | 
						|
            | be    | primary |
 | 
						|
 | 
						|
        When I route I should get
 | 
						|
            | waypoints | route     | turns                          |
 | 
						|
            | a,d       | abc,bd,bd | depart,turn sharp right,arrive |
 | 
						|
 | 
						|
   Scenario: Right Turn Assignment Two Turns
 | 
						|
        Given the node map
 | 
						|
            """
 | 
						|
                f
 | 
						|
            a   b   c
 | 
						|
 | 
						|
            d e
 | 
						|
            """
 | 
						|
 | 
						|
 | 
						|
        And the ways
 | 
						|
            | nodes | highway |
 | 
						|
            | abc   | primary |
 | 
						|
            | bd    | primary |
 | 
						|
            | be    | primary |
 | 
						|
            | bf    | primary |
 | 
						|
 | 
						|
        When I route I should get
 | 
						|
            | waypoints | route     | turns                          |
 | 
						|
            | a,d       | abc,bd,bd | depart,turn sharp right,arrive |
 | 
						|
            | a,e       | abc,be,be | depart,turn right,arrive       |
 | 
						|
 | 
						|
   Scenario: Right Turn Assignment Two Turns (2)
 | 
						|
        Given the node map
 | 
						|
            """
 | 
						|
                f   c
 | 
						|
            a   b
 | 
						|
                    e
 | 
						|
                  d
 | 
						|
            """
 | 
						|
 | 
						|
 | 
						|
        And the ways
 | 
						|
            | nodes | highway |
 | 
						|
            | abc   | primary |
 | 
						|
            | bd    | primary |
 | 
						|
            | be    | primary |
 | 
						|
            | bf    | primary |
 | 
						|
 | 
						|
        When I route I should get
 | 
						|
            | waypoints | route     | turns                           |
 | 
						|
            | a,d       | abc,bd,bd | depart,turn right,arrive        |
 | 
						|
            | a,e       | abc,be,be | depart,turn slight right,arrive |
 | 
						|
 | 
						|
   Scenario: Right Turn Assignment Two Turns (3)
 | 
						|
        Given the node map
 | 
						|
            """
 | 
						|
                f
 | 
						|
            a   b   c
 | 
						|
                    e
 | 
						|
                  d
 | 
						|
            """
 | 
						|
 | 
						|
 | 
						|
        And the ways
 | 
						|
            | nodes | highway |
 | 
						|
            | abc   | primary |
 | 
						|
            | bd    | primary |
 | 
						|
            | be    | primary |
 | 
						|
            | bf    | primary |
 | 
						|
 | 
						|
        When I route I should get
 | 
						|
            | waypoints | route     | turns                           |
 | 
						|
            | a,d       | abc,bd,bd | depart,turn right,arrive        |
 | 
						|
            | a,e       | abc,be,be | depart,turn slight right,arrive |
 | 
						|
 | 
						|
   Scenario: Right Turn Assignment Two Turns (4)
 | 
						|
        Given the node map
 | 
						|
            """
 | 
						|
                f
 | 
						|
            a   b   c
 | 
						|
 | 
						|
                d   e
 | 
						|
            """
 | 
						|
 | 
						|
 | 
						|
        And the ways
 | 
						|
            | nodes | highway |
 | 
						|
            | abc   | primary |
 | 
						|
            | bd    | primary |
 | 
						|
            | be    | primary |
 | 
						|
            | bf    | primary |
 | 
						|
 | 
						|
        When I route I should get
 | 
						|
            | waypoints | route     | turns                           |
 | 
						|
            | a,d       | abc,bd,bd | depart,turn right,arrive        |
 | 
						|
            | a,e       | abc,be,be | depart,turn slight right,arrive |
 | 
						|
 | 
						|
   Scenario: Right Turn Assignment Three Turns
 | 
						|
        Given the node map
 | 
						|
            """
 | 
						|
                g
 | 
						|
            a   b   c
 | 
						|
              d   f
 | 
						|
                e
 | 
						|
            """
 | 
						|
 | 
						|
        And the ways
 | 
						|
            | nodes | highway |
 | 
						|
            | abc   | primary |
 | 
						|
            | bd    | primary |
 | 
						|
            | be    | primary |
 | 
						|
            | bf    | primary |
 | 
						|
            | bg    | primary |
 | 
						|
 | 
						|
        When I route I should get
 | 
						|
            | waypoints | route     | turns                           |
 | 
						|
            | a,d       | abc,bd,bd | depart,turn sharp right,arrive  |
 | 
						|
            | a,e       | abc,be,be | depart,turn right,arrive        |
 | 
						|
            | a,f       | abc,bf,bf | depart,turn slight right,arrive |
 | 
						|
 | 
						|
    Scenario: Slight Turn involving Oneways
 | 
						|
        Given the node map
 | 
						|
            """
 | 
						|
                a
 | 
						|
 | 
						|
                b   e
 | 
						|
            d
 | 
						|
                c
 | 
						|
            """
 | 
						|
 | 
						|
        And the ways
 | 
						|
            | nodes | highway | oneway |
 | 
						|
            | abc   | primary | yes    |
 | 
						|
            | dbe   | primary | no     |
 | 
						|
 | 
						|
        When I route I should get
 | 
						|
            | waypoints | route   | turns         |
 | 
						|
            | a,c       | abc,abc | depart,arrive |
 | 
						|
            | d,e       | dbe,dbe | depart,arrive |
 | 
						|
            | e,d       | dbe,dbe | depart,arrive |
 | 
						|
 | 
						|
    Scenario: Slight Turn involving Oneways
 | 
						|
        Given the node map
 | 
						|
            """
 | 
						|
                  a
 | 
						|
 | 
						|
 | 
						|
                b   e
 | 
						|
            d
 | 
						|
                c
 | 
						|
            """
 | 
						|
 | 
						|
        And the ways
 | 
						|
            | nodes | highway | oneway |
 | 
						|
            | abc   | primary | yes    |
 | 
						|
            | dbe   | primary | no     |
 | 
						|
 | 
						|
        When I route I should get
 | 
						|
            | waypoints | route   | turns         |
 | 
						|
            | a,c       | abc,abc | depart,arrive |
 | 
						|
            | d,e       | dbe,dbe | depart,arrive |
 | 
						|
            | e,d       | dbe,dbe | depart,arrive |
 | 
						|
 | 
						|
 | 
						|
    Scenario: Slight Turn involving Oneways - Name Change
 | 
						|
        Given the node map
 | 
						|
            """
 | 
						|
                a
 | 
						|
 | 
						|
                b   e
 | 
						|
            d
 | 
						|
                c
 | 
						|
            """
 | 
						|
 | 
						|
        And the ways
 | 
						|
            | nodes | highway | oneway |
 | 
						|
            | abc   | primary | yes    |
 | 
						|
            | db    | primary | no     |
 | 
						|
            | be    | primary | no     |
 | 
						|
 | 
						|
        When I route I should get
 | 
						|
            | waypoints | route   | turns         |
 | 
						|
            | a,c       | abc,abc | depart,arrive |
 | 
						|
            | d,e       | db,be   | depart,arrive |
 | 
						|
            | e,d       | be,db   | depart,arrive |
 | 
						|
 | 
						|
     Scenario: Right Turn Assignment Three Conflicting Turns with invalid - 1
 | 
						|
        Given the node map
 | 
						|
            """
 | 
						|
                g
 | 
						|
            a   b   c
 | 
						|
 | 
						|
              d e f
 | 
						|
            """
 | 
						|
 | 
						|
        And the ways
 | 
						|
            | nodes | highway | oneway |
 | 
						|
            | abc   | primary | no     |
 | 
						|
            | db    | primary | yes    |
 | 
						|
            | eb    | primary | no     |
 | 
						|
            | fb    | primary | no     |
 | 
						|
            | bg    | primary | no     |
 | 
						|
 | 
						|
        When I route I should get
 | 
						|
            | waypoints | route     | turns                           |
 | 
						|
            | a,e       | abc,eb,eb | depart,turn right,arrive        |
 | 
						|
            | a,f       | abc,fb,fb | depart,turn slight right,arrive |
 | 
						|
 | 
						|
     Scenario: Right Turn Assignment Three Conflicting Turns with invalid - 2
 | 
						|
        Given the node map
 | 
						|
            """
 | 
						|
                g
 | 
						|
            a   b   c
 | 
						|
 | 
						|
              d e f
 | 
						|
            """
 | 
						|
 | 
						|
        And the ways
 | 
						|
            | nodes | highway | oneway |
 | 
						|
            | abc   | primary | yes    |
 | 
						|
            | bd    | primary | yes    |
 | 
						|
            | eb    | primary | yes    |
 | 
						|
            | bf    | primary | yes    |
 | 
						|
            | bg    | primary | yes    |
 | 
						|
 | 
						|
        When I route I should get
 | 
						|
            | waypoints | route     | turns                           |
 | 
						|
            | a,d       | abc,bd,bd | depart,turn right,arrive        |
 | 
						|
            | a,f       | abc,bf,bf | depart,turn slight right,arrive |
 | 
						|
 | 
						|
    Scenario: Right Turn Assignment Three Conflicting Turns with invalid - 3
 | 
						|
        Given the node map
 | 
						|
            """
 | 
						|
                g
 | 
						|
            a   b   c
 | 
						|
 | 
						|
              d e f
 | 
						|
            """
 | 
						|
 | 
						|
        And the ways
 | 
						|
            | nodes | highway | oneway |
 | 
						|
            | abc   | primary | no     |
 | 
						|
            | db    | primary | no     |
 | 
						|
            | be    | primary | no     |
 | 
						|
            | fb    | primary | yes    |
 | 
						|
            | bg    | primary | no     |
 | 
						|
 | 
						|
        When I route I should get
 | 
						|
            | waypoints | route     | turns                          |
 | 
						|
            | a,d       | abc,db,db | depart,turn sharp right,arrive |
 | 
						|
            | a,e       | abc,be,be | depart,turn right,arrive       |
 | 
						|
 | 
						|
    Scenario: Conflicting Turns with well distinguished turn
 | 
						|
        Given the node map
 | 
						|
            """
 | 
						|
            a     b     c
 | 
						|
 | 
						|
            f           d
 | 
						|
                        e
 | 
						|
            """
 | 
						|
 | 
						|
        And the ways
 | 
						|
            | nodes | highway |
 | 
						|
            | abc   | primary |
 | 
						|
            | bd    | primary |
 | 
						|
            | be    | primary |
 | 
						|
            | bf    | primary |
 | 
						|
 | 
						|
        When I route I should get
 | 
						|
            | waypoints | route     | turns                           |
 | 
						|
            | a,d       | abc,bd,bd | depart,turn slight right,arrive |
 | 
						|
            | a,e       | abc,be,be | depart,turn right,arrive        |
 | 
						|
            | a,f       | abc,bf,bf | depart,turn sharp right,arrive  |
 | 
						|
 | 
						|
    Scenario: Conflicting Turns with well distinguished turn (back)
 | 
						|
        Given the node map
 | 
						|
            """
 | 
						|
            a     b     c
 | 
						|
 | 
						|
            d           f
 | 
						|
              e
 | 
						|
            """
 | 
						|
 | 
						|
        And the ways
 | 
						|
            | nodes | highway |
 | 
						|
            | abc   | primary |
 | 
						|
            | bd    | primary |
 | 
						|
            | be    | primary |
 | 
						|
            | bf    | primary |
 | 
						|
 | 
						|
        When I route I should get
 | 
						|
            | waypoints | route     | turns                           |
 | 
						|
            | a,d       | abc,bd,bd | depart,turn sharp right,arrive  |
 | 
						|
            | a,e       | abc,be,be | depart,turn right,arrive        |
 | 
						|
            | a,f       | abc,bf,bf | depart,turn slight right,arrive |
 | 
						|
 | 
						|
    Scenario: Turn Lane on Splitting up Road
 | 
						|
        Given the node map
 | 
						|
            """
 | 
						|
            g - - - f -
 | 
						|
                         ' .
 | 
						|
                    . h - - e - - c - - d
 | 
						|
            a - - b _______/
 | 
						|
                  i
 | 
						|
            """
 | 
						|
 | 
						|
        And the ways
 | 
						|
            | nodes | highway        | oneway | name  |
 | 
						|
            | ab    | secondary      | yes    | road  |
 | 
						|
            | be    | secondary      | yes    | road  |
 | 
						|
            | ecd   | secondary      | no     | road  |
 | 
						|
            | efg   | secondary      | yes    | road  |
 | 
						|
            | ehb   | secondary_link | yes    | road  |
 | 
						|
            | bi    | tertiary       | no     | cross |
 | 
						|
 | 
						|
        And the relations
 | 
						|
            | type        | way:from | way:to | node:via | restriction  |
 | 
						|
            | restriction | ehb      | be     | b        | no_left_turn |
 | 
						|
 | 
						|
        When I route I should get
 | 
						|
            | waypoints | route            | turns                   |
 | 
						|
            | a,d       | road,road        | depart,arrive           |
 | 
						|
            | d,i       | road,cross,cross | depart,turn left,arrive |
 | 
						|
            | d,g       | road,road        | depart,arrive           |
 | 
						|
 | 
						|
     Scenario: Go onto turning major road
 | 
						|
        Given the node map
 | 
						|
            """
 | 
						|
                  c
 | 
						|
 | 
						|
 | 
						|
            a     b
 | 
						|
 | 
						|
                  d
 | 
						|
            """
 | 
						|
 | 
						|
        And the ways
 | 
						|
            | nodes | highway     | name |
 | 
						|
            | abc   | primary     | road |
 | 
						|
            | bd    | residential | in   |
 | 
						|
 | 
						|
        When I route I should get
 | 
						|
            | waypoints | turns                   | route        |
 | 
						|
            | a,c       | depart,arrive           | road,road    |
 | 
						|
            | d,a       | depart,turn left,arrive | in,road,road |
 | 
						|
            | d,c       | depart,arrive           | in,road      |
 | 
						|
 | 
						|
    Scenario: Channing Street
 | 
						|
        Given the node map
 | 
						|
            """
 | 
						|
                g f
 | 
						|
                | |
 | 
						|
            d---c-b-a
 | 
						|
                | |
 | 
						|
                | |
 | 
						|
                h e
 | 
						|
            """
 | 
						|
 | 
						|
        And the nodes
 | 
						|
            | node | highway         |
 | 
						|
            | c    | traffic_signals |
 | 
						|
            | b    | traffic_signals |
 | 
						|
 | 
						|
        And the ways
 | 
						|
            | nodes | name                           | highway     | oneway |
 | 
						|
            | ab    | Channing Street Northeast      | residential | no     |
 | 
						|
            | bcd   | Channing Street Northwest      | residential | yes    |
 | 
						|
            | ebf   | North Capitol Street Northeast | primary     | yes    |
 | 
						|
            | gch   | North Capitol Street Northeast | primary     | yes    |
 | 
						|
 | 
						|
        When I route I should get
 | 
						|
            | waypoints | turns                   | route                                                                                   |
 | 
						|
            | a,d       | depart,arrive           | Channing Street Northeast,Channing Street Northwest                                     |
 | 
						|
            | a,h       | depart,turn left,arrive | Channing Street Northeast,North Capitol Street Northeast,North Capitol Street Northeast |
 | 
						|
 | 
						|
    Scenario: V St NW, Florida Ave NW: Turn Instruction
 | 
						|
    # https://www.mapillary.com/app/?focus=map&lat=38.91815595&lng=-77.03880249&z=17&pKey=sCxepTOCTZD3OoBXuqGEOw
 | 
						|
    # http://www.openstreetmap.org/way/6062557#map=19/38.91805/-77.03892
 | 
						|
        Given the node map
 | 
						|
            """
 | 
						|
            y     x
 | 
						|
                c
 | 
						|
              d     b a
 | 
						|
 | 
						|
            e
 | 
						|
            """
 | 
						|
 | 
						|
        And the ways
 | 
						|
            | nodes | name                           | highway     | oneway |
 | 
						|
            | abc   | V St NW                        | tertiary    | yes    |
 | 
						|
            | xcde  | Florida Ave NW                 | tertiary    | yes    |
 | 
						|
            | yd    | Champlain St NW                | residential |        |
 | 
						|
 | 
						|
        When I route I should get
 | 
						|
            | waypoints | turns                   | route                                 |
 | 
						|
            | a,e       | depart,turn left,arrive | V St NW,Florida Ave NW,Florida Ave NW |
 | 
						|
 | 
						|
    # http://www.openstreetmap.org/node/182805179
 | 
						|
    Scenario: Make Sharp Left at Traffic Signal
 | 
						|
        Given the node map
 | 
						|
            """
 | 
						|
                  g
 | 
						|
 | 
						|
                  f     y
 | 
						|
            i
 | 
						|
            j k a   b   x
 | 
						|
                  e   c
 | 
						|
                    d
 | 
						|
 | 
						|
                  h
 | 
						|
 | 
						|
                  q
 | 
						|
            """
 | 
						|
 | 
						|
        And the nodes
 | 
						|
            | node | highway         |
 | 
						|
            | f    | traffic_signals |
 | 
						|
 | 
						|
        And the ways
 | 
						|
            | nodes | name                           | highway     | oneway |
 | 
						|
            | yf    | yf                             | trunk_link  | yes    |
 | 
						|
            | gfehq | Centreville Road               | primary     |        |
 | 
						|
            | fi    | fi                             | trunk_link  | yes    |
 | 
						|
            | ij    | Bloomingdale Road              | residential |        |
 | 
						|
            | jkabx | Blue Star Memorial Hwy         | trunk       | yes    |
 | 
						|
            | bcde  | bcde                           | trunk_link  | yes    |
 | 
						|
            | kh    | kh                             | trunk_link  | yes    |
 | 
						|
 | 
						|
        When I route I should get
 | 
						|
            | waypoints | turns                                        | route                                                         |
 | 
						|
            | a,q       | depart,off ramp right,turn sharp left,arrive | Blue Star Memorial Hwy,bcde,Centreville Road,Centreville Road |
 | 
						|
 | 
						|
    @todo
 | 
						|
    # https://www.openstreetmap.org/#map=20/52.51609/13.41080
 | 
						|
    Scenario: Unnecessary Slight Left onto Stralauer Strasse
 | 
						|
        Given the node map
 | 
						|
            """
 | 
						|
              e
 | 
						|
 | 
						|
            a   b   c   d
 | 
						|
            """
 | 
						|
 | 
						|
        And the ways
 | 
						|
            | nodes | name          | highway   | oneway |
 | 
						|
            | ab    | Molkenmarkt   | secondary | yes    |
 | 
						|
            | bc    | Stralauer Str | secondary | yes    |
 | 
						|
            | cd    | Stralauer Str | secondary | yes    |
 | 
						|
            | ec    | Molkenmarkt   | secondary | yes    |
 | 
						|
 | 
						|
        When I route I should get
 | 
						|
            | waypoints | turns         | route                     |
 | 
						|
            | a,d       | depart,arrive | Molkenmarkt,Stralauer Str |
 | 
						|
            | e,d       | depart,arrive | Molkenmarkt,Stralauer Str |
 | 
						|
 | 
						|
    Scenario: Unnecessary Slight Left onto Stralauer Strasse
 | 
						|
        Given the node map
 | 
						|
            """
 | 
						|
              e
 | 
						|
 | 
						|
            a   b   c   d
 | 
						|
            """
 | 
						|
 | 
						|
        And the ways
 | 
						|
            | nodes | name          | highway   | oneway |
 | 
						|
            | ab    | Molkenmarkt   | secondary | yes    |
 | 
						|
            | bc    | Molkenmarkt   | secondary | yes    |
 | 
						|
            | cd    | Stralauer Str | secondary | yes    |
 | 
						|
            | ec    | Molkenmarkt   | secondary | yes    |
 | 
						|
 | 
						|
        When I route I should get
 | 
						|
            | waypoints | turns         | route                     |
 | 
						|
            | a,d       | depart,arrive | Molkenmarkt,Stralauer Str |
 | 
						|
            | e,d       | depart,arrive | Molkenmarkt,Stralauer Str |
 | 
						|
 | 
						|
     # http://www.openstreetmap.org/#map=18/39.28158/-76.62291
 | 
						|
     @3002
 | 
						|
     Scenario: Obvious Index wigh very narrow turn to the right
 | 
						|
        Given the node map
 | 
						|
            """
 | 
						|
            a - b -.-.- - - c
 | 
						|
                       ' ' 'd
 | 
						|
            """
 | 
						|
 | 
						|
        And the ways
 | 
						|
            | nodes | highway      | name |
 | 
						|
            | abc   | primary      | road |
 | 
						|
            | bd    | primary_link |      |
 | 
						|
 | 
						|
        When I route I should get
 | 
						|
            | waypoints | turns                           | route     |
 | 
						|
            | a,c       | depart,arrive                   | road,road |
 | 
						|
            | a,d       | depart,turn slight right,arrive | road,,    |
 | 
						|
 | 
						|
     # http://www.openstreetmap.org/#map=18/39.28158/-76.62291
 | 
						|
     @3002
 | 
						|
     Scenario: Obvious Index wigh very narrow turn to the right
 | 
						|
        Given the node map
 | 
						|
            """
 | 
						|
            a - b - . -.- - c
 | 
						|
                    e - -'-'d-f
 | 
						|
            """
 | 
						|
 | 
						|
        And the ways
 | 
						|
            | nodes | highway      | name |
 | 
						|
            | abc   | primary      | road |
 | 
						|
            | bd    | primary_link |      |
 | 
						|
            | edf   | primary_link |      |
 | 
						|
 | 
						|
        When I route I should get
 | 
						|
            | waypoints | turns                           | route     |
 | 
						|
            | a,c       | depart,arrive                   | road,road |
 | 
						|
            | a,f       | depart,turn slight right,arrive | road,,    |
 | 
						|
 | 
						|
    # http://www.openstreetmap.org/#map=18/39.28158/-76.62291
 | 
						|
    @3002
 | 
						|
    Scenario: Obvious Index wigh very narrow turn to the left
 | 
						|
        Given the node map
 | 
						|
            """
 | 
						|
                       . . .d
 | 
						|
            a - b -'-'- - - c
 | 
						|
            """
 | 
						|
 | 
						|
        And the ways
 | 
						|
            | nodes | highway      | name |
 | 
						|
            | abc   | primary      | road |
 | 
						|
            | bd    | primary_link |      |
 | 
						|
 | 
						|
        When I route I should get
 | 
						|
            | waypoints | turns                          | route     |
 | 
						|
            | a,c       | depart,arrive                  | road,road |
 | 
						|
            | a,d       | depart,turn slight left,arrive | road,,    |
 | 
						|
 | 
						|
     # http://www.openstreetmap.org/#map=18/39.28158/-76.62291
 | 
						|
     @3002
 | 
						|
     Scenario: Obvious Index wigh very narrow turn to the left
 | 
						|
        Given the node map
 | 
						|
            """
 | 
						|
                    e - -.- d-f
 | 
						|
            a - b - ' - - - c
 | 
						|
            """
 | 
						|
 | 
						|
        And the ways
 | 
						|
            | nodes | highway      | name |
 | 
						|
            | abc   | primary      | road |
 | 
						|
            | bd    | primary_link |      |
 | 
						|
            | edf   | primary_link |      |
 | 
						|
 | 
						|
        When I route I should get
 | 
						|
            | waypoints | turns                          | route     |
 | 
						|
            | a,f       | depart,turn slight left,arrive | road,,    |
 | 
						|
            | a,c       | depart,arrive                  | road,road |
 | 
						|
 | 
						|
    Scenario: Non-Obvious Turn Next to service road
 | 
						|
        Given the node map
 | 
						|
            """
 | 
						|
                                c
 | 
						|
                               .
 | 
						|
                               .
 | 
						|
                               .
 | 
						|
                               .
 | 
						|
                               .
 | 
						|
                             .
 | 
						|
                             .
 | 
						|
                             .
 | 
						|
                             .
 | 
						|
                             .
 | 
						|
            a - - - - - - - b - - - d
 | 
						|
                            |
 | 
						|
                            |
 | 
						|
                            |
 | 
						|
                            |
 | 
						|
                            |
 | 
						|
                            |
 | 
						|
                            |
 | 
						|
                            e
 | 
						|
            """
 | 
						|
 | 
						|
        And the ways
 | 
						|
            | nodes  | highway | name    |
 | 
						|
            | ab     | primary | in      |
 | 
						|
            | bc     | primary | through |
 | 
						|
            | be     | primary | through |
 | 
						|
            | bd     | service |         |
 | 
						|
 | 
						|
       When I route I should get
 | 
						|
            | waypoints | route              | turns                   |
 | 
						|
            | a,c       | in,through,through | depart,turn left,arrive |
 | 
						|
 | 
						|
    # http://www.openstreetmap.org/#map=19/52.51556/13.41832
 | 
						|
    Scenario: No Slight Right at Stralauer Strasse
 | 
						|
        Given the node map
 | 
						|
        """
 | 
						|
                  l   m
 | 
						|
                  |   |
 | 
						|
            f._   |   |
 | 
						|
                ' g---h.
 | 
						|
                  |   |  '-i
 | 
						|
                  |   |
 | 
						|
            a_    |   |
 | 
						|
               ''.b---c
 | 
						|
                  |   |' d._
 | 
						|
                  |   |     'e
 | 
						|
                  j   k
 | 
						|
        """
 | 
						|
 | 
						|
        And the ways
 | 
						|
            | nodes | name          | highway   | oneway |
 | 
						|
            | ab    | Stralauer Str | tertiary  | yes    |
 | 
						|
            | bcde  | Holzmarktstr  | secondary | yes    |
 | 
						|
            | gf    | Stralauer Str | tertiary  | yes    |
 | 
						|
            | ihg   | Holzmarktstr  | secondary | yes    |
 | 
						|
            | lgbj  | Alexanderstr  | primary   | yes    |
 | 
						|
            | kchm  | Alexanderstr  | primary   | yes    |
 | 
						|
 | 
						|
        When I route I should get
 | 
						|
            | waypoints | turns          | route                      |
 | 
						|
            | a,e       | depart,arrive  | Stralauer Str,Holzmarktstr |
 | 
						|
 | 
						|
    Scenario: No Slight Right at Stralauer Strasse -- less extreme
 | 
						|
        Given the node map
 | 
						|
         """
 | 
						|
                  l   m
 | 
						|
                  |   |
 | 
						|
            f_    |   |
 | 
						|
               ' 'g---h_
 | 
						|
                  |   |  '\_
 | 
						|
                  |   |     i
 | 
						|
            a_    |   |
 | 
						|
               '_ b___c_
 | 
						|
                  |   |  \_
 | 
						|
                  |   |     e
 | 
						|
                  j   k
 | 
						|
         """
 | 
						|
 | 
						|
        And the ways
 | 
						|
            | nodes | name          | highway   | oneway |
 | 
						|
            | ab    | Stralauer Str | tertiary  | yes    |
 | 
						|
            | bce   | Holzmarktstr  | secondary | yes    |
 | 
						|
            | gf    | Stralauer Str | tertiary  | yes    |
 | 
						|
            | ihg   | Holzmarktstr  | secondary | yes    |
 | 
						|
            | lgbj  | Alexanderstr  | primary   | yes    |
 | 
						|
            | kchm  | Alexanderstr  | primary   | yes    |
 | 
						|
 | 
						|
        When I route I should get
 | 
						|
            | waypoints | turns         | route                      |
 | 
						|
            | a,e       | depart,arrive | Stralauer Str,Holzmarktstr |
 | 
						|
 | 
						|
    Scenario: No Slight Right at Stralauer Strasse
 | 
						|
        Given the node map
 | 
						|
         """
 | 
						|
                  l   m
 | 
						|
                  |   |
 | 
						|
                  |   |
 | 
						|
              _ _ g---h_
 | 
						|
            f'    |   |  '_
 | 
						|
                  |   |     i
 | 
						|
                  |   |
 | 
						|
               _ _b---c__
 | 
						|
            a'    |   |    'd
 | 
						|
                  |   |
 | 
						|
                  j   k
 | 
						|
         """
 | 
						|
 | 
						|
        And the ways
 | 
						|
            | nodes | name          | highway   | oneway |
 | 
						|
            | ab    | Stralauer Str | tertiary  | yes    |
 | 
						|
            | bcd   | Holzmarktstr  | secondary | yes    |
 | 
						|
            | gf    | Stralauer Str | tertiary  | yes    |
 | 
						|
            | ihg   | Holzmarktstr  | secondary | yes    |
 | 
						|
            | lgbj  | Alexanderstr  | primary   | yes    |
 | 
						|
            | kchm  | Alexanderstr  | primary   | yes    |
 | 
						|
 | 
						|
        When I route I should get
 | 
						|
            | waypoints | turns         | route                      |
 | 
						|
            | a,d       | depart,arrive | Stralauer Str,Holzmarktstr |
 | 
						|
 | 
						|
    #http://www.openstreetmap.org/#map=19/49.48761/8.47618
 | 
						|
    @todo @3365
 | 
						|
    Scenario: Turning Road - Segregated
 | 
						|
        Given the node map
 | 
						|
            """
 | 
						|
                    f   d
 | 
						|
                    |   |
 | 
						|
            a - - - b - c
 | 
						|
                    |   |
 | 
						|
                    |   |
 | 
						|
                    g   e
 | 
						|
            """
 | 
						|
        And the ways
 | 
						|
            | nodes | name   | ref  | oneway |
 | 
						|
            | ab    | Goethe | B 38 | yes    |
 | 
						|
            | bc    |        | B 38 | yes    |
 | 
						|
            | ec    | Fried  |      | yes    |
 | 
						|
            | cd    | Fried  | B 38 | yes    |
 | 
						|
            | fbg   | Fried  |      | yes    |
 | 
						|
 | 
						|
        When I route I should get
 | 
						|
            | waypoints | route              | turns                       |
 | 
						|
            | a,d       | Goethe,Fried,Fried | depart,continue left,arrive |
 | 
						|
            | a,g       | Goethe,Fried,Fried | depart,turn right,arrive    |
 | 
						|
 | 
						|
	# Conflicting roads (https://www.openstreetmap.org/export#map=19/37.57805/-77.46049)
 | 
						|
	Scenario: Turning at forklike structure
 | 
						|
        Given the node map
 | 
						|
            """
 | 
						|
            c  d
 | 
						|
               - - - b - - - a
 | 
						|
                   -
 | 
						|
              e
 | 
						|
            """
 | 
						|
        And the ways
 | 
						|
            | nodes | name | oneway | highway       |
 | 
						|
            | abc   | foo  | no     | residential   |
 | 
						|
            | bd    | bar  | yes    | residential   |
 | 
						|
            | eb    | some | yes    | tertiary_link |
 | 
						|
 | 
						|
        When I route I should get
 | 
						|
            | waypoints | route       | turns                           |
 | 
						|
            | a,d       | foo,bar,bar | depart,turn slight right,arrive |
 | 
						|
 | 
						|
    Scenario: UTurn onto ramp
 | 
						|
        Given the node map
 | 
						|
            """
 | 
						|
                       a - - - b - c
 | 
						|
                                  .|
 | 
						|
                _________________ de
 | 
						|
            h-g-----------------------f
 | 
						|
            """
 | 
						|
        And the ways
 | 
						|
            | nodes | name  | ref  | oneway | highway       |
 | 
						|
            | abc   | Road  |      | yes    | primary       |
 | 
						|
            | ce    | other |      | yes    | primary       |
 | 
						|
            | cdg   |       |      | yes    | motorway_link |
 | 
						|
            | fgh   |       | C 42 | yes    | motorway      |
 | 
						|
 | 
						|
 | 
						|
        When I route I should get
 | 
						|
            | waypoints | route   | ref         | turns                                         |
 | 
						|
            | a,h       | Road,,, | ,,C 42,C 42 | depart,on ramp right,merge slight left,arrive |
 | 
						|
 | 
						|
    Scenario: UTurn onto ramp (same ref)
 | 
						|
        Given the node map
 | 
						|
            """
 | 
						|
                       a - - - b - c
 | 
						|
                                  .|
 | 
						|
                _________________ de
 | 
						|
            h-g-----------------------f
 | 
						|
            """
 | 
						|
        And the ways
 | 
						|
            | nodes | name  | ref  | oneway | highway       |
 | 
						|
            | abc   | Road  | C 42 | yes    | primary       |
 | 
						|
            | ce    | other |      | yes    | primary       |
 | 
						|
            | cdg   |       |      | yes    | motorway_link |
 | 
						|
            | fgh   |       | C 42 | yes    | motorway      |
 | 
						|
 | 
						|
 | 
						|
        When I route I should get
 | 
						|
            | waypoints | route           | ref             | turns                                         |
 | 
						|
            | a,h       | Road,,,         | C 42,,C 42,C 42 | depart,on ramp right,merge slight left,arrive |
 | 
						|
 | 
						|
    Scenario: End of road, T-intersection, no obvious turn, only one road allowed
 | 
						|
        Given the node map
 | 
						|
            """
 | 
						|
                           d
 | 
						|
                          .
 | 
						|
            a . b  .  .  c
 | 
						|
                    '   .
 | 
						|
                      'e
 | 
						|
                      .
 | 
						|
                      f
 | 
						|
            """
 | 
						|
 | 
						|
        And the ways
 | 
						|
            | nodes  | highway      | oneway | ref       |
 | 
						|
            | ab     | primary      |        | B 191     |
 | 
						|
            | bc     | primary      |        | B 191     |
 | 
						|
            | be     | primary_link | yes    |           |
 | 
						|
            | dc     | primary      |        | B 4;B 191 |
 | 
						|
            | ce     | primary      |        | B 4       |
 | 
						|
            | ef     | primary      |        | B 4       |
 | 
						|
 | 
						|
        And the relations
 | 
						|
            | type        | way:from | way:to | node:via | restriction     |
 | 
						|
            | restriction | bc       | ce     | c        | no_right_turn   |
 | 
						|
            | restriction | be       | ef     | e        | only_right_turn |
 | 
						|
 | 
						|
       When I route I should get
 | 
						|
            | waypoints | route    | turns                   |
 | 
						|
            | a,d       | ab,dc,dc | depart,turn left,arrive |
 | 
						|
 | 
						|
 | 
						|
    # https://www.openstreetmap.org/node/1332083066
 | 
						|
    Scenario: Turns ordering must respect initial bearings
 | 
						|
        Given the node map
 | 
						|
            """
 | 
						|
            a . be .
 | 
						|
                  \ c.
 | 
						|
                 d/    .f . g
 | 
						|
            """
 | 
						|
 | 
						|
        And the ways
 | 
						|
            | nodes | highway | oneway |
 | 
						|
            | ab    | primary | yes    |
 | 
						|
            | bcd   | primary | yes    |
 | 
						|
            | befg  | primary | yes    |
 | 
						|
 | 
						|
       When I route I should get
 | 
						|
            | waypoints | route        | turns                           |
 | 
						|
            | a,d       | ab,bcd,bcd   | depart,fork slight right,arrive |
 | 
						|
            | a,g       | ab,befg,befg | depart,fork slight left,arrive  |
 | 
						|
 | 
						|
    # https://www.openstreetmap.org/#map=18/52.25130/10.42545
 | 
						|
    Scenario: Turn for roads with no name, ref changes
 | 
						|
        Given the node map
 | 
						|
            """
 | 
						|
              d
 | 
						|
              .
 | 
						|
              .
 | 
						|
            e c . . f
 | 
						|
              .
 | 
						|
              .
 | 
						|
              b
 | 
						|
              .
 | 
						|
              .
 | 
						|
              a
 | 
						|
            """
 | 
						|
 | 
						|
        And the ways
 | 
						|
            | nodes | highway     | ref  | name          |
 | 
						|
            | abc   | tertiary    | K 57 |               |
 | 
						|
            | cd    | tertiary    | K 56 |               |
 | 
						|
            | cf    | tertiary    | K 56 |               |
 | 
						|
            | ce    | residential |      | Heinrichshöhe |
 | 
						|
 | 
						|
       When I route I should get
 | 
						|
            | waypoints | route     | turns                    |
 | 
						|
            | a,f       | ,,        | depart,turn right,arrive |
 | 
						|
 | 
						|
    # https://www.openstreetmap.org/#map=18/52.24071/10.29066
 | 
						|
    Scenario: Turn for roads with no name, ref changes
 | 
						|
        Given the node map
 | 
						|
            """
 | 
						|
              x
 | 
						|
              .
 | 
						|
              .
 | 
						|
              d
 | 
						|
             . .
 | 
						|
            .   .
 | 
						|
           .     .
 | 
						|
     e. . t . c . p. .f
 | 
						|
           .     .
 | 
						|
            .   .
 | 
						|
             . .
 | 
						|
              b
 | 
						|
              .
 | 
						|
              .
 | 
						|
              a
 | 
						|
            """
 | 
						|
 | 
						|
        And the ways
 | 
						|
            | nodes | highway     | ref  | name          | oneway |
 | 
						|
            | abp   | tertiary    | K 23 |               | yes    |
 | 
						|
            | pdx   | tertiary    | K 23 |               | yes    |
 | 
						|
            | xdt   | tertiary    | K 23 |               | yes    |
 | 
						|
            | tba   | tertiary    | K 23 |               | yes    |
 | 
						|
            | etcpf | primary     | B 1  |               | no     |
 | 
						|
 | 
						|
       When I route I should get
 | 
						|
            | waypoints | route     | turns                                    |
 | 
						|
            | e,x       | ,,,       | depart,turn sharp left,turn right,arrive |
 | 
						|
            | f,a       | ,,        | depart,turn left,arrive                  |
 |