245 lines
		
	
	
		
			8.7 KiB
		
	
	
	
		
			Gherkin
		
	
	
	
	
	
			
		
		
	
	
			245 lines
		
	
	
		
			8.7 KiB
		
	
	
	
		
			Gherkin
		
	
	
	
	
	
@routing @testbot @mld
 | 
						||
Feature: Multi level routing
 | 
						||
 | 
						||
    Background:
 | 
						||
        Given the profile "testbot"
 | 
						||
        And the partition extra arguments "--small-component-size 1 --max-cell-sizes 4,16,64"
 | 
						||
 | 
						||
    Scenario: Testbot - Multi level routing check partition
 | 
						||
        Given the node map
 | 
						||
            """
 | 
						||
            a───b───e───f
 | 
						||
            │   │   │   │
 | 
						||
            d───c   h───g
 | 
						||
                 ╲ ╱
 | 
						||
                  ╳
 | 
						||
                 ╱ ╲
 | 
						||
            i───j   m───n
 | 
						||
            │   │   │   │
 | 
						||
            l───k───p───o
 | 
						||
            """
 | 
						||
 | 
						||
        And the ways
 | 
						||
            | nodes | highway |
 | 
						||
            | abcda | primary |
 | 
						||
            | efghe | primary |
 | 
						||
            | ijkli | primary |
 | 
						||
            | nmop  | primary |
 | 
						||
            | cm    | primary |
 | 
						||
            | hj    | primary |
 | 
						||
            | kp    | primary |
 | 
						||
            | be    | primary |
 | 
						||
 | 
						||
        And the data has been extracted
 | 
						||
        When I run "osrm-partition --max-cell-sizes 4,16 --small-component-size 1 {processed_file}"
 | 
						||
        Then it should exit successfully
 | 
						||
        And stdout should not contain "level 1 #cells 1 bit size 1"
 | 
						||
 | 
						||
    Scenario: Testbot - Multi level routing
 | 
						||
        Given the node map
 | 
						||
            """
 | 
						||
           a────b   e─────f
 | 
						||
            \   │   │    /
 | 
						||
            d───c   h───g
 | 
						||
                 ╲ ╱
 | 
						||
                  ╳
 | 
						||
                 ╱ ╲
 | 
						||
            i───j   m───n
 | 
						||
           /    │   │    \
 | 
						||
          l─────k───p─────o
 | 
						||
            """
 | 
						||
 | 
						||
        And the nodes
 | 
						||
            | node | highway         |
 | 
						||
            | i    | traffic_signals |
 | 
						||
            | n    | traffic_signals |
 | 
						||
 | 
						||
        And the ways
 | 
						||
            | nodes | highway |
 | 
						||
            | abcda | primary |
 | 
						||
            | efghe | primary |
 | 
						||
            | ijkli | primary |
 | 
						||
            | mnopm | primary |
 | 
						||
            | cm    | primary |
 | 
						||
            | hj    | primary |
 | 
						||
            | kp    | primary |
 | 
						||
        And the partition extra arguments "--small-component-size 1 --max-cell-sizes 4,16"
 | 
						||
 | 
						||
        When I route I should get
 | 
						||
            | from | to | route                                  | time   |
 | 
						||
            | a    | b  | abcda,abcda                            | 25s    |
 | 
						||
            | a    | f  | abcda,cm,mnopm,kp,ijkli,hj,efghe,efghe | 239.2s |
 | 
						||
            | a    | l  | abcda,cm,mnopm,kp,ijkli,ijkli          | 157.1s |
 | 
						||
            | a    | o  | abcda,cm,mnopm,mnopm,mnopm             | 137.1s |
 | 
						||
            | f    | l  | efghe,hj,ijkli,ijkli                   | 136.7s |
 | 
						||
            | f    | o  | efghe,hj,ijkli,kp,mnopm,mnopm          | 162.1s |
 | 
						||
            | l    | o  | ijkli,kp,mnopm,mnopm                   | 80s    |
 | 
						||
            | c    | m  | cm,cm                                  | 44.7s  |
 | 
						||
            | f    | a  | efghe,hj,ijkli,kp,mnopm,cm,abcda,abcda | 239.2s |
 | 
						||
            | l    | a  | ijkli,kp,mnopm,cm,abcda,abcda          | 157.1s |
 | 
						||
 | 
						||
        When I request a travel time matrix I should get
 | 
						||
            |   | a     | f     | l     | o     |
 | 
						||
            | a | 0     | 239.2 | 157.1 | 137.1 |
 | 
						||
            | f | 239.2 | 0     | 136.7 | 162.1 |
 | 
						||
            | l | 157.1 | 136.7 | 0     | 80    |
 | 
						||
            | o | 137.1 | 162.1 | 80    | 0     |
 | 
						||
 | 
						||
        When I request a travel time matrix I should get
 | 
						||
            |   | a | f     | l     | o     |
 | 
						||
            | a | 0 | 239.2 | 157.1 | 137.1 |
 | 
						||
 | 
						||
        When I request a travel time matrix I should get
 | 
						||
            |   |   a   |
 | 
						||
            | a |   0   |
 | 
						||
            | f | 239.2 |
 | 
						||
            | l | 157.1 |
 | 
						||
            | o | 137.1 |
 | 
						||
 | 
						||
        When I request a travel time matrix I should get
 | 
						||
            |   | a     | f     | l     | o     |
 | 
						||
            | a | 0     | 239.2 | 157.1 | 137.1 |
 | 
						||
            | o | 137.1 | 162.1 | 80    | 0     |
 | 
						||
 | 
						||
        When I request a travel time matrix I should get
 | 
						||
            |   |     a |     o |
 | 
						||
            | a |     0 | 137.1 |
 | 
						||
            | f | 239.2 | 162.1 |
 | 
						||
            | l | 157.1 |    80 |
 | 
						||
            | o | 137.1 |     0 |
 | 
						||
 | 
						||
        When I request a travel distance matrix I should get
 | 
						||
            |   | a      | f      | l      | o      |
 | 
						||
            | a | 0      | 2383.7 | 1566.9 | 1366.8 |
 | 
						||
            | f | 2383.7 | 0      | 1293.3 | 1617.3 |
 | 
						||
            | l | 1566.9 | 1293.3 | 0      | 800.5  |
 | 
						||
            | o | 1366.8 | 1617.3 | 800.5  | 0      |
 | 
						||
 | 
						||
        When I request a travel distance matrix I should get
 | 
						||
            |   | a | f      | l      | o      |
 | 
						||
            | a | 0 | 2383.7 | 1566.9 | 1366.8 |
 | 
						||
 | 
						||
        When I request a travel distance matrix I should get
 | 
						||
            |   | a      |
 | 
						||
            | a | 0      |
 | 
						||
            | f | 2383.7 |
 | 
						||
            | l | 1566.9 |
 | 
						||
            | o | 1366.8 |
 | 
						||
 | 
						||
        When I request a travel distance matrix I should get
 | 
						||
            |   | a      | f      | l      | o      |
 | 
						||
            | a | 0      | 2383.7 | 1566.9 | 1366.8 |
 | 
						||
            | f | 2383.7 | 0      | 1293.3 | 1617.3 |
 | 
						||
 | 
						||
        When I request a travel distance matrix I should get
 | 
						||
            |   | a      | o      |
 | 
						||
            | a | 0      | 1366.8 |
 | 
						||
            | f | 2383.7 | 1617.3 |
 | 
						||
            | l | 1566.9 | 800.5  |
 | 
						||
            | o | 1366.8 | 0      |
 | 
						||
 | 
						||
    Scenario: Testbot - Multi level routing: horizontal road
 | 
						||
        Given the node map
 | 
						||
            """
 | 
						||
            a───b   e───f
 | 
						||
            │   │   │   │
 | 
						||
            d───c   h───g
 | 
						||
            │           │
 | 
						||
            i═══j═══k═══l
 | 
						||
            │           │
 | 
						||
            m───n   q───r
 | 
						||
            │   │   │   │
 | 
						||
            p───o───t───s
 | 
						||
            """
 | 
						||
        And the ways
 | 
						||
            | nodes | highway   |
 | 
						||
            | abcda | primary   |
 | 
						||
            | efghe | primary   |
 | 
						||
            | mnopm | primary   |
 | 
						||
            | qrstq | primary   |
 | 
						||
            | ijkl  | primary   |
 | 
						||
            | dim   | primary   |
 | 
						||
            | glr   | primary   |
 | 
						||
            | ot    | secondary |
 | 
						||
 | 
						||
        When I route I should get
 | 
						||
            | from | to | route                          | time |
 | 
						||
            | a    | b  | abcda,abcda                    | 20s  |
 | 
						||
            | a    | d  | abcda,abcda                    | 20s  |
 | 
						||
            | a    | l  | abcda,dim,ijkl,ijkl            | 100s |
 | 
						||
            | a    | p  | abcda,dim,mnopm,mnopm          | 80s  |
 | 
						||
            | a    | o  | abcda,dim,mnopm,mnopm          | 100s |
 | 
						||
            | a    | t  | abcda,dim,mnopm,ot,ot          | 140s |
 | 
						||
            | a    | s  | abcda,dim,ijkl,glr,qrstq,qrstq | 140s |
 | 
						||
            | a    | f  | abcda,dim,ijkl,glr,efghe,efghe | 140s |
 | 
						||
 | 
						||
 | 
						||
    Scenario: Testbot - Multi level routing: route over internal cell edge hf
 | 
						||
        Given the node map
 | 
						||
            """
 | 
						||
            a───b
 | 
						||
            │   │
 | 
						||
            d───c──e───f
 | 
						||
                 ╲ │ ╳ │ ╲
 | 
						||
                   h───g──i───j
 | 
						||
                          │   │
 | 
						||
                          l───k
 | 
						||
            """
 | 
						||
        And the partition extra arguments "--small-component-size 1 --max-cell-sizes 4,16"
 | 
						||
        And the ways
 | 
						||
            | nodes | maxspeed |
 | 
						||
            | abcda |        5 |
 | 
						||
            | efghe |        5 |
 | 
						||
            | ijkli |        5 |
 | 
						||
            | eg    |       10 |
 | 
						||
            | ce    |       15 |
 | 
						||
            | ch    |       15 |
 | 
						||
            | fi    |       15 |
 | 
						||
            | gi    |       15 |
 | 
						||
            | hf    |      100 |
 | 
						||
 | 
						||
        When I route I should get
 | 
						||
            | from | to | route                      | time   |
 | 
						||
            | a    | k  | abcda,ch,hf,fi,ijkli,ijkli | 724.3s |
 | 
						||
 | 
						||
 | 
						||
    Scenario: Testbot - Edge case for matrix plugin with
 | 
						||
        Given the node map
 | 
						||
            """
 | 
						||
            a───b
 | 
						||
            │ ╳ │
 | 
						||
            d───c
 | 
						||
            │   │
 | 
						||
            e   f
 | 
						||
            │ ╱ │
 | 
						||
            h   g───i
 | 
						||
            """
 | 
						||
        And the partition extra arguments "--small-component-size 1 --max-cell-sizes 5,16,64"
 | 
						||
 | 
						||
        And the nodes
 | 
						||
            | node | highway         |
 | 
						||
            | e    | traffic_signals |
 | 
						||
            | g    | traffic_signals |
 | 
						||
 | 
						||
        And the ways
 | 
						||
            | nodes | highway | maxspeed |
 | 
						||
            | abcda | primary |          |
 | 
						||
            | ac    | primary |          |
 | 
						||
            | db    | primary |          |
 | 
						||
            | deh   | primary |          |
 | 
						||
            | cfg   | primary |          |
 | 
						||
            | ef    | primary |        1 |
 | 
						||
            | eg    | primary |        1 |
 | 
						||
            | hf    | primary |        1 |
 | 
						||
            | hg    | primary |        1 |
 | 
						||
            | gi    | primary |          |
 | 
						||
 | 
						||
        When I route I should get
 | 
						||
            | from | to | route               | time |
 | 
						||
            | h    | i  | deh,abcda,cfg,gi,gi | 134s |
 | 
						||
 | 
						||
        When I request a travel time matrix I should get
 | 
						||
            |   |   h |   i |
 | 
						||
            | h |   0 | 134 |
 | 
						||
            | i | 134 |   0 |
 |