189 lines
		
	
	
		
			5.9 KiB
		
	
	
	
		
			Gherkin
		
	
	
	
	
	
			
		
		
	
	
			189 lines
		
	
	
		
			5.9 KiB
		
	
	
	
		
			Gherkin
		
	
	
	
	
	
@routing @car @destination
 | 
						|
Feature: Car - Destination only, no passing through
 | 
						|
 | 
						|
    Background:
 | 
						|
        Given the profile "car"
 | 
						|
 | 
						|
    Scenario: Car - Destination only street
 | 
						|
        Given the node map
 | 
						|
            """
 | 
						|
            a       e
 | 
						|
              b c d
 | 
						|
 | 
						|
            x       y
 | 
						|
            """
 | 
						|
 | 
						|
        And the ways
 | 
						|
            | nodes | access      |
 | 
						|
            | ab    |             |
 | 
						|
            | bcd   | destination |
 | 
						|
            | de    |             |
 | 
						|
            | axye  |             |
 | 
						|
 | 
						|
        When I route I should get
 | 
						|
            | from | to | route      |
 | 
						|
            | a    | b  | ab,ab      |
 | 
						|
            | a    | c  | ab,bcd     |
 | 
						|
            | a    | d  | ab,bcd,bcd |
 | 
						|
            | a    | e  | axye,axye  |
 | 
						|
            | e    | d  | de,de      |
 | 
						|
            | e    | c  | de,bcd     |
 | 
						|
            | e    | b  | de,bcd,bcd |
 | 
						|
            | e    | a  | axye,axye  |
 | 
						|
 | 
						|
    Scenario: Car - Destination only street
 | 
						|
        Given the node map
 | 
						|
            """
 | 
						|
            a       e
 | 
						|
              b c d
 | 
						|
 | 
						|
            x       y
 | 
						|
            """
 | 
						|
 | 
						|
        And the ways
 | 
						|
            | nodes | access      |
 | 
						|
            | ab    |             |
 | 
						|
            | bc    | destination |
 | 
						|
            | cd    | destination |
 | 
						|
            | de    |             |
 | 
						|
            | axye  |             |
 | 
						|
 | 
						|
        When I route I should get
 | 
						|
            | from | to | route       |
 | 
						|
            | a    | b  | ab,ab       |
 | 
						|
            | a    | c  | ab,bc       |
 | 
						|
            | a    | d  | ab,cd       |
 | 
						|
            | a    | e  | axye,axye   |
 | 
						|
            | e    | d  | de,de       |
 | 
						|
            | e    | c  | de,cd       |
 | 
						|
            | e    | b  | de,bc       |
 | 
						|
            | e    | a  | axye,axye   |
 | 
						|
 | 
						|
    Scenario: Car - Routing inside a destination only area
 | 
						|
        Given the node map
 | 
						|
            """
 | 
						|
            a   c   e
 | 
						|
              b   d
 | 
						|
            x       y
 | 
						|
            """
 | 
						|
 | 
						|
        And the ways
 | 
						|
            | nodes | access      |
 | 
						|
            | ab    | destination |
 | 
						|
            | bc    | destination |
 | 
						|
            | cd    | destination |
 | 
						|
            | de    | destination |
 | 
						|
            | axye  |             |
 | 
						|
 | 
						|
        When I route I should get
 | 
						|
            | from | to | route          |
 | 
						|
            | a    | e  | ab,bc,cd,de,de |
 | 
						|
            | e    | a  | de,cd,bc,ab,ab |
 | 
						|
            | b    | d  | bc,cd,cd       |
 | 
						|
            | d    | b  | cd,bc,bc       |
 | 
						|
 | 
						|
    Scenario: Car - Routing around a way that becomes destination only
 | 
						|
        Given the node map
 | 
						|
            """
 | 
						|
            b
 | 
						|
             \
 | 
						|
              |
 | 
						|
              e++d++++++c--i
 | 
						|
              |             \
 | 
						|
               \             h--a
 | 
						|
                \            |
 | 
						|
                 \___________g
 | 
						|
            """
 | 
						|
 | 
						|
        And the ways
 | 
						|
            | nodes | access      | oneway |
 | 
						|
            | ah    |             | no     |
 | 
						|
            | ihg   |             | no     |
 | 
						|
            | eg    |             | no     |
 | 
						|
            | icde  |             | no     |
 | 
						|
            | cde   | destination | no     |
 | 
						|
            | eb    |             | no     |
 | 
						|
 | 
						|
        When I route I should get
 | 
						|
            | from | to | route           | # |
 | 
						|
            | i    | b  | ihg,eg,eb,eb    | # goes around access=destination, though restricted way starts at two node intersection |
 | 
						|
            | b    | d  | eb,cde,cde      | # ends in restricted way correctly     |
 | 
						|
            | b    | i  | eb,eg,ihg,ihg   | # goes around restricted way correctly |
 | 
						|
 | 
						|
    Scenario: Car - Routing around a way that becomes destination only
 | 
						|
        Given the node map
 | 
						|
            """
 | 
						|
               a---c---b
 | 
						|
                   +    \
 | 
						|
                   +    |
 | 
						|
                   d    |
 | 
						|
                    \___e
 | 
						|
            """
 | 
						|
 | 
						|
        And the ways
 | 
						|
            | nodes | access      | oneway |
 | 
						|
            | acbe  |             | no     |
 | 
						|
            | cd    | destination | no     |
 | 
						|
            | de    |             | no     |
 | 
						|
 | 
						|
        When I route I should get
 | 
						|
            | from | to | route         |
 | 
						|
            | e    | a  | acbe,acbe     |
 | 
						|
            | d    | a  | de,acbe,acbe  |
 | 
						|
            | c    | d  | cd,cd         |
 | 
						|
 | 
						|
    Scenario: Car - Routing through a parking lot tagged access=destination,service
 | 
						|
        Given the node map
 | 
						|
            """
 | 
						|
               a----c++++b+++g------h---i
 | 
						|
               |    +    +   +     /
 | 
						|
               |    +    +   +    /
 | 
						|
               |    +    +  +    /
 | 
						|
               |    d++++e+f    /
 | 
						|
               z--------------y
 | 
						|
            """
 | 
						|
 | 
						|
        And the ways
 | 
						|
            | nodes | access      | highway   |
 | 
						|
            | ac    |             | secondary |
 | 
						|
            | ghi   |             | secondary |
 | 
						|
            | azyhi |             | secondary |
 | 
						|
            | cd    | destination | service   |
 | 
						|
            | def   | destination | service   |
 | 
						|
            | cbg   | destination | service   |
 | 
						|
            | be    | destination | service   |
 | 
						|
            | gf    | destination | service   |
 | 
						|
 | 
						|
        When I route I should get
 | 
						|
            | from | to | route               |
 | 
						|
            | a    | i  | azyhi,azyhi         |
 | 
						|
            | b    | f  | be,def,def          |
 | 
						|
            | b    | i  | cbg,ghi,azyhi,azyhi |
 | 
						|
 | 
						|
    Scenario: Car - Disallow snapping to access=private,highway=service
 | 
						|
        Given a grid size of 20 meters
 | 
						|
        Given the node map
 | 
						|
            """
 | 
						|
               a---c---b
 | 
						|
                   :
 | 
						|
                   x
 | 
						|
                   :
 | 
						|
                   d
 | 
						|
                    \__e
 | 
						|
            """
 | 
						|
 | 
						|
        And the ways
 | 
						|
            | nodes | access   | highway |
 | 
						|
            | acb   |          | primary |
 | 
						|
            | cx    | private  | service |
 | 
						|
            | xd    | private  | service |
 | 
						|
            | de    |          | primary |
 | 
						|
 | 
						|
        When I route I should get
 | 
						|
            | from | to | route     |
 | 
						|
            | a    | x  | acb,xd,xd |
 | 
						|
            | a    | d  | acb,xd,xd |
 | 
						|
            | a    | e  | acb,xd,de |
 | 
						|
            | x    | e  | de,de     |
 | 
						|
            # do not snap to access=private,highway=service roads when routing over them is not necessary
 |