osrm-backend/features/testbot/multi_level_routing.feature
Siarhei Fedartsou aadc088084
Fix distance calculation consistency. (#6315)
Consolidate great circle distance calculations to use cheap ruler library.
2022-08-19 22:31:40 +01:00

246 lines
8.7 KiB
Gherkin
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

@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
"""
abef
dc hg
ij mn
lkpo
"""
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
"""
ab ef
\ /
dc hg
ij mn
/ \
lkpo
"""
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 | 2391.6 | 1570.8 | 1370.9 |
| f | 2391.6 | 0 | 1297.2 | 1620.9 |
| l | 1570.8 | 1297.2 | 0 | 800 |
| o | 1370.9 | 1620.9 | 800 | 0 |
When I request a travel distance matrix I should get
| | a | f | l | o |
| a | 0 | 2391.6 | 1570.8 | 1370.9 |
When I request a travel distance matrix I should get
| | a |
| a | 0 |
| f | 2391.6 |
| l | 1570.8 |
| o | 1370.9 |
When I request a travel distance matrix I should get
| | a | f | l | o |
| a | 0 | 2391.6 | 1570.8 | 1370.9 |
| f | 2391.6 | 0 | 1297.2 | 1620.9 |
When I request a travel distance matrix I should get
| | a | o |
| a | 0 | 1370.9 |
| f | 2391.6 | 1620.9 |
| l | 1570.8 | 800 |
| o | 1370.9 | 0 |
Scenario: Testbot - Multi level routing: horizontal road
Given the node map
"""
ab ef
dc hg
ijkl
mn qr
pots
"""
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
"""
ab
dcef
hgij
lk
"""
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
"""
ab
dc
e f
h gi
"""
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 |