316 lines
8.8 KiB
Gherkin
316 lines
8.8 KiB
Gherkin
@routing @approach @testbot
|
|
Feature: Approach parameter
|
|
|
|
Background:
|
|
Given a grid size of 10 meters
|
|
|
|
Scenario: Start End same approach, option unrestricted for Start and End
|
|
Given the profile "testbot"
|
|
And the node map
|
|
"""
|
|
s e
|
|
a------b------c
|
|
"""
|
|
|
|
And the ways
|
|
| nodes |
|
|
| ab |
|
|
| bc |
|
|
|
|
When I route I should get
|
|
| from | to | approaches | route |
|
|
| s | e | unrestricted unrestricted | ab,bc |
|
|
|
|
Scenario: Start End same approach, option unrestricted for Start and curb for End
|
|
Given the profile "testbot"
|
|
And the node map
|
|
"""
|
|
s e
|
|
a------b------c
|
|
"""
|
|
|
|
And the ways
|
|
| nodes |
|
|
| ab |
|
|
| bc |
|
|
|
|
When I route I should get
|
|
| from | to | approaches | route |
|
|
| s | e | unrestricted curb | ab,bc,bc |
|
|
|
|
Scenario: Start End opposite approach, option unrestricted for Start and End
|
|
Given the profile "testbot"
|
|
And the node map
|
|
"""
|
|
s
|
|
a------b------c
|
|
e
|
|
"""
|
|
|
|
And the ways
|
|
| nodes |
|
|
| ab |
|
|
| bc |
|
|
|
|
When I route I should get
|
|
| from | to | approaches | route |
|
|
| s | e | unrestricted unrestricted | ab,bc |
|
|
|
|
Scenario: Start End opposite approach, option unrestricted for Start and curb for End
|
|
Given the profile "testbot"
|
|
And the node map
|
|
"""
|
|
s
|
|
a------b------c
|
|
e
|
|
"""
|
|
|
|
And the ways
|
|
| nodes |
|
|
| ab |
|
|
| bc |
|
|
|
|
When I route I should get
|
|
| from | to | approaches | route |
|
|
| s | e | unrestricted curb | ab,bc |
|
|
|
|
|
|
###############
|
|
# Oneway Test #
|
|
###############
|
|
|
|
|
|
Scenario: Test on oneway segment, Start End same approach, option unrestricted for Start and End
|
|
Given the profile "testbot"
|
|
And the node map
|
|
"""
|
|
s e
|
|
a------b------c
|
|
"""
|
|
|
|
And the ways
|
|
| nodes | oneway |
|
|
| ab | yes |
|
|
| bc | yes |
|
|
|
|
When I route I should get
|
|
| from | to | approaches | route |
|
|
| s | e | unrestricted unrestricted | ab,bc |
|
|
|
|
Scenario: Test on oneway segment, Start End same approach, option unrestricted for Start and curb for End
|
|
Given the profile "testbot"
|
|
And the node map
|
|
"""
|
|
s e
|
|
a------b------c
|
|
"""
|
|
|
|
And the ways
|
|
| nodes | oneway |
|
|
| ab | yes |
|
|
| bc | yes |
|
|
|
|
When I route I should get
|
|
| from | to | approaches | route |
|
|
| s | e | unrestricted curb | ab,bc |
|
|
|
|
Scenario: Test on oneway segment, Start End opposite approach, option unrestricted for Start and End
|
|
Given the profile "testbot"
|
|
And the node map
|
|
"""
|
|
s
|
|
a------b------c
|
|
e
|
|
"""
|
|
|
|
And the ways
|
|
| nodes | oneway |
|
|
| ab | yes |
|
|
| bc | yes |
|
|
|
|
When I route I should get
|
|
| from | to | approaches | route |
|
|
| s | e | unrestricted unrestricted | ab,bc |
|
|
|
|
Scenario: Test on oneway segment, Start End opposite approach, option unrestricted for Start and curb for End
|
|
Given the profile "testbot"
|
|
And the node map
|
|
"""
|
|
s
|
|
a------b------c
|
|
e
|
|
"""
|
|
|
|
And the ways
|
|
| nodes | oneway |
|
|
| ab | yes |
|
|
| bc | yes |
|
|
|
|
When I route I should get
|
|
| from | to | approaches | route |
|
|
| s | e | unrestricted curb | ab,bc |
|
|
|
|
##############
|
|
# UTurn Test #
|
|
##############
|
|
|
|
Scenario: UTurn test, router can't found a route because uturn unauthorized on the segment selected
|
|
Given the profile "testbot"
|
|
And the node map
|
|
"""
|
|
s e
|
|
a------b------c
|
|
"""
|
|
|
|
And the ways
|
|
| nodes |
|
|
| ab |
|
|
| bc |
|
|
|
|
And the relations
|
|
| type | way:from | way:to | node:via | restriction |
|
|
| restriction | bc | bc | c | no_u_turn |
|
|
|
|
When I route I should get
|
|
| from | to | approaches | route |
|
|
| s | e | unrestricted curb | |
|
|
|
|
|
|
Scenario: UTurn test, router can find a route because he can use the roundabout
|
|
Given the profile "testbot"
|
|
And the node map
|
|
"""
|
|
h
|
|
s e / \
|
|
a------b------c g
|
|
\ /
|
|
f
|
|
"""
|
|
|
|
And the ways
|
|
| nodes | junction |
|
|
| ab | |
|
|
| bc | |
|
|
| cfghc | roundabout |
|
|
|
|
And the relations
|
|
| type | way:from | way:to | node:via | restriction |
|
|
| restriction | bc | bc | c | no_u_turn |
|
|
|
|
When I route I should get
|
|
| from | to | approaches | route |
|
|
| s | e | unrestricted curb | ab,bc,bc |
|
|
|
|
|
|
Scenario: Start End same approach, option unrestricted for Start and curb for End, left-hand driving
|
|
Given the profile file
|
|
"""
|
|
local functions = require('testbot')
|
|
local testbot_process_way = functions.process_way
|
|
functions.process_way = function(profile, way, result)
|
|
testbot_process_way(profile, way, result)
|
|
result.is_left_hand_driving = true
|
|
end
|
|
return functions
|
|
"""
|
|
And the node map
|
|
"""
|
|
s e
|
|
a------b------c
|
|
"""
|
|
|
|
And the ways
|
|
| nodes |
|
|
| ab |
|
|
| bc |
|
|
|
|
When I route I should get
|
|
| from | to | approaches | route |
|
|
| s | e | unrestricted curb | ab,bc |
|
|
|
|
|
|
#######################
|
|
# Left-side countries #
|
|
#######################
|
|
|
|
Scenario: [Left-hand-side] Start End same approach, option unrestricted for Start and End
|
|
Given the profile file "car" initialized with
|
|
"""
|
|
profile.properties.left_hand_driving = true
|
|
"""
|
|
And the node map
|
|
"""
|
|
s e
|
|
a------b------c
|
|
"""
|
|
|
|
And the ways
|
|
| nodes |
|
|
| ab |
|
|
| bc |
|
|
|
|
When I route I should get
|
|
| from | to | approaches | route |
|
|
| s | e | unrestricted unrestricted | ab,bc |
|
|
|
|
Scenario: [Left-hand-side] Start End same approach, option unrestricted for Start and curb for End
|
|
Given the profile file "car" initialized with
|
|
"""
|
|
profile.properties.left_hand_driving = true
|
|
"""
|
|
And the node map
|
|
"""
|
|
s
|
|
a------b------c
|
|
e
|
|
"""
|
|
|
|
And the ways
|
|
| nodes |
|
|
| ab |
|
|
| bc |
|
|
|
|
When I route I should get
|
|
| from | to | approaches | route |
|
|
| s | e | unrestricted curb | ab,bc,bc |
|
|
|
|
Scenario: [Left-hand-side] Start End opposite approach, option unrestricted for Start and End
|
|
Given the profile file "car" initialized with
|
|
"""
|
|
profile.properties.left_hand_driving = true
|
|
"""
|
|
And the node map
|
|
"""
|
|
s
|
|
a------b------c
|
|
e
|
|
"""
|
|
|
|
And the ways
|
|
| nodes |
|
|
| ab |
|
|
| bc |
|
|
|
|
When I route I should get
|
|
| from | to | approaches | route |
|
|
| s | e | unrestricted unrestricted | ab,bc |
|
|
|
|
Scenario: [Left-hand-side] Start End opposite approach, option unrestricted for Start and curb for End
|
|
Given the profile file "car" initialized with
|
|
"""
|
|
profile.properties.left_hand_driving = true
|
|
"""
|
|
And the node map
|
|
"""
|
|
s e
|
|
a------b------c
|
|
"""
|
|
|
|
And the ways
|
|
| nodes |
|
|
| ab |
|
|
| bc |
|
|
|
|
When I route I should get
|
|
| from | to | approaches | route |
|
|
| s | e | unrestricted curb | ab,bc | |