352 lines
9.0 KiB
Gherkin
352 lines
9.0 KiB
Gherkin
@routing @basic @testbot
|
||
Feature: Basic Routing
|
||
|
||
Background:
|
||
Given the profile "testbot"
|
||
Given a grid size of 100 meters
|
||
|
||
@smallest
|
||
Scenario: A single way with two nodes
|
||
Given the node map
|
||
"""
|
||
a b
|
||
"""
|
||
|
||
And the ways
|
||
| nodes |
|
||
| ab |
|
||
|
||
When I route I should get
|
||
| from | to | route | data_version | waypoints_count |
|
||
| a | b | ab,ab | | 2 |
|
||
| b | a | ab,ab | | 2 |
|
||
|
||
Scenario: Data_version test
|
||
Given the node map
|
||
"""
|
||
a b
|
||
"""
|
||
|
||
And the extract extra arguments "--data_version cucumber_data_version"
|
||
|
||
And the ways
|
||
| nodes |
|
||
| ab |
|
||
|
||
When I route I should get
|
||
| from | to | route | data_version |
|
||
| a | b | ab,ab | cucumber_data_version |
|
||
| b | a | ab,ab | cucumber_data_version |
|
||
|
||
Scenario: Skip_waypoints test
|
||
Given the node map
|
||
"""
|
||
a b
|
||
"""
|
||
|
||
And skip waypoints
|
||
|
||
And the ways
|
||
| nodes |
|
||
| ab |
|
||
|
||
When I route I should get
|
||
| from | to | route | waypoints_count |
|
||
| a | b | ab,ab | 0 |
|
||
| b | a | ab,ab | 0 |
|
||
|
||
Scenario: Routing in between two nodes of way
|
||
Given the node map
|
||
"""
|
||
a b 1 2 c d
|
||
"""
|
||
|
||
And the ways
|
||
| nodes |
|
||
| abcd |
|
||
|
||
When I route I should get
|
||
| from | to | route |
|
||
| 1 | 2 | abcd,abcd |
|
||
| 2 | 1 | abcd,abcd |
|
||
|
||
Scenario: Routing between the middle nodes of way
|
||
Given the node map
|
||
"""
|
||
a b c d e f
|
||
"""
|
||
|
||
And the ways
|
||
| nodes |
|
||
| abcdef |
|
||
|
||
When I route I should get
|
||
| from | to | route |
|
||
| b | c | abcdef,abcdef |
|
||
| b | d | abcdef,abcdef |
|
||
| b | e | abcdef,abcdef |
|
||
| c | b | abcdef,abcdef |
|
||
| c | d | abcdef,abcdef |
|
||
| c | e | abcdef,abcdef |
|
||
| d | b | abcdef,abcdef |
|
||
| d | c | abcdef,abcdef |
|
||
| d | e | abcdef,abcdef |
|
||
| e | b | abcdef,abcdef |
|
||
| e | c | abcdef,abcdef |
|
||
| e | d | abcdef,abcdef |
|
||
|
||
Scenario: Two ways connected in a straight line
|
||
Given the node map
|
||
"""
|
||
a b c
|
||
"""
|
||
|
||
And the ways
|
||
| nodes |
|
||
| ab |
|
||
| bc |
|
||
|
||
When I route I should get
|
||
| from | to | route |
|
||
| a | c | ab,bc,bc |
|
||
| c | a | bc,ab,ab |
|
||
| a | b | ab,ab |
|
||
| b | a | ab,ab |
|
||
| b | c | bc,bc |
|
||
| c | b | bc,bc |
|
||
|
||
Scenario: 2 unconnected parallel ways
|
||
Given the node map
|
||
"""
|
||
a b c
|
||
d e f
|
||
"""
|
||
|
||
And the ways
|
||
| nodes |
|
||
| abc |
|
||
| def |
|
||
|
||
When I route I should get
|
||
| from | to | route |
|
||
| a | b | abc,abc |
|
||
| b | a | abc,abc |
|
||
| b | c | abc,abc |
|
||
| c | b | abc,abc |
|
||
| d | e | def,def |
|
||
| e | d | def,def |
|
||
| e | f | def,def |
|
||
| f | e | def,def |
|
||
| a | d | |
|
||
| d | a | |
|
||
| b | d | |
|
||
| d | b | |
|
||
| c | d | |
|
||
| d | c | |
|
||
| a | e | |
|
||
| e | a | |
|
||
| b | e | |
|
||
| e | b | |
|
||
| c | e | |
|
||
| e | c | |
|
||
| a | f | |
|
||
| f | a | |
|
||
| b | f | |
|
||
| f | b | |
|
||
| c | f | |
|
||
| f | c | |
|
||
|
||
Scenario: 3 ways connected in a triangle
|
||
Given the node map
|
||
"""
|
||
a b
|
||
|
||
c
|
||
"""
|
||
|
||
And the ways
|
||
| nodes |
|
||
| ab |
|
||
| bc |
|
||
| ca |
|
||
|
||
When I route I should get
|
||
| from | to | route |
|
||
| a | b | ab,ab |
|
||
| a | c | ca,ca |
|
||
| b | c | bc,bc |
|
||
| b | a | ab,ab |
|
||
| c | a | ca,ca |
|
||
| c | b | bc,bc |
|
||
|
||
Scenario: 3 connected triangles
|
||
Given the node map
|
||
"""
|
||
x a b s
|
||
y t
|
||
c
|
||
v w
|
||
"""
|
||
|
||
And the ways
|
||
| nodes |
|
||
| ab |
|
||
| bc |
|
||
| ca |
|
||
| ax |
|
||
| xy |
|
||
| ya |
|
||
| bs |
|
||
| st |
|
||
| tb |
|
||
| cv |
|
||
| vw |
|
||
| wc |
|
||
|
||
When I route I should get
|
||
| from | to | route |
|
||
| a | b | ab,ab |
|
||
| a | c | ca,ca |
|
||
| b | c | bc,bc |
|
||
| b | a | ab,ab |
|
||
| c | a | ca,ca |
|
||
| c | b | bc,bc |
|
||
|
||
Scenario: To ways connected at a 90 degree angle
|
||
Given the node map
|
||
"""
|
||
a
|
||
|
|
||
b
|
||
|
|
||
c----d----e
|
||
"""
|
||
|
||
And the ways
|
||
| nodes |
|
||
| abc |
|
||
| cde |
|
||
|
||
When I route I should get
|
||
| from | to | route |
|
||
| b | d | abc,cde,cde |
|
||
| a | e | abc,cde,cde |
|
||
| a | c | abc,abc |
|
||
| c | a | abc,abc |
|
||
| c | e | cde,cde |
|
||
| e | c | cde,cde |
|
||
|
||
Scenario: Grid city center
|
||
Given the node map
|
||
"""
|
||
a b c d
|
||
e f g h
|
||
i j k l
|
||
m n o p
|
||
"""
|
||
|
||
And the ways
|
||
| nodes |
|
||
| abcd |
|
||
| efgh |
|
||
| ijkl |
|
||
| mnop |
|
||
| aeim |
|
||
| bfjn |
|
||
| cgko |
|
||
| dhlp |
|
||
|
||
When I route I should get
|
||
| from | to | route |
|
||
| f | g | efgh,efgh |
|
||
| g | f | efgh,efgh |
|
||
| f | j | bfjn,bfjn |
|
||
| j | f | bfjn,bfjn |
|
||
|
||
Scenario: Grid city periphery
|
||
Given the node map
|
||
"""
|
||
a b c d
|
||
e f g h
|
||
i j k l
|
||
m n o p
|
||
"""
|
||
|
||
And the ways
|
||
| nodes |
|
||
| abcd |
|
||
| efgh |
|
||
| ijkl |
|
||
| mnop |
|
||
| aeim |
|
||
| bfjn |
|
||
| cgko |
|
||
| dhlp |
|
||
|
||
When I route I should get
|
||
| from | to | route |
|
||
| a | d | abcd,abcd |
|
||
| d | a | abcd,abcd |
|
||
| a | m | aeim,aeim |
|
||
| m | a | aeim,aeim |
|
||
|
||
Scenario: Testbot - Triangle challenge
|
||
Given the node map
|
||
"""
|
||
d
|
||
a b c
|
||
e
|
||
"""
|
||
|
||
And the ways
|
||
| nodes | highway | oneway |
|
||
| abc | primary | |
|
||
| cd | primary | yes |
|
||
| ce | river | |
|
||
| de | primary | |
|
||
|
||
When I route I should get
|
||
| from | to | route |
|
||
| d | c | de,ce,ce |
|
||
| e | d | de,de |
|
||
|
||
Scenario: Ambiguous edge weights - Use minimal edge weight
|
||
Given the node map
|
||
"""
|
||
a b
|
||
"""
|
||
|
||
And the ways
|
||
| nodes | highway | name |
|
||
| ab | tertiary | |
|
||
| ab | primary | |
|
||
| ab | secondary | |
|
||
|
||
When I route I should get
|
||
| from | to | route | time |
|
||
| a | b | , | 10s |
|
||
| b | a | , | 10s |
|
||
|
||
Scenario: Ambiguous edge names - Use lexicographically smallest name
|
||
Given the node map
|
||
"""
|
||
a-------b-------c
|
||
"""
|
||
|
||
And the ways
|
||
| nodes | highway | name |
|
||
| ab | primary | |
|
||
| ab | primary | Αβγ |
|
||
| ab | primary | |
|
||
| ab | primary | Abc |
|
||
| ab | primary | |
|
||
| ab | primary | Абв |
|
||
| bc | primary | Ηθι |
|
||
| bc | primary | Δεζ |
|
||
| bc | primary | Где |
|
||
|
||
When I route I should get
|
||
| from | to | route |
|
||
| a | c | Abc,Δεζ,Δεζ |
|
||
| c | a | Δεζ,Abc,Abc |
|