Compare commits
221 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 3fdecc79f4 | |||
| d0543e6c3b | |||
| cef53c4b56 | |||
| 481b03baeb | |||
| f96e61ee06 | |||
| d21c8e3800 | |||
| af7960a796 | |||
| 4c6d6aeaa7 | |||
| ef2261661c | |||
| 9c11f4231c | |||
| 837ab105ad | |||
| 6ac9617d49 | |||
| ccdebccde1 | |||
| c1651ccb12 | |||
| f33180f092 | |||
| 1b03b8df6d | |||
| 3eeb3cb6c6 | |||
| 3e18e31bc9 | |||
| 2fb40944bf | |||
| b108d8ea21 | |||
| 79917d2c8e | |||
| d2cd4fac2d | |||
| cd03877c90 | |||
| 388d84a89e | |||
| 9d24a4422a | |||
| 9693f9269b | |||
| 08a5648e3e | |||
| ccf5552406 | |||
| b749d9bd2f | |||
| d342a18324 | |||
| 8f00936790 | |||
| 8a3aec301a | |||
| faa5185440 | |||
| 4ba8ccfcce | |||
| c30f43b148 | |||
| 5da63998d6 | |||
| 6fc0609a62 | |||
| f02b7b0910 | |||
| 9435254661 | |||
| de14a72931 | |||
| 164f4ffc32 | |||
| b5c77de923 | |||
| 6067fdf27f | |||
| f39eb999e5 | |||
| a34a885031 | |||
| 87d09f78e6 | |||
| 83b7d75121 | |||
| 4598599f52 | |||
| da77edfc83 | |||
| 2917122287 | |||
| a22e0fa62e | |||
| dc7e61c25d | |||
| 8dc667f20d | |||
| 8ff4bc09ac | |||
| 88c3f4c481 | |||
| 01a2c66472 | |||
| cf35bbeb50 | |||
| fe94977c9b | |||
| 69a60686dc | |||
| 7b97e1035f | |||
| c4f010e363 | |||
| 51ebadfc45 | |||
| ceddfada3d | |||
| a933b5d949 | |||
| ba5871cfa1 | |||
| e8b947bca6 | |||
| 7753845f5c | |||
| 19eec48207 | |||
| 293856981f | |||
| 86b70f2632 | |||
| 1905a0f473 | |||
| d05b85c227 | |||
| 19f00589de | |||
| 7f28a14c76 | |||
| fead71da54 | |||
| c26e90cac0 | |||
| d4e5710928 | |||
| 5c2783310a | |||
| b8795c7341 | |||
| 1d994da12b | |||
| 46994e87be | |||
| 40bfe89d97 | |||
| e3c2d4dddc | |||
| 502d9e10c2 | |||
| 865c6590fa | |||
| c30784895d | |||
| fa1fc810ea | |||
| 052b0e831d | |||
| 42271d99b2 | |||
| ecee13bffa | |||
| 5e167b8745 | |||
| 1f8ca2879f | |||
| 2d13116487 | |||
| 316ef305de | |||
| ab1a9271c8 | |||
| 18bc02f087 | |||
| 2a2abe9e0f | |||
| b7ee38eca7 | |||
| ae157d0b4f | |||
| 769485cc2f | |||
| 983ad3513a | |||
| ca914b8b1f | |||
| ca21b8833a | |||
| 3f0f0e306b | |||
| f77a2474ea | |||
| 8205c34abe | |||
| ee4fb89336 | |||
| 81c5cba0e5 | |||
| caa7c994a0 | |||
| 847f530c8e | |||
| c69545c47a | |||
| 1557ff81bc | |||
| ebac9f586b | |||
| 2512cf386d | |||
| da04563e26 | |||
| ceaf362326 | |||
| 9af00b1925 | |||
| f540485cb0 | |||
| 5617d3886d | |||
| 06d13b6954 | |||
| d0c142b9c7 | |||
| ef1f14550f | |||
| 5839bf334b | |||
| 46c936b48e | |||
| 8ed6bb8a1b | |||
| b72dc8c0cf | |||
| 72fa35da10 | |||
| 17eb664597 | |||
| 77931ffe24 | |||
| 45df2c991f | |||
| 615e302b8c | |||
| 1ed8e7e98c | |||
| ee012ae2da | |||
| 32dcce88f7 | |||
| a13cf3f2be | |||
| 6cf99c886f | |||
| 7cbb1807e7 | |||
| d47d03c15b | |||
| 240a7696da | |||
| 14b024e4dc | |||
| 339ebe8f81 | |||
| 9eb7fc03ce | |||
| 036475afd0 | |||
| 378322f6e3 | |||
| d964b81308 | |||
| 49a28b478c | |||
| a75e16e26b | |||
| 73179641b1 | |||
| 58316c608d | |||
| 1c2ead8fb8 | |||
| 66f2cc5184 | |||
| dbd108df8c | |||
| ff1ab217ba | |||
| 49a9d7f57a | |||
| da15c014f5 | |||
| 9a85a50586 | |||
| 94ca782816 | |||
| d17eacc52b | |||
| d86bba3e24 | |||
| 7f7b47611d | |||
| 2d4c128ea2 | |||
| 5d9fc83db4 | |||
| 5b4e2950d9 | |||
| 879f7eb042 | |||
| 050585bbd9 | |||
| 89007ae669 | |||
| b821a1dd98 | |||
| d1f1358e48 | |||
| 805d93912d | |||
| 0b7b16abc0 | |||
| 3dd7732ffc | |||
| c8eb2b2d11 | |||
| 14e7460465 | |||
| 6290aeea93 | |||
| 10b93c6908 | |||
| e4d0d49300 | |||
| cbb96ce7f4 | |||
| 54aaf574d9 | |||
| a824e64682 | |||
| df6186f0f1 | |||
| 78d530ddae | |||
| da15e1fc5e | |||
| 7e2663f2ad | |||
| 1a96483f7b | |||
| 3d5a53566c | |||
| eafe3fa928 | |||
| 6cfb1d6a85 | |||
| 0abd32fca3 | |||
| d1f555dcef | |||
| 6cfd1c92e1 | |||
| bbbbacb073 | |||
| e7b2f85a20 | |||
| 75de7c8eaf | |||
| 3f3c85ba72 | |||
| 89264eb89b | |||
| fa5714ab82 | |||
| 8aa93f32cc | |||
| 60010dd998 | |||
| 7ffe832ff8 | |||
| a63b10972b | |||
| 3eac6effbb | |||
| 7d124ce54d | |||
| 8522cddd61 | |||
| bf2b1a64b9 | |||
| 70ee624e5c | |||
| 3a49635eb7 | |||
| aa5f8dce23 | |||
| c186e51a08 | |||
| 861314256e | |||
| 38f5adbe5c | |||
| 092e77e89b | |||
| 64a72f574d | |||
| 1b4a52e99c | |||
| 1d94eb88f6 | |||
| b3c5a9c010 | |||
| e3c1b133bf | |||
| e6fe9d0d67 | |||
| 05c1fe7f46 | |||
| e3a38a6b0d | |||
| 2b9cf742c5 | |||
| a289e1cd96 |
@@ -1,12 +1,13 @@
|
||||
# Issue
|
||||
|
||||
What issue is this PR targeting? Is there no issue that covers the problem addressed here? Please open a corresponding issue and link it from here.
|
||||
What issue is this PR targeting? If there is no issue that addresses the problem, please open a corresponding issue and link it here.
|
||||
|
||||
## Tasklist
|
||||
- [ ] ADD OWN TASKS HERE
|
||||
- [ ] update relevant [Wiki pages](https://github.com/Project-OSRM/osrm-backend/wiki)
|
||||
- [ ] add regression / cucumber cases (see docs/testing.md)
|
||||
- [ ] review
|
||||
- [ ] adjust for for comments
|
||||
- [ ] adjust for comments
|
||||
|
||||
## Requirements / Relations
|
||||
Link any requirements here. Other pull requests this PR is based on?
|
||||
|
||||
@@ -1,3 +1,8 @@
|
||||
# mason #
|
||||
#########
|
||||
/.mason
|
||||
/mason_packages
|
||||
|
||||
# pre compiled dependencies #
|
||||
#############################
|
||||
osrm-deps
|
||||
|
||||
+34
-19
@@ -13,7 +13,6 @@ notifications:
|
||||
branches:
|
||||
only:
|
||||
- master
|
||||
- 5.4
|
||||
|
||||
cache:
|
||||
ccache: true
|
||||
@@ -36,12 +35,12 @@ matrix:
|
||||
|
||||
# Debug Builds
|
||||
- os: linux
|
||||
compiler: "gcc-5-debug"
|
||||
addons: &gcc5
|
||||
compiler: "gcc-6-debug"
|
||||
addons: &gcc6
|
||||
apt:
|
||||
sources: ['ubuntu-toolchain-r-test']
|
||||
packages: ['g++-5', 'libbz2-dev', 'libstxxl-dev', 'libstxxl1', 'libxml2-dev', 'libzip-dev', 'lua5.1', 'liblua5.1-0-dev', 'libtbb-dev', 'libgdal-dev', 'libluabind-dev', 'libboost-all-dev', 'ccache']
|
||||
env: CCOMPILER='gcc-5' CXXCOMPILER='g++-5' BUILD_TYPE='Debug' COVERAGE=ON
|
||||
packages: ['g++-6', 'libbz2-dev', 'libstxxl-dev', 'libstxxl1', 'libxml2-dev', 'libzip-dev', 'lua5.1', 'liblua5.1-0-dev', 'libtbb-dev', 'libgdal-dev', 'libluabind-dev', 'libboost-all-dev', 'ccache']
|
||||
env: CCOMPILER='gcc-6' CXXCOMPILER='g++-6' BUILD_TYPE='Debug' TARGET_ARCH='x86_64-asan' ENABLE_COVERAGE=ON ENABLE_SANITIZER=ON BUILD_COMPONENTS=ON
|
||||
|
||||
- os: linux
|
||||
compiler: "clang-3.8-debug"
|
||||
@@ -49,7 +48,7 @@ matrix:
|
||||
apt:
|
||||
sources: ['ubuntu-toolchain-r-test']
|
||||
packages: ['libstdc++-5-dev', 'libbz2-dev', 'libstxxl-dev', 'libstxxl1', 'libxml2-dev', 'libzip-dev', 'lua5.1', 'liblua5.1-0-dev', 'libtbb-dev', 'libgdal-dev', 'libluabind-dev', 'libboost-all-dev', 'ccache']
|
||||
env: CLANG_VERSION='3.8.0' BUILD_TYPE='Debug' RUN_CLANG_FORMAT=ON
|
||||
env: CLANG_VERSION='3.8.1' CLANG_PACKAGE="clang++" BUILD_TYPE='Debug' RUN_CLANG_FORMAT=ON BUILD_COMPONENTS=ON CUCUMBER_TIMEOUT=60000
|
||||
|
||||
- os: osx
|
||||
osx_image: xcode7.3
|
||||
@@ -58,16 +57,24 @@ matrix:
|
||||
|
||||
# Release Builds
|
||||
- os: linux
|
||||
compiler: "gcc-5-release"
|
||||
addons: &gcc5
|
||||
compiler: "mason-release"
|
||||
addons:
|
||||
apt:
|
||||
sources: ['ubuntu-toolchain-r-test']
|
||||
packages: ['g++-5', 'libbz2-dev', 'libstxxl-dev', 'libstxxl1', 'libxml2-dev', 'libzip-dev', 'lua5.1', 'liblua5.1-0-dev', 'libtbb-dev', 'libgdal-dev', 'libluabind-dev', 'libboost-all-dev', 'ccache']
|
||||
env: CCOMPILER='gcc-5' CXXCOMPILER='g++-5' BUILD_TYPE='Release'
|
||||
packages: ['libstdc++-5-dev', 'ccache']
|
||||
env: BUILD_TYPE='Release' ENABLE_MASON=ON
|
||||
|
||||
- os: linux
|
||||
compiler: "gcc-5-release-i686"
|
||||
env: TARGET_ARCH='i686' CCOMPILER='gcc-5' CXXCOMPILER='g++-5' BUILD_TYPE='Release'
|
||||
compiler: "gcc-6-release"
|
||||
addons: &gcc6
|
||||
apt:
|
||||
sources: ['ubuntu-toolchain-r-test']
|
||||
packages: ['g++-6', 'libbz2-dev', 'libstxxl-dev', 'libstxxl1', 'libxml2-dev', 'libzip-dev', 'lua5.1', 'liblua5.1-0-dev', 'libtbb-dev', 'libgdal-dev', 'libluabind-dev', 'libboost-all-dev', 'ccache']
|
||||
env: CCOMPILER='gcc-6' CXXCOMPILER='g++-6' BUILD_TYPE='Release' BUILD_COMPONENTS=ON
|
||||
|
||||
- os: linux
|
||||
compiler: "gcc-6-release-i686"
|
||||
env: TARGET_ARCH='i686' CCOMPILER='gcc-6' CXXCOMPILER='g++-6' BUILD_TYPE='Release'
|
||||
|
||||
# Disabled because of CI slowness
|
||||
#- os: linux
|
||||
@@ -86,12 +93,12 @@ matrix:
|
||||
|
||||
# Shared Library
|
||||
- os: linux
|
||||
compiler: "gcc-5-release-shared"
|
||||
addons: &gcc5
|
||||
compiler: "gcc-6-release-shared"
|
||||
addons: &gcc6
|
||||
apt:
|
||||
sources: ['ubuntu-toolchain-r-test']
|
||||
packages: ['g++-5', 'libbz2-dev', 'libstxxl-dev', 'libstxxl1', 'libxml2-dev', 'libzip-dev', 'lua5.1', 'liblua5.1-0-dev', 'libtbb-dev', 'libgdal-dev', 'libluabind-dev', 'libboost-all-dev', 'ccache']
|
||||
env: CCOMPILER='gcc-5' CXXCOMPILER='g++-5' BUILD_TYPE='Release' BUILD_SHARED_LIBS=ON
|
||||
packages: ['g++-6', 'libbz2-dev', 'libstxxl-dev', 'libstxxl1', 'libxml2-dev', 'libzip-dev', 'lua5.1', 'liblua5.1-0-dev', 'libtbb-dev', 'libgdal-dev', 'libluabind-dev', 'libboost-all-dev', 'ccache']
|
||||
env: CCOMPILER='gcc-6' CXXCOMPILER='g++-6' BUILD_TYPE='Release' BUILD_SHARED_LIBS=ON BUILD_COMPONENTS=ON
|
||||
|
||||
# Disabled because CI slowness
|
||||
#- os: linux
|
||||
@@ -115,7 +122,7 @@ before_install:
|
||||
if [[ ${CLANG_VERSION:-false} != false ]]; then
|
||||
export CCOMPILER='clang'
|
||||
export CXXCOMPILER='clang++'
|
||||
CLANG_URL="https://mason-binaries.s3.amazonaws.com/${TRAVIS_OS_NAME}-x86_64/clang/${CLANG_VERSION}.tar.gz"
|
||||
CLANG_URL="https://mason-binaries.s3.amazonaws.com/${TRAVIS_OS_NAME}-x86_64/${CLANG_PACKAGE}/${CLANG_VERSION}.tar.gz"
|
||||
travis_retry wget --quiet -O - ${CLANG_URL} | tar --strip-components=1 -xz -C ${DEPS_DIR} || exit 1
|
||||
fi
|
||||
- |
|
||||
@@ -123,6 +130,7 @@ before_install:
|
||||
# implicit deps, but seem to be installed by default with recent images: libxml2 GDAL boost
|
||||
brew install libzip libstxxl lua51 luabind tbb md5sha1sum ccache
|
||||
fi
|
||||
- ccache --max-size=256M # limiting the cache's size to roughly the previous job's object sizes
|
||||
|
||||
install:
|
||||
- |
|
||||
@@ -131,7 +139,7 @@ install:
|
||||
fi
|
||||
- mkdir build && pushd build
|
||||
- export CC=${CCOMPILER} CXX=${CXXCOMPILER}
|
||||
- cmake .. -DCMAKE_BUILD_TYPE=${BUILD_TYPE} -DBUILD_SHARED_LIBS=${BUILD_SHARED_LIBS:-OFF} -DCOVERAGE=${COVERAGE:-OFF} -DBUILD_TOOLS=ON -DBUILD_COMPONENTS=ON -DENABLE_CCACHE=ON
|
||||
- cmake .. -DCMAKE_BUILD_TYPE=${BUILD_TYPE} -DENABLE_MASON=${ENABLE_MASON:-OFF} -DBUILD_SHARED_LIBS=${BUILD_SHARED_LIBS:-OFF} -DENABLE_COVERAGE=${ENABLE_COVERAGE:-OFF} -DENABLE_SANITIZER=${ENABLE_SANITIZER:-OFF} -DBUILD_TOOLS=ON -DBUILD_COMPONENTS=${BUILD_COMPONENTS:-OFF} -DENABLE_CCACHE=ON
|
||||
- echo "travis_fold:start:MAKE"
|
||||
- make osrm-extract --jobs=3
|
||||
- make --jobs=${JOBS}
|
||||
@@ -145,6 +153,13 @@ install:
|
||||
sudo ldconfig
|
||||
fi
|
||||
- popd
|
||||
- |
|
||||
if [[ ${ENABLE_MASON:-OFF} == 'ON' ]]; then
|
||||
# for mason builds we need to point the example
|
||||
# at the clang++ installed by the CMakeLists.txt automatically
|
||||
export CXX=$(./third_party/mason/mason prefix clang++ 3.8.1)/bin/clang++
|
||||
export CC=$(./third_party/mason/mason prefix clang++ 3.8.1)/bin/clang
|
||||
fi
|
||||
- mkdir example/build && pushd example/build
|
||||
- cmake .. -DCMAKE_BUILD_TYPE=${BUILD_TYPE}
|
||||
- make
|
||||
@@ -172,6 +187,6 @@ after_success:
|
||||
./scripts/format.sh # we don't want to fail just yet
|
||||
fi
|
||||
- |
|
||||
if [ -n "${COVERAGE}" ]; then
|
||||
if [ -n "${ENABLE_COVERAGE}" ]; then
|
||||
bash <(curl -s https://codecov.io/bash)
|
||||
fi
|
||||
|
||||
+46
-36
@@ -1,3 +1,43 @@
|
||||
# 5.5.0
|
||||
- Changes from 5.4.0
|
||||
- API:
|
||||
- `osrm-datastore` now accepts the parameter `--max-wait` that specifies how long it waits before aquiring a shared memory lock by force
|
||||
- Shared memory now allows for multiple clients (multiple instances of libosrm on the same segment)
|
||||
- Polyline geometries can now be requested with precision 5 as well as with precision 6
|
||||
- Profiles
|
||||
- `restrictions` is now used for namespaced restrictions and restriction exceptions (e.g. `restriction:motorcar=` as well as `except=motorcar`)
|
||||
- replaced lhs/rhs profiles by using test defined profiles
|
||||
- Handle `oneway=alternating` (routed over with penalty) separately from `oneway=reversible` (not routed over due to time dependence)
|
||||
- Handle `destination:forward`, `destination:backward`, `destination:ref:forward`, `destination:ref:backward` tags
|
||||
- Properly handle destinations on `oneway=-1` roads
|
||||
- Guidance
|
||||
- Notifications are now exposed more prominently, announcing turns onto a ferry/pushing your bike more prominently
|
||||
- Improved turn angle calculation, detecting offsets due to lanes / minor variations due to inaccuracies
|
||||
- Corrected the bearings returned for intermediate steps - requires reprocessing
|
||||
- Improved turn locations for collapsed turns
|
||||
- Trip Plugin
|
||||
- changed internal behaviour to prefer the smallest lexicographic result over the largest one
|
||||
- Bugfixes
|
||||
- fixed a bug where polyline decoding on a defective polyline could end up in out-of-bound access on a vector
|
||||
- fixed compile errors in tile unit-test framework
|
||||
- fixed a bug that could result in inconsistent behaviour when collapsing instructions
|
||||
- fixed a bug that could result in crashes when leaving a ferry directly onto a motorway ramp
|
||||
- Debug Tiles
|
||||
- Added support for turn penalties
|
||||
|
||||
# 5.4.3
|
||||
- Changes from 5.4.2
|
||||
- Bugfixes
|
||||
- #3254 Fixed a bug that could end up hiding roundabout instructions
|
||||
- #3260 fixed a bug that provided the wrong location in the arrival instruction
|
||||
|
||||
# 5.4.2
|
||||
- Changes from 5.4.1
|
||||
- Bugfixes
|
||||
- #3032 Fixed a bug that could result in emitting `invalid` as an instruction type on sliproads with mode changes
|
||||
- #3085 Fixed an outdated assertion that could throw without a cause for concern
|
||||
- #3179 Fixed a bug that could trigger an assertion in TurnInstruciton generation
|
||||
|
||||
# 5.4.1
|
||||
- Changes from 5.4.0
|
||||
- Bugfixes
|
||||
@@ -10,8 +50,11 @@
|
||||
- added left_hand_driving flag in global profile properties
|
||||
- modified turn penalty function for car profile - better fit to real data
|
||||
- return `ref` and `name` as separate fields. Do no use ref or destination as fallback for name value
|
||||
- the default profile for car now ignores HOV only roads
|
||||
- Guidance
|
||||
- Handle Access tags for lanes, only considering valid lanes in lane-guidance (think car | car | bike | car)
|
||||
- Improved the detection of non-noticeable name-changes
|
||||
- Summaries have been improved to consider references as well
|
||||
- API:
|
||||
- `annotations=true` now returns the data source id for each segment as `datasources`
|
||||
- Reduced semantic of merge to refer only to merges from a lane onto a motorway-like road
|
||||
@@ -27,44 +70,11 @@
|
||||
- Fixed a bug where post-processing instructions (e.g. left + left -> uturn) could result in false pronunciations
|
||||
- Fixes a bug where a bearing range of zero would cause exhaustive graph traversals
|
||||
- Fixes a bug where certain looped geometries could cause an infinite loop during extraction
|
||||
- Fixed a bug where some roads could be falsly identified as sliproads
|
||||
- Fixed a bug where roundabout intersections could result in breaking assertions when immediately exited
|
||||
- Infrastructure:
|
||||
- Adds a feature to limit results in nearest service with a default of 100 in `osrm-routed`
|
||||
|
||||
# 5.4.0-rc.7
|
||||
- Chages from 5.4.0-rc.6
|
||||
- Bugfixes re-introduce space between two entries in summaries
|
||||
|
||||
# 5.4.0-rc.6
|
||||
- Changes from 5.4.0-rc.5
|
||||
- Bugfixes
|
||||
- fixed a bug where polyline decoding on a defective polyline could end up in out-of-bound access on a vector
|
||||
- Guidance
|
||||
- Summaries have been improved to consider references as well
|
||||
|
||||
# 5.4.0-rc.5
|
||||
- Changes from 5.4.0-rc.4
|
||||
- Guidance
|
||||
- Improved detection of obvious name changes
|
||||
- Profiles
|
||||
- The default profile for car now excludes HOV-only routes in navigation by default
|
||||
- Bugfixes
|
||||
- Fixed a bug that could result in endless loops in combination with sliproads
|
||||
|
||||
# 5.4.0-rc.4
|
||||
- Changes from 5.4.0-rc.3
|
||||
- Bugfixes
|
||||
- Fixed a bug where roundabout intersections could result in breaking assertions when immediately exited
|
||||
|
||||
# 5.4.0-rc.3
|
||||
- Changes from 5.4.0-rc.2
|
||||
- Bugfixes
|
||||
- BREAKING: Fixed a bug where some roads could be falsly identified as sliproadsi This change requires reprocessing datasets with osrm-extract and osrm-contract
|
||||
- BREAKING: Fixed a bug that resulted in false names/ref/destination/pronunciation This change requires reprocessing datasets with osrm-extract and osrm-contract
|
||||
- `restrictions` is now used for namespaced restrictions and restriction exceptions (e.g. `restriction:motorcar=` as well as `except=motorcar`)
|
||||
- replaced lhs/rhs profiles by using test defined profiles
|
||||
- Trip Plugin
|
||||
- changed internal behaviour to prefer the smallest lexicographic result over the largest one
|
||||
|
||||
# 5.3.0
|
||||
- Changes from 5.3.0-rc.3
|
||||
- Guidance
|
||||
@@ -106,7 +116,7 @@
|
||||
- Fix bug that didn't chose minimal weights on overlapping edges
|
||||
|
||||
# 5.3.0 RC2
|
||||
Changes from 5.3.0-rc.1
|
||||
- Changes from 5.3.0-rc.1
|
||||
- Bugfixes
|
||||
- Fixes invalid checks in the lane-extraction part of the car profile
|
||||
|
||||
|
||||
+267
-136
@@ -7,9 +7,44 @@ Please create a directory and run cmake from there, passing the path to this sou
|
||||
This process created the file `CMakeCache.txt' and the directory `CMakeFiles'. Please delete them.")
|
||||
endif()
|
||||
|
||||
option(ENABLE_MASON "Use mason for dependencies" OFF)
|
||||
option(ENABLE_CCACHE "Speed up incremental rebuilds via ccache" ON)
|
||||
option(BUILD_TOOLS "Build OSRM tools" OFF)
|
||||
option(BUILD_COMPONENTS "Build osrm-components" OFF)
|
||||
option(ENABLE_ASSERTIONS "Use assertions in release mode" OFF)
|
||||
option(ENABLE_COVERAGE "Build with coverage instrumentalisation" OFF)
|
||||
option(ENABLE_SANITIZER "Use memory sanitizer for Debug build" OFF)
|
||||
option(ENABLE_LTO "Use LTO if available" ON)
|
||||
option(ENABLE_FUZZING "Fuzz testing using LLVM's libFuzzer" OFF)
|
||||
option(ENABLE_GOLD_LINKER "Use GNU gold linker if available" ON)
|
||||
|
||||
if(ENABLE_MASON)
|
||||
|
||||
# versions in use
|
||||
set(MASON_CLANG_VERSION "3.8.1")
|
||||
set(MASON_BOOST_VERSION "1.61.0")
|
||||
set(MASON_STXXL_VERSION "1.4.1")
|
||||
set(MASON_EXPAT_VERSION "2.1.1")
|
||||
set(MASON_LUA_VERSION "5.2.4")
|
||||
set(MASON_LUABIND_VERSION "e414c57bcb687bb3091b7c55bbff6947f052e46b")
|
||||
set(MASON_BZIP2_VERSION "1.0.6")
|
||||
set(MASON_TBB_VERSION "43_20150316")
|
||||
set(MASON_CCACHE_VERSION "3.3.1")
|
||||
|
||||
message(STATUS "Enabling mason")
|
||||
set(MASON_COMMAND ${CMAKE_CURRENT_SOURCE_DIR}/third_party/mason/mason)
|
||||
include(${CMAKE_CURRENT_SOURCE_DIR}/third_party/mason/mason.cmake)
|
||||
if(NOT CMAKE_CXX_COMPILER)
|
||||
mason_use(clang++ VERSION ${MASON_CLANG_VERSION})
|
||||
message(STATUS "Setting compiler to clang++ ${MASON_CLANG_VERSION} (via mason) ${MASON_PACKAGE_clang++_PREFIX}/bin/clang++")
|
||||
set(CMAKE_CXX_COMPILER "${MASON_PACKAGE_clang++_PREFIX}/bin/clang++")
|
||||
set(CMAKE_C_COMPILER "${MASON_PACKAGE_clang++_PREFIX}/bin/clang")
|
||||
endif()
|
||||
endif()
|
||||
|
||||
project(OSRM C CXX)
|
||||
set(OSRM_VERSION_MAJOR 5)
|
||||
set(OSRM_VERSION_MINOR 4)
|
||||
set(OSRM_VERSION_MINOR 5)
|
||||
set(OSRM_VERSION_PATCH 0)
|
||||
|
||||
# these two functions build up custom variables:
|
||||
@@ -46,17 +81,6 @@ if(WIN32 AND MSVC_VERSION LESS 1900)
|
||||
message(FATAL_ERROR "Building with Microsoft compiler needs Latest Visual Studio 2015 (Community or better)")
|
||||
endif()
|
||||
|
||||
option(ENABLE_CCACHE "Speed up incremental rebuilds via ccache" ON)
|
||||
option(ENABLE_JSON_LOGGING "Adds additional JSON debug logging to the response" OFF)
|
||||
option(BUILD_TOOLS "Build OSRM tools" OFF)
|
||||
option(BUILD_COMPONENTS "Build osrm-components" OFF)
|
||||
option(ENABLE_ASSERTIONS OFF)
|
||||
option(COVERAGE OFF)
|
||||
option(SANITIZER OFF)
|
||||
option(ENABLE_LTO "Use LTO if available" ON)
|
||||
option(ENABLE_FUZZING "Fuzz testing using LLVM's libFuzzer" OFF)
|
||||
option(ENABLE_GOLD_LINKER "Use GNU gold linker if available" ON)
|
||||
|
||||
include_directories(BEFORE ${CMAKE_CURRENT_BINARY_DIR}/include/)
|
||||
include_directories(BEFORE ${CMAKE_CURRENT_SOURCE_DIR}/include/)
|
||||
include_directories(SYSTEM ${CMAKE_CURRENT_SOURCE_DIR}/third_party/)
|
||||
@@ -68,7 +92,7 @@ add_custom_target(FingerPrintConfigure ALL ${CMAKE_COMMAND}
|
||||
COMMENT "Configuring revision fingerprint"
|
||||
VERBATIM)
|
||||
|
||||
set(BOOST_COMPONENTS date_time filesystem iostreams program_options regex system thread)
|
||||
set(BOOST_COMPONENTS date_time chrono filesystem iostreams program_options regex system thread unit_test_framework)
|
||||
|
||||
configure_file(
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/include/util/version.hpp.in
|
||||
@@ -100,24 +124,6 @@ add_library(osrm_extract $<TARGET_OBJECTS:EXTRACTOR> $<TARGET_OBJECTS:UTIL>)
|
||||
add_library(osrm_contract $<TARGET_OBJECTS:CONTRACTOR> $<TARGET_OBJECTS:UTIL>)
|
||||
add_library(osrm_store $<TARGET_OBJECTS:STORAGE> $<TARGET_OBJECTS:UTIL>)
|
||||
|
||||
# Check the release mode
|
||||
if(NOT CMAKE_BUILD_TYPE MATCHES Debug)
|
||||
set(CMAKE_BUILD_TYPE Release)
|
||||
endif()
|
||||
if(CMAKE_BUILD_TYPE MATCHES Debug)
|
||||
message(STATUS "Configuring OSRM in debug mode")
|
||||
set(ENABLE_ASSERTIONS ON)
|
||||
if(NOT ${CMAKE_CXX_COMPILER_ID} STREQUAL "MSVC")
|
||||
|
||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fno-inline -fno-omit-frame-pointer")
|
||||
|
||||
if("${CMAKE_CXX_COMPILER_ID}" STREQUAL "GNU")
|
||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Og -ggdb")
|
||||
endif()
|
||||
|
||||
endif()
|
||||
endif()
|
||||
|
||||
if(ENABLE_GOLD_LINKER)
|
||||
execute_process(COMMAND ${CMAKE_C_COMPILER} -fuse-ld=gold -Wl,--version ERROR_QUIET OUTPUT_VARIABLE LD_VERSION)
|
||||
if("${LD_VERSION}" MATCHES "GNU gold")
|
||||
@@ -137,8 +143,45 @@ if(ENABLE_GOLD_LINKER)
|
||||
endif()
|
||||
endif()
|
||||
|
||||
if(CMAKE_BUILD_TYPE MATCHES Release)
|
||||
# Explicitly set the build type to Release if no other type is specified
|
||||
# on the command line. Without this, cmake defaults to an unoptimized,
|
||||
# non-debug build, which almost nobody wants.
|
||||
if(NOT CMAKE_BUILD_TYPE)
|
||||
message(STATUS "No build type specified, defaulting to Release")
|
||||
set(CMAKE_BUILD_TYPE Release)
|
||||
endif()
|
||||
|
||||
if(CMAKE_BUILD_TYPE MATCHES Debug)
|
||||
message(STATUS "Configuring OSRM in debug mode")
|
||||
elseif(CMAKE_BUILD_TYPE MATCHES Release)
|
||||
message(STATUS "Configuring OSRM in release mode")
|
||||
elseif(CMAKE_BUILD_TYPE MATCHES RelWithDebInfo)
|
||||
message(STATUS "Configuring OSRM in release mode with debug flags")
|
||||
elseif(CMAKE_BUILD_TYPE MATCHES MinRelSize)
|
||||
message(STATUS "Configuring OSRM in release mode with minimized size")
|
||||
else()
|
||||
message(STATUS "Unrecognized build type - will use cmake defaults")
|
||||
endif()
|
||||
|
||||
# Additional logic for the different build types
|
||||
if(CMAKE_BUILD_TYPE MATCHES Debug OR CMAKE_BUILD_TYPE MATCHES RelWithDebInfo)
|
||||
message(STATUS "Configuring debug mode flags")
|
||||
set(ENABLE_ASSERTIONS ON)
|
||||
if(NOT ${CMAKE_CXX_COMPILER_ID} STREQUAL "MSVC")
|
||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fno-inline -fno-omit-frame-pointer")
|
||||
if("${CMAKE_CXX_COMPILER_ID}" STREQUAL "GNU")
|
||||
if (CMAKE_BUILD_TYPE MATCHES Debug)
|
||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Og -ggdb")
|
||||
else()
|
||||
# Don't override the -O parameter for RelWithDebInfo, we want an optimized build
|
||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -ggdb")
|
||||
endif()
|
||||
endif()
|
||||
endif()
|
||||
endif()
|
||||
|
||||
if(CMAKE_BUILD_TYPE MATCHES Release OR CMAKE_BUILD_TYPE MATCHES MinRelSize OR CMAKE_BUILD_TYPE MATCHES RelWithDebInfo)
|
||||
message(STATUS "Configuring release mode optimizations")
|
||||
# Check if LTO is available
|
||||
check_cxx_compiler_flag("-flto" LTO_AVAILABLE)
|
||||
if(ENABLE_LTO AND LTO_AVAILABLE)
|
||||
@@ -175,25 +218,27 @@ if(CMAKE_BUILD_TYPE MATCHES Release)
|
||||
endif()
|
||||
endif()
|
||||
|
||||
if (ENABLE_MASON AND (LTO_WORKS OR ENABLE_GOLD_LINKER))
|
||||
message(WARNING "ENABLE_MASON and ENABLE_LTO/ENABLE_GOLD_LINKER may not work on all linux systems currently")
|
||||
message(WARNING "For more details see: https://github.com/Project-OSRM/osrm-backend/issues/3202")
|
||||
endif()
|
||||
|
||||
set(MAYBE_COVERAGE_LIBRARIES "")
|
||||
if (COVERAGE)
|
||||
if (ENABLE_COVERAGE)
|
||||
if (NOT CMAKE_BUILD_TYPE MATCHES "Debug")
|
||||
message(ERROR "COVERAGE=ON only make sense with a Debug build")
|
||||
message(ERROR "ENABLE_COVERAGE=ON only make sense with a Debug build")
|
||||
endif()
|
||||
message(INFO "Enabling coverage")
|
||||
set(MAYBE_COVERAGE_LIBRARIES "gcov")
|
||||
set(MAYBE_COVERAGE_LIBRARIES "-lgcov")
|
||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -ftest-coverage -fprofile-arcs")
|
||||
endif()
|
||||
if (SANITIZER)
|
||||
if (NOT CMAKE_BUILD_TYPE MATCHES "Debug")
|
||||
message(ERROR "SANITIZER=ON only make sense with a Debug build")
|
||||
endif()
|
||||
if (ENABLE_SANITIZER)
|
||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fsanitize=address")
|
||||
endif()
|
||||
|
||||
# Configuring compilers
|
||||
if(${CMAKE_CXX_COMPILER_ID} STREQUAL "Clang")
|
||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -Wextra -pedantic -Wuninitialized -Wunreachable-code -Wstrict-overflow=2 -D_FORTIFY_SOURCE=2 -fPIC -fcolor-diagnostics")
|
||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -Wextra -pedantic -Wuninitialized -Wunreachable-code -Wstrict-overflow=2 -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=2 -fPIC -fcolor-diagnostics")
|
||||
elseif(${CMAKE_CXX_COMPILER_ID} STREQUAL "GNU")
|
||||
set(COLOR_FLAG "-fdiagnostics-color=auto")
|
||||
check_cxx_compiler_flag("-fdiagnostics-color=auto" HAS_COLOR_FLAG)
|
||||
@@ -201,7 +246,7 @@ elseif(${CMAKE_CXX_COMPILER_ID} STREQUAL "GNU")
|
||||
set(COLOR_FLAG "")
|
||||
endif()
|
||||
# using GCC
|
||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -Wextra -pedantic -Wuninitialized -Wunreachable-code -Wstrict-overflow=1 -D_FORTIFY_SOURCE=2 ${COLOR_FLAG} -fPIC")
|
||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -Wextra -pedantic -Wuninitialized -Wunreachable-code -Wstrict-overflow=1 -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=2 ${COLOR_FLAG} -fPIC")
|
||||
if(WIN32) # using mingw
|
||||
add_dependency_defines(-DWIN32)
|
||||
set(OPTIONAL_SOCKET_LIBS ws2_32 wsock32)
|
||||
@@ -211,7 +256,7 @@ elseif(${CMAKE_CXX_COMPILER_ID} STREQUAL "Intel")
|
||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -static-intel -wd10237 -Wall -ipo -fPIC")
|
||||
elseif(${CMAKE_CXX_COMPILER_ID} STREQUAL "MSVC")
|
||||
# using Visual Studio C++
|
||||
set(BOOST_COMPONENTS ${BOOST_COMPONENTS} date_time chrono zlib)
|
||||
set(BOOST_COMPONENTS ${BOOST_COMPONENTS} zlib)
|
||||
add_dependency_defines(-DBOOST_LIB_DIAGNOSTIC)
|
||||
add_dependency_defines(-D_CRT_SECURE_NO_WARNINGS)
|
||||
add_dependency_defines(-DNOMINMAX) # avoid min and max macros that can break compilation
|
||||
@@ -249,6 +294,8 @@ endif()
|
||||
|
||||
# Configuring other platform dependencies
|
||||
if(APPLE)
|
||||
set(CMAKE_OSX_DEPLOYMENT_TARGET "10.10")
|
||||
execute_process(COMMAND xcrun --sdk macosx --show-sdk-path OUTPUT_VARIABLE CMAKE_OSX_SYSROOT OUTPUT_STRIP_TRAILING_WHITESPACE)
|
||||
set(CMAKE_OSX_ARCHITECTURES "x86_64")
|
||||
message(STATUS "Set Architecture to x64 on OS X")
|
||||
exec_program(uname ARGS -v OUTPUT_VARIABLE DARWIN_VERSION)
|
||||
@@ -263,61 +310,170 @@ if(APPLE)
|
||||
endif()
|
||||
|
||||
if(UNIX AND NOT APPLE)
|
||||
set(MAYBE_RT_LIBRARY rt)
|
||||
set(MAYBE_RT_LIBRARY -lrt)
|
||||
endif()
|
||||
|
||||
# Disallow deprecated protozero APIs
|
||||
add_definitions(-DPROTOZERO_STRICT_API)
|
||||
|
||||
find_package(Threads REQUIRED)
|
||||
|
||||
# if mason is enabled no find_package calls are made
|
||||
# to ensure that we are only compiling and linking against
|
||||
# fully portable mason packages
|
||||
if(ENABLE_MASON)
|
||||
message(STATUS "Installing dependencies via mason")
|
||||
|
||||
set(Boost_USE_STATIC_LIBS ON)
|
||||
mason_use(boost VERSION ${MASON_BOOST_VERSION} HEADER_ONLY)
|
||||
add_dependency_includes(${MASON_PACKAGE_boost_INCLUDE_DIRS})
|
||||
mason_use(boost_libfilesystem VERSION ${MASON_BOOST_VERSION})
|
||||
set(Boost_FILESYSTEM_LIBRARY ${MASON_PACKAGE_boost_libfilesystem_STATIC_LIBS})
|
||||
mason_use(boost_libiostreams VERSION ${MASON_BOOST_VERSION})
|
||||
set(Boost_IOSTREAMS_LIBRARY ${MASON_PACKAGE_boost_libiostreams_STATIC_LIBS})
|
||||
mason_use(boost_libprogram_options VERSION ${MASON_BOOST_VERSION})
|
||||
set(Boost_PROGRAM_OPTIONS_LIBRARY ${MASON_PACKAGE_boost_libprogram_options_STATIC_LIBS})
|
||||
mason_use(boost_libregex VERSION ${MASON_BOOST_VERSION})
|
||||
set(Boost_REGEX_LIBRARY ${MASON_PACKAGE_boost_libregex_STATIC_LIBS})
|
||||
mason_use(boost_libtest VERSION ${MASON_BOOST_VERSION})
|
||||
set(Boost_UNIT_TEST_FRAMEWORK_LIBRARY ${MASON_PACKAGE_boost_libtest_STATIC_LIBS})
|
||||
mason_use(boost_libdate_time VERSION ${MASON_BOOST_VERSION})
|
||||
set(Boost_DATE_TIME_LIBRARY ${MASON_PACKAGE_boost_libdate_time_STATIC_LIBS})
|
||||
mason_use(boost_libthread VERSION ${MASON_BOOST_VERSION})
|
||||
set(Boost_THREAD_LIBRARY ${MASON_PACKAGE_boost_libthread_STATIC_LIBS})
|
||||
mason_use(boost_libsystem VERSION ${MASON_BOOST_VERSION})
|
||||
set(Boost_SYSTEM_LIBRARY ${MASON_PACKAGE_boost_libsystem_STATIC_LIBS})
|
||||
|
||||
mason_use(stxxl VERSION ${MASON_STXXL_VERSION})
|
||||
add_dependency_includes(${MASON_PACKAGE_stxxl_INCLUDE_DIRS})
|
||||
set(STXXL_LIBRARY ${MASON_PACKAGE_stxxl_STATIC_LIBS})
|
||||
|
||||
mason_use(expat VERSION ${MASON_EXPAT_VERSION})
|
||||
add_dependency_includes(${MASON_PACKAGE_expat_INCLUDE_DIRS})
|
||||
set(EXPAT_LIBRARIES ${MASON_PACKAGE_expat_STATIC_LIBS})
|
||||
|
||||
mason_use(lua VERSION ${MASON_LUA_VERSION})
|
||||
add_dependency_includes(${MASON_PACKAGE_lua_INCLUDE_DIRS})
|
||||
set(USED_LUA_LIBRARIES ${MASON_PACKAGE_lua_STATIC_LIBS})
|
||||
|
||||
mason_use(luabind_lua524 VERSION ${MASON_LUABIND_VERSION})
|
||||
add_dependency_includes(${MASON_PACKAGE_luabind_lua524_INCLUDE_DIRS})
|
||||
set(LUABIND_LIBRARY ${MASON_PACKAGE_luabind_lua524_STATIC_LIBS})
|
||||
|
||||
mason_use(bzip2 VERSION ${MASON_BZIP2_VERSION})
|
||||
add_dependency_includes(${MASON_PACKAGE_bzip2_INCLUDE_DIRS})
|
||||
set(BZIP2_LIBRARIES ${MASON_PACKAGE_bzip2_STATIC_LIBS})
|
||||
|
||||
mason_use(tbb VERSION ${MASON_TBB_VERSION})
|
||||
add_dependency_includes(${MASON_PACKAGE_tbb_INCLUDE_DIRS})
|
||||
set(TBB_LIBRARIES ${MASON_PACKAGE_tbb_LDFLAGS})
|
||||
|
||||
if(NOT MASON_PACKAGE_tbb_LIBRARY_DIRS)
|
||||
message(FATAL_ERROR "MASON_PACKAGE_tbb_LIBRARY_DIRS is empty, rpath will not work")
|
||||
endif()
|
||||
foreach(libpath ${MASON_PACKAGE_tbb_LIBRARY_DIRS})
|
||||
if(UNIX AND NOT APPLE)
|
||||
set(LINKER_FLAGS "-Wl,-rpath,${libpath}")
|
||||
elseif(APPLE)
|
||||
set(LINKER_FLAGS "-Wl,-rpath, -Wl,${libpath}")
|
||||
endif()
|
||||
set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} ${LINKER_FLAGS}")
|
||||
set(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} ${LINKER_FLAGS}")
|
||||
set(CMAKE_MODULE_LINKER_FLAGS "${CMAKE_MODULE_LINKER_FLAGS} ${LINKER_FLAGS}")
|
||||
file(GLOB TBBGlob ${libpath}/*.*)
|
||||
install(FILES ${TBBGlob} DESTINATION lib)
|
||||
endforeach()
|
||||
|
||||
if(BUILD_COMPONENTS)
|
||||
message(FATAL_ERROR "BUILD_COMPONENTS is not supported with ENABLE_MASON")
|
||||
endif()
|
||||
|
||||
# current mason packages target -D_GLIBCXX_USE_CXX11_ABI=0
|
||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -D_GLIBCXX_USE_CXX11_ABI=0")
|
||||
|
||||
if(ENABLE_CCACHE)
|
||||
mason_use(ccache VERSION ${MASON_CCACHE_VERSION})
|
||||
message(STATUS "Setting ccache to ccache ${MASON_CCACHE_VERSION} (via mason) ${MASON_PACKAGE_ccache_PREFIX}/bin/ccache")
|
||||
message(STATUS "Using ccache to speed up incremental builds")
|
||||
set_property(GLOBAL PROPERTY RULE_LAUNCH_COMPILE ${MASON_PACKAGE_ccache_PREFIX}/bin/ccache)
|
||||
set_property(GLOBAL PROPERTY RULE_LAUNCH_LINK ${MASON_PACKAGE_ccache_PREFIX}/bin/ccache)
|
||||
set(ENV{CCACHE_CPP2} "true")
|
||||
endif()
|
||||
|
||||
else()
|
||||
|
||||
find_package(Boost 1.49.0 REQUIRED COMPONENTS ${BOOST_COMPONENTS})
|
||||
add_dependency_includes(${Boost_INCLUDE_DIRS})
|
||||
|
||||
find_package(TBB REQUIRED)
|
||||
add_dependency_includes(${TBB_INCLUDE_DIR})
|
||||
if(WIN32 AND CMAKE_BUILD_TYPE MATCHES Debug)
|
||||
set(TBB_LIBRARIES ${TBB_DEBUG_LIBRARIES})
|
||||
endif()
|
||||
find_package(Luabind REQUIRED)
|
||||
add_dependency_includes(${LUABIND_INCLUDE_DIR})
|
||||
set(USED_LUA_LIBRARIES ${LUA_LIBRARY})
|
||||
add_dependency_includes(${LUA_INCLUDE_DIR})
|
||||
|
||||
find_package(EXPAT REQUIRED)
|
||||
add_dependency_includes(${EXPAT_INCLUDE_DIRS})
|
||||
|
||||
find_package(STXXL REQUIRED)
|
||||
add_dependency_includes(${STXXL_INCLUDE_DIR})
|
||||
|
||||
find_package(BZip2 REQUIRED)
|
||||
add_dependency_includes(${BZIP2_INCLUDE_DIR})
|
||||
|
||||
if(BUILD_COMPONENTS)
|
||||
find_package(GDAL)
|
||||
endif()
|
||||
|
||||
# add a target to generate API documentation with Doxygen
|
||||
find_package(Doxygen)
|
||||
if(DOXYGEN_FOUND)
|
||||
configure_file(${CMAKE_CURRENT_SOURCE_DIR}/Doxyfile.in ${CMAKE_CURRENT_BINARY_DIR}/Doxyfile @ONLY)
|
||||
add_custom_target(doc
|
||||
${DOXYGEN_EXECUTABLE} ${CMAKE_CURRENT_BINARY_DIR}/Doxyfile
|
||||
WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
|
||||
COMMENT "Generating API documentation with Doxygen" VERBATIM
|
||||
)
|
||||
endif()
|
||||
|
||||
# prefix compilation with ccache by default if available and on clang or gcc
|
||||
if(ENABLE_CCACHE AND (${CMAKE_CXX_COMPILER_ID} STREQUAL "Clang" OR ${CMAKE_CXX_COMPILER_ID} STREQUAL "GNU"))
|
||||
find_program(CCACHE_FOUND ccache)
|
||||
if(CCACHE_FOUND)
|
||||
message(STATUS "Using ccache to speed up incremental builds")
|
||||
set_property(GLOBAL PROPERTY RULE_LAUNCH_COMPILE ccache)
|
||||
set_property(GLOBAL PROPERTY RULE_LAUNCH_LINK ccache)
|
||||
set(ENV{CCACHE_CPP2} "true")
|
||||
endif()
|
||||
endif()
|
||||
|
||||
endif()
|
||||
|
||||
# even with mason builds we want to link to system zlib
|
||||
# to ensure that osrm binaries play well with other binaries like nodejs
|
||||
find_package(ZLIB REQUIRED)
|
||||
add_dependency_includes(${ZLIB_INCLUDE_DIRS})
|
||||
|
||||
list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/third_party/libosmium/cmake")
|
||||
set(OSMIUM_INCLUDE_DIR "${CMAKE_CURRENT_SOURCE_DIR}/third_party/libosmium/include")
|
||||
find_package(Osmium REQUIRED COMPONENTS io)
|
||||
add_dependency_includes(${OSMIUM_INCLUDE_DIR})
|
||||
|
||||
|
||||
find_package(Boost 1.49.0 REQUIRED COMPONENTS ${BOOST_COMPONENTS})
|
||||
|
||||
# collect a subset of the boost libraries needed
|
||||
# by libosrm
|
||||
foreach(lib ${Boost_LIBRARIES})
|
||||
if(NOT WIN32)
|
||||
if(lib MATCHES filesystem OR lib MATCHES thread OR lib MATCHES iostreams OR lib MATCHES system)
|
||||
list(APPEND BOOST_ENGINE_LIBRARIES "${lib}")
|
||||
endif()
|
||||
else()
|
||||
list(APPEND BOOST_ENGINE_LIBRARIES "${lib}")
|
||||
endif()
|
||||
endforeach(lib)
|
||||
include_directories(SYSTEM ${OSMIUM_INCLUDE_DIR})
|
||||
|
||||
if(NOT WIN32 AND NOT Boost_USE_STATIC_LIBS)
|
||||
add_dependency_defines(-DBOOST_TEST_DYN_LINK)
|
||||
endif()
|
||||
|
||||
|
||||
if(NOT WIN32 AND NOT Boost_USE_STATIC_LIBS)
|
||||
add_dependency_defines(-DBOOST_TEST_DYN_LINK)
|
||||
endif()
|
||||
|
||||
add_dependency_defines(-DBOOST_SPIRIT_USE_PHOENIX_V3)
|
||||
add_dependency_defines(-DBOOST_RESULT_OF_USE_DECLTYPE)
|
||||
add_dependency_defines(-DBOOST_FILESYSTEM_NO_DEPRECATED)
|
||||
add_dependency_includes(${Boost_INCLUDE_DIRS})
|
||||
|
||||
find_package(Threads REQUIRED)
|
||||
|
||||
find_package(TBB REQUIRED)
|
||||
add_dependency_includes(${TBB_INCLUDE_DIR})
|
||||
if(WIN32 AND CMAKE_BUILD_TYPE MATCHES Debug)
|
||||
set(TBB_LIBRARIES ${TBB_DEBUG_LIBRARIES})
|
||||
endif()
|
||||
|
||||
find_package(Luabind REQUIRED)
|
||||
include(check_luabind)
|
||||
add_dependency_includes(${LUABIND_INCLUDE_DIR})
|
||||
|
||||
set(USED_LUA_LIBRARIES ${LUA_LIBRARY})
|
||||
if(LUAJIT_FOUND)
|
||||
set(USED_LUA_LIBRARIES, LUAJIT_LIBRARIES)
|
||||
endif()
|
||||
add_dependency_includes(${LUA_INCLUDE_DIR})
|
||||
|
||||
find_package(EXPAT REQUIRED)
|
||||
add_dependency_includes(${EXPAT_INCLUDE_DIRS})
|
||||
|
||||
find_package(STXXL REQUIRED)
|
||||
add_dependency_includes(${STXXL_INCLUDE_DIR})
|
||||
|
||||
set(OpenMP_FIND_QUIETLY ON)
|
||||
find_package(OpenMP)
|
||||
@@ -326,29 +482,32 @@ if(OPENMP_FOUND)
|
||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${OpenMP_CXX_FLAGS}")
|
||||
endif()
|
||||
|
||||
find_package(BZip2 REQUIRED)
|
||||
add_dependency_includes(${BZIP2_INCLUDE_DIR})
|
||||
|
||||
find_package(ZLIB REQUIRED)
|
||||
add_dependency_includes(${ZLIB_INCLUDE_DIRS})
|
||||
|
||||
if (ENABLE_JSON_LOGGING)
|
||||
message(STATUS "Enabling json logging")
|
||||
add_dependency_defines(-DENABLE_JSON_LOGGING)
|
||||
endif()
|
||||
|
||||
add_definitions(${OSRM_DEFINES})
|
||||
include_directories(SYSTEM ${OSRM_INCLUDE_PATHS})
|
||||
|
||||
set(BOOST_BASE_LIBRARIES
|
||||
${Boost_DATE_TIME_LIBRARY}
|
||||
${Boost_CHRONO_LIBRARY}
|
||||
${Boost_FILESYSTEM_LIBRARY}
|
||||
${Boost_IOSTREAMS_LIBRARY}
|
||||
${Boost_THREAD_LIBRARY}
|
||||
${Boost_SYSTEM_LIBRARY})
|
||||
|
||||
set(BOOST_ENGINE_LIBRARIES
|
||||
${Boost_ZLIB_LIBRARY}
|
||||
${Boost_REGEX_LIBRARY}
|
||||
${BOOST_BASE_LIBRARIES})
|
||||
|
||||
# Binaries
|
||||
target_link_libraries(osrm-datastore osrm_store ${Boost_LIBRARIES})
|
||||
target_link_libraries(osrm-extract osrm_extract ${Boost_LIBRARIES})
|
||||
target_link_libraries(osrm-contract ${Boost_LIBRARIES} ${TBB_LIBRARIES} osrm_contract)
|
||||
target_link_libraries(osrm-routed osrm ${Boost_LIBRARIES} ${OPTIONAL_SOCKET_LIBS} ${ZLIB_LIBRARY})
|
||||
target_link_libraries(osrm-datastore osrm_store ${Boost_PROGRAM_OPTIONS_LIBRARY} ${BOOST_BASE_LIBRARIES})
|
||||
target_link_libraries(osrm-extract osrm_extract ${Boost_PROGRAM_OPTIONS_LIBRARY} ${Boost_REGEX_LIBRARY} ${BOOST_BASE_LIBRARIES})
|
||||
target_link_libraries(osrm-contract ${Boost_PROGRAM_OPTIONS_LIBRARY} ${BOOST_BASE_LIBRARIES} ${TBB_LIBRARIES} osrm_contract)
|
||||
target_link_libraries(osrm-routed osrm ${Boost_PROGRAM_OPTIONS_LIBRARY} ${BOOST_ENGINE_LIBRARIES} ${OPTIONAL_SOCKET_LIBS} ${ZLIB_LIBRARY})
|
||||
|
||||
set(EXTRACTOR_LIBRARIES
|
||||
${BZIP2_LIBRARIES}
|
||||
${Boost_LIBRARIES}
|
||||
${Boost_REGEX_LIBRARY}
|
||||
${BOOST_BASE_LIBRARIES}
|
||||
${CMAKE_THREAD_LIBS_INIT}
|
||||
${EXPAT_LIBRARIES}
|
||||
${LUABIND_LIBRARY}
|
||||
@@ -359,7 +518,7 @@ set(EXTRACTOR_LIBRARIES
|
||||
${ZLIB_LIBRARY}
|
||||
${MAYBE_COVERAGE_LIBRARIES})
|
||||
set(CONTRACTOR_LIBRARIES
|
||||
${Boost_LIBRARIES}
|
||||
${BOOST_BASE_LIBRARIES}
|
||||
${CMAKE_THREAD_LIBS_INIT}
|
||||
${LUABIND_LIBRARY}
|
||||
${USED_LUA_LIBRARIES}
|
||||
@@ -375,13 +534,13 @@ set(ENGINE_LIBRARIES
|
||||
${MAYBE_COVERAGE_LIBRARIES}
|
||||
${ZLIB_LIBRARY})
|
||||
set(STORAGE_LIBRARIES
|
||||
${Boost_LIBRARIES}
|
||||
${BOOST_BASE_LIBRARIES}
|
||||
${CMAKE_THREAD_LIBS_INIT}
|
||||
${TBB_LIBRARIES}
|
||||
${MAYBE_RT_LIBRARY}
|
||||
${MAYBE_COVERAGE_LIBRARIES})
|
||||
set(UTIL_LIBRARIES
|
||||
${Boost_LIBRARIES}
|
||||
${BOOST_BASE_LIBRARIES}
|
||||
${CMAKE_THREAD_LIBS_INIT}
|
||||
${STXXL_LIBRARY}
|
||||
${TBB_LIBRARIES}
|
||||
@@ -393,12 +552,11 @@ target_link_libraries(osrm_extract ${EXTRACTOR_LIBRARIES})
|
||||
target_link_libraries(osrm_store ${STORAGE_LIBRARIES})
|
||||
|
||||
if(BUILD_COMPONENTS)
|
||||
find_package(GDAL)
|
||||
if(GDAL_FOUND)
|
||||
add_executable(osrm-components src/tools/components.cpp $<TARGET_OBJECTS:UTIL>)
|
||||
target_link_libraries(osrm-components ${TBB_LIBRARIES})
|
||||
include_directories(SYSTEM ${GDAL_INCLUDE_DIR})
|
||||
target_link_libraries(osrm-components ${GDAL_LIBRARIES} ${Boost_LIBRARIES})
|
||||
target_link_libraries(osrm-components ${GDAL_LIBRARIES} ${BOOST_BASE_LIBRARIES})
|
||||
install(TARGETS osrm-components DESTINATION bin)
|
||||
else()
|
||||
message(WARNING "libgdal and/or development headers not found")
|
||||
@@ -408,14 +566,14 @@ endif()
|
||||
if(BUILD_TOOLS)
|
||||
message(STATUS "Activating OSRM internal tools")
|
||||
add_executable(osrm-io-benchmark src/tools/io-benchmark.cpp $<TARGET_OBJECTS:UTIL>)
|
||||
target_link_libraries(osrm-io-benchmark ${Boost_LIBRARIES})
|
||||
target_link_libraries(osrm-io-benchmark ${BOOST_BASE_LIBRARIES})
|
||||
add_executable(osrm-unlock-all src/tools/unlock_all_mutexes.cpp $<TARGET_OBJECTS:UTIL>)
|
||||
target_link_libraries(osrm-unlock-all ${Boost_LIBRARIES} ${CMAKE_THREAD_LIBS_INIT})
|
||||
target_link_libraries(osrm-unlock-all ${BOOST_BASE_LIBRARIES} ${CMAKE_THREAD_LIBS_INIT})
|
||||
if(UNIX AND NOT APPLE)
|
||||
target_link_libraries(osrm-unlock-all rt)
|
||||
endif()
|
||||
add_executable(osrm-springclean src/tools/springclean.cpp $<TARGET_OBJECTS:UTIL>)
|
||||
target_link_libraries(osrm-springclean ${Boost_LIBRARIES})
|
||||
target_link_libraries(osrm-springclean ${BOOST_BASE_LIBRARIES})
|
||||
|
||||
install(TARGETS osrm-io-benchmark DESTINATION bin)
|
||||
install(TARGETS osrm-unlock-all DESTINATION bin)
|
||||
@@ -460,13 +618,8 @@ install(TARGETS osrm_extract DESTINATION lib)
|
||||
install(TARGETS osrm_contract DESTINATION lib)
|
||||
install(TARGETS osrm_store DESTINATION lib)
|
||||
|
||||
list(GET ENGINE_LIBRARIES 1 ENGINE_LIBRARY_FIRST)
|
||||
foreach(lib ${ENGINE_LIBRARIES})
|
||||
get_filename_component(ENGINE_LIBRARY_PATH "${ENGINE_LIBRARY_FIRST}" PATH)
|
||||
get_filename_component(ENGINE_LIBRARY_NAME "${lib}" NAME_WE)
|
||||
string(REPLACE "lib" "" ENGINE_LIBRARY_NAME ${ENGINE_LIBRARY_NAME})
|
||||
string(REPLACE "-l" "" ENGINE_LIBRARY_NAME ${ENGINE_LIBRARY_NAME})
|
||||
set(ENGINE_LIBRARY_LISTING "${ENGINE_LIBRARY_LISTING} -L${ENGINE_LIBRARY_PATH} -l${ENGINE_LIBRARY_NAME}")
|
||||
set(ENGINE_LIBRARY_LISTING "${ENGINE_LIBRARY_LISTING} ${lib}")
|
||||
endforeach()
|
||||
|
||||
if(BUILD_DEBIAN_PACKAGE)
|
||||
@@ -486,28 +639,6 @@ JOIN("-I${OSRM_INCLUDE_PATHS}" " -I" OSRM_INCLUDE_PATHS_STRING)
|
||||
configure_file(${CMAKE_CURRENT_SOURCE_DIR}/cmake/pkgconfig.in libosrm.pc @ONLY)
|
||||
install(FILES ${PROJECT_BINARY_DIR}/libosrm.pc DESTINATION lib/pkgconfig)
|
||||
|
||||
# add a target to generate API documentation with Doxygen
|
||||
find_package(Doxygen)
|
||||
if(DOXYGEN_FOUND)
|
||||
configure_file(${CMAKE_CURRENT_SOURCE_DIR}/Doxyfile.in ${CMAKE_CURRENT_BINARY_DIR}/Doxyfile @ONLY)
|
||||
add_custom_target(doc
|
||||
${DOXYGEN_EXECUTABLE} ${CMAKE_CURRENT_BINARY_DIR}/Doxyfile
|
||||
WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
|
||||
COMMENT "Generating API documentation with Doxygen" VERBATIM
|
||||
)
|
||||
endif()
|
||||
|
||||
# prefix compilation with ccache by default if available and on clang or gcc
|
||||
if(ENABLE_CCACHE AND (${CMAKE_CXX_COMPILER_ID} STREQUAL "Clang" OR ${CMAKE_CXX_COMPILER_ID} STREQUAL "GNU"))
|
||||
find_program(CCACHE_FOUND ccache)
|
||||
if(CCACHE_FOUND)
|
||||
message(STATUS "Using ccache to speed up incremental builds")
|
||||
set_property(GLOBAL PROPERTY RULE_LAUNCH_COMPILE ccache)
|
||||
set_property(GLOBAL PROPERTY RULE_LAUNCH_LINK ccache)
|
||||
set(ENV{CCACHE_CPP2} "true")
|
||||
endif()
|
||||
endif()
|
||||
|
||||
# uninstall target
|
||||
configure_file(
|
||||
"${CMAKE_CURRENT_SOURCE_DIR}/cmake/cmake_uninstall.cmake.in"
|
||||
|
||||
+7
-7
@@ -8,18 +8,18 @@ SET PROJECT_DIR=%CD%
|
||||
ECHO PROJECT_DIR^: %PROJECT_DIR%
|
||||
ECHO NUMBER_OF_PROCESSORS^: %NUMBER_OF_PROCESSORS%
|
||||
ECHO cmake^: && cmake --version
|
||||
IF %ERRORLEVEL% NEQ 0 ECHO CMAKE not found GOTO ERROR
|
||||
IF %ERRORLEVEL% NEQ 0 ECHO CMAKE not found && GOTO CMAKE_NOT_OK
|
||||
|
||||
FOR /F %%G IN ("--version") DO cmake %%G 2>&1 | findstr /C:"3.5.0" > nul && goto CMAKE_NOT_OK
|
||||
GOTO CMAKE_OK
|
||||
cmake --version | findstr /C:"3.7.0" && GOTO CMAKE_OK
|
||||
|
||||
:CMAKE_NOT_OK
|
||||
ECHO CMAKE NOT OK - downloading new CMake
|
||||
IF NOT EXIST cm.zip powershell Invoke-WebRequest https://cmake.org/files/v3.5/cmake-3.5.1-win32-x86.zip -OutFile $env:PROJECT_DIR\cm.zip
|
||||
SET CMAKE_VERSION=3.7.0-rc2
|
||||
ECHO CMAKE NOT OK - downloading new CMake %CMAKE_VERSION%
|
||||
IF NOT EXIST cm.zip powershell Invoke-WebRequest https://cmake.org/files/v3.7/cmake-%CMAKE_VERSION%-win32-x86.zip -OutFile $env:PROJECT_DIR\cm.zip
|
||||
IF %ERRORLEVEL% NEQ 0 GOTO ERROR
|
||||
IF NOT EXIST cmake-3.5.1-win32-x86 7z -y x cm.zip | %windir%\system32\FIND "ing archive"
|
||||
IF NOT EXIST cmake-%CMAKE_VERSION%-win32-x86 7z -y x cm.zip | %windir%\system32\FIND "ing archive"
|
||||
IF %ERRORLEVEL% NEQ 0 GOTO ERROR
|
||||
SET PATH=%PROJECT_DIR%\cmake-3.5.1-win32-x86\bin;%PATH%
|
||||
SET PATH=%PROJECT_DIR%\cmake-%CMAKE_VERSION%-win32-x86\bin;%PATH%
|
||||
|
||||
:CMAKE_OK
|
||||
ECHO CMAKE_OK
|
||||
|
||||
+1
-2
@@ -11,8 +11,7 @@ SET CONFIGURATION=Release
|
||||
FOR /F "tokens=*" %%i in ('git rev-parse --abbrev-ref HEAD') do SET APPVEYOR_REPO_BRANCH=%%i
|
||||
ECHO APPVEYOR_REPO_BRANCH^: %APPVEYOR_REPO_BRANCH%
|
||||
|
||||
::SET PATH=C:\mb\windows-builds-64\tmp-bin\cmake-3.5.0-win32-x86\bin;%PATH%
|
||||
SET PATH=C:\mb\windows-builds-64\tmp-bin\cmake-3.5.1-win32-x86\bin;%PATH%
|
||||
SET PATH=C:\mb\windows-builds-64\tmp-bin\cmake-3.7.0-rc2-win32-x86\bin;%PATH%
|
||||
SET PATH=C:\Program Files\7-Zip;%PATH%
|
||||
|
||||
powershell Set-ExecutionPolicy -Scope CurrentUser -ExecutionPolicy Unrestricted -Force
|
||||
|
||||
@@ -0,0 +1,188 @@
|
||||
# Distributed under the OSI-approved BSD 3-Clause License. See accompanying
|
||||
# file Copyright.txt or https://cmake.org/licensing for details.
|
||||
|
||||
#.rst:
|
||||
# FindLua
|
||||
# -------
|
||||
#
|
||||
#
|
||||
#
|
||||
# Locate Lua library This module defines
|
||||
#
|
||||
# ::
|
||||
#
|
||||
# LUA_FOUND - if false, do not try to link to Lua
|
||||
# LUA_LIBRARIES - both lua and lualib
|
||||
# LUA_INCLUDE_DIR - where to find lua.h
|
||||
# LUA_VERSION_STRING - the version of Lua found
|
||||
# LUA_VERSION_MAJOR - the major version of Lua
|
||||
# LUA_VERSION_MINOR - the minor version of Lua
|
||||
# LUA_VERSION_PATCH - the patch version of Lua
|
||||
#
|
||||
#
|
||||
#
|
||||
# Note that the expected include convention is
|
||||
#
|
||||
# ::
|
||||
#
|
||||
# #include "lua.h"
|
||||
#
|
||||
# and not
|
||||
#
|
||||
# ::
|
||||
#
|
||||
# #include <lua/lua.h>
|
||||
#
|
||||
# This is because, the lua location is not standardized and may exist in
|
||||
# locations other than lua/
|
||||
|
||||
unset(_lua_include_subdirs)
|
||||
unset(_lua_library_names)
|
||||
unset(_lua_append_versions)
|
||||
|
||||
# this is a function only to have all the variables inside go away automatically
|
||||
function(_lua_set_version_vars)
|
||||
set(LUA_VERSIONS5 5.3 5.2 5.1 5.0)
|
||||
|
||||
if (Lua_FIND_VERSION_EXACT)
|
||||
if (Lua_FIND_VERSION_COUNT GREATER 1)
|
||||
set(_lua_append_versions ${Lua_FIND_VERSION_MAJOR}.${Lua_FIND_VERSION_MINOR})
|
||||
endif ()
|
||||
elseif (Lua_FIND_VERSION)
|
||||
# once there is a different major version supported this should become a loop
|
||||
if (NOT Lua_FIND_VERSION_MAJOR GREATER 5)
|
||||
if (Lua_FIND_VERSION_COUNT EQUAL 1)
|
||||
set(_lua_append_versions ${LUA_VERSIONS5})
|
||||
else ()
|
||||
foreach (subver IN LISTS LUA_VERSIONS5)
|
||||
if (NOT subver VERSION_LESS ${Lua_FIND_VERSION})
|
||||
list(APPEND _lua_append_versions ${subver})
|
||||
endif ()
|
||||
endforeach ()
|
||||
endif ()
|
||||
endif ()
|
||||
else ()
|
||||
# once there is a different major version supported this should become a loop
|
||||
set(_lua_append_versions ${LUA_VERSIONS5})
|
||||
endif ()
|
||||
|
||||
list(APPEND _lua_include_subdirs "include/lua" "include")
|
||||
|
||||
foreach (ver IN LISTS _lua_append_versions)
|
||||
string(REGEX MATCH "^([0-9]+)\\.([0-9]+)$" _ver "${ver}")
|
||||
list(APPEND _lua_include_subdirs
|
||||
include/lua${CMAKE_MATCH_1}${CMAKE_MATCH_2}
|
||||
include/lua${CMAKE_MATCH_1}.${CMAKE_MATCH_2}
|
||||
include/lua-${CMAKE_MATCH_1}.${CMAKE_MATCH_2}
|
||||
)
|
||||
list(APPEND _lua_library_names
|
||||
lua${CMAKE_MATCH_1}${CMAKE_MATCH_2}
|
||||
lua${CMAKE_MATCH_1}.${CMAKE_MATCH_2}
|
||||
lua-${CMAKE_MATCH_1}.${CMAKE_MATCH_2}
|
||||
lua.${CMAKE_MATCH_1}.${CMAKE_MATCH_2}
|
||||
)
|
||||
endforeach ()
|
||||
|
||||
set(_lua_include_subdirs "${_lua_include_subdirs}" PARENT_SCOPE)
|
||||
set(_lua_library_names "${_lua_library_names}" PARENT_SCOPE)
|
||||
set(_lua_append_versions "${_lua_append_versions}" PARENT_SCOPE)
|
||||
endfunction(_lua_set_version_vars)
|
||||
|
||||
function(_lua_check_header_version _hdr_file)
|
||||
# At least 5.[012] have different ways to express the version
|
||||
# so all of them need to be tested. Lua 5.2 defines LUA_VERSION
|
||||
# and LUA_RELEASE as joined by the C preprocessor, so avoid those.
|
||||
file(STRINGS "${_hdr_file}" lua_version_strings
|
||||
REGEX "^#define[ \t]+LUA_(RELEASE[ \t]+\"Lua [0-9]|VERSION([ \t]+\"Lua [0-9]|_[MR])).*")
|
||||
|
||||
string(REGEX REPLACE ".*;#define[ \t]+LUA_VERSION_MAJOR[ \t]+\"([0-9])\"[ \t]*;.*" "\\1" LUA_VERSION_MAJOR ";${lua_version_strings};")
|
||||
if (LUA_VERSION_MAJOR MATCHES "^[0-9]+$")
|
||||
string(REGEX REPLACE ".*;#define[ \t]+LUA_VERSION_MINOR[ \t]+\"([0-9])\"[ \t]*;.*" "\\1" LUA_VERSION_MINOR ";${lua_version_strings};")
|
||||
string(REGEX REPLACE ".*;#define[ \t]+LUA_VERSION_RELEASE[ \t]+\"([0-9])\"[ \t]*;.*" "\\1" LUA_VERSION_PATCH ";${lua_version_strings};")
|
||||
set(LUA_VERSION_STRING "${LUA_VERSION_MAJOR}.${LUA_VERSION_MINOR}.${LUA_VERSION_PATCH}")
|
||||
else ()
|
||||
string(REGEX REPLACE ".*;#define[ \t]+LUA_RELEASE[ \t]+\"Lua ([0-9.]+)\"[ \t]*;.*" "\\1" LUA_VERSION_STRING ";${lua_version_strings};")
|
||||
if (NOT LUA_VERSION_STRING MATCHES "^[0-9.]+$")
|
||||
string(REGEX REPLACE ".*;#define[ \t]+LUA_VERSION[ \t]+\"Lua ([0-9.]+)\"[ \t]*;.*" "\\1" LUA_VERSION_STRING ";${lua_version_strings};")
|
||||
endif ()
|
||||
string(REGEX REPLACE "^([0-9]+)\\.[0-9.]*$" "\\1" LUA_VERSION_MAJOR "${LUA_VERSION_STRING}")
|
||||
string(REGEX REPLACE "^[0-9]+\\.([0-9]+)[0-9.]*$" "\\1" LUA_VERSION_MINOR "${LUA_VERSION_STRING}")
|
||||
string(REGEX REPLACE "^[0-9]+\\.[0-9]+\\.([0-9]).*" "\\1" LUA_VERSION_PATCH "${LUA_VERSION_STRING}")
|
||||
endif ()
|
||||
foreach (ver IN LISTS _lua_append_versions)
|
||||
if (ver STREQUAL "${LUA_VERSION_MAJOR}.${LUA_VERSION_MINOR}")
|
||||
set(LUA_VERSION_MAJOR ${LUA_VERSION_MAJOR} PARENT_SCOPE)
|
||||
set(LUA_VERSION_MINOR ${LUA_VERSION_MINOR} PARENT_SCOPE)
|
||||
set(LUA_VERSION_PATCH ${LUA_VERSION_PATCH} PARENT_SCOPE)
|
||||
set(LUA_VERSION_STRING ${LUA_VERSION_STRING} PARENT_SCOPE)
|
||||
return()
|
||||
endif ()
|
||||
endforeach ()
|
||||
endfunction(_lua_check_header_version)
|
||||
|
||||
_lua_set_version_vars()
|
||||
|
||||
if (LUA_INCLUDE_DIR AND EXISTS "${LUA_INCLUDE_DIR}/lua.h")
|
||||
_lua_check_header_version("${LUA_INCLUDE_DIR}/lua.h")
|
||||
endif ()
|
||||
|
||||
if (NOT LUA_VERSION_STRING)
|
||||
foreach (subdir IN LISTS _lua_include_subdirs)
|
||||
unset(LUA_INCLUDE_PREFIX CACHE)
|
||||
find_path(LUA_INCLUDE_PREFIX ${subdir}/lua.h
|
||||
HINTS
|
||||
ENV LUA_DIR
|
||||
PATHS
|
||||
~/Library/Frameworks
|
||||
/Library/Frameworks
|
||||
/sw # Fink
|
||||
/opt/local # DarwinPorts
|
||||
/opt/csw # Blastwave
|
||||
/opt
|
||||
)
|
||||
if (LUA_INCLUDE_PREFIX)
|
||||
_lua_check_header_version("${LUA_INCLUDE_PREFIX}/${subdir}/lua.h")
|
||||
if (LUA_VERSION_STRING)
|
||||
set(LUA_INCLUDE_DIR "${LUA_INCLUDE_PREFIX}/${subdir}")
|
||||
break()
|
||||
endif ()
|
||||
endif ()
|
||||
endforeach ()
|
||||
endif ()
|
||||
unset(_lua_include_subdirs)
|
||||
unset(_lua_append_versions)
|
||||
|
||||
find_library(LUA_LIBRARY
|
||||
NAMES ${_lua_library_names} lua
|
||||
HINTS
|
||||
ENV LUA_DIR
|
||||
PATH_SUFFIXES lib
|
||||
PATHS
|
||||
~/Library/Frameworks
|
||||
/Library/Frameworks
|
||||
/sw
|
||||
/opt/local
|
||||
/opt/csw
|
||||
/opt
|
||||
)
|
||||
unset(_lua_library_names)
|
||||
|
||||
if (LUA_LIBRARY)
|
||||
# include the math library for Unix
|
||||
if (UNIX AND NOT APPLE AND NOT BEOS)
|
||||
find_library(LUA_MATH_LIBRARY m)
|
||||
set(LUA_LIBRARIES "${LUA_LIBRARY};${LUA_MATH_LIBRARY}")
|
||||
# For Windows and Mac, don't need to explicitly include the math library
|
||||
else ()
|
||||
set(LUA_LIBRARIES "${LUA_LIBRARY}")
|
||||
endif ()
|
||||
endif ()
|
||||
|
||||
include(FindPackageHandleStandardArgs)
|
||||
# handle the QUIETLY and REQUIRED arguments and set LUA_FOUND to TRUE if
|
||||
# all listed variables are TRUE
|
||||
FIND_PACKAGE_HANDLE_STANDARD_ARGS(Lua
|
||||
REQUIRED_VARS LUA_LIBRARIES LUA_INCLUDE_DIR
|
||||
VERSION_VAR LUA_VERSION_STRING)
|
||||
|
||||
mark_as_advanced(LUA_INCLUDE_DIR LUA_LIBRARY LUA_MATH_LIBRARY)
|
||||
@@ -1,82 +0,0 @@
|
||||
# Locate Lua library
|
||||
# This module defines
|
||||
# LUA52_FOUND, if false, do not try to link to Lua
|
||||
# LUA_LIBRARIES
|
||||
# LUA_INCLUDE_DIR, where to find lua.h
|
||||
# LUA_VERSION_STRING, the version of Lua found (since CMake 2.8.8)
|
||||
#
|
||||
# Note that the expected include convention is
|
||||
# #include "lua.h"
|
||||
# and not
|
||||
# #include <lua/lua.h>
|
||||
# This is because, the lua location is not standardized and may exist
|
||||
# in locations other than lua/
|
||||
|
||||
#=============================================================================
|
||||
# Copyright 2007-2009 Kitware, Inc.
|
||||
# Copyright 2016 for Project-OSRM, Lua5.1 => Lua5.2
|
||||
#
|
||||
# Distributed under the OSI-approved BSD License (the "License");
|
||||
# see accompanying file Copyright.txt for details.
|
||||
#
|
||||
# This software is distributed WITHOUT ANY WARRANTY; without even the
|
||||
# implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
||||
# See the License for more information.
|
||||
#=============================================================================
|
||||
# (To distribute this file outside of CMake, substitute the full
|
||||
# License text for the above reference.)
|
||||
|
||||
find_path(LUA_INCLUDE_DIR lua.h
|
||||
HINTS
|
||||
ENV LUA_DIR
|
||||
PATH_SUFFIXES include/lua52 include/lua5.2 include/lua-5.2 include/lua include
|
||||
PATHS
|
||||
~/Library/Frameworks
|
||||
/Library/Frameworks
|
||||
/sw # Fink
|
||||
/opt/local # DarwinPorts
|
||||
/opt/csw # Blastwave
|
||||
/opt
|
||||
)
|
||||
|
||||
find_library(LUA_LIBRARY
|
||||
NAMES lua52 lua5.2 lua-5.2 lua
|
||||
HINTS
|
||||
ENV LUA_DIR
|
||||
PATH_SUFFIXES lib
|
||||
PATHS
|
||||
~/Library/Frameworks
|
||||
/Library/Frameworks
|
||||
/sw
|
||||
/opt/local
|
||||
/opt/csw
|
||||
/opt
|
||||
)
|
||||
|
||||
if(LUA_LIBRARY)
|
||||
# include the math library for Unix
|
||||
if(UNIX AND NOT APPLE AND NOT BEOS)
|
||||
find_library(LUA_MATH_LIBRARY m)
|
||||
set( LUA_LIBRARIES "${LUA_LIBRARY};${LUA_MATH_LIBRARY}" CACHE STRING "Lua Libraries")
|
||||
# For Windows and Mac, don't need to explicitly include the math library
|
||||
else()
|
||||
set( LUA_LIBRARIES "${LUA_LIBRARY}" CACHE STRING "Lua Libraries")
|
||||
endif()
|
||||
endif()
|
||||
|
||||
if(LUA_INCLUDE_DIR AND EXISTS "${LUA_INCLUDE_DIR}/lua.h")
|
||||
file(STRINGS "${LUA_INCLUDE_DIR}/lua.h" lua_version_str REGEX "^#define[ \t]+LUA_RELEASE[ \t]+\"Lua .+\"")
|
||||
|
||||
string(REGEX REPLACE "^#define[ \t]+LUA_RELEASE[ \t]+\"Lua ([^\"]+)\".*" "\\1" LUA_VERSION_STRING "${lua_version_str}")
|
||||
unset(lua_version_str)
|
||||
endif()
|
||||
|
||||
include(FindPackageHandleStandardArgs)
|
||||
# handle the QUIETLY and REQUIRED arguments and set LUA_FOUND to TRUE if
|
||||
# all listed variables are TRUE
|
||||
FIND_PACKAGE_HANDLE_STANDARD_ARGS(Lua52
|
||||
REQUIRED_VARS LUA_LIBRARIES LUA_INCLUDE_DIR
|
||||
VERSION_VAR LUA_VERSION_STRING)
|
||||
|
||||
mark_as_advanced(LUA_INCLUDE_DIR LUA_LIBRARIES LUA_LIBRARY LUA_MATH_LIBRARY)
|
||||
|
||||
@@ -1,93 +0,0 @@
|
||||
# Locate Lua library
|
||||
# This module defines
|
||||
# LUAJIT_FOUND, if false, do not try to link to Lua
|
||||
# LUAJIT_LIBRARIES
|
||||
# LUAJIT_INCLUDE_DIR, where to find lua.h
|
||||
#
|
||||
# Note that the expected include convention is
|
||||
# #include "lua.h"
|
||||
# and not
|
||||
# #include <lua/lua.h>
|
||||
# This is because, the lua location is not standardized and may exist
|
||||
# in locations other than lua/
|
||||
|
||||
#=============================================================================
|
||||
# Copyright 2007-2009 Kitware, Inc.
|
||||
#
|
||||
# Distributed under the OSI-approved BSD License (the "License");
|
||||
# see accompanying file Copyright.txt for details.
|
||||
#
|
||||
# This software is distributed WITHOUT ANY WARRANTY; without even the
|
||||
# implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
||||
# See the License for more information.
|
||||
#=============================================================================
|
||||
# (To distributed this file outside of CMake, substitute the full
|
||||
# License text for the above reference.)
|
||||
#
|
||||
# ################
|
||||
# 2010 - modified for cronkite to find luajit instead of lua, as it was before.
|
||||
#
|
||||
|
||||
if ( NOT LuaJIT_FIND_VERSION )
|
||||
MESSAGE(FATAL_ERROR "You need to specify a version of libluajit to use")
|
||||
ENDIF()
|
||||
|
||||
IF( NOT LUAJIT_FIND_QUIETLY )
|
||||
MESSAGE(STATUS "Looking for LuaJIT ${LuaJIT_FIND_VERSION}")
|
||||
ENDIF()
|
||||
|
||||
FIND_PATH(LUAJIT_INCLUDE_DIR lua.h
|
||||
HINTS
|
||||
$ENV{LUAJIT_DIR}
|
||||
PATH_SUFFIXES include/luajit-2.0 include/luajit2.0 include/luajit include
|
||||
PATHS
|
||||
~/Library/Frameworks
|
||||
/Library/Frameworks
|
||||
/usr/local
|
||||
/usr
|
||||
/sw # Fink
|
||||
/opt/local # DarwinPorts
|
||||
/opt/csw # Blastwave
|
||||
/opt
|
||||
)
|
||||
|
||||
FIND_LIBRARY(LUAJIT_LIBRARY
|
||||
NAMES luajit-${LuaJIT_FIND_VERSION_MAJOR}${LuaJIT_FIND_VERSION_MINOR} luajit-${LuaJIT_FIND_VERSION}
|
||||
HINTS
|
||||
$ENV{LUAJIT_DIR}
|
||||
PATH_SUFFIXES lib64 lib
|
||||
PATHS
|
||||
~/Library/Frameworks
|
||||
/Library/Frameworks
|
||||
/usr/local
|
||||
/usr
|
||||
/sw
|
||||
/opt/local
|
||||
/opt/csw
|
||||
/opt
|
||||
)
|
||||
|
||||
IF(LUAJIT_LIBRARY)
|
||||
# include the math library for Unix
|
||||
IF(UNIX AND NOT APPLE)
|
||||
FIND_LIBRARY(LUAJIT_MATH_LIBRARY m)
|
||||
SET( LUAJIT_LIBRARIES "${LUAJIT_LIBRARY};${LUAJIT_MATH_LIBRARY}" CACHE STRING "Lua Libraries")
|
||||
# For Windows and Mac, don't need to explicitly include the math library
|
||||
ELSE(UNIX AND NOT APPLE)
|
||||
SET( LUAJIT_LIBRARIES "${LUAJIT_LIBRARY}" CACHE STRING "Lua Libraries")
|
||||
ENDIF(UNIX AND NOT APPLE)
|
||||
ENDIF(LUAJIT_LIBRARY)
|
||||
|
||||
INCLUDE(FindPackageHandleStandardArgs)
|
||||
# handle the QUIETLY and REQUIRED arguments and set LUAJIT_FOUND to TRUE if
|
||||
# all listed variables are TRUE
|
||||
FIND_PACKAGE_HANDLE_STANDARD_ARGS(LUAJIT DEFAULT_MSG LUAJIT_LIBRARIES LUAJIT_INCLUDE_DIR)
|
||||
|
||||
IF( NOT LUAJIT_FIND_QUIETLY )
|
||||
IF( LUAJIT_FOUND AND LUAJIT_LIBRARIES)
|
||||
MESSAGE(STATUS "Found LuaJIT: ${LUAJIT_LIBRARY}" )
|
||||
MARK_AS_ADVANCED(LUAJIT_INCLUDE_DIR LUAJIT_LIBRARIES LUAJIT_LIBRARY LUAJIT_MATH_LIBRARY)
|
||||
ELSE()
|
||||
SET ( LUAJIT_FOUND FALSE )
|
||||
ENDIF()
|
||||
ENDIF()
|
||||
+25
-7
@@ -3,16 +3,34 @@
|
||||
# LUABIND_FOUND, if false, do not try to link to Luabind
|
||||
# LUABIND_LIBRARIES
|
||||
# LUABIND_INCLUDE_DIR, where to find luabind.hpp
|
||||
#
|
||||
# Note that the expected include convention is
|
||||
# #include <luabind/luabind.hpp>
|
||||
# and not
|
||||
# #include <luabind.hpp>
|
||||
|
||||
IF( NOT LUABIND_FIND_QUIETLY )
|
||||
MESSAGE(STATUS "Looking for Luabind...")
|
||||
# First we try using EXACT but in some verison of
|
||||
# cmake this would also match patch versions
|
||||
FIND_PACKAGE(Lua 5.2 EXACT)
|
||||
IF (LUA_FOUND)
|
||||
MESSAGE(STATUS "Using Lua ${LUA_VERSION_STRING}")
|
||||
ELSE()
|
||||
FIND_PACKAGE(Lua 5.1 EXACT)
|
||||
IF (LUA_FOUND)
|
||||
MESSAGE(STATUS "Using Lua ${LUA_VERSION_STRING}")
|
||||
ELSE()
|
||||
# Now fall back to a lua verison without exact
|
||||
# in case this cmake version also forces patch versions
|
||||
FIND_PACKAGE(Lua 5.2)
|
||||
IF (LUA_FOUND)
|
||||
MESSAGE(STATUS "Using Lua ${LUA_VERSION_STRING}")
|
||||
ELSE()
|
||||
FIND_PACKAGE(Lua 5.1)
|
||||
IF (LUA_FOUND)
|
||||
MESSAGE(STATUS "Using Lua ${LUA_VERSION_STRING}")
|
||||
ELSE()
|
||||
MESSAGE(FATAL_ERROR "Lua 5.1 or 5.2 was not found.")
|
||||
ENDIF()
|
||||
ENDIF()
|
||||
ENDIF()
|
||||
ENDIF()
|
||||
|
||||
|
||||
FIND_PATH(LUABIND_INCLUDE_DIR luabind.hpp
|
||||
HINTS
|
||||
$ENV{LUABIND_DIR}
|
||||
|
||||
@@ -1,40 +0,0 @@
|
||||
INCLUDE (CheckCXXSourceCompiles)
|
||||
unset(LUABIND_WORKS CACHE)
|
||||
unset(LUABIND51_WORKS CACHE)
|
||||
set (LUABIND_CHECK_SRC "extern \"C\" {\n#include \"lua.h\"\n#include \"lauxlib.h\"\n}\n#include <luabind/open.hpp>\nint main() { lua_State *x = luaL_newstate(); luabind::open(x); }")
|
||||
set (CMAKE_TRY_COMPILE_CONFIGURATION ${CMAKE_BUILD_TYPE})
|
||||
set (CMAKE_REQUIRED_INCLUDES "${Boost_INCLUDE_DIR};${LUABIND_INCLUDE_DIR};${LUA_INCLUDE_DIR}")
|
||||
set (CMAKE_REQUIRED_LIBRARIES "${LUABIND_LIBRARY};${LUA_LIBRARY}")
|
||||
|
||||
find_package(Lua52)
|
||||
if(NOT APPLE)
|
||||
find_package(LuaJIT 5.2)
|
||||
endif()
|
||||
if(LUA52_FOUND)
|
||||
set (CMAKE_REQUIRED_INCLUDES "${Boost_INCLUDE_DIR};${LUABIND_INCLUDE_DIR};${LUA_INCLUDE_DIR}")
|
||||
set (CMAKE_REQUIRED_LIBRARIES "${LUABIND_LIBRARY};${LUA_LIBRARY}")
|
||||
CHECK_CXX_SOURCE_COMPILES("${LUABIND_CHECK_SRC}" LUABIND_WORKS)
|
||||
endif()
|
||||
|
||||
if(LUABIND_WORKS)
|
||||
message(STATUS "Luabind/Lua5.2 combination working with ${LUA_LIBRARY}")
|
||||
else()
|
||||
message(STATUS "Luabind/Lua5.2 not feasible, falling back to Lua 5.1.")
|
||||
unset(LUA_FOUND CACHE)
|
||||
unset(LUA_INCLUDE_DIR CACHE)
|
||||
unset(LUA_LIBRARY CACHE)
|
||||
find_package(Lua51 REQUIRED)
|
||||
if(NOT APPLE)
|
||||
find_package(LuaJIT 5.1)
|
||||
endif()
|
||||
set (CMAKE_REQUIRED_INCLUDES "${Boost_INCLUDE_DIR};${LUABIND_INCLUDE_DIR};${LUA_INCLUDE_DIR}")
|
||||
set (CMAKE_REQUIRED_LIBRARIES "${LUABIND_LIBRARY};${LUA_LIBRARY}")
|
||||
|
||||
CHECK_CXX_SOURCE_COMPILES("${LUABIND_CHECK_SRC}" LUABIND51_WORKS)
|
||||
|
||||
if(LUABIND51_WORKS)
|
||||
message(STATUS "Luabind works with Lua 5.1 at ${LUA_LIBRARY}")
|
||||
else()
|
||||
message(FATAL_ERROR "Luabind does not work with Lua 5.1 at ${LUA_LIBRARY}, no working Luabind found")
|
||||
endif()
|
||||
endif()
|
||||
@@ -0,0 +1,61 @@
|
||||
# Developing / Debugging guidance code
|
||||
|
||||
When changing guidance code, it is easy to introduce problems somewhere in the network.
|
||||
To get a better feeling of how your changes impact the OSRM experience, we offer ways of generating geojson output to inspect (e.g. with Mapbox Studio).
|
||||
When you do changes, make sure to inspect a few areas for the impact of the changes.
|
||||
|
||||
## How to use GeoJson-Debugging
|
||||
|
||||
This is a short guide to describe usage of our GeoJson debug logging mechanism. It is synchronized to guarantee thread-safe logging.
|
||||
|
||||
## Outputting into a single file
|
||||
To use it, the inclusion of `geojson_debug_logger.hpp` `geojson_debug_policies.hpp` from the `util` directory is required.
|
||||
|
||||
Geojson debugging requires a few simple steps to output data into a feature collection.
|
||||
|
||||
- Create a Scoped Guard that lives through the process and provide it with all required datastructures (it needs to span the lifetime of all your logging efforts)
|
||||
- At the location of the output, simply call Write with your own parameters.
|
||||
|
||||
A guard (ScopedGeojsonLoggerGuard) requires a logging policy. Per default we provide a way of printing out node-ids as coordinates.
|
||||
|
||||
The initialisation to do so looks like this:
|
||||
`util::ScopedGeojsonLoggerGuard<util::NodeIdVectorToLineString> geojson_guard( "debug.geojson", data-for-conversion);`
|
||||
|
||||
The field `data-for-conversion` can be an arbitrary long set of features and needs to match the parameters used for constructing our policy (in this case `util::NodeIdVectorToLineString`).
|
||||
|
||||
The policy itself offers a `operator()` accepting a `vector` of `NodeID`.
|
||||
|
||||
For outputting data into our file (debug.geojson), we simply need to call the matching logging routine of the guard: `util::ScioedGeojsonLoggerGuard<util::NodeIdVectorToLineString>::Write(list_of_node_ids);`
|
||||
(or `guard.Write(list_of_node_ids)` if you created an instance).
|
||||
|
||||
### Possible Scopeguard Location
|
||||
Think of the scopeguard as you would do of any reference. If you wan't to access to logging during a call, the guard object must be alive and valid.
|
||||
|
||||
As an example: a good location to create the a scopeguard to log decisions in the edge-based-graph-factory would be right before we run it ([here](https://github.com/Project-OSRM/osrm-backend/blob/a933b5d94943bf3edaf42c84a614a99650d23cba/src/extractor/extractor.cpp#L497)). If you put `util::ScopedGeojsonLoggerGuard<util::NodeIdVectorToLineString> geojson_guard( "debug.geojson", node_coordinate_vector);` at that location, you can then print `util::ScopedGeojsonLoggerGuard<util::NodeIdVectorToLineString>::Write(list_of_node_ids);` anywhere within the `edge-based-graph-factory`.
|
||||
|
||||
This location would enable call for all guidance related pre-processing which is called in the edge-based-graph-factory.
|
||||
Logging any turn-handler decisions, for example, would now be possible.
|
||||
|
||||
## Limitations
|
||||
GeoJson debugging requires a single GeoJsonGuard (ScopedGeojsonLoggerGuard) for each desired output file.
|
||||
For each set of template parameters, only the most recent guard will actually produce output.
|
||||
|
||||
`util::ScopedGeojsonLoggerGuard<util::NodeIdVectorToLineString> geojson_guard( "debug.geojson", data-for-conversion);`
|
||||
|
||||
`util::ScopedGeojsonLoggerGuard<util::NodeIdVectorToLineString> geojson_guard( "debug-2.geojson", data-for-conversion);`
|
||||
|
||||
Will not provide a way to write into two files, but only `debug-2` will actually contain features.
|
||||
|
||||
We cannot nest-these calls.
|
||||
|
||||
If we want to use the same policy for multiple files, we need to use different template parameters both for the logger and the guard.
|
||||
|
||||
`util::ScopedGeojsonLoggerGuard<util::NodeIdVectorToLineString,0> geojson_guard( "debug.geojson", data-for-conversion);`
|
||||
|
||||
`util::ScopedGeojsonLoggerGuard<util::NodeIdVectorToLineString,1> geojson_guard( "debug-2.geojson", data-for-conversion);`
|
||||
|
||||
as well as,
|
||||
|
||||
`util::ScopedGeojsonLoggerGuardr<util::NodeIdVectorToLineString,0>::Write(list_of_node_ids);`
|
||||
|
||||
`util::ScopedGeojsonLoggerGuardr<util::NodeIdVectorToLineString,1>::Write(list_of_node_ids);`
|
||||
+25
-22
@@ -38,7 +38,7 @@ http://{server}/{service}/{version}/{profile}/{coordinates}[.{format}]?option=va
|
||||
| [`tile`](#service-tile) | Return vector tiles containing debugging info |
|
||||
|
||||
- `version`: Version of the protocol implemented by the service.
|
||||
- `profile`: Mode of transportation, is determined by the profile that is used to prepare the data
|
||||
- `profile`: Mode of transportation, is determined statically by the Lua profile that is used to prepare the data using `osrm-extract`.
|
||||
- `coordinates`: String of format `{longitude},{latitude};{longitude},{latitude}[;{longitude},{latitude} ...]` or `polyline({polyline})`.
|
||||
- `format`: Only `json` is supported at the moment. This parameter is optional and defaults to `json`.
|
||||
|
||||
@@ -107,6 +107,8 @@ Where `code` is on one of the strings below or service dependent:
|
||||
| `InvalidService` | Service name is invalid. |
|
||||
| `InvalidVersion` | Version is not found. |
|
||||
| `InvalidOptions` | Options are invalid. |
|
||||
| `InvalidQuery` | The query string is synctactically malformed. |
|
||||
| `InvalidValue` | The successfully parsed query parameters are invalid. |
|
||||
| `NoSegment` | One of the supplied input coordinates could not snap to street segment. |
|
||||
| `TooBig` | The request size violates one of the service specific request size restrictions. |
|
||||
|
||||
@@ -151,19 +153,19 @@ http://router.project-osrm.org/nearest/v1/driving/13.388860,52.517037?number=3&b
|
||||
### Request
|
||||
|
||||
```
|
||||
http://{server}/route/v1/{profile}/{coordinates}?alternatives={true|false}&steps={true|false}&geometries={polyline|geojson}&overview={full|simplified|false}&annotations={true|false}
|
||||
http://{server}/route/v1/{profile}/{coordinates}?alternatives={true|false}&steps={true|false}&geometries={polyline|polyline6|geojson}&overview={full|simplified|false}&annotations={true|false}
|
||||
```
|
||||
|
||||
In addition to the [general options](#general-options) the following options are supported for this service:
|
||||
|
||||
|Option |Values |Description |
|
||||
|------------|------------------------------------------|-------------------------------------------------------------------------------|
|
||||
|alternatives|`true`, `false` (default) |Search for alternative routes and return as well.\* |
|
||||
|steps |`true`, `false` (default) |Return route steps for each route leg |
|
||||
|annotations |`true`, `false` (default) |Returns additional metadata for each coordinate along the route geometry. |
|
||||
|geometries |`polyline` (default), `geojson` |Returned route geometry format (influences overview and per step) |
|
||||
|overview |`simplified` (default), `full`, `false` |Add overview geometry either full, simplified according to highest zoom level it could be display on, or not at all.|
|
||||
|continue_straight |`default` (default), `true`, `false`|Forces the route to keep going straight at waypoints and don't do a uturn even if it would be faster. Default value depends on the profile. |
|
||||
|Option |Values |Description |
|
||||
|------------|---------------------------------------------|-------------------------------------------------------------------------------|
|
||||
|alternatives|`true`, `false` (default) |Search for alternative routes and return as well.\* |
|
||||
|steps |`true`, `false` (default) |Return route steps for each route leg |
|
||||
|annotations |`true`, `false` (default) |Returns additional metadata for each coordinate along the route geometry. |
|
||||
|geometries |`polyline` (default), `polyline6`, `geojson` |Returned route geometry format (influences overview and per step) |
|
||||
|overview |`simplified` (default), `full`, `false` |Add overview geometry either full, simplified according to highest zoom level it could be display on, or not at all.|
|
||||
|continue_straight |`default` (default), `true`, `false` |Forces the route to keep going straight at waypoints and don't do a uturn even if it would be faster. Default value depends on the profile. |
|
||||
|
||||
\* Please note that even if an alternative route is requested, a result cannot be guaranteed.
|
||||
|
||||
@@ -177,7 +179,7 @@ In case of error the following `code`s are supported in addition to the general
|
||||
|
||||
| Type | Description |
|
||||
|-------------------|-----------------|
|
||||
| `NoRoute` | No route found. |
|
||||
| `NoRoute` | No route found. |
|
||||
|
||||
All other fields might be undefined.
|
||||
|
||||
@@ -249,7 +251,7 @@ http://router.project-osrm.org/table/v1/driving/13.388860,52.517037;13.397634,52
|
||||
|
||||
Returns a asymmetric 3x2 matrix with from the polyline encoded locations `qikdcB}~dpXkkHz`:
|
||||
```
|
||||
http://router.project-osrm.org/table/v1/driving/qikdcB}~dpXkkHz?sources=0;1;3&destinations=2;4
|
||||
http://router.project-osrm.org/table/v1/driving/polyline(egs_Iq_aqAppHzbHulFzeMe`EuvKpnCglA)?sources=0;1;3&destinations=2;4
|
||||
```
|
||||
|
||||
## Service `match`
|
||||
@@ -261,7 +263,7 @@ The algorithm might not be able to match all points. Outliers are removed if the
|
||||
### Request
|
||||
|
||||
```
|
||||
http://{server}/match/v1/{profile}/{coordinates}?steps={true|false}&geometries={polyline|geojson}&overview={simplified|full|false}&annotations={true|false}
|
||||
http://{server}/match/v1/{profile}/{coordinates}?steps={true|false}&geometries={polyline|polyline6|geojson}&overview={simplified|full|false}&annotations={true|false}
|
||||
```
|
||||
|
||||
In addition to the [general options](#general-options) the following options are supported for this service:
|
||||
@@ -270,10 +272,10 @@ In addition to the [general options](#general-options) the following options are
|
||||
|Option |Values |Description |
|
||||
|------------|------------------------------------------------|------------------------------------------------------------------------------------------|
|
||||
|steps |`true`, `false` (default) |Return route steps for each route |
|
||||
|geometries |`polyline` (default), `geojson` |Returned route geometry format (influences overview and per step) |
|
||||
|annotations |`true`, `false` (default) |Returns additional metadata for each coordinate along the route geometry. |
|
||||
|geometries |`polyline` (default), `polyline6`, `geojson` |Returned route geometry format (influences overview and per step) |
|
||||
|annotations |`true`, `false` (default) |Returns additional metadata for each coordinate along the route geometry. |
|
||||
|overview |`simplified` (default), `full`, `false` |Add overview geometry either full, simplified according to highest zoom level it could be display on, or not at all.|
|
||||
|timestamps |`{timestamp};{timestamp}[;{timestamp} ...]` |Timestamp of the input location. |
|
||||
|timestamps |`{timestamp};{timestamp}[;{timestamp} ...]` |Timestamp of the input location. Timestamps need to be monotonically increasing. |
|
||||
|radiuses |`{radius};{radius}[;{radius} ...]` |Standard deviation of GPS precision used for map matching. If applicable use GPS accuracy.|
|
||||
|
||||
|Parameter |Values |
|
||||
@@ -283,7 +285,7 @@ In addition to the [general options](#general-options) the following options are
|
||||
|
||||
### Response
|
||||
- `code` if the request was successful `Ok` otherwise see the service dependent and general status codes.
|
||||
- `tracepoints`: Array of `Ẁaypoint` objects representing all points of the trace in order.
|
||||
- `tracepoints`: Array of `Waypoint` objects representing all points of the trace in order.
|
||||
If the trace point was ommited by map matching because it is an outlier, the entry will be `null`.
|
||||
Each `Waypoint` object has the following additional properties:
|
||||
- `matchings_index`: Index to the `Route` object in `matchings` the sub-trace was matched to.
|
||||
@@ -309,7 +311,7 @@ multiple trips for each connected component are returned.
|
||||
### Request
|
||||
|
||||
```
|
||||
http://{server}/trip/v1/{profile}/{coordinates}?steps={true|false}&geometries={polyline|geojson}&overview={simplified|full|false}&annotations={true|false}
|
||||
http://{server}/trip/v1/{profile}/{coordinates}?steps={true|false}&geometries={polyline|polyline6|geojson}&overview={simplified|full|false}&annotations={true|false}
|
||||
```
|
||||
|
||||
In addition to the [general options](#general-options) the following options are supported for this service:
|
||||
@@ -317,8 +319,8 @@ In addition to the [general options](#general-options) the following options are
|
||||
|Option |Values |Description |
|
||||
|------------|------------------------------------------------|---------------------------------------------------------------------------|
|
||||
|steps |`true`, `false` (default) |Return route instructions for each trip |
|
||||
|annotations |`true`, `false` (default) |Returns additional metadata for each coordinate along the route geometry. |
|
||||
|geometries |`polyline` (default), `geojson` |Returned route geometry format (influences overview and per step) |
|
||||
|annotations |`true`, `false` (default) |Returns additional metadata for each coordinate along the route geometry. |
|
||||
|geometries |`polyline` (default), `polyline6`, `geojson` |Returned route geometry format (influences overview and per step) |
|
||||
|overview |`simplified` (default), `full`, `false` |Add overview geometry either full, simplified according to highest zoom level it could be display on, or not at all.|
|
||||
|
||||
### Response
|
||||
@@ -333,7 +335,7 @@ In case of error the following `code`s are supported in addition to the general
|
||||
|
||||
| Type | Description |
|
||||
|-------------------|---------------------|
|
||||
| `NoTrips` | No trips found. |
|
||||
| `NoTrips` | No trips found. |
|
||||
|
||||
All other fields might be undefined.
|
||||
|
||||
@@ -466,6 +468,7 @@ step.
|
||||
| geometries | |
|
||||
|------------|--------------------------------------------------------------------|
|
||||
| polyline | [polyline](https://www.npmjs.com/package/polyline) with precision 5 in [latitude,longitude] encoding |
|
||||
| polyline6 | [polyline](https://www.npmjs.com/package/polyline) with precision 6 in [latitude,longitude] encoding |
|
||||
| geojson | [GeoJSON `LineString`](http://geojson.org/geojson-spec.html#linestring) or [GeoJSON `Point`](http://geojson.org/geojson-spec.html#point) if it is only one coordinate (not wrapped by a GeoJSON feature)|
|
||||
|
||||
- `name`: The name of the way along which travel proceeds.
|
||||
@@ -571,7 +574,7 @@ step.
|
||||
|
||||
| `type` | Description |
|
||||
|------------------------|---------------------------------------------------------------------------------------------------------------------------|
|
||||
| `roundabout` | Number of the roundabout exit to take. If exit is `undefined` the destination is on the roundabout. |
|
||||
| `roundabout`/`rotary` | Number of the roundabout exit to take. If exit is `undefined` the destination is on the roundabout. |
|
||||
| else | Indicates the number of intersections passed until the turn. Example instruction: `at the fourth intersection, turn left` |
|
||||
|
||||
|
||||
|
||||
+88
-16
@@ -55,7 +55,9 @@ Background:
|
||||
|
||||
Scenario: Testbot - Straight Road
|
||||
Given the node map
|
||||
| a | b | c | d |
|
||||
"""
|
||||
a b c d
|
||||
"""
|
||||
|
||||
And the ways
|
||||
| nodes | highway |
|
||||
@@ -92,7 +94,9 @@ Background:
|
||||
|
||||
Scenario: Testbot - Straight Road
|
||||
Given the node map
|
||||
| a | b | c | d |
|
||||
"""
|
||||
a b c d
|
||||
"""
|
||||
|
||||
And the ways
|
||||
| nodes | highway | name |
|
||||
@@ -117,8 +121,10 @@ Background:
|
||||
|
||||
Scenario: Testbot - Straight Road
|
||||
Given the node map
|
||||
| a | b |
|
||||
| d | c |
|
||||
"""
|
||||
a b
|
||||
d c
|
||||
"""
|
||||
|
||||
And the ways
|
||||
| nodes | highway | name |
|
||||
@@ -140,8 +146,10 @@ Background:
|
||||
|
||||
Scenario: Testbot - Straight Road
|
||||
Given the node map
|
||||
| a | b | e |
|
||||
| d | c | |
|
||||
"""
|
||||
a b e
|
||||
d c
|
||||
"""
|
||||
|
||||
And the ways
|
||||
| nodes | highway | name |
|
||||
@@ -165,8 +173,10 @@ Scenario: Enter and Exit mini roundabout with sharp angle # features/guidance/
|
||||
Given the profile "car" # features/step_definitions/data.js:8
|
||||
Given a grid size of 10 meters # features/step_definitions/data.js:20
|
||||
Given the node map # features/step_definitions/data.js:45
|
||||
| a | b | |
|
||||
| | c | d |
|
||||
"""
|
||||
a b
|
||||
c d
|
||||
"""
|
||||
And the ways # features/step_definitions/data.js:128
|
||||
| nodes | highway | name |
|
||||
| ab | tertiary | MySt |
|
||||
@@ -195,9 +205,11 @@ OSRM converts the grid into a so called edge-based graph.
|
||||
```
|
||||
Scenario: Testbot - Intersection
|
||||
Given the node map
|
||||
| | e | |
|
||||
| b | a | d |
|
||||
| | c | |
|
||||
"""
|
||||
e
|
||||
b a d
|
||||
c
|
||||
"""
|
||||
|
||||
And the ways
|
||||
| nodes | highway | oneway |
|
||||
@@ -213,11 +225,13 @@ To guarantee discovery, use:
|
||||
```
|
||||
Scenario: Testbot - Intersection
|
||||
Given the node map
|
||||
| | | e | | |
|
||||
| | | 4 | | |
|
||||
| b | 1 | a | 3 | d |
|
||||
| | | 2 | | |
|
||||
| | | c | | |
|
||||
"""
|
||||
e
|
||||
4
|
||||
b 1 a 3 d
|
||||
2
|
||||
c
|
||||
"""
|
||||
|
||||
And the ways
|
||||
| nodes | highway | oneway |
|
||||
@@ -237,3 +251,61 @@ If you are testing for a duration metric, allow for a tiny offset to ensure a pa
|
||||
#### Don't Rely on Alternatives
|
||||
|
||||
Alternative route discovery is a random feature in itself. The discovery of routes depends on the contraction order of roads and cannot be assumed successful, ever.
|
||||
|
||||
### Understanding Turn Restrictions
|
||||
|
||||
Adding turn restrictions requires the restriction to follow a very specific format.
|
||||
|
||||
We specify them in a table with the header `| type | way:from | way:to | node:via | restriction |`.
|
||||
It is important that turn restrictions require micro segmentation.
|
||||
|
||||
Consider the following scenario:
|
||||
```
|
||||
Given the node map:
|
||||
"""
|
||||
e
|
||||
|
|
||||
a - - b - - c
|
||||
|
|
||||
d
|
||||
"""
|
||||
|
||||
And the ways
|
||||
| nodes | oneway |
|
||||
| abc | yes |
|
||||
| ebd | yes |
|
||||
|
||||
And the relations
|
||||
| type | way:from | way:to | node:via | restriction |
|
||||
| restriction | abc | ebd | b | no_right_turn |
|
||||
```
|
||||
|
||||
The setting looks perfectly fine at first glance. However, it is not well defined.
|
||||
The forbidden right turn could be either a superfluous addition, forbidding the turn `cb` to `be`, or actually refer to the turn `ab` to `bd` to say that a turn is forbidden here.
|
||||
|
||||
To model turn-restrictions correctly and unique, we need to split segments that contribute to the restriction into the smallest possible parts.
|
||||
E.g. the above scenario could correctly be expressed as:
|
||||
|
||||
```
|
||||
Given the node map:
|
||||
"""
|
||||
e
|
||||
|
|
||||
a - - b - - c
|
||||
|
|
||||
d
|
||||
"""
|
||||
|
||||
And the ways
|
||||
| nodes | oneway | name |
|
||||
| ab | yes | abc |
|
||||
| bc | yes | abc |
|
||||
| eb | yes | ebd |
|
||||
| bd | yes | ebd |
|
||||
|
||||
And the relations
|
||||
| type | way:from | way:to | node:via | restriction |
|
||||
| restriction | ab | bd | b | no_right_turn |
|
||||
```
|
||||
|
||||
Unless this format is used, OSRM will omit the (then ambiguous) turn restrictions and ignore them.
|
||||
|
||||
@@ -7,9 +7,11 @@ Feature: Bike - Squares and other areas
|
||||
@square
|
||||
Scenario: Bike - Route along edge of a squares
|
||||
Given the node map
|
||||
| x | |
|
||||
| a | b |
|
||||
| d | c |
|
||||
"""
|
||||
x
|
||||
a b
|
||||
d c
|
||||
"""
|
||||
|
||||
And the ways
|
||||
| nodes | area | highway |
|
||||
@@ -30,9 +32,11 @@ Feature: Bike - Squares and other areas
|
||||
@building
|
||||
Scenario: Bike - Don't route on buildings
|
||||
Given the node map
|
||||
| x | |
|
||||
| a | b |
|
||||
| d | c |
|
||||
"""
|
||||
x
|
||||
a b
|
||||
d c
|
||||
"""
|
||||
|
||||
And the ways
|
||||
| nodes | highway | area | building | access |
|
||||
@@ -53,9 +57,11 @@ Feature: Bike - Squares and other areas
|
||||
@parking
|
||||
Scenario: Bike - parking areas
|
||||
Given the node map
|
||||
| e | | | f |
|
||||
| x | a | b | y |
|
||||
| | d | c | |
|
||||
"""
|
||||
e f
|
||||
x a b y
|
||||
d c
|
||||
"""
|
||||
|
||||
And the ways
|
||||
| nodes | highway | amenity |
|
||||
@@ -81,8 +87,10 @@ Feature: Bike - Squares and other areas
|
||||
@train @platform
|
||||
Scenario: Bike - railway platforms
|
||||
Given the node map
|
||||
| x | a | b | y |
|
||||
| | d | c | |
|
||||
"""
|
||||
x a b y
|
||||
d c
|
||||
"""
|
||||
|
||||
And the ways
|
||||
| nodes | highway | railway |
|
||||
|
||||
@@ -6,9 +6,11 @@ Feature: Bicycle - Handle cycling
|
||||
|
||||
Scenario: Bicycle - Use a ferry route
|
||||
Given the node map
|
||||
| a | b | c | | |
|
||||
| | | d | | |
|
||||
| | | e | f | g |
|
||||
"""
|
||||
a b c
|
||||
d
|
||||
e f g
|
||||
"""
|
||||
|
||||
And the ways
|
||||
| nodes | highway | bridge | bicycle |
|
||||
@@ -29,9 +31,11 @@ Feature: Bicycle - Handle cycling
|
||||
|
||||
Scenario: Bicycle - Properly handle durations
|
||||
Given the node map
|
||||
| a | b | c | | |
|
||||
| | | d | | |
|
||||
| | | e | f | g |
|
||||
"""
|
||||
a b c
|
||||
d
|
||||
e f g
|
||||
"""
|
||||
|
||||
And the ways
|
||||
| nodes | highway | bridge | duration |
|
||||
|
||||
@@ -6,10 +6,12 @@ Feature: Bike - Destination only, no passing through
|
||||
|
||||
Scenario: Bike - Destination only street
|
||||
Given the node map
|
||||
| a | | | | e |
|
||||
| | b | c | d | |
|
||||
| | | | | |
|
||||
| x | | | | y |
|
||||
"""
|
||||
a e
|
||||
b c d
|
||||
|
||||
x y
|
||||
"""
|
||||
|
||||
And the ways
|
||||
| nodes | access |
|
||||
@@ -31,10 +33,12 @@ Feature: Bike - Destination only, no passing through
|
||||
|
||||
Scenario: Bike - Destination only street
|
||||
Given the node map
|
||||
| a | | | | e |
|
||||
| | b | c | d | |
|
||||
| | | | | |
|
||||
| x | | | | y |
|
||||
"""
|
||||
a e
|
||||
b c d
|
||||
|
||||
x y
|
||||
"""
|
||||
|
||||
And the ways
|
||||
| nodes | access |
|
||||
@@ -57,9 +61,11 @@ Feature: Bike - Destination only, no passing through
|
||||
|
||||
Scenario: Bike - Routing inside a destination only area
|
||||
Given the node map
|
||||
| a | | c | | e |
|
||||
| | b | | d | |
|
||||
| x | | | | y |
|
||||
"""
|
||||
a c e
|
||||
b d
|
||||
x y
|
||||
"""
|
||||
|
||||
And the ways
|
||||
| nodes | access |
|
||||
|
||||
@@ -6,9 +6,11 @@ Feature: Bike - Handle ferry routes
|
||||
|
||||
Scenario: Bike - Ferry route
|
||||
Given the node map
|
||||
| a | b | c | | |
|
||||
| | | d | | |
|
||||
| | | e | f | g |
|
||||
"""
|
||||
a b c
|
||||
d
|
||||
e f g
|
||||
"""
|
||||
|
||||
And the ways
|
||||
| nodes | highway | route | bicycle |
|
||||
@@ -29,10 +31,12 @@ Feature: Bike - Handle ferry routes
|
||||
|
||||
Scenario: Bike - Ferry duration, single node
|
||||
Given the node map
|
||||
| a | b | c | d |
|
||||
| | | e | f |
|
||||
| | | g | h |
|
||||
| | | i | j |
|
||||
"""
|
||||
a b c d
|
||||
e f
|
||||
g h
|
||||
i j
|
||||
"""
|
||||
|
||||
And the ways
|
||||
| nodes | highway | route | bicycle | duration |
|
||||
@@ -48,8 +52,10 @@ Feature: Bike - Handle ferry routes
|
||||
|
||||
Scenario: Bike - Ferry duration, multiple nodes
|
||||
Given the node map
|
||||
| x | | | | | y |
|
||||
| | a | b | c | d | |
|
||||
"""
|
||||
x y
|
||||
a b c d
|
||||
"""
|
||||
|
||||
And the ways
|
||||
| nodes | highway | route | bicycle | duration |
|
||||
|
||||
@@ -7,15 +7,15 @@ Feature: Bike - Max speed restrictions
|
||||
|
||||
Scenario: Bicycle - Respect maxspeeds when lower that way type speed
|
||||
Then routability should be
|
||||
| highway | maxspeed | bothw |
|
||||
| residential | | 15 km/h |
|
||||
| residential | 10 | 10 km/h |
|
||||
| highway | maxspeed | bothw |
|
||||
| residential | | 15 km/h +- 1 |
|
||||
| residential | 10 | 10 km/h +- 1 |
|
||||
|
||||
Scenario: Bicycle - Ignore maxspeed when higher than way speed
|
||||
Then routability should be
|
||||
| highway | maxspeed | bothw |
|
||||
| residential | | 15 km/h |
|
||||
| residential | 80 | 15 km/h |
|
||||
| highway | maxspeed | bothw |
|
||||
| residential | | 15 km/h +- 1 |
|
||||
| residential | 80 | 15 km/h |
|
||||
|
||||
@todo
|
||||
Scenario: Bicycle - Maxspeed formats
|
||||
@@ -40,7 +40,9 @@ Feature: Bike - Max speed restrictions
|
||||
|
||||
Scenario: Bike - Do not use maxspeed when higher that way type speed
|
||||
Given the node map
|
||||
| a | b | c |
|
||||
"""
|
||||
a b c
|
||||
"""
|
||||
|
||||
And the ways
|
||||
| nodes | highway | maxspeed |
|
||||
@@ -61,14 +63,14 @@ Feature: Bike - Max speed restrictions
|
||||
| snail | 720s ~10% |
|
||||
|
||||
Then routability should be
|
||||
| maxspeed | maxspeed:forward | maxspeed:backward | forw | backw |
|
||||
| | | | 15 km/h | 15 km/h |
|
||||
| 10 | | | 10 km/h | 10 km/h |
|
||||
| | 10 | | 10 km/h | 15 km/h |
|
||||
| | | 10 | 15 km/h | 10 km/h |
|
||||
| 2 | 10 | | 10 km/h | 2 km/h |
|
||||
| 2 | | 10 | 2 km/h | 10 km/h |
|
||||
| 2 | 5 | 10 | 5 km/h | 10 km/h |
|
||||
| maxspeed | maxspeed:forward | maxspeed:backward | forw | backw |
|
||||
| | | | 15 km/h +- 1 | 15 km/h +- 1 |
|
||||
| 10 | | | 10 km/h +- 1 | 10 km/h +- 1 |
|
||||
| | 10 | | 10 km/h +- 1 | 15 km/h +- 1 |
|
||||
| | | 10 | 15 km/h | 10 km/h +- 1 |
|
||||
| 2 | 10 | | 10 km/h +- 1 | 2 km/h |
|
||||
| 2 | | 10 | 2 km/h | 10 km/h +- 1 |
|
||||
| 2 | 5 | 10 | 5 km/h | 10 km/h +- 1 |
|
||||
|
||||
Scenario: Bike - Maxspeed should not allow routing on unroutable ways
|
||||
Then routability should be
|
||||
|
||||
@@ -6,8 +6,10 @@ Feature: Bike - Mode flag
|
||||
|
||||
Scenario: Bike - Mode when using a ferry
|
||||
Given the node map
|
||||
| a | b | |
|
||||
| | c | d |
|
||||
"""
|
||||
a b
|
||||
c d
|
||||
"""
|
||||
|
||||
And the ways
|
||||
| nodes | highway | route | duration |
|
||||
@@ -26,8 +28,10 @@ Feature: Bike - Mode flag
|
||||
|
||||
Scenario: Bike - Mode when using a train
|
||||
Given the node map
|
||||
| a | b | |
|
||||
| | c | d |
|
||||
"""
|
||||
a b
|
||||
c d
|
||||
"""
|
||||
|
||||
And the ways
|
||||
| nodes | highway | railway | bicycle |
|
||||
@@ -46,8 +50,10 @@ Feature: Bike - Mode flag
|
||||
|
||||
Scenario: Bike - Mode when pushing bike against oneways
|
||||
Given the node map
|
||||
| a | b | e |
|
||||
| f | c | d |
|
||||
"""
|
||||
a b e
|
||||
f c d
|
||||
"""
|
||||
|
||||
And the ways
|
||||
| nodes | highway | oneway |
|
||||
@@ -69,8 +75,10 @@ Feature: Bike - Mode flag
|
||||
|
||||
Scenario: Bike - Mode when pushing on pedestrain streets
|
||||
Given the node map
|
||||
| a | b | |
|
||||
| | c | d |
|
||||
"""
|
||||
a b
|
||||
c d
|
||||
"""
|
||||
|
||||
And the ways
|
||||
| nodes | highway |
|
||||
@@ -89,8 +97,10 @@ Feature: Bike - Mode flag
|
||||
|
||||
Scenario: Bike - Mode when pushing on pedestrain areas
|
||||
Given the node map
|
||||
| a | b | | |
|
||||
| | c | d | f |
|
||||
"""
|
||||
a b
|
||||
c d f
|
||||
"""
|
||||
|
||||
And the ways
|
||||
| nodes | highway | area |
|
||||
@@ -109,8 +119,10 @@ Feature: Bike - Mode flag
|
||||
|
||||
Scenario: Bike - Mode when pushing on steps
|
||||
Given the node map
|
||||
| a | b | | |
|
||||
| | c | d | f |
|
||||
"""
|
||||
a b
|
||||
c d f
|
||||
"""
|
||||
|
||||
And the ways
|
||||
| nodes | highway |
|
||||
@@ -129,8 +141,10 @@ Feature: Bike - Mode flag
|
||||
|
||||
Scenario: Bike - Mode when bicycle=dismount
|
||||
Given the node map
|
||||
| a | b | | |
|
||||
| | c | d | f |
|
||||
"""
|
||||
a b
|
||||
c d f
|
||||
"""
|
||||
|
||||
And the ways
|
||||
| nodes | highway | bicycle |
|
||||
@@ -149,7 +163,9 @@ Feature: Bike - Mode flag
|
||||
|
||||
Scenario: Bicycle - Modes when starting on forward oneway
|
||||
Given the node map
|
||||
| a | b |
|
||||
"""
|
||||
a b
|
||||
"""
|
||||
|
||||
And the ways
|
||||
| nodes | oneway |
|
||||
@@ -162,7 +178,9 @@ Feature: Bike - Mode flag
|
||||
|
||||
Scenario: Bicycle - Modes when starting on reverse oneway
|
||||
Given the node map
|
||||
| a | b |
|
||||
"""
|
||||
a b
|
||||
"""
|
||||
|
||||
And the ways
|
||||
| nodes | oneway |
|
||||
|
||||
@@ -6,8 +6,10 @@ Feature: Bike - Street names in instructions
|
||||
|
||||
Scenario: Bike - A named street
|
||||
Given the node map
|
||||
| a | b |
|
||||
| | c |
|
||||
"""
|
||||
a b
|
||||
c
|
||||
"""
|
||||
|
||||
And the ways
|
||||
| nodes | name | ref |
|
||||
@@ -19,9 +21,11 @@ Feature: Bike - Street names in instructions
|
||||
| a | c | My Way,Your Way,Your Way | A6,A7,A7 |
|
||||
|
||||
@unnamed
|
||||
Scenario: Bike - Use way type to describe unnamed ways
|
||||
Scenario: Bike - No longer use way type to describe unnamed ways, see #3231
|
||||
Given the node map
|
||||
| a | b | c | d |
|
||||
"""
|
||||
a b c d
|
||||
"""
|
||||
|
||||
And the ways
|
||||
| nodes | highway | name |
|
||||
@@ -29,5 +33,5 @@ Feature: Bike - Street names in instructions
|
||||
| bcd | track | |
|
||||
|
||||
When I route I should get
|
||||
| from | to | route |
|
||||
| a | d | {highway:cycleway},{highway:track},{highway:track} |
|
||||
| from | to | route |
|
||||
| a | d | , |
|
||||
|
||||
@@ -18,8 +18,10 @@ Feature: Bike - Oneway streets
|
||||
|
||||
Scenario: Bike - Around the Block
|
||||
Given the node map
|
||||
| | a | b | |
|
||||
| f | d | c | e |
|
||||
"""
|
||||
a b
|
||||
f d c e
|
||||
"""
|
||||
|
||||
And the ways
|
||||
| nodes | oneway | foot |
|
||||
@@ -117,7 +119,9 @@ Feature: Bike - Oneway streets
|
||||
|
||||
Scenario: Bike - Two consecutive oneways
|
||||
Given the node map
|
||||
| a | b | | c |
|
||||
"""
|
||||
a b c
|
||||
"""
|
||||
|
||||
And the ways
|
||||
| nodes | oneway |
|
||||
|
||||
@@ -35,9 +35,11 @@ Feature: Bike - Accessability of different way types
|
||||
@square
|
||||
Scenario: Bike - Push bikes on pedestrian areas
|
||||
Given the node map
|
||||
| x | |
|
||||
| a | b |
|
||||
| d | c |
|
||||
"""
|
||||
x
|
||||
a b
|
||||
d c
|
||||
"""
|
||||
|
||||
And the ways
|
||||
| nodes | area | highway |
|
||||
@@ -63,6 +65,7 @@ Feature: Bike - Accessability of different way types
|
||||
| runway | | | |
|
||||
| runway | yes | foot | foot |
|
||||
|
||||
@todo
|
||||
Scenario: Bike - Pushing bikes on ways with foot=yes in one direction
|
||||
Then routability should be
|
||||
| highway | foot:forward | foot:backward | forw | backw |
|
||||
@@ -87,8 +90,10 @@ Feature: Bike - Accessability of different way types
|
||||
|
||||
Scenario: Bike - Instructions when pushing bike on oneways
|
||||
Given the node map
|
||||
| a | b | e |
|
||||
| f | c | d |
|
||||
"""
|
||||
a b e
|
||||
f c d
|
||||
"""
|
||||
|
||||
And the ways
|
||||
| nodes | highway | oneway |
|
||||
@@ -107,8 +112,10 @@ Feature: Bike - Accessability of different way types
|
||||
|
||||
Scenario: Bike - Instructions when pushing bike on footway/pedestrian, etc.
|
||||
Given the node map
|
||||
| a | b | |
|
||||
| | c | d |
|
||||
"""
|
||||
a b
|
||||
c d
|
||||
"""
|
||||
|
||||
And the ways
|
||||
| nodes | highway |
|
||||
|
||||
@@ -6,7 +6,9 @@ Feature: Bike - Way ref
|
||||
|
||||
Scenario: Bike - Way with both name and ref
|
||||
Given the node map
|
||||
| a | b |
|
||||
"""
|
||||
a b
|
||||
"""
|
||||
|
||||
And the ways
|
||||
| nodes | name | ref |
|
||||
@@ -18,19 +20,23 @@ Feature: Bike - Way ref
|
||||
|
||||
Scenario: Bike - Way with only ref
|
||||
Given the node map
|
||||
| a | b |
|
||||
"""
|
||||
a b
|
||||
"""
|
||||
|
||||
And the ways
|
||||
| nodes | name | ref |
|
||||
| ab | | E7 |
|
||||
|
||||
When I route I should get
|
||||
| from | to | route | ref |
|
||||
| a | b | {highway:primary},{highway:primary} | E7,E7 |
|
||||
| from | to | route | ref |
|
||||
| a | b | , | E7,E7 |
|
||||
|
||||
Scenario: Bike - Way with only name
|
||||
Given the node map
|
||||
| a | b |
|
||||
"""
|
||||
a b
|
||||
"""
|
||||
|
||||
And the ways
|
||||
| nodes | name |
|
||||
|
||||
@@ -9,9 +9,11 @@ Feature: Bike - Turn restrictions
|
||||
@no_turning
|
||||
Scenario: Bike - No left turn
|
||||
Given the node map
|
||||
| | n | |
|
||||
| w | j | e |
|
||||
| | s | |
|
||||
"""
|
||||
n
|
||||
w j e
|
||||
s
|
||||
"""
|
||||
|
||||
And the ways
|
||||
| nodes | oneway | foot |
|
||||
@@ -33,9 +35,11 @@ Feature: Bike - Turn restrictions
|
||||
@no_turning
|
||||
Scenario: Bike - No right turn
|
||||
Given the node map
|
||||
| | n | |
|
||||
| w | j | e |
|
||||
| | s | |
|
||||
"""
|
||||
n
|
||||
w j e
|
||||
s
|
||||
"""
|
||||
|
||||
And the ways
|
||||
| nodes | oneway | foot |
|
||||
@@ -57,9 +61,11 @@ Feature: Bike - Turn restrictions
|
||||
@no_turning
|
||||
Scenario: Bike - No u-turn
|
||||
Given the node map
|
||||
| | n | |
|
||||
| w | j | e |
|
||||
| | s | |
|
||||
"""
|
||||
n
|
||||
w j e
|
||||
s
|
||||
"""
|
||||
|
||||
And the ways
|
||||
| nodes | oneway | foot |
|
||||
@@ -81,9 +87,11 @@ Feature: Bike - Turn restrictions
|
||||
@no_turning
|
||||
Scenario: Bike - Handle any no_* relation
|
||||
Given the node map
|
||||
| | n | |
|
||||
| w | j | e |
|
||||
| | s | |
|
||||
"""
|
||||
n
|
||||
w j e
|
||||
s
|
||||
"""
|
||||
|
||||
And the ways
|
||||
| nodes | oneway | foot |
|
||||
@@ -105,9 +113,11 @@ Feature: Bike - Turn restrictions
|
||||
@only_turning
|
||||
Scenario: Bike - Only left turn
|
||||
Given the node map
|
||||
| | n | |
|
||||
| w | j | e |
|
||||
| | s | |
|
||||
"""
|
||||
n
|
||||
w j e
|
||||
s
|
||||
"""
|
||||
|
||||
And the ways
|
||||
| nodes | oneway | foot |
|
||||
@@ -129,9 +139,11 @@ Feature: Bike - Turn restrictions
|
||||
@only_turning
|
||||
Scenario: Bike - Only right turn
|
||||
Given the node map
|
||||
| | n | |
|
||||
| w | j | e |
|
||||
| | s | |
|
||||
"""
|
||||
n
|
||||
w j e
|
||||
s
|
||||
"""
|
||||
|
||||
And the ways
|
||||
| nodes | oneway | foot |
|
||||
@@ -153,9 +165,11 @@ Feature: Bike - Turn restrictions
|
||||
@only_turning
|
||||
Scenario: Bike - Only straight on
|
||||
Given the node map
|
||||
| | n | |
|
||||
| w | j | e |
|
||||
| | s | |
|
||||
"""
|
||||
n
|
||||
w j e
|
||||
s
|
||||
"""
|
||||
|
||||
And the ways
|
||||
| nodes | oneway | foot |
|
||||
@@ -177,9 +191,11 @@ Feature: Bike - Turn restrictions
|
||||
@no_turning
|
||||
Scenario: Bike - Handle any only_* restriction
|
||||
Given the node map
|
||||
| | n | |
|
||||
| w | j | e |
|
||||
| | s | |
|
||||
"""
|
||||
n
|
||||
w j e
|
||||
s
|
||||
"""
|
||||
|
||||
And the ways
|
||||
| nodes | oneway | foot |
|
||||
@@ -201,9 +217,11 @@ Feature: Bike - Turn restrictions
|
||||
@except
|
||||
Scenario: Bike - Except tag and on no_ restrictions
|
||||
Given the node map
|
||||
| b | x | c |
|
||||
| a | j | d |
|
||||
| | s | |
|
||||
"""
|
||||
b x c
|
||||
a j d
|
||||
s
|
||||
"""
|
||||
|
||||
And the ways
|
||||
| nodes | oneway | foot |
|
||||
@@ -231,9 +249,11 @@ Feature: Bike - Turn restrictions
|
||||
@except
|
||||
Scenario: Bike - Except tag and on only_ restrictions
|
||||
Given the node map
|
||||
| a | | b |
|
||||
| | j | |
|
||||
| | s | |
|
||||
"""
|
||||
a b
|
||||
j
|
||||
s
|
||||
"""
|
||||
|
||||
And the ways
|
||||
| nodes | oneway | foot |
|
||||
@@ -253,12 +273,14 @@ Feature: Bike - Turn restrictions
|
||||
@except
|
||||
Scenario: Bike - Multiple except tag values
|
||||
Given the node map
|
||||
| s | j | a |
|
||||
| | | b |
|
||||
| | | c |
|
||||
| | | d |
|
||||
| | | e |
|
||||
| | | f |
|
||||
"""
|
||||
s j a
|
||||
b
|
||||
c
|
||||
d
|
||||
e
|
||||
f
|
||||
"""
|
||||
|
||||
And the ways
|
||||
| nodes | oneway | foot |
|
||||
|
||||
@@ -14,8 +14,10 @@ Feature: Bike - Stop areas for public transport
|
||||
|
||||
Scenario: Bike - railway platforms
|
||||
Given the node map
|
||||
| a | b | c | d |
|
||||
| | s | t | |
|
||||
"""
|
||||
a b c d
|
||||
s t
|
||||
"""
|
||||
|
||||
And the nodes
|
||||
| node | public_transport |
|
||||
|
||||
@@ -7,42 +7,43 @@ Feature: Bike - Surfaces
|
||||
Scenario: Bicycle - Slow surfaces
|
||||
Then routability should be
|
||||
| highway | surface | bothw |
|
||||
| cycleway | | 48s |
|
||||
| cycleway | asphalt | 48s |
|
||||
| cycleway | cobblestone:flattened | 72s |
|
||||
| cycleway | paving_stones | 72s |
|
||||
| cycleway | compacted | 72s |
|
||||
| cycleway | cobblestone | 120s |
|
||||
| cycleway | unpaved | 120s |
|
||||
| cycleway | fine_gravel | 120s |
|
||||
| cycleway | gravel | 120s |
|
||||
| cycleway | pebblestone | 120s |
|
||||
| cycleway | dirt | 120s |
|
||||
| cycleway | earth | 120s |
|
||||
| cycleway | grass | 120s |
|
||||
| cycleway | mud | 240s |
|
||||
| cycleway | sand | 240s |
|
||||
| cycleway | | 48 s |
|
||||
| cycleway | asphalt | 48 s |
|
||||
| cycleway | cobblestone:flattened | 72 s |
|
||||
| cycleway | paving_stones | 72 s |
|
||||
| cycleway | compacted | 72 s |
|
||||
| cycleway | cobblestone | 120 s |
|
||||
| cycleway | fine_gravel | 120 s |
|
||||
| cycleway | gravel | 120 s |
|
||||
| cycleway | pebblestone | 120 s |
|
||||
| cycleway | dirt | 120 s |
|
||||
| cycleway | earth | 120 s |
|
||||
| cycleway | grass | 120 s |
|
||||
| cycleway | mud | 240 s |
|
||||
| cycleway | sand | 240 s |
|
||||
|
||||
Scenario: Bicycle - Good surfaces on small paths
|
||||
Then routability should be
|
||||
| highway | surface | bothw |
|
||||
| cycleway | | 48s |
|
||||
| path | | 60s |
|
||||
| track | | 60s |
|
||||
| track | asphalt | 48s |
|
||||
| path | asphalt | 48s |
|
||||
| cycleway | | 48 s |
|
||||
| path | | 60 s |
|
||||
| track | | 60 s |
|
||||
| track | asphalt | 60 s |
|
||||
| path | asphalt | 60 s |
|
||||
|
||||
Scenario: Bicycle - Surfaces should not make unknown ways routable
|
||||
Then routability should be
|
||||
| highway | surface | bothw |
|
||||
| cycleway | | 48s |
|
||||
| cycleway | | 48 s |
|
||||
| nosense | | |
|
||||
| nosense | asphalt | |
|
||||
|
||||
Scenario: Bicycle - Surfaces should not increase speed when pushing bikes
|
||||
Given the node map
|
||||
| a | b |
|
||||
| c | d |
|
||||
"""
|
||||
a b
|
||||
c d
|
||||
"""
|
||||
|
||||
And the ways
|
||||
| nodes | highway | oneway | surface |
|
||||
|
||||
@@ -7,9 +7,11 @@ Feature: Turn Penalties
|
||||
Scenario: Bike - turns should incur a delay that depend on the angle
|
||||
|
||||
Given the node map
|
||||
| c | d | e |
|
||||
| b | j | f |
|
||||
| a | s | g |
|
||||
"""
|
||||
c d e
|
||||
b j f
|
||||
a s g
|
||||
"""
|
||||
|
||||
And the ways
|
||||
| nodes |
|
||||
|
||||
@@ -170,6 +170,8 @@ Feature: Car - Restricted access
|
||||
| primary | | designated | | -1 | | x |
|
||||
| primary | | | designated | yes | | |
|
||||
| primary | | | designated | -1 | | |
|
||||
| primary | | | designated\| | yes | x | |
|
||||
| primary | | | designated\| | -1 | | x |
|
||||
| primary | | | designated\|designated | yes | | |
|
||||
| primary | | | designated\|designated | -1 | | |
|
||||
| primary | | | designated\|yes | yes | x | |
|
||||
|
||||
@@ -8,7 +8,9 @@ OSRM will use 4/5 of the projected free-flow speed.
|
||||
|
||||
Scenario: Car - Advisory speed overwrites maxspeed
|
||||
Given the node map
|
||||
| a | b | c |
|
||||
"""
|
||||
a b c
|
||||
"""
|
||||
|
||||
And the ways
|
||||
| nodes | highway | maxspeed | maxspeed:advisory |
|
||||
@@ -17,12 +19,14 @@ OSRM will use 4/5 of the projected free-flow speed.
|
||||
|
||||
When I route I should get
|
||||
| from | to | route | speed |
|
||||
| a | b | ab,ab | 47 km/h +- 1 |
|
||||
| b | c | bc,bc | 47 km/h +- 1 |
|
||||
| a | b | ab,ab | 36 km/h +- 1 |
|
||||
| b | c | bc,bc | 36 km/h +- 1 |
|
||||
|
||||
Scenario: Car - Advisory speed overwrites forward maxspeed
|
||||
Given the node map
|
||||
| a | b | c |
|
||||
"""
|
||||
a b c
|
||||
"""
|
||||
|
||||
And the ways
|
||||
| nodes | highway | maxspeed:forward | maxspeed:advisory:forward |
|
||||
@@ -31,12 +35,14 @@ OSRM will use 4/5 of the projected free-flow speed.
|
||||
|
||||
When I route I should get
|
||||
| from | to | route | speed |
|
||||
| a | b | ab,ab | 47 km/h +- 1 |
|
||||
| b | c | bc,bc | 47 km/h +- 1 |
|
||||
| a | b | ab,ab | 36 km/h +- 1 |
|
||||
| b | c | bc,bc | 36 km/h +- 1 |
|
||||
|
||||
Scenario: Car - Advisory speed overwrites backwards maxspeed
|
||||
Given the node map
|
||||
| a | b | c |
|
||||
"""
|
||||
a b c
|
||||
"""
|
||||
|
||||
And the ways
|
||||
| nodes | highway | maxspeed:backward | maxspeed:advisory:backward |
|
||||
@@ -45,12 +51,14 @@ OSRM will use 4/5 of the projected free-flow speed.
|
||||
|
||||
When I route I should get
|
||||
| from | to | route | speed |
|
||||
| b | a | ab,ab | 47 km/h +- 1 |
|
||||
| c | b | bc,bc | 47 km/h +- 1 |
|
||||
| b | a | ab,ab | 36 km/h +- 1 |
|
||||
| c | b | bc,bc | 36 km/h +- 1 |
|
||||
|
||||
Scenario: Car - Advisory speed overwrites backwards maxspeed
|
||||
Given the node map
|
||||
| a | b | c | d |
|
||||
"""
|
||||
a b c d
|
||||
"""
|
||||
|
||||
And the ways
|
||||
| nodes | highway | maxspeed:backward | maxspeed:advisory:backward |
|
||||
@@ -60,12 +68,14 @@ OSRM will use 4/5 of the projected free-flow speed.
|
||||
|
||||
When I route I should get
|
||||
| from | to | route | speed |
|
||||
| c | b | bc,bc | 47 km/h +- 1 |
|
||||
| d | c | cd,cd | 47 km/h +- 1 |
|
||||
| c | b | bc,bc | 36 km/h +- 1 |
|
||||
| d | c | cd,cd | 36 km/h +- 1 |
|
||||
|
||||
Scenario: Car - Directional advisory speeds play nice with eachother
|
||||
Given the node map
|
||||
| a | b | c |
|
||||
"""
|
||||
a b c
|
||||
"""
|
||||
|
||||
And the ways
|
||||
| nodes | highway | maxspeed:advisory | maxspeed:advisory:forward | maxspeed:advisory:backward |
|
||||
@@ -74,9 +84,9 @@ OSRM will use 4/5 of the projected free-flow speed.
|
||||
|
||||
When I route I should get
|
||||
| from | to | route | speed |
|
||||
| a | b | ab,ab | 47 km/h +- 1 |
|
||||
| b | a | ab,ab | 59 km/h +- 1 |
|
||||
| b | c | bc,bc | 59 km/h +- 1 |
|
||||
| c | b | bc,bc | 47 km/h +- 1 |
|
||||
| a | b | ab,ab | 36 km/h +- 1 |
|
||||
| b | a | ab,ab | 48 km/h +- 1 |
|
||||
| b | c | bc,bc | 48 km/h +- 1 |
|
||||
| c | b | bc,bc | 36 km/h +- 1 |
|
||||
|
||||
|
||||
|
||||
+18
-14
@@ -6,9 +6,11 @@ Feature: Car - Handle driving
|
||||
|
||||
Scenario: Car - Use a ferry route
|
||||
Given the node map
|
||||
| a | b | c | | |
|
||||
| | | d | | |
|
||||
| | | e | f | g |
|
||||
"""
|
||||
a b c
|
||||
d
|
||||
e f g
|
||||
"""
|
||||
|
||||
And the ways
|
||||
| nodes | highway | bridge | bicycle |
|
||||
@@ -17,21 +19,23 @@ Feature: Car - Handle driving
|
||||
| efg | primary | | |
|
||||
|
||||
When I route I should get
|
||||
| from | to | route | modes |
|
||||
| from | to | route | modes |
|
||||
| a | g | abc,cde,efg,efg | driving,driving,driving,driving |
|
||||
| b | f | abc,cde,efg,efg | driving,driving,driving,driving |
|
||||
| e | c | cde,cde | driving,driving |
|
||||
| e | c | cde,cde | driving,driving |
|
||||
| e | b | cde,abc,abc | driving,driving,driving |
|
||||
| e | a | cde,abc,abc | driving,driving,driving |
|
||||
| c | e | cde,cde | driving,driving |
|
||||
| c | e | cde,cde | driving,driving |
|
||||
| c | f | cde,efg,efg | driving,driving,driving |
|
||||
| c | g | cde,efg,efg | driving,driving,driving |
|
||||
|
||||
Scenario: Car - Properly handle durations
|
||||
Given the node map
|
||||
| a | b | c | | |
|
||||
| | | d | | |
|
||||
| | | e | f | g |
|
||||
"""
|
||||
a b c
|
||||
d
|
||||
e f g
|
||||
"""
|
||||
|
||||
And the ways
|
||||
| nodes | highway | bridge | duration |
|
||||
@@ -40,8 +44,8 @@ Feature: Car - Handle driving
|
||||
| efg | primary | | |
|
||||
|
||||
When I route I should get
|
||||
| from | to | route | modes | speed |
|
||||
| a | g | abc,cde,efg,efg | driving,driving,driving,driving | 7 km/h |
|
||||
| b | f | abc,cde,efg,efg | driving,driving,driving,driving | 5 km/h |
|
||||
| c | e | cde,cde | driving,driving | 2 km/h |
|
||||
| e | c | cde,cde | driving,driving | 2 km/h |
|
||||
| from | to | route | modes | speed |
|
||||
| a | g | abc,cde,efg,efg | driving,driving,driving,driving | 6 km/h |
|
||||
| b | f | abc,cde,efg,efg | driving,driving,driving,driving | 4 km/h |
|
||||
| c | e | cde,cde | driving,driving | 2 km/h |
|
||||
| e | c | cde,cde | driving,driving | 2 km/h |
|
||||
|
||||
@@ -6,10 +6,12 @@ Feature: Car - Destination only, no passing through
|
||||
|
||||
Scenario: Car - Destination only street
|
||||
Given the node map
|
||||
| a | | | | e |
|
||||
| | b | c | d | |
|
||||
| | | | | |
|
||||
| x | | | | y |
|
||||
"""
|
||||
a e
|
||||
b c d
|
||||
|
||||
x y
|
||||
"""
|
||||
|
||||
And the ways
|
||||
| nodes | access |
|
||||
@@ -31,10 +33,12 @@ Feature: Car - Destination only, no passing through
|
||||
|
||||
Scenario: Car - Destination only street
|
||||
Given the node map
|
||||
| a | | | | e |
|
||||
| | b | c | d | |
|
||||
| | | | | |
|
||||
| x | | | | y |
|
||||
"""
|
||||
a e
|
||||
b c d
|
||||
|
||||
x y
|
||||
"""
|
||||
|
||||
And the ways
|
||||
| nodes | access |
|
||||
@@ -57,9 +61,11 @@ Feature: Car - Destination only, no passing through
|
||||
|
||||
Scenario: Car - Routing inside a destination only area
|
||||
Given the node map
|
||||
| a | | c | | e |
|
||||
| | b | | d | |
|
||||
| x | | | | y |
|
||||
"""
|
||||
a c e
|
||||
b d
|
||||
x y
|
||||
"""
|
||||
|
||||
And the ways
|
||||
| nodes | access |
|
||||
|
||||
+17
-11
@@ -6,9 +6,11 @@ Feature: Car - Handle ferry routes
|
||||
|
||||
Scenario: Car - Use a ferry route
|
||||
Given the node map
|
||||
| a | b | c | | |
|
||||
| | | d | | |
|
||||
| | | e | f | g |
|
||||
"""
|
||||
a b c
|
||||
d
|
||||
e f g
|
||||
"""
|
||||
|
||||
And the ways
|
||||
| nodes | highway | route | bicycle |
|
||||
@@ -29,9 +31,11 @@ Feature: Car - Handle ferry routes
|
||||
|
||||
Scenario: Car - Properly handle simple durations
|
||||
Given the node map
|
||||
| a | b | c | | |
|
||||
| | | d | | |
|
||||
| | | e | f | g |
|
||||
"""
|
||||
a b c
|
||||
d
|
||||
e f g
|
||||
"""
|
||||
|
||||
And the ways
|
||||
| nodes | highway | route | duration |
|
||||
@@ -41,16 +45,18 @@ Feature: Car - Handle ferry routes
|
||||
|
||||
When I route I should get
|
||||
| from | to | route | modes | speed |
|
||||
| a | g | abc,cde,efg,efg | driving,ferry,driving,driving | 24 km/h |
|
||||
| a | g | abc,cde,efg,efg | driving,ferry,driving,driving | 23 km/h |
|
||||
| b | f | abc,cde,efg,efg | driving,ferry,driving,driving | 18 km/h |
|
||||
| c | e | cde,cde | ferry,ferry | 11 km/h |
|
||||
| e | c | cde,cde | ferry,ferry | 11 km/h |
|
||||
|
||||
Scenario: Car - Properly handle ISO 8601 durations
|
||||
Given the node map
|
||||
| a | b | c | | |
|
||||
| | | d | | |
|
||||
| | | e | f | g |
|
||||
"""
|
||||
a b c
|
||||
d
|
||||
e f g
|
||||
"""
|
||||
|
||||
And the ways
|
||||
| nodes | highway | route | duration |
|
||||
@@ -60,7 +66,7 @@ Feature: Car - Handle ferry routes
|
||||
|
||||
When I route I should get
|
||||
| from | to | route | modes | speed |
|
||||
| a | g | abc,cde,efg,efg | driving,ferry,driving,driving | 24 km/h |
|
||||
| a | g | abc,cde,efg,efg | driving,ferry,driving,driving | 23 km/h |
|
||||
| b | f | abc,cde,efg,efg | driving,ferry,driving,driving | 18 km/h |
|
||||
| c | e | cde,cde | ferry,ferry | 11 km/h |
|
||||
| e | c | cde,cde | ferry,ferry | 11 km/h |
|
||||
|
||||
+20
-10
@@ -9,8 +9,10 @@ Feature: Car - Speed on links
|
||||
|
||||
Scenario: Car - Use motorway_link when reasonable
|
||||
Given the node map
|
||||
| | | e | | | | f | | |
|
||||
| x | a | b | | | | c | d | y |
|
||||
"""
|
||||
e f
|
||||
x a b c d y
|
||||
"""
|
||||
|
||||
And the ways
|
||||
| nodes | highway |
|
||||
@@ -30,8 +32,10 @@ Feature: Car - Speed on links
|
||||
|
||||
Scenario: Car - Use trunk_link when reasonable
|
||||
Given the node map
|
||||
| | | e | | | | f | | |
|
||||
| x | a | b | | | | c | d | y |
|
||||
"""
|
||||
e f
|
||||
x a b c d y
|
||||
"""
|
||||
|
||||
And the ways
|
||||
| nodes | highway |
|
||||
@@ -50,8 +54,10 @@ Feature: Car - Speed on links
|
||||
|
||||
Scenario: Car - Use primary_link when reasonable
|
||||
Given the node map
|
||||
| | | e | | | | f | | |
|
||||
| x | a | b | | | | c | d | y |
|
||||
"""
|
||||
e f
|
||||
x a b c d y
|
||||
"""
|
||||
|
||||
And the ways
|
||||
| nodes | highway |
|
||||
@@ -70,8 +76,10 @@ Feature: Car - Speed on links
|
||||
|
||||
Scenario: Car - Use secondary_link when reasonable
|
||||
Given the node map
|
||||
| | | e | | | | f | | |
|
||||
| x | a | b | | | | c | d | y |
|
||||
"""
|
||||
e f
|
||||
x a b c d y
|
||||
"""
|
||||
|
||||
And the ways
|
||||
| nodes | highway |
|
||||
@@ -91,8 +99,10 @@ Feature: Car - Speed on links
|
||||
|
||||
Scenario: Car - Use tertiary_link when reasonable
|
||||
Given the node map
|
||||
| | | e | | | | f | | |
|
||||
| x | a | b | | | | c | d | y |
|
||||
"""
|
||||
e f
|
||||
x a b c d y
|
||||
"""
|
||||
|
||||
And the ways
|
||||
| nodes | highway |
|
||||
|
||||
@@ -8,7 +8,9 @@ OSRM will use 4/5 of the projected free-flow speed.
|
||||
|
||||
Scenario: Car - Respect maxspeeds when lower that way type speed
|
||||
Given the node map
|
||||
| a | b | c | d | e | f | g |
|
||||
"""
|
||||
a b c d e f g
|
||||
"""
|
||||
|
||||
And the ways
|
||||
| nodes | highway | maxspeed |
|
||||
@@ -20,17 +22,19 @@ OSRM will use 4/5 of the projected free-flow speed.
|
||||
| fg | trunk | CH:motorway |
|
||||
|
||||
When I route I should get
|
||||
| from | to | route | speed |
|
||||
| a | b | ab,ab | 79 km/h |
|
||||
| b | c | bc,bc | 59 km/h +- 1 |
|
||||
| c | d | cd,cd | 51 km/h |
|
||||
| d | e | de,de | 75 km/h |
|
||||
| e | f | ef,ef | 91 km/h |
|
||||
| f | g | fg,fg | 107 km/h |
|
||||
| from | to | route | speed |
|
||||
| a | b | ab,ab | 68 km/h |
|
||||
| b | c | bc,bc | 48 km/h |
|
||||
| c | d | cd,cd | 40 km/h |
|
||||
| d | e | de,de | 64 km/h |
|
||||
| e | f | ef,ef | 80 km/h |
|
||||
| f | g | fg,fg | 96 km/h |
|
||||
|
||||
Scenario: Car - Do not ignore maxspeed when higher than way speed
|
||||
Given the node map
|
||||
| a | b | c | d |
|
||||
"""
|
||||
a b c d
|
||||
"""
|
||||
|
||||
And the ways
|
||||
| nodes | highway | maxspeed |
|
||||
@@ -39,23 +43,23 @@ OSRM will use 4/5 of the projected free-flow speed.
|
||||
| cd | living_street | FR:urban |
|
||||
|
||||
When I route I should get
|
||||
| from | to | route | speed |
|
||||
| a | b | ab,ab | 31 km/h |
|
||||
| b | c | bc,bc | 83 km/h +- 1 |
|
||||
| c | d | cd,cd | 51 km/h |
|
||||
| from | to | route | speed |
|
||||
| a | b | ab,ab | 20 km/h |
|
||||
| b | c | bc,bc | 72 km/h |
|
||||
| c | d | cd,cd | 40 km/h |
|
||||
|
||||
Scenario: Car - Forward/backward maxspeed
|
||||
Given a grid size of 100 meters
|
||||
|
||||
Then routability should be
|
||||
| highway | maxspeed | maxspeed:forward | maxspeed:backward | forw | backw |
|
||||
| primary | | | | 65 km/h | 65 km/h |
|
||||
| primary | 60 | | | 60 km/h | 60 km/h |
|
||||
| primary | | 60 | | 60 km/h | 65 km/h |
|
||||
| primary | | | 60 | 65 km/h | 60 km/h |
|
||||
| primary | 15 | 60 | | 60 km/h | 23 km/h |
|
||||
| primary | 15 | | 60 | 23 km/h | 60 km/h |
|
||||
| primary | 15 | 30 | 60 | 34 km/h | 60 km/h |
|
||||
| primary | | | | 52 km/h | 52 km/h |
|
||||
| primary | 60 | | | 48 km/h | 48 km/h |
|
||||
| primary | | 60 | | 48 km/h | 48 km/h +- 5 |
|
||||
| primary | | | 60 | 52 km/h | 52 km/h +- 5 |
|
||||
| primary | 15 | 60 | | 48 km/h | 12 km/h |
|
||||
| primary | 15 | | 60 | 12 km/h | 48 km/h |
|
||||
| primary | 15 | 30 | 60 | 24 km/h | 48 km/h |
|
||||
|
||||
Scenario: Car - Maxspeed should not allow routing on unroutable ways
|
||||
Then routability should be
|
||||
@@ -78,44 +82,44 @@ OSRM will use 4/5 of the projected free-flow speed.
|
||||
Then routability should be
|
||||
|
||||
| highway | maxspeed | width | maxspeed:forward | maxspeed:backward | forw | backw |
|
||||
| primary | | | | | 63 km/h | 63 km/h |
|
||||
| primary | | | | | 52 km/h | 52 km/h |
|
||||
| primary | | 3 | | | 32 km/h | 32 km/h |
|
||||
| primary | 60 | | | | 59 km/h | 59 km/h |
|
||||
| primary | 60 | 3 | | | 30 km/h | 30 km/h |
|
||||
| primary | | | 60 | | 59 km/h | 63 km/h |
|
||||
| primary | | 3 | 60 | | 30 km/h | 32 km/h |
|
||||
| primary | | | | 60 | 63 km/h | 59 km/h |
|
||||
| primary | | 3 | | 60 | 32 km/h | 30 km/h |
|
||||
| primary | 15 | | 60 | | 59 km/h | 23 km/h |
|
||||
| primary | 15 | 3 | 60 | | 30 km/h | 7 km/h |
|
||||
| primary | 15 | | | 60 | 23 km/h | 59 km/h |
|
||||
| primary | 15 | 3 | | 60 | 7 km/h | 30 km/h |
|
||||
| primary | 15 | | 30 | 60 | 34 km/h | 59 km/h |
|
||||
| primary | 15 | 3 | 30 | 60 | 15 km/h | 30 km/h |
|
||||
| primary | 60 | | | | 47 km/h | 47 km/h |
|
||||
| primary | 60 | 3 | | | 29 km/h | 29 km/h |
|
||||
| primary | | | 60 | | 47 km/h | 52 km/h |
|
||||
| primary | | 3 | 60 | | 29 km/h | 32 km/h |
|
||||
| primary | | | | 60 | 52 km/h | 47 km/h |
|
||||
| primary | | 3 | | 60 | 32 km/h | 29 km/h |
|
||||
| primary | 15 | | 60 | | 47 km/h | 12 km/h |
|
||||
| primary | 15 | 3 | 60 | | 29 km/h | 7 km/h |
|
||||
| primary | 15 | | | 60 | 12 km/h | 47 km/h |
|
||||
| primary | 15 | 3 | | 60 | 7 km/h | 29 km/h |
|
||||
| primary | 15 | | 30 | 60 | 23 km/h | 47 km/h |
|
||||
| primary | 15 | 3 | 30 | 60 | 14 km/h | 29 km/h |
|
||||
|
||||
Scenario: Car - Single lane streets be ignored or incur a penalty
|
||||
Then routability should be
|
||||
|
||||
| highway | maxspeed | lanes | maxspeed:forward | maxspeed:backward | forw | backw |
|
||||
| primary | | | | | 63 km/h | 63 km/h |
|
||||
| primary | | | | | 52 km/h | 52 km/h |
|
||||
| primary | | 1 | | | 32 km/h | 32 km/h |
|
||||
| primary | 60 | | | | 59 km/h | 59 km/h |
|
||||
| primary | 60 | 1 | | | 30 km/h | 30 km/h |
|
||||
| primary | | | 60 | | 59 km/h | 63 km/h |
|
||||
| primary | | 1 | 60 | | 30 km/h | 32 km/h |
|
||||
| primary | | | | 60 | 63 km/h | 59 km/h |
|
||||
| primary | | 1 | | 60 | 32 km/h | 30 km/h |
|
||||
| primary | 15 | | 60 | | 59 km/h | 23 km/h |
|
||||
| primary | 15 | 1 | 60 | | 30 km/h | 7 km/h |
|
||||
| primary | 15 | | | 60 | 23 km/h | 59 km/h |
|
||||
| primary | 15 | 1 | | 60 | 7 km/h | 30 km/h |
|
||||
| primary | 15 | | 30 | 60 | 34 km/h | 59 km/h |
|
||||
| primary | 15 | 1 | 30 | 60 | 15 km/h | 30 km/h |
|
||||
| primary | 60 | | | | 47 km/h | 47 km/h |
|
||||
| primary | 60 | 1 | | | 29 km/h | 29 km/h |
|
||||
| primary | | | 60 | | 47 km/h | 52 km/h |
|
||||
| primary | | 1 | 60 | | 29 km/h | 32 km/h |
|
||||
| primary | | | | 60 | 52 km/h | 47 km/h |
|
||||
| primary | | 1 | | 60 | 32 km/h | 29 km/h |
|
||||
| primary | 15 | | 60 | | 47 km/h | 12 km/h |
|
||||
| primary | 15 | 1 | 60 | | 29 km/h | 7 km/h |
|
||||
| primary | 15 | | | 60 | 12 km/h | 47 km/h |
|
||||
| primary | 15 | 1 | | 60 | 7 km/h | 29 km/h |
|
||||
| primary | 15 | | 30 | 60 | 23 km/h | 47 km/h |
|
||||
| primary | 15 | 1 | 30 | 60 | 14 km/h | 29 km/h |
|
||||
|
||||
Scenario: Car - Single lane streets only incure a penalty for two-way streets
|
||||
Then routability should be
|
||||
| highway | maxspeed | lanes | oneway | forw | backw |
|
||||
| primary | 30 | 1 | yes | 34 km/h | |
|
||||
| primary | 30 | 1 | -1 | | 34 km/h |
|
||||
| primary | 30 | 1 | yes | 23 km/h | |
|
||||
| primary | 30 | 1 | -1 | | 23 km/h |
|
||||
| primary | 30 | 1 | | 15 km/h | 15 km/h |
|
||||
| primary | 30 | 2 | | 34 km/h | 34 km/h |
|
||||
| primary | 30 | 2 | | 23 km/h | 23 km/h |
|
||||
|
||||
@@ -5,8 +5,10 @@ Feature: Car - Mode flag
|
||||
|
||||
Scenario: Car - Mode when using a ferry
|
||||
Given the node map
|
||||
| a | b | |
|
||||
| | c | d |
|
||||
"""
|
||||
a b
|
||||
c d
|
||||
"""
|
||||
|
||||
And the ways
|
||||
| nodes | highway | route | duration |
|
||||
@@ -25,7 +27,9 @@ Feature: Car - Mode flag
|
||||
|
||||
Scenario: Car - Snapping when using a ferry
|
||||
Given the node map
|
||||
| a | b | | c | d | | e | f |
|
||||
"""
|
||||
a b c d e f
|
||||
"""
|
||||
|
||||
And the ways
|
||||
| nodes | highway | route | duration |
|
||||
|
||||
+33
-22
@@ -3,11 +3,14 @@ Feature: Car - Street names in instructions
|
||||
|
||||
Background:
|
||||
Given the profile "car"
|
||||
Given a grid size of 5 meters
|
||||
|
||||
Scenario: Car - A named street
|
||||
Given the node map
|
||||
| a | b |
|
||||
| | c |
|
||||
"""
|
||||
a b
|
||||
c
|
||||
"""
|
||||
|
||||
And the ways
|
||||
| nodes | name | ref |
|
||||
@@ -20,9 +23,11 @@ Feature: Car - Street names in instructions
|
||||
|
||||
Scenario: Car - A named street with pronunciation
|
||||
Given the node map
|
||||
| a | b | d |
|
||||
| | 1 | |
|
||||
| | c | |
|
||||
"""
|
||||
a b d
|
||||
1
|
||||
c
|
||||
"""
|
||||
|
||||
And the ways
|
||||
| nodes | name |name:pronunciation | ref |
|
||||
@@ -31,16 +36,18 @@ Feature: Car - Street names in instructions
|
||||
| cd | Your Way | yourewaye | |
|
||||
|
||||
When I route I should get
|
||||
| from | to | route | pronunciations | ref |
|
||||
| a | d | My Way,My Way | ,meyeway | ,A1 |
|
||||
| 1 | c | Your Way,Your Way | yourewaye,yourewaye | , |
|
||||
| from | to | route | pronunciations | ref |
|
||||
| a | d | My Way,My Way,My Way | ,meyeway,meyeway | ,A1,A1 |
|
||||
| 1 | c | Your Way,Your Way | yourewaye,yourewaye | , |
|
||||
|
||||
# See #2860
|
||||
Scenario: Car - same street name but different pronunciation
|
||||
Given the node map
|
||||
| a | b | c |
|
||||
| | d | |
|
||||
| | e | |
|
||||
"""
|
||||
a b c
|
||||
d
|
||||
e
|
||||
"""
|
||||
|
||||
And the ways
|
||||
| nodes | name | name:pronunciation |
|
||||
@@ -55,7 +62,9 @@ Feature: Car - Street names in instructions
|
||||
@todo
|
||||
Scenario: Car - Use way type to describe unnamed ways
|
||||
Given the node map
|
||||
| a | b | c | d |
|
||||
"""
|
||||
a b c d
|
||||
"""
|
||||
|
||||
And the ways
|
||||
| nodes | highway | name |
|
||||
@@ -68,16 +77,18 @@ Feature: Car - Street names in instructions
|
||||
|
||||
Scenario: Inner city expressway with on road
|
||||
Given the node map
|
||||
| a | b | | | | c | g |
|
||||
| | | | | f | | |
|
||||
| | | | | | | |
|
||||
| | | | | | | |
|
||||
| | | | | | | |
|
||||
| | | | | | d | |
|
||||
| | | | | | | |
|
||||
| | | | | | | |
|
||||
| | | | | | | |
|
||||
| | | | | | e | |
|
||||
"""
|
||||
a b c g
|
||||
f
|
||||
|
||||
|
||||
|
||||
d
|
||||
|
||||
|
||||
|
||||
e
|
||||
"""
|
||||
|
||||
And the ways
|
||||
| nodes | highway | name | name:pronunciation |
|
||||
|
||||
@@ -35,8 +35,10 @@ Feature: Car - Oneway streets
|
||||
|
||||
Scenario: Car - Around the Block
|
||||
Given the node map
|
||||
| | a | b | |
|
||||
| f | d | c | e |
|
||||
"""
|
||||
a b
|
||||
f d c e
|
||||
"""
|
||||
|
||||
And the ways
|
||||
| nodes | oneway |
|
||||
@@ -70,7 +72,9 @@ Feature: Car - Oneway streets
|
||||
|
||||
Scenario: Car - Two consecutive oneways
|
||||
Given the node map
|
||||
| a | b | | c |
|
||||
"""
|
||||
a b c
|
||||
"""
|
||||
|
||||
And the ways
|
||||
| nodes | oneway |
|
||||
@@ -81,3 +85,12 @@ Feature: Car - Oneway streets
|
||||
When I route I should get
|
||||
| from | to | route |
|
||||
| a | c | ab,bc,bc |
|
||||
|
||||
|
||||
# Reversible oneways (low frequency) vs alternating oneways (high frequency).
|
||||
# See: https://github.com/Project-OSRM/osrm-backend/issues/2837
|
||||
Scenario: Car - Route over alternating but not reversible oneways
|
||||
Then routability should be
|
||||
| highway | oneway | forw | backw |
|
||||
| primary | reversible | | |
|
||||
| primary | alternating | x | x |
|
||||
|
||||
@@ -10,9 +10,11 @@ Feature: Car - Turn restrictions
|
||||
@no_turning
|
||||
Scenario: Car - No left turn
|
||||
Given the node map
|
||||
| | n | |
|
||||
| w | j | e |
|
||||
| | s | |
|
||||
"""
|
||||
n
|
||||
w j e
|
||||
s
|
||||
"""
|
||||
|
||||
And the ways
|
||||
| nodes | oneway |
|
||||
@@ -34,9 +36,11 @@ Feature: Car - Turn restrictions
|
||||
@no_turning
|
||||
Scenario: Car - No straight on
|
||||
Given the node map
|
||||
| a | b | j | d | e |
|
||||
| v | | | | z |
|
||||
| | w | x | y | |
|
||||
"""
|
||||
a b j d e
|
||||
v z
|
||||
w x y
|
||||
"""
|
||||
|
||||
And the ways
|
||||
| nodes | oneway |
|
||||
@@ -62,9 +66,11 @@ Feature: Car - Turn restrictions
|
||||
@no_turning
|
||||
Scenario: Car - No right turn
|
||||
Given the node map
|
||||
| | n | |
|
||||
| w | j | e |
|
||||
| | s | |
|
||||
"""
|
||||
n
|
||||
w j e
|
||||
s
|
||||
"""
|
||||
|
||||
And the ways
|
||||
| nodes | oneway |
|
||||
@@ -86,9 +92,11 @@ Feature: Car - Turn restrictions
|
||||
@no_turning
|
||||
Scenario: Car - No u-turn
|
||||
Given the node map
|
||||
| | n | |
|
||||
| w | j | e |
|
||||
| | s | |
|
||||
"""
|
||||
n
|
||||
w j e
|
||||
s
|
||||
"""
|
||||
|
||||
And the ways
|
||||
| nodes | oneway |
|
||||
@@ -110,9 +118,11 @@ Feature: Car - Turn restrictions
|
||||
@no_turning
|
||||
Scenario: Car - Handle any no_* relation
|
||||
Given the node map
|
||||
| | n | |
|
||||
| w | j | e |
|
||||
| | s | |
|
||||
"""
|
||||
n
|
||||
w j e
|
||||
s
|
||||
"""
|
||||
|
||||
And the ways
|
||||
| nodes | oneway |
|
||||
@@ -134,9 +144,11 @@ Feature: Car - Turn restrictions
|
||||
@only_turning
|
||||
Scenario: Car - Only left turn
|
||||
Given the node map
|
||||
| | n | |
|
||||
| w | j | e |
|
||||
| | s | |
|
||||
"""
|
||||
n
|
||||
w j e
|
||||
s
|
||||
"""
|
||||
|
||||
And the ways
|
||||
| nodes | oneway |
|
||||
@@ -151,9 +163,11 @@ Feature: Car - Turn restrictions
|
||||
|
||||
Scenario: Car - Only right turn, invalid
|
||||
Given the node map
|
||||
| | n | | |
|
||||
| w | j | e | r |
|
||||
| | s | | |
|
||||
"""
|
||||
n
|
||||
w j e r
|
||||
s
|
||||
"""
|
||||
|
||||
And the ways
|
||||
| nodes | oneway |
|
||||
@@ -174,9 +188,11 @@ Feature: Car - Turn restrictions
|
||||
@only_turning
|
||||
Scenario: Car - Only right turn
|
||||
Given the node map
|
||||
| | n | |
|
||||
| w | j | e |
|
||||
| | s | |
|
||||
"""
|
||||
n
|
||||
w j e
|
||||
s
|
||||
"""
|
||||
|
||||
And the ways
|
||||
| nodes | oneway |
|
||||
@@ -198,9 +214,11 @@ Feature: Car - Turn restrictions
|
||||
@only_turning
|
||||
Scenario: Car - Only straight on
|
||||
Given the node map
|
||||
| | n | |
|
||||
| w | j | e |
|
||||
| | s | |
|
||||
"""
|
||||
n
|
||||
w j e
|
||||
s
|
||||
"""
|
||||
|
||||
And the ways
|
||||
| nodes | oneway |
|
||||
@@ -222,9 +240,11 @@ Feature: Car - Turn restrictions
|
||||
@no_turning
|
||||
Scenario: Car - Handle any only_* restriction
|
||||
Given the node map
|
||||
| | n | |
|
||||
| w | j | e |
|
||||
| | s | |
|
||||
"""
|
||||
n
|
||||
w j e
|
||||
s
|
||||
"""
|
||||
|
||||
And the ways
|
||||
| nodes | oneway |
|
||||
@@ -246,9 +266,11 @@ Feature: Car - Turn restrictions
|
||||
@specific
|
||||
Scenario: Car - :hgv-qualified on a standard turn restriction
|
||||
Given the node map
|
||||
| | n | |
|
||||
| w | j | e |
|
||||
| | s | |
|
||||
"""
|
||||
n
|
||||
w j e
|
||||
s
|
||||
"""
|
||||
|
||||
And the ways
|
||||
| nodes | oneway |
|
||||
@@ -270,9 +292,11 @@ Feature: Car - Turn restrictions
|
||||
@specific
|
||||
Scenario: Car - :motorcar-qualified on a standard turn restriction
|
||||
Given the node map
|
||||
| | n | |
|
||||
| w | j | e |
|
||||
| | s | |
|
||||
"""
|
||||
n
|
||||
w j e
|
||||
s
|
||||
"""
|
||||
|
||||
And the ways
|
||||
| nodes | oneway |
|
||||
@@ -294,9 +318,11 @@ Feature: Car - Turn restrictions
|
||||
@except
|
||||
Scenario: Car - Except tag and on no_ restrictions
|
||||
Given the node map
|
||||
| b | x | c |
|
||||
| a | j | d |
|
||||
| | s | |
|
||||
"""
|
||||
b x c
|
||||
a j d
|
||||
s
|
||||
"""
|
||||
|
||||
And the ways
|
||||
| nodes | oneway |
|
||||
@@ -324,9 +350,11 @@ Feature: Car - Turn restrictions
|
||||
@except
|
||||
Scenario: Car - Except tag and on only_ restrictions
|
||||
Given the node map
|
||||
| a | | b |
|
||||
| | j | |
|
||||
| | s | |
|
||||
"""
|
||||
a b
|
||||
j
|
||||
s
|
||||
"""
|
||||
|
||||
And the ways
|
||||
| nodes | oneway |
|
||||
@@ -346,10 +374,12 @@ Feature: Car - Turn restrictions
|
||||
@except
|
||||
Scenario: Car - Several only_ restrictions at the same segment
|
||||
Given the node map
|
||||
| | | | | y | | | | |
|
||||
| i | j | f | b | x | a | e | g | h |
|
||||
| | | | | | | | | |
|
||||
| | | | c | | d | | | |
|
||||
"""
|
||||
y
|
||||
i j f b x a e g h
|
||||
|
||||
c d
|
||||
"""
|
||||
|
||||
And the ways
|
||||
| nodes | oneway |
|
||||
@@ -381,13 +411,15 @@ Feature: Car - Turn restrictions
|
||||
@except
|
||||
Scenario: Car - two only_ restrictions share same to-way
|
||||
Given the node map
|
||||
| | | e | | | | f | | |
|
||||
| | | | | a | | | | |
|
||||
| | | | | | | | | |
|
||||
| | | c | | x | | d | | |
|
||||
| | | | | y | | | | |
|
||||
| | | | | | | | | |
|
||||
| | | | | b | | | | |
|
||||
"""
|
||||
e f
|
||||
a
|
||||
|
||||
c x d
|
||||
y
|
||||
|
||||
b
|
||||
"""
|
||||
|
||||
And the ways
|
||||
| nodes | oneway |
|
||||
@@ -415,13 +447,15 @@ Feature: Car - Turn restrictions
|
||||
@except
|
||||
Scenario: Car - two only_ restrictions share same from-way
|
||||
Given the node map
|
||||
| | | e | | | | f | | |
|
||||
| | | | | a | | | | |
|
||||
| | | | | | | | | |
|
||||
| | | c | | x | | d | | |
|
||||
| | | | | y | | | | |
|
||||
| | | | | | | | | |
|
||||
| | | | | b | | | | |
|
||||
"""
|
||||
e f
|
||||
a
|
||||
|
||||
c x d
|
||||
y
|
||||
|
||||
b
|
||||
"""
|
||||
|
||||
And the ways
|
||||
| nodes | oneway |
|
||||
@@ -449,9 +483,11 @@ Feature: Car - Turn restrictions
|
||||
@specific
|
||||
Scenario: Car - Ignore unrecognized restriction
|
||||
Given the node map
|
||||
| | n | |
|
||||
| w | j | e |
|
||||
| | s | |
|
||||
"""
|
||||
n
|
||||
w j e
|
||||
s
|
||||
"""
|
||||
|
||||
And the ways
|
||||
| nodes | oneway |
|
||||
|
||||
@@ -9,5 +9,6 @@ Feature: Car - Surfaces
|
||||
| highway | service | forw | backw |
|
||||
| service | alley | 5 km/h +-1 | 5 km/h +-1 |
|
||||
| service | emergency_access | | |
|
||||
| service | driveway | 15 km/h +-1| 15 km/h +-1 |
|
||||
|
||||
| service | driveway | 5 km/h +-1 | 5 km/h +-1 |
|
||||
| service | drive-through | 5 km/h +-1 | 5 km/h +-1 |
|
||||
| service | parking | 5 km/h +-1 | 5 km/h +-1 |
|
||||
|
||||
@@ -6,9 +6,11 @@ Feature: Car - Handle ferryshuttle train routes
|
||||
|
||||
Scenario: Car - Use a ferry route
|
||||
Given the node map
|
||||
| a | b | c | | | |
|
||||
| | | d | | | |
|
||||
| | | e | f | g | h |
|
||||
"""
|
||||
a b c
|
||||
d
|
||||
e f g h
|
||||
"""
|
||||
|
||||
And the ways
|
||||
| nodes | highway | route | bicycle |
|
||||
|
||||
+28
-15
@@ -7,18 +7,31 @@ Feature: Car - speeds
|
||||
|
||||
Scenario: Car - speed of various way types
|
||||
Then routability should be
|
||||
| highway | oneway | bothw |
|
||||
| motorway | no | 82 km/h |
|
||||
| motorway_link | no | 47 km/h |
|
||||
| trunk | no | 79 km/h +- 1 |
|
||||
| trunk_link | no | 43 km/h +- 1 |
|
||||
| primary | no | 63 km/h +- 1 |
|
||||
| primary_link | no | 34 km/h |
|
||||
| secondary | no | 54 km/h +- 1 |
|
||||
| secondary_link | no | 31 km/h |
|
||||
| tertiary | no | 43 km/h |
|
||||
| tertiary_link | no | 26 km/h |
|
||||
| unclassified | no | 31 km/h |
|
||||
| residential | no | 31 km/h |
|
||||
| living_street | no | 18 km/h |
|
||||
| service | no | 23 km/h |
|
||||
| highway | oneway | bothw |
|
||||
| motorway | no | 71 km/h |
|
||||
| motorway_link | no | 36 km/h |
|
||||
| trunk | no | 68 km/h |
|
||||
| trunk_link | no | 31 km/h |
|
||||
| primary | no | 52 km/h |
|
||||
| primary_link | no | 23 km/h |
|
||||
| secondary | no | 44 km/h |
|
||||
| secondary_link | no | 19 km/h |
|
||||
| tertiary | no | 31 km/h |
|
||||
| tertiary_link | no | 16 km/h |
|
||||
| unclassified | no | 19 km/h |
|
||||
| residential | no | 19 km/h |
|
||||
| living_street | no | 8 km/h |
|
||||
| service | no | 11 km/h |
|
||||
|
||||
# Alternating oneways have to take average waiting time into account.
|
||||
Scenario: Car - scaled speeds for oneway=alternating
|
||||
Then routability should be
|
||||
| highway | oneway | junction | forw | backw | # |
|
||||
| tertiary | | | 31 km/h | 31 km/h | |
|
||||
| tertiary | alternating | | 12 km/h +- 1 | 12 km/h +- 1 | |
|
||||
| motorway | | | 71 km/h | | implied oneway |
|
||||
| motorway | alternating | | 28 km/h +- 1 | | implied oneway |
|
||||
| motorway | reversible | | | | unroutable |
|
||||
| primary | | roundabout | 52 km/h | | implied oneway |
|
||||
| primary | alternating | roundabout | 20 km/h +- 1 | | implied oneway |
|
||||
| primary | reversible | roundabout | | | unroutable |
|
||||
|
||||
@@ -8,11 +8,13 @@ Feature: Basic Routing
|
||||
@smallest
|
||||
Scenario: Summaries when routing on a simple network
|
||||
Given the node map
|
||||
| b | | | f |
|
||||
| | | | |
|
||||
| c | d | | g |
|
||||
| | | | |
|
||||
| a | | e | |
|
||||
"""
|
||||
b f
|
||||
|
||||
c d g
|
||||
|
||||
a e
|
||||
"""
|
||||
|
||||
And the ways
|
||||
| nodes | name |
|
||||
@@ -30,7 +32,9 @@ Feature: Basic Routing
|
||||
|
||||
Scenario: Name Empty
|
||||
Given the node map
|
||||
| a | | b | | | c |
|
||||
"""
|
||||
a b c
|
||||
"""
|
||||
|
||||
And the ways
|
||||
| nodes | name |
|
||||
@@ -43,7 +47,9 @@ Feature: Basic Routing
|
||||
|
||||
Scenario: Name Empty But Ref
|
||||
Given the node map
|
||||
| a | | b | | | c |
|
||||
"""
|
||||
a b c
|
||||
"""
|
||||
|
||||
And the ways
|
||||
| nodes | name | ref |
|
||||
@@ -56,7 +62,9 @@ Feature: Basic Routing
|
||||
|
||||
Scenario: Only Refs
|
||||
Given the node map
|
||||
| a | | b | | | c |
|
||||
"""
|
||||
a b c
|
||||
"""
|
||||
|
||||
And the ways
|
||||
| nodes | name | ref |
|
||||
@@ -69,7 +77,9 @@ Feature: Basic Routing
|
||||
|
||||
Scenario: Single Ref
|
||||
Given the node map
|
||||
| a | | b | | | c |
|
||||
"""
|
||||
a b c
|
||||
"""
|
||||
|
||||
And the ways
|
||||
| nodes | name | ref |
|
||||
@@ -82,7 +92,9 @@ Feature: Basic Routing
|
||||
|
||||
Scenario: Nothing
|
||||
Given the node map
|
||||
| a | | b | | | c |
|
||||
"""
|
||||
a b c
|
||||
"""
|
||||
|
||||
And the ways
|
||||
| nodes | name |
|
||||
|
||||
@@ -4,7 +4,7 @@ Feature: Car - Surfaces
|
||||
Background:
|
||||
Given the profile "car"
|
||||
|
||||
Scenario: Car - Routeability of tracktype tags
|
||||
Scenario: Car - Routability of tracktype tags
|
||||
Then routability should be
|
||||
| highway | tracktype | bothw |
|
||||
| trunk | grade1 | x |
|
||||
@@ -26,8 +26,8 @@ Feature: Car - Surfaces
|
||||
| trunk | very_horrible | x |
|
||||
| trunk | impassable | |
|
||||
| trunk | nonsense | x |
|
||||
|
||||
Scenario: Car - Routabiliy of surface tags
|
||||
|
||||
Scenario: Car - Routability of surface tags
|
||||
Then routability should be
|
||||
| highway | surface | bothw |
|
||||
| trunk | asphalt | x |
|
||||
@@ -64,64 +64,64 @@ Feature: Car - Surfaces
|
||||
Scenario: Car - Surface should reduce speed
|
||||
Then routability should be
|
||||
| highway | oneway | surface | forw | backw |
|
||||
| motorway | no | | 80 km/h +-1 | 80 km/h +-1 |
|
||||
| motorway | no | asphalt | 80 km/h +-1 | 80 km/h +-1 |
|
||||
| motorway | no | concrete | 80 km/h +-1 | 80 km/h +-1 |
|
||||
| motorway | no | concrete:plates | 80 km/h +-1 | 80 km/h +-1 |
|
||||
| motorway | no | concrete:lanes | 80 km/h +-1 | 80 km/h +-1 |
|
||||
| motorway | no | paved | 80 km/h +-1 | 80 km/h +-1 |
|
||||
| motorway | no | cement | 72 km/h +-1 | 72 km/h +-1 |
|
||||
| motorway | no | compacted | 72 km/h +-1 | 72 km/h +-1 |
|
||||
| motorway | no | fine_gravel | 72 km/h +-1 | 72 km/h +-1 |
|
||||
| motorway | no | paving_stones | 60 km/h +-1 | 60 km/h +-1 |
|
||||
| motorway | no | metal | 60 km/h +-1 | 60 km/h +-1 |
|
||||
| motorway | no | bricks | 60 km/h +-1 | 60 km/h +-1 |
|
||||
| motorway | no | grass | 42 km/h +-1 | 42 km/h +-1 |
|
||||
| motorway | no | wood | 42 km/h +-1 | 42 km/h +-1 |
|
||||
| motorway | no | sett | 42 km/h +-1 | 42 km/h +-1 |
|
||||
| motorway | no | grass_paver | 42 km/h +-1 | 42 km/h +-1 |
|
||||
| motorway | no | gravel | 42 km/h +-1 | 42 km/h +-1 |
|
||||
| motorway | no | unpaved | 42 km/h +-1 | 42 km/h +-1 |
|
||||
| motorway | no | ground | 42 km/h +-1 | 42 km/h +-1 |
|
||||
| motorway | no | dirt | 42 km/h +-1 | 42 km/h +-1 |
|
||||
| motorway | no | pebblestone | 42 km/h +-1 | 42 km/h +-1 |
|
||||
| motorway | no | tartan | 42 km/h +-1 | 42 km/h +-1 |
|
||||
| motorway | no | cobblestone | 34 km/h +-1 | 34 km/h +-1 |
|
||||
| motorway | no | clay | 34 km/h +-1 | 34 km/h +-1 |
|
||||
| motorway | no | earth | 26 km/h +-1 | 26 km/h +-1 |
|
||||
| motorway | no | stone | 26 km/h +-1 | 26 km/h +-1 |
|
||||
| motorway | no | rocky | 26 km/h +-1 | 26 km/h +-1 |
|
||||
| motorway | no | sand | 26 km/h +-1 | 26 km/h +-1 |
|
||||
| motorway | no | | 72 km/h | 72 km/h |
|
||||
| motorway | no | asphalt | 72 km/h | 72 km/h +-1 |
|
||||
| motorway | no | concrete | 72 km/h +-1 | 72 km/h +-1 |
|
||||
| motorway | no | concrete:plates | 72 km/h +-1 | 72 km/h +-1 |
|
||||
| motorway | no | concrete:lanes | 72 km/h +-1 | 72 km/h +-1 |
|
||||
| motorway | no | paved | 72 km/h +-1 | 72 km/h +-1 |
|
||||
| motorway | no | cement | 64 km/h +-1 | 64 km/h +-1 |
|
||||
| motorway | no | compacted | 64 km/h +-1 | 64 km/h +-1 |
|
||||
| motorway | no | fine_gravel | 64 km/h +-1 | 64 km/h +-1 |
|
||||
| motorway | no | paving_stones | 48 km/h +-1 | 48 km/h +-1 |
|
||||
| motorway | no | metal | 48 km/h +-1 | 48 km/h +-1 |
|
||||
| motorway | no | bricks | 48 km/h +-1 | 48 km/h +-1 |
|
||||
| motorway | no | grass | 32 km/h +-1 | 32 km/h +-1 |
|
||||
| motorway | no | wood | 32 km/h +-1 | 32 km/h +-1 |
|
||||
| motorway | no | sett | 32 km/h +-1 | 32 km/h +-1 |
|
||||
| motorway | no | grass_paver | 32 km/h +-1 | 32 km/h +-1 |
|
||||
| motorway | no | gravel | 32 km/h +-1 | 32 km/h +-1 |
|
||||
| motorway | no | unpaved | 32 km/h +-1 | 32 km/h +-1 |
|
||||
| motorway | no | ground | 32 km/h +-1 | 32 km/h +-1 |
|
||||
| motorway | no | dirt | 32 km/h +-1 | 32 km/h +-1 |
|
||||
| motorway | no | pebblestone | 32 km/h +-1 | 32 km/h +-1 |
|
||||
| motorway | no | tartan | 32 km/h +-1 | 32 km/h +-1 |
|
||||
| motorway | no | cobblestone | 24 km/h +-1 | 24 km/h +-1 |
|
||||
| motorway | no | clay | 24 km/h +-1 | 24 km/h +-1 |
|
||||
| motorway | no | earth | 16 km/h +-1 | 16 km/h +-1 |
|
||||
| motorway | no | stone | 16 km/h +-1 | 16 km/h +-1 |
|
||||
| motorway | no | rocky | 16 km/h +-1 | 16 km/h +-1 |
|
||||
| motorway | no | sand | 16 km/h +-1 | 16 km/h +-1 |
|
||||
|
||||
Scenario: Car - Tracktypes should reduce speed
|
||||
Then routability should be
|
||||
| highway | oneway | tracktype | forw | backw |
|
||||
| motorway | no | | 80 km/h +-1 | 80 km/h +-1 |
|
||||
| motorway | no | grade1 | 60 km/h +-1 | 60 km/h +-1 |
|
||||
| motorway | no | grade2 | 42 km/h +-1 | 42 km/h +-1 |
|
||||
| motorway | no | grade3 | 34 km/h +-1 | 34 km/h +-1 |
|
||||
| motorway | no | grade4 | 31 km/h +-1 | 31 km/h +-1 |
|
||||
| motorway | no | grade5 | 26 km/h +-1 | 26 km/h +-1 |
|
||||
| motorway | no | | 72 km/h | 72 km/h |
|
||||
| motorway | no | grade1 | 48 km/h +-1 | 48 km/h +-1 |
|
||||
| motorway | no | grade2 | 32 km/h +-1 | 32 km/h +-1 |
|
||||
| motorway | no | grade3 | 24 km/h +-1 | 24 km/h +-1 |
|
||||
| motorway | no | grade4 | 20 km/h +-1 | 20 km/h +-1 |
|
||||
| motorway | no | grade5 | 16 km/h +-1 | 16 km/h +-1 |
|
||||
|
||||
Scenario: Car - Smoothness should reduce speed
|
||||
Then routability should be
|
||||
| highway | oneway | smoothness | forw | backw |
|
||||
| motorway | no | | 80 km/h +-1 | 80 km/h +-1 |
|
||||
| motorway | no | intermediate | 72 km/h +-1 | 72 km/h +-1 |
|
||||
| motorway | no | bad | 42 km/h +-1 | 42 km/h +-1 |
|
||||
| motorway | no | very_bad | 26 km/h +-1 | 26 km/h +-1 |
|
||||
| motorway | no | horrible | 18 km/h +-1 | 18 km/h +-1 |
|
||||
| motorway | no | very_horrible | 15 km/h +-1 | 15 km/h +-1 |
|
||||
| motorway | no | | 72 km/h | 72 km/h |
|
||||
| motorway | no | intermediate | 64 km/h | 64 km/h |
|
||||
| motorway | no | bad | 32 km/h +-1 | 32 km/h +-1 |
|
||||
| motorway | no | very_bad | 16 km/h +-1 | 16 km/h +-1 |
|
||||
| motorway | no | horrible | 8 km/h +-1 | 8 km/h +-1 |
|
||||
| motorway | no | very_horrible | 4 km/h +-1 | 4 km/h +-1 |
|
||||
|
||||
Scenario: Car - Combination of surface tags should use lowest speed
|
||||
Then routability should be
|
||||
| highway | oneway | tracktype | surface | smoothness | backw | forw |
|
||||
| motorway | no | | | | 80 km/h | 80 km/h |
|
||||
| service | no | grade1 | asphalt | excellent | 23 km/h | 23 km/h |
|
||||
| motorway | no | grade5 | asphalt | excellent | 26 km/h | 26 km/h |
|
||||
| motorway | no | grade1 | mud | excellent | 18 km/h | 18 km/h |
|
||||
| motorway | no | grade1 | asphalt | very_horrible | 15 km/h | 15 km/h |
|
||||
| service | no | grade5 | mud | very_horrible | 15 km/h | 15 km/h |
|
||||
| motorway | no | | | | 72 km/h | 72 km/h |
|
||||
| service | no | grade1 | asphalt | excellent | 12 km/h | 12 km/h |
|
||||
| motorway | no | grade5 | asphalt | excellent | 16 km/h | 16 km/h |
|
||||
| motorway | no | grade1 | mud | excellent | 8 km/h | 8 km/h |
|
||||
| motorway | no | grade1 | asphalt | very_horrible | 4 km/h | 4 km/h |
|
||||
| service | no | grade5 | mud | very_horrible | 4 km/h | 4 km/h |
|
||||
|
||||
Scenario: Car - Surfaces should not affect oneway direction
|
||||
Then routability should be
|
||||
@@ -138,4 +138,3 @@ Feature: Car - Surfaces
|
||||
| primary | -1 | grade1 | excellent | asphalt | | x |
|
||||
| primary | -1 | grade5 | very_bad | mud | | x |
|
||||
| primary | -1 | nonsense | nonsense | nonsense | | x |
|
||||
|
||||
|
||||
@@ -7,12 +7,12 @@ Feature: Traffic - speeds
|
||||
Given the node locations
|
||||
| node | lat | lon |
|
||||
| a | 0.1 | 0.1 |
|
||||
| b | .05 | 0.1 |
|
||||
| b | 0.05 | 0.1 |
|
||||
| c | 0.0 | 0.1 |
|
||||
| d | .05 | .03 |
|
||||
| e | .05 | .066 |
|
||||
| f | .075 | .066 |
|
||||
| g | .075 | 0.1 |
|
||||
| d | 0.05 | 0.03 |
|
||||
| e | 0.05 | 0.066 |
|
||||
| f | 0.075 | 0.066 |
|
||||
| g | 0.075 | 0.1 |
|
||||
And the ways
|
||||
| nodes | highway |
|
||||
| ab | primary |
|
||||
@@ -50,12 +50,12 @@ Feature: Traffic - speeds
|
||||
Given the node locations
|
||||
| node | lat | lon |
|
||||
| a | 0.1 | 0.1 |
|
||||
| b | .05 | 0.1 |
|
||||
| b | 0.05 | 0.1 |
|
||||
| c | 0.0 | 0.1 |
|
||||
| d | .05 | .03 |
|
||||
| e | .05 | .066 |
|
||||
| f | .075 | .066 |
|
||||
| g | .075 | 0.1 |
|
||||
| d | 0.05 | 0.03 |
|
||||
| e | 0.05 | 0.066 |
|
||||
| f | 0.075 | 0.066 |
|
||||
| g | 0.075 | 0.1 |
|
||||
| h | 2.075 | 19.1 |
|
||||
And the ways
|
||||
| nodes | highway |
|
||||
@@ -93,12 +93,12 @@ Feature: Traffic - speeds
|
||||
Given the node locations
|
||||
| node | lat | lon |
|
||||
| a | 0.1 | 0.1 |
|
||||
| b | .05 | 0.1 |
|
||||
| b | 0.05 | 0.1 |
|
||||
| c | 0.0 | 0.1 |
|
||||
| d | .05 | .03 |
|
||||
| e | .05 | .066 |
|
||||
| f | .075 | .066 |
|
||||
| g | .075 | 0.1 |
|
||||
| d | 0.05 | 0.03 |
|
||||
| e | 0.05 | 0.066 |
|
||||
| f | 0.075 | 0.066 |
|
||||
| g | 0.075 | 0.1 |
|
||||
| h | 1.075 | 10.1 |
|
||||
And the ways
|
||||
| nodes | highway |
|
||||
|
||||
@@ -3,11 +3,33 @@ Feature: Traffic - turn penalties
|
||||
|
||||
Background: Evenly spaced grid with multiple intersections
|
||||
Given the node map
|
||||
| | a:1 | | b:2 | |
|
||||
| c:3 | d:4 | e:5 | f:6 | g:7 |
|
||||
| | h:8 | | i:9 | |
|
||||
| j:10 | k:11 | l:12 | m:13 | n:14 |
|
||||
| | o:15 | | p:16 | |
|
||||
"""
|
||||
a b
|
||||
c d e f g
|
||||
h i
|
||||
j k l m n
|
||||
o p
|
||||
"""
|
||||
|
||||
And the nodes
|
||||
| node | id |
|
||||
| a | 1 |
|
||||
| b | 2 |
|
||||
| c | 3 |
|
||||
| d | 4 |
|
||||
| e | 5 |
|
||||
| f | 6 |
|
||||
| g | 7 |
|
||||
| h | 8 |
|
||||
| i | 9 |
|
||||
| j | 10 |
|
||||
| k | 11 |
|
||||
| l | 12 |
|
||||
| m | 13 |
|
||||
| n | 14 |
|
||||
| o | 15 |
|
||||
| p | 16 |
|
||||
|
||||
And the ways
|
||||
| nodes | highway |
|
||||
| ad | primary |
|
||||
@@ -31,21 +53,21 @@ Feature: Traffic - turn penalties
|
||||
Scenario: Weighting not based on turn penalty file
|
||||
When I route I should get
|
||||
| from | to | route | speed | time |
|
||||
| a | h | ad,dhk,dhk | 63 km/h | 11.5s +-1 |
|
||||
| a | h | ad,dhk,dhk | 52 km/h | 14s +-1 |
|
||||
# straight
|
||||
| i | g | fim,fg,fg | 53 km/h | 13.5s +-1 |
|
||||
| i | g | fim,fg,fg | 45 km/h | 16s +-1 |
|
||||
# right
|
||||
| a | e | ad,def,def | 43 km/h | 16.7s +-1 |
|
||||
| a | e | ad,def,def | 38 km/h | 19s +-1 |
|
||||
# left
|
||||
| c | g | cd,def,fg,fg | 63 km/h | 23s +-1 |
|
||||
| c | g | cd,def,fg,fg | 52 km/h | 27s +-1 |
|
||||
# double straight
|
||||
| p | g | mp,fim,fg,fg | 58 km/h | 24.9s +-1 |
|
||||
| p | g | mp,fim,fg,fg | 48 km/h | 29s +-1 |
|
||||
# straight-right
|
||||
| a | l | ad,dhk,klm,klm | 51 km/h | 28.1s +-1 |
|
||||
| a | l | ad,dhk,klm,klm | 44 km/h | 33s +-1 |
|
||||
# straight-left
|
||||
| l | e | klm,dhk,def,def | 53 km/h | 27s +-1 |
|
||||
| l | e | klm,dhk,def,def | 45 km/h | 32s +-1 |
|
||||
# double right
|
||||
| g | n | fg,fim,mn,mn | 43 km/h | 33.4s +-1 |
|
||||
| g | n | fg,fim,mn,mn | 38 km/h | 38s +-1 |
|
||||
# double left
|
||||
|
||||
Scenario: Weighting based on turn penalty file
|
||||
@@ -53,7 +75,7 @@ Feature: Traffic - turn penalties
|
||||
"""
|
||||
9,6,7,1.8
|
||||
9,13,14,24.5
|
||||
8,4,3,30
|
||||
8,4,3,35
|
||||
12,11,8,9
|
||||
8,11,12,23
|
||||
1,4,5,-0.2
|
||||
@@ -61,23 +83,23 @@ Feature: Traffic - turn penalties
|
||||
And the contract extra arguments "--turn-penalty-file {penalties_file}"
|
||||
When I route I should get
|
||||
| from | to | route | speed | time |
|
||||
| a | h | ad,dhk,dhk | 63 km/h | 11.5s +-1 |
|
||||
| a | h | ad,dhk,dhk | 52 km/h | 14s +-1 |
|
||||
# straight
|
||||
| i | g | fim,fg,fg | 55 km/h | 13s +-1 |
|
||||
| i | g | fim,fg,fg | 46 km/h | 15s +-1 |
|
||||
# right - ifg penalty
|
||||
| a | e | ad,def,def | 64 km/h | 11s +-1 |
|
||||
| a | e | ad,def,def | 53 km/h | 14s +-1 |
|
||||
# left - faster because of negative ade penalty
|
||||
| c | g | cd,def,fg,fg | 63 km/h | 23s +-1 |
|
||||
| c | g | cd,def,fg,fg | 52 km/h | 27s +-1 |
|
||||
# double straight
|
||||
| p | g | mp,fim,fg,fg | 59 km/h | 24.5s +-1 |
|
||||
| p | g | mp,fim,fg,fg | 49 km/h | 29s +-1 |
|
||||
# straight-right - ifg penalty
|
||||
| a | l | ad,def,fim,klm,klm | 57 km/h | 38.2s +-1 |
|
||||
| a | l | ad,def,fim,klm,klm | 48 km/h | 45s +-1 |
|
||||
# was straight-left - forced around by hkl penalty
|
||||
| l | e | klm,fim,def,def | 43 km/h | 33.4s +-1 |
|
||||
| l | e | klm,fim,def,def | 38 km/h | 38s +-1 |
|
||||
# double right - forced left by lkh penalty
|
||||
| g | n | fg,fim,mn,mn | 27 km/h | 52.6s +-1 |
|
||||
| g | n | fg,fim,mn,mn | 25 km/h | 57s +-1 |
|
||||
# double left - imn penalty
|
||||
| j | c | jk,klm,fim,def,cd,cd | 51 km/h | 56.2s +-1 |
|
||||
| j | c | jk,klm,fim,def,cd,cd | 44 km/h | 65.8s +-1 |
|
||||
# double left - hdc penalty ever so slightly higher than imn; forces all the way around
|
||||
|
||||
Scenario: Too-negative penalty clamps, but does not fail
|
||||
|
||||
+19
-11
@@ -7,9 +7,11 @@ Feature: Foot - Squares and other areas
|
||||
@square
|
||||
Scenario: Foot - Route along edge of a squares
|
||||
Given the node map
|
||||
| x | |
|
||||
| a | b |
|
||||
| d | c |
|
||||
"""
|
||||
x
|
||||
a b
|
||||
d c
|
||||
"""
|
||||
|
||||
And the ways
|
||||
| nodes | area | highway |
|
||||
@@ -30,9 +32,11 @@ Feature: Foot - Squares and other areas
|
||||
@building
|
||||
Scenario: Foot - Don't route on buildings
|
||||
Given the node map
|
||||
| x | |
|
||||
| a | b |
|
||||
| d | c |
|
||||
"""
|
||||
x
|
||||
a b
|
||||
d c
|
||||
"""
|
||||
|
||||
And the ways
|
||||
| nodes | highway | area | building | access |
|
||||
@@ -53,9 +57,11 @@ Feature: Foot - Squares and other areas
|
||||
@parking
|
||||
Scenario: Foot - parking areas
|
||||
Given the node map
|
||||
| e | | | f |
|
||||
| x | a | b | y |
|
||||
| | d | c | |
|
||||
"""
|
||||
e f
|
||||
x a b y
|
||||
d c
|
||||
"""
|
||||
|
||||
And the ways
|
||||
| nodes | highway | amenity |
|
||||
@@ -80,8 +86,10 @@ Feature: Foot - Squares and other areas
|
||||
@train @platform
|
||||
Scenario: Foot - railway platforms
|
||||
Given the node map
|
||||
| x | a | b | y |
|
||||
| | d | c | |
|
||||
"""
|
||||
x a b y
|
||||
d c
|
||||
"""
|
||||
|
||||
And the ways
|
||||
| nodes | highway | railway |
|
||||
|
||||
@@ -6,9 +6,11 @@ Feature: Foot - Handle ferry routes
|
||||
|
||||
Scenario: Foot - Ferry route
|
||||
Given the node map
|
||||
| a | b | c | | |
|
||||
| | | d | | |
|
||||
| | | e | f | g |
|
||||
"""
|
||||
a b c
|
||||
d
|
||||
e f g
|
||||
"""
|
||||
|
||||
And the ways
|
||||
| nodes | highway | route | foot |
|
||||
@@ -29,10 +31,12 @@ Feature: Foot - Handle ferry routes
|
||||
|
||||
Scenario: Foot - Ferry duration, single node
|
||||
Given the node map
|
||||
| a | b | c | d |
|
||||
| | | e | f |
|
||||
| | | g | h |
|
||||
| | | i | j |
|
||||
"""
|
||||
a b c d
|
||||
e f
|
||||
g h
|
||||
i j
|
||||
"""
|
||||
|
||||
And the ways
|
||||
| nodes | highway | route | foot | duration |
|
||||
@@ -48,8 +52,10 @@ Feature: Foot - Handle ferry routes
|
||||
|
||||
Scenario: Foot - Ferry duration, multiple nodes
|
||||
Given the node map
|
||||
| x | | | | | y |
|
||||
| | a | b | c | d | |
|
||||
"""
|
||||
x y
|
||||
a b c d
|
||||
"""
|
||||
|
||||
And the ways
|
||||
| nodes | highway | route | foot | duration |
|
||||
|
||||
@@ -6,14 +6,14 @@ Background: Use specific speeds
|
||||
|
||||
Scenario: Foot - Ignore maxspeed
|
||||
Then routability should be
|
||||
| highway | maxspeed | bothw |
|
||||
| residential | | 145s ~10% |
|
||||
| residential | 1 | 145s ~10% |
|
||||
| residential | 100 | 145s ~10% |
|
||||
| residential | 1 | 145s ~10% |
|
||||
| residential | 1mph | 145s ~10% |
|
||||
| residential | 1 mph | 145s ~10% |
|
||||
| residential | 1unknown | 145s ~10% |
|
||||
| residential | 1 unknown | 145s ~10% |
|
||||
| residential | none | 145s ~10% |
|
||||
| residential | signals | 145s ~10% |
|
||||
| highway | maxspeed | bothw |
|
||||
| residential | | 145 s ~10% |
|
||||
| residential | 1 | 145 s ~10% |
|
||||
| residential | 100 | 145 s ~10% |
|
||||
| residential | 1 | 145 s ~10% |
|
||||
| residential | 1mph | 145 s ~10% |
|
||||
| residential | 1 mph | 145 s ~10% |
|
||||
| residential | 1unknown | 145 s ~10% |
|
||||
| residential | 1 unknown | 145 s ~10% |
|
||||
| residential | none | 145 s ~10% |
|
||||
| residential | signals | 145 s ~10% |
|
||||
|
||||
@@ -6,8 +6,10 @@ Feature: Foot - Street names in instructions
|
||||
|
||||
Scenario: Foot - A named street
|
||||
Given the node map
|
||||
| a | b |
|
||||
| | c |
|
||||
"""
|
||||
a b
|
||||
c
|
||||
"""
|
||||
|
||||
And the ways
|
||||
| nodes | name | ref |
|
||||
@@ -19,9 +21,11 @@ Feature: Foot - Street names in instructions
|
||||
| a | c | My Way,Your Way,Your Way |
|
||||
|
||||
@unnamed
|
||||
Scenario: Foot - Use way type to describe unnamed ways
|
||||
Scenario: Foot - No longer use way type to describe unnamed ways, see #3231
|
||||
Given the node map
|
||||
| a | b | c | d |
|
||||
"""
|
||||
a b c d
|
||||
"""
|
||||
|
||||
And the ways
|
||||
| nodes | highway | name |
|
||||
@@ -29,5 +33,5 @@ Feature: Foot - Street names in instructions
|
||||
| bcd | track | |
|
||||
|
||||
When I route I should get
|
||||
| from | to | route |
|
||||
| a | d | {highway:footway},{highway:track},{highway:track} |
|
||||
| from | to | route |
|
||||
| a | d | , |
|
||||
|
||||
@@ -6,31 +6,37 @@ Feature: Foot - Way ref
|
||||
|
||||
Scenario: Foot - Way with both name and ref
|
||||
Given the node map
|
||||
| a | b |
|
||||
"""
|
||||
a b
|
||||
"""
|
||||
|
||||
And the ways
|
||||
| nodes | name | ref |
|
||||
| ab | Utopia Drive | E7 |
|
||||
|
||||
When I route I should get
|
||||
| from | to | route |
|
||||
| a | b | Utopia Drive,Utopia Drive |
|
||||
| from | to | route | ref |
|
||||
| a | b | Utopia Drive,Utopia Drive | E7,E7 |
|
||||
|
||||
Scenario: Foot - Way with only ref
|
||||
Given the node map
|
||||
| a | b |
|
||||
"""
|
||||
a b
|
||||
"""
|
||||
|
||||
And the ways
|
||||
| nodes | name | ref |
|
||||
| ab | | E7 |
|
||||
|
||||
When I route I should get
|
||||
| from | to | route |
|
||||
| a | b | {highway:primary},{highway:primary} |
|
||||
| from | to | route | ref |
|
||||
| a | b | , | E7,E7 |
|
||||
|
||||
Scenario: Foot - Way with only name
|
||||
Given the node map
|
||||
| a | b |
|
||||
"""
|
||||
a b
|
||||
"""
|
||||
|
||||
And the ways
|
||||
| nodes | name |
|
||||
|
||||
@@ -8,9 +8,11 @@ Feature: Foot - Turn restrictions
|
||||
@no_turning
|
||||
Scenario: Foot - No left turn
|
||||
Given the node map
|
||||
| | n | |
|
||||
| w | j | e |
|
||||
| | s | |
|
||||
"""
|
||||
n
|
||||
w j e
|
||||
s
|
||||
"""
|
||||
|
||||
And the ways
|
||||
| nodes | oneway |
|
||||
@@ -32,9 +34,11 @@ Feature: Foot - Turn restrictions
|
||||
@no_turning
|
||||
Scenario: Foot - No right turn
|
||||
Given the node map
|
||||
| | n | |
|
||||
| w | j | e |
|
||||
| | s | |
|
||||
"""
|
||||
n
|
||||
w j e
|
||||
s
|
||||
"""
|
||||
|
||||
And the ways
|
||||
| nodes | oneway |
|
||||
@@ -56,9 +60,11 @@ Feature: Foot - Turn restrictions
|
||||
@no_turning
|
||||
Scenario: Foot - No u-turn
|
||||
Given the node map
|
||||
| | n | |
|
||||
| w | j | e |
|
||||
| | s | |
|
||||
"""
|
||||
n
|
||||
w j e
|
||||
s
|
||||
"""
|
||||
|
||||
And the ways
|
||||
| nodes | oneway |
|
||||
@@ -80,9 +86,11 @@ Feature: Foot - Turn restrictions
|
||||
@no_turning
|
||||
Scenario: Foot - Handle any no_* relation
|
||||
Given the node map
|
||||
| | n | |
|
||||
| w | j | e |
|
||||
| | s | |
|
||||
"""
|
||||
n
|
||||
w j e
|
||||
s
|
||||
"""
|
||||
|
||||
And the ways
|
||||
| nodes | oneway |
|
||||
@@ -104,9 +112,11 @@ Feature: Foot - Turn restrictions
|
||||
@only_turning
|
||||
Scenario: Foot - Only left turn
|
||||
Given the node map
|
||||
| | n | |
|
||||
| w | j | e |
|
||||
| | s | |
|
||||
"""
|
||||
n
|
||||
w j e
|
||||
s
|
||||
"""
|
||||
|
||||
And the ways
|
||||
| nodes | oneway |
|
||||
@@ -128,9 +138,11 @@ Feature: Foot - Turn restrictions
|
||||
@only_turning
|
||||
Scenario: Foot - Only right turn
|
||||
Given the node map
|
||||
| | n | |
|
||||
| w | j | e |
|
||||
| | s | |
|
||||
"""
|
||||
n
|
||||
w j e
|
||||
s
|
||||
"""
|
||||
|
||||
And the ways
|
||||
| nodes | oneway |
|
||||
@@ -152,9 +164,11 @@ Feature: Foot - Turn restrictions
|
||||
@only_turning
|
||||
Scenario: Foot - Only straight on
|
||||
Given the node map
|
||||
| | n | |
|
||||
| w | j | e |
|
||||
| | s | |
|
||||
"""
|
||||
n
|
||||
w j e
|
||||
s
|
||||
"""
|
||||
|
||||
And the ways
|
||||
| nodes | oneway |
|
||||
@@ -176,9 +190,11 @@ Feature: Foot - Turn restrictions
|
||||
@no_turning
|
||||
Scenario: Foot - Handle any only_* restriction
|
||||
Given the node map
|
||||
| | n | |
|
||||
| w | j | e |
|
||||
| | s | |
|
||||
"""
|
||||
n
|
||||
w j e
|
||||
s
|
||||
"""
|
||||
|
||||
And the ways
|
||||
| nodes | oneway |
|
||||
@@ -200,9 +216,11 @@ Feature: Foot - Turn restrictions
|
||||
@except
|
||||
Scenario: Foot - Except tag and on no_ restrictions
|
||||
Given the node map
|
||||
| b | x | c |
|
||||
| a | j | d |
|
||||
| | s | |
|
||||
"""
|
||||
b x c
|
||||
a j d
|
||||
s
|
||||
"""
|
||||
|
||||
And the ways
|
||||
| nodes | oneway |
|
||||
@@ -230,9 +248,11 @@ Feature: Foot - Turn restrictions
|
||||
@except
|
||||
Scenario: Foot - Except tag and on only_ restrictions
|
||||
Given the node map
|
||||
| a | | b |
|
||||
| | j | |
|
||||
| | s | |
|
||||
"""
|
||||
a b
|
||||
j
|
||||
s
|
||||
"""
|
||||
|
||||
And the ways
|
||||
| nodes | oneway |
|
||||
@@ -252,12 +272,14 @@ Feature: Foot - Turn restrictions
|
||||
@except
|
||||
Scenario: Foot - Multiple except tag values
|
||||
Given the node map
|
||||
| s | j | a |
|
||||
| | | b |
|
||||
| | | c |
|
||||
| | | d |
|
||||
| | | e |
|
||||
| | | f |
|
||||
"""
|
||||
s j a
|
||||
b
|
||||
c
|
||||
d
|
||||
e
|
||||
f
|
||||
"""
|
||||
|
||||
And the ways
|
||||
| nodes | oneway |
|
||||
|
||||
@@ -10,11 +10,13 @@ Feature: Roundabout Instructions
|
||||
# make sense when you're going the opposite way around the roundabout.
|
||||
|
||||
Given the node map
|
||||
| | | v | | |
|
||||
| | | d | | |
|
||||
| s | a | | c | u |
|
||||
| | | b | | |
|
||||
| | | t | | |
|
||||
"""
|
||||
v
|
||||
d
|
||||
s a c u
|
||||
b
|
||||
t
|
||||
"""
|
||||
|
||||
And the ways
|
||||
| nodes | junction |
|
||||
|
||||
@@ -6,10 +6,10 @@ Feature: Foot - Surfaces
|
||||
|
||||
Scenario: Foot - Slow surfaces
|
||||
Then routability should be
|
||||
| highway | surface | bothw |
|
||||
| footway | | 145s ~10% |
|
||||
| footway | fine_gravel | 193s ~10% |
|
||||
| footway | gravel | 193s ~10% |
|
||||
| footway | pebblestone | 193s ~10% |
|
||||
| footway | mud | 289s ~10% |
|
||||
| footway | sand | 289s ~10% |
|
||||
| highway | surface | bothw |
|
||||
| footway | | 145 s ~10% |
|
||||
| footway | fine_gravel | 193 s ~10% |
|
||||
| footway | gravel | 193 s ~10% |
|
||||
| footway | pebblestone | 193 s ~10% |
|
||||
| footway | mud | 289 s ~10% |
|
||||
| footway | sand | 289 s ~10% |
|
||||
|
||||
@@ -8,10 +8,12 @@ Feature: Turn Lane Guidance
|
||||
@sliproads
|
||||
Scenario: Separate Turn Lanes
|
||||
Given the node map
|
||||
| | | | | | | | e | |
|
||||
| a | | | b | | | | c | g |
|
||||
| | | | | | | | d | |
|
||||
| | | | | | | | f | |
|
||||
"""
|
||||
e
|
||||
a b c g
|
||||
d
|
||||
f
|
||||
"""
|
||||
|
||||
And the ways
|
||||
| nodes | turn:lanes:forward | name | oneway |
|
||||
@@ -37,10 +39,12 @@ Feature: Turn Lane Guidance
|
||||
@sliproads
|
||||
Scenario: Separate Turn Lanes
|
||||
Given the node map
|
||||
| | | | | | | | e | |
|
||||
| a | | | b | | | | c | g |
|
||||
| | | | | | | | d | |
|
||||
| | | | | | | | f | |
|
||||
"""
|
||||
e
|
||||
a b c g
|
||||
d
|
||||
f
|
||||
"""
|
||||
|
||||
And the ways
|
||||
| nodes | turn:lanes:forward | name | oneway |
|
||||
@@ -66,17 +70,19 @@ Feature: Turn Lane Guidance
|
||||
@sliproads
|
||||
Scenario: Separate Turn Lanes Next to other turns
|
||||
Given the node map
|
||||
| | | | | | | | e | |
|
||||
| a | | | b | | | | c | g |
|
||||
| | | | | | | | d | |
|
||||
| | | | | | | | f | |
|
||||
| | | | | | | | | |
|
||||
| | | | | | | | | |
|
||||
| | | | | | | | | |
|
||||
| | | | | | | | | |
|
||||
| | | | | | | | | |
|
||||
| | | | | | | | | |
|
||||
| i | | | h | | | | j | |
|
||||
"""
|
||||
e
|
||||
a b c g
|
||||
d
|
||||
f
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
i h j
|
||||
"""
|
||||
|
||||
And the ways
|
||||
| nodes | turn:lanes:forward | name | oneway |
|
||||
@@ -108,12 +114,14 @@ Feature: Turn Lane Guidance
|
||||
#http://www.openstreetmap.org/export#map=19/52.56054/13.32152
|
||||
Scenario: Kurt-Schuhmacher-Damm
|
||||
Given the node map
|
||||
| | | | g | | f |
|
||||
| | | | | | |
|
||||
| j | | | h | | e |
|
||||
| | | | | | |
|
||||
| a | | | b | | c |
|
||||
| | | | i | | d |
|
||||
"""
|
||||
g f
|
||||
|
||||
j h e
|
||||
|
||||
a b c
|
||||
i d
|
||||
"""
|
||||
|
||||
And the ways
|
||||
| nodes | name | highway | oneway | turn:lanes |
|
||||
@@ -136,23 +144,25 @@ Feature: Turn Lane Guidance
|
||||
#http://www.openstreetmap.org/#map=19/37.77308/-122.42238
|
||||
Scenario: Market/Haight without Through Street
|
||||
Given the node map
|
||||
| | | | | | | | g | j | |
|
||||
| | | | | | | | | | |
|
||||
| | | | | | | | | | |
|
||||
| | | | | | | | | | |
|
||||
| | | | | | | | | | |
|
||||
| | | | | | | | | | |
|
||||
| | | | | | | | | | f |
|
||||
| | | | | | | | | e | |
|
||||
| | | | | | | | d | | |
|
||||
| a | | | | | | b | c | | |
|
||||
| | | | | | | | | | |
|
||||
| | | | | | | | | | |
|
||||
| | | | | | | | | | |
|
||||
| | | | | | | | | | |
|
||||
| | | | | | | | | | |
|
||||
| | | | | | | | | | |
|
||||
| | | | | l | | | h | i | |
|
||||
"""
|
||||
g j
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
f
|
||||
e
|
||||
d
|
||||
a b c
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
l h i
|
||||
"""
|
||||
|
||||
And the ways
|
||||
| nodes | name | highway | oneway | turn:lanes:forward |
|
||||
@@ -182,23 +192,25 @@ Feature: Turn Lane Guidance
|
||||
#http://www.openstreetmap.org/#map=19/37.77308/-122.42238
|
||||
Scenario: Market/Haight without Through Street
|
||||
Given the node map
|
||||
| | | | | | | | g | j | |
|
||||
| | | | | | | | | | |
|
||||
| | | | | | | | | | |
|
||||
| | | | | | | | | | |
|
||||
| | | | | | | | | | |
|
||||
| | | | | | | | | | |
|
||||
| | | | | | | | | | f |
|
||||
| | | | | | | | | e | |
|
||||
| | | | | | | | d | | |
|
||||
| a | | | | | | b | c | | |
|
||||
| | | | | | | | | | |
|
||||
| | | | | | | | | | |
|
||||
| | | | | | | | | | |
|
||||
| | | | | | | | | | |
|
||||
| | | | | | | | | | |
|
||||
| | | | | | | | | | |
|
||||
| | | | | l | | | h | i | |
|
||||
"""
|
||||
g j
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
f
|
||||
e
|
||||
d
|
||||
a b c
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
l h i
|
||||
"""
|
||||
|
||||
And the ways
|
||||
| nodes | name | highway | oneway | turn:lanes:forward |
|
||||
|
||||
@@ -8,11 +8,13 @@ Feature: Turn Lane Guidance
|
||||
@anticipate
|
||||
Scenario: Anticipate Lane Change for subsequent multi-lane intersections
|
||||
Given the node map
|
||||
| a | | b | | x | | |
|
||||
| | | | | | | |
|
||||
| | | c | | d | | z |
|
||||
| | | | | | | |
|
||||
| | | y | | e | | |
|
||||
"""
|
||||
a – b – x
|
||||
|
|
||||
c – d – z
|
||||
| |
|
||||
y e
|
||||
"""
|
||||
|
||||
And the ways
|
||||
| nodes | turn:lanes:forward |
|
||||
@@ -32,11 +34,13 @@ Feature: Turn Lane Guidance
|
||||
@anticipate
|
||||
Scenario: Anticipate Lane Change for quick same direction turns, staying on the same street
|
||||
Given the node map
|
||||
| a | | b | x |
|
||||
| | | | |
|
||||
| | | c | |
|
||||
| | | | |
|
||||
| e | | d | y |
|
||||
"""
|
||||
a – b – x
|
||||
|
|
||||
c
|
||||
|
|
||||
e – d – y
|
||||
"""
|
||||
|
||||
And the ways
|
||||
| nodes | turn:lanes:forward | turn:lanes:backward | name |
|
||||
@@ -55,11 +59,13 @@ Feature: Turn Lane Guidance
|
||||
@anticipate
|
||||
Scenario: Anticipate Lane Change for quick same direction turns, changing between streets
|
||||
Given the node map
|
||||
| a | | b | x |
|
||||
| | | | |
|
||||
| | | c | |
|
||||
| | | | |
|
||||
| e | | d | y |
|
||||
"""
|
||||
a – b – x
|
||||
|
|
||||
c
|
||||
|
|
||||
e – d – y
|
||||
"""
|
||||
|
||||
And the ways
|
||||
| nodes | turn:lanes:forward | turn:lanes:backward | name |
|
||||
@@ -79,9 +85,13 @@ Feature: Turn Lane Guidance
|
||||
@anticipate
|
||||
Scenario: Anticipate Lane Change for quick turns during a merge
|
||||
Given the node map
|
||||
| a | | | | |
|
||||
| x | b | | c | y |
|
||||
| | | | | d |
|
||||
"""
|
||||
a
|
||||
\
|
||||
x – b – c – y
|
||||
|
|
||||
d
|
||||
"""
|
||||
|
||||
And the ways
|
||||
| nodes | turn:lanes:forward | name | highway | oneway |
|
||||
@@ -100,9 +110,12 @@ Feature: Turn Lane Guidance
|
||||
Scenario: Schoenefelder Kreuz
|
||||
# https://www.openstreetmap.org/way/264306388#map=16/52.3202/13.5568
|
||||
Given the node map
|
||||
| a | b | x | | | i |
|
||||
| | | c | d | | |
|
||||
| | | | | | j |
|
||||
"""
|
||||
a b – x
|
||||
\ / i
|
||||
c – d
|
||||
\ j
|
||||
"""
|
||||
|
||||
And the ways
|
||||
| nodes | turn:lanes:forward | lanes | highway | oneway | name |
|
||||
@@ -123,8 +136,11 @@ Feature: Turn Lane Guidance
|
||||
Scenario: Kreuz Oranienburg
|
||||
# https://www.openstreetmap.org/way/4484007#map=18/52.70439/13.20269
|
||||
Given the node map
|
||||
| i | | | | | a |
|
||||
| j | | c | b | | x |
|
||||
"""
|
||||
i a
|
||||
' . . '
|
||||
j – – c – b – – x
|
||||
"""
|
||||
|
||||
And the ways
|
||||
| nodes | turn:lanes:forward | lanes | highway | oneway | name |
|
||||
@@ -143,11 +159,13 @@ Feature: Turn Lane Guidance
|
||||
@anticipate
|
||||
Scenario: Lane anticipation for fan-in
|
||||
Given the node map
|
||||
| a | | b | | x | | |
|
||||
| | | | | | | |
|
||||
| | | c | | d | | z |
|
||||
| | | | | | | |
|
||||
| | | y | | e | | |
|
||||
"""
|
||||
a – b – x
|
||||
|
|
||||
c – d – z
|
||||
| |
|
||||
y e
|
||||
"""
|
||||
|
||||
And the ways
|
||||
| nodes | turn:lanes:forward | name |
|
||||
@@ -166,11 +184,13 @@ Feature: Turn Lane Guidance
|
||||
@anticipate
|
||||
Scenario: Lane anticipation for fan-out
|
||||
Given the node map
|
||||
| a | | b | | x | | |
|
||||
| | | | | | | |
|
||||
| | | c | | d | | z |
|
||||
| | | | | | | |
|
||||
| | | y | | e | | |
|
||||
"""
|
||||
a – b – x
|
||||
|
|
||||
c – d – z
|
||||
| |
|
||||
y e
|
||||
"""
|
||||
|
||||
And the ways
|
||||
| nodes | turn:lanes:forward | name |
|
||||
@@ -189,11 +209,13 @@ Feature: Turn Lane Guidance
|
||||
@anticipate
|
||||
Scenario: Lane anticipation for fan-in followed by fan-out
|
||||
Given the node map
|
||||
| a | | b | | x | | |
|
||||
| | | | | | | |
|
||||
| | | c | | d | | z |
|
||||
| | | | | | | |
|
||||
| | | y | | e | | |
|
||||
"""
|
||||
a – b – x
|
||||
|
|
||||
c – d – z
|
||||
| |
|
||||
y e
|
||||
"""
|
||||
|
||||
And the ways
|
||||
| nodes | turn:lanes:forward | name |
|
||||
@@ -212,11 +234,13 @@ Feature: Turn Lane Guidance
|
||||
@anticipate
|
||||
Scenario: Lane anticipation for fan-out followed by fan-in
|
||||
Given the node map
|
||||
| a | | b | | x | | |
|
||||
| | | | | | | |
|
||||
| | | c | | d | | z |
|
||||
| | | | | | | |
|
||||
| | | y | | e | | |
|
||||
"""
|
||||
a – b – x
|
||||
|
|
||||
c – d – z
|
||||
| |
|
||||
y e
|
||||
"""
|
||||
|
||||
And the ways
|
||||
| nodes | turn:lanes:forward | name |
|
||||
@@ -235,13 +259,15 @@ Feature: Turn Lane Guidance
|
||||
@anticipate
|
||||
Scenario: Lane anticipation for multiple hops with same number of lanes
|
||||
Given the node map
|
||||
| a | | b | | x | | |
|
||||
| | | | | | | |
|
||||
| | | c | | d | | z |
|
||||
| | | | | | | |
|
||||
| | | y | | e | | f |
|
||||
| | | | | | | |
|
||||
| | | | | w | | |
|
||||
"""
|
||||
a – b – x
|
||||
|
|
||||
c – d – z
|
||||
| |
|
||||
y e – f
|
||||
|
|
||||
w
|
||||
"""
|
||||
|
||||
And the ways
|
||||
| nodes | turn:lanes:forward | name |
|
||||
@@ -262,11 +288,13 @@ Feature: Turn Lane Guidance
|
||||
@anticipate
|
||||
Scenario: Anticipate Lanes for through, through with lanes
|
||||
Given the node map
|
||||
| | | | f | g | |
|
||||
| | | | | | |
|
||||
| a | b | c | d | | e |
|
||||
| | | | | | |
|
||||
| | | | h | i | |
|
||||
"""
|
||||
f g
|
||||
/ /
|
||||
a – b – c – d – e
|
||||
\ \
|
||||
h i
|
||||
"""
|
||||
|
||||
And the ways
|
||||
| nodes | turn:lanes:forward | name |
|
||||
@@ -286,11 +314,13 @@ Feature: Turn Lane Guidance
|
||||
@anticipate
|
||||
Scenario: Anticipate Lanes for through and collapse multiple use lanes
|
||||
Given the node map
|
||||
| | | e | f | g |
|
||||
| | | | | |
|
||||
| a | b | c | d | |
|
||||
| | | | | |
|
||||
| | | h | i | j |
|
||||
"""
|
||||
e f g
|
||||
/ / /
|
||||
a – b – c – d
|
||||
\ \ \
|
||||
h i j
|
||||
"""
|
||||
|
||||
And the ways
|
||||
| nodes | turn:lanes:forward | name |
|
||||
@@ -312,11 +342,13 @@ Feature: Turn Lane Guidance
|
||||
@anticipate
|
||||
Scenario: Anticipate Lanes for through followed by left/right
|
||||
Given the node map
|
||||
| | | f | g | |
|
||||
| | | | | d |
|
||||
| a | b | c | x | |
|
||||
| | | | | e |
|
||||
| | | h | i | |
|
||||
"""
|
||||
f g d
|
||||
/ / /
|
||||
a – b – c – x
|
||||
\ \ \
|
||||
h i e
|
||||
"""
|
||||
|
||||
And the ways
|
||||
| nodes | turn:lanes:forward | name |
|
||||
@@ -338,11 +370,11 @@ Feature: Turn Lane Guidance
|
||||
@anticipate
|
||||
Scenario: Anticipate Lanes for through with turn before / after
|
||||
Given the node map
|
||||
| a | b | c |
|
||||
| | d | |
|
||||
| f | e | g |
|
||||
| | h | |
|
||||
| j | i | l |
|
||||
"""
|
||||
c g l
|
||||
b – d – e – h - i
|
||||
a f j
|
||||
"""
|
||||
|
||||
And the ways
|
||||
| nodes | turn:lanes:forward | name | oneway |
|
||||
@@ -370,27 +402,33 @@ Feature: Turn Lane Guidance
|
||||
|
||||
@anticipate
|
||||
Scenario: Anticipate Lanes for turns with through before and after
|
||||
Given a grid size of 10 meters
|
||||
Given the node map
|
||||
| a | b | q | | s | h | i |
|
||||
| | | e | f | g | | |
|
||||
| c | d | r | | t | j | k |
|
||||
"""
|
||||
a – b – q s h – i
|
||||
\ / /
|
||||
e – f – g
|
||||
/ \ \
|
||||
c – d – r t j – k
|
||||
|
||||
"""
|
||||
|
||||
And the ways
|
||||
| nodes | turn:lanes:forward | name |
|
||||
| ab | through\|right\|right\|right | top |
|
||||
| be | | top |
|
||||
| bq | | off |
|
||||
| ef | left\|through\|through\|through\|through\|right | main |
|
||||
| fg | left\|left\|right\|right | main |
|
||||
| fs | | off |
|
||||
| ft | | off |
|
||||
| gh | | top |
|
||||
| hi | | top |
|
||||
| cd | left\|left\|left\|through | bot |
|
||||
| de | | bot |
|
||||
| dr | | off |
|
||||
| gj | | bot |
|
||||
| jk | | bot |
|
||||
| nodes | turn:lanes:forward | name | highway | oneway |
|
||||
| ab | through\|right\|right\|right | top | primary | yes |
|
||||
| be | | top | primary | yes |
|
||||
| bq | | off | primary | yes |
|
||||
| ef | left\|through\|through\|through\|through\|right | main | primary | yes |
|
||||
| fg | left\|left\|right\|right | main | primary | yes |
|
||||
| fs | | off | primary | yes |
|
||||
| ft | | off | primary | yes |
|
||||
| gh | | top | primary | yes |
|
||||
| hi | | top | primary | yes |
|
||||
| cd | left\|left\|left\|through | bot | primary | yes |
|
||||
| de | | bot | primary | yes |
|
||||
| dr | | off | primary | yes |
|
||||
| gj | | bot | primary | yes |
|
||||
| jk | | bot | primary | yes |
|
||||
|
||||
When I route I should get
|
||||
| waypoints | route | turns | lanes |
|
||||
@@ -402,10 +440,15 @@ Feature: Turn Lane Guidance
|
||||
@anticipate
|
||||
Scenario: Anticipate Lanes for turn between throughs
|
||||
Given the node map
|
||||
| | q | | |
|
||||
| a | b | c | s |
|
||||
| | r | d | t |
|
||||
| | | e | |
|
||||
"""
|
||||
q
|
||||
|
|
||||
a – b – c – s
|
||||
| |
|
||||
r d – t
|
||||
|
|
||||
e
|
||||
"""
|
||||
|
||||
And the ways
|
||||
| nodes | turn:lanes:forward | name |
|
||||
@@ -425,13 +468,15 @@ Feature: Turn Lane Guidance
|
||||
@anticipate @todo @2661
|
||||
Scenario: Anticipate with lanes in roundabout: roundabouts as the unit of anticipation
|
||||
Given the node map
|
||||
| | | e | | |
|
||||
| a | b | | d | f |
|
||||
| | | c | | |
|
||||
| | | | | |
|
||||
| | | g | | |
|
||||
| k | h | | j | l |
|
||||
| | | i | | |
|
||||
"""
|
||||
/e\
|
||||
a – b d – f
|
||||
\c/
|
||||
|
|
||||
/g\
|
||||
k – h j – l
|
||||
\i/
|
||||
"""
|
||||
|
||||
And the ways
|
||||
| nodes | turn:lanes:forward | highway | junction | # |
|
||||
@@ -459,9 +504,11 @@ Feature: Turn Lane Guidance
|
||||
@anticipate @todo
|
||||
Scenario: Roundabout with lanes only tagged on exit
|
||||
Given the node map
|
||||
| | | e | | |
|
||||
| a | b | | d | f |
|
||||
| | | c | | |
|
||||
"""
|
||||
/e\
|
||||
a – b d – f
|
||||
\c/
|
||||
"""
|
||||
|
||||
And the ways
|
||||
| nodes | turn:lanes:forward | highway | junction |
|
||||
@@ -479,13 +526,16 @@ Feature: Turn Lane Guidance
|
||||
@anticipate
|
||||
Scenario: No Lanes for Roundabouts, see #2626
|
||||
Given the node map
|
||||
| | | a | | |
|
||||
| | | b | | |
|
||||
| | c | | g | h |
|
||||
| | | | | |
|
||||
| | d | | f | |
|
||||
| | | e | | |
|
||||
| x | | | | y |
|
||||
"""
|
||||
a
|
||||
|
|
||||
/b\
|
||||
c g – h
|
||||
/| |
|
||||
| d f
|
||||
|/ \e/ \
|
||||
x \ y
|
||||
"""
|
||||
|
||||
And the ways
|
||||
| nodes | turn:lanes:forward | highway | junction |
|
||||
@@ -509,9 +559,11 @@ Feature: Turn Lane Guidance
|
||||
@anticipate
|
||||
Scenario: No Lanes for Roundabouts, see #2626
|
||||
Given the node map
|
||||
| | | a | | |
|
||||
| x | b | | d | y |
|
||||
| | | c | | |
|
||||
"""
|
||||
/a\
|
||||
x – b d – y
|
||||
\c/
|
||||
"""
|
||||
|
||||
And the ways
|
||||
| nodes | turn:lanes:forward | highway | junction | name |
|
||||
@@ -530,15 +582,21 @@ Feature: Turn Lane Guidance
|
||||
|
||||
@anticipate
|
||||
Scenario: No Lanes for Roundabouts, see #2626
|
||||
Given the profile "lhs"
|
||||
Given the profile file "car" extended with
|
||||
"""
|
||||
properties.left_hand_driving = true
|
||||
"""
|
||||
And the node map
|
||||
| | | a | | |
|
||||
| | | b | | |
|
||||
| h | c | | g | |
|
||||
| | | | | |
|
||||
| | d | | f | |
|
||||
| | | e | | |
|
||||
| x | | | | y |
|
||||
"""
|
||||
a
|
||||
|
|
||||
/b\
|
||||
h – c g
|
||||
| |\
|
||||
d f |
|
||||
/ \e/ \|
|
||||
x / y
|
||||
"""
|
||||
|
||||
And the ways
|
||||
| nodes | turn:lanes:forward | highway | junction |
|
||||
@@ -562,43 +620,45 @@ Feature: Turn Lane Guidance
|
||||
@anticipate
|
||||
Scenario: No Lanes for Roundabouts, see #2626
|
||||
Given the node map
|
||||
| | | a | | |
|
||||
| x | b | | d | y |
|
||||
| | | | | |
|
||||
| | | | | |
|
||||
| | | | | |
|
||||
| | | | | |
|
||||
| | | | | |
|
||||
| | | | | |
|
||||
| | | | | |
|
||||
| | | | | |
|
||||
| | | | | |
|
||||
| | | | | |
|
||||
| | | | | |
|
||||
| | | | | |
|
||||
| | | | | |
|
||||
| | | | | |
|
||||
| | | | | |
|
||||
| | | | | |
|
||||
| | | | | |
|
||||
| | | | | |
|
||||
| | | | | |
|
||||
| | | | | |
|
||||
| | | | | |
|
||||
| | | | | |
|
||||
| | | | | |
|
||||
| | | | | |
|
||||
| | | | | |
|
||||
| | | | | |
|
||||
| | | | | |
|
||||
| | | | | |
|
||||
| | | | | |
|
||||
| | | | | |
|
||||
| | | | | |
|
||||
| | | | | |
|
||||
| | | | | |
|
||||
| | | | | |
|
||||
| | | c | | |
|
||||
"""
|
||||
/a\
|
||||
x – b d – y
|
||||
| |
|
||||
| |
|
||||
| |
|
||||
| |
|
||||
| |
|
||||
| |
|
||||
| |
|
||||
| |
|
||||
| |
|
||||
| |
|
||||
| |
|
||||
| |
|
||||
| |
|
||||
| |
|
||||
| |
|
||||
| |
|
||||
| |
|
||||
| |
|
||||
| |
|
||||
| |
|
||||
| |
|
||||
| |
|
||||
|
|
||||
|
|
||||
|
|
||||
|
|
||||
|
|
||||
|
|
||||
|
|
||||
|
|
||||
|
|
||||
|
|
||||
|
|
||||
|
|
||||
c
|
||||
"""
|
||||
|
||||
And the ways
|
||||
| nodes | turn:lanes:forward | highway | junction | name |
|
||||
@@ -618,12 +678,15 @@ Feature: Turn Lane Guidance
|
||||
@anticipate @todo @2032
|
||||
Scenario: No Lanes for Roundabouts, see #2626
|
||||
Given the node map
|
||||
| a | b | | | x |
|
||||
| | c | | | |
|
||||
| d | | f | g | z |
|
||||
| | e | | h | |
|
||||
| | | | | |
|
||||
| | y | | | |
|
||||
"""
|
||||
a – b –x
|
||||
|
|
||||
/c\
|
||||
d f – g – z
|
||||
\e/ |
|
||||
| h
|
||||
y
|
||||
"""
|
||||
|
||||
And the ways
|
||||
| nodes | turn:lanes:forward | highway | junction | name |
|
||||
@@ -646,10 +709,11 @@ Feature: Turn Lane Guidance
|
||||
@anticipate
|
||||
Scenario: Anticipate none tags
|
||||
Given the node map
|
||||
| a | b | c |
|
||||
| | d | |
|
||||
| f | e | g |
|
||||
| | h | |
|
||||
"""
|
||||
c g l
|
||||
b – d – e – h - i
|
||||
a f j
|
||||
"""
|
||||
|
||||
And the ways
|
||||
| nodes | turn:lanes:forward | highway | name |
|
||||
@@ -669,14 +733,16 @@ Feature: Turn Lane Guidance
|
||||
@anticipate
|
||||
Scenario: Triple Right keeping Left
|
||||
Given the node map
|
||||
| a | | | | b | | i |
|
||||
| | | | | | | |
|
||||
| | | | | | | |
|
||||
| f | | e | | | | g |
|
||||
| | | | | | | |
|
||||
| | | | | | | |
|
||||
| | j | d | | c | | |
|
||||
| | | | | h | | |
|
||||
"""
|
||||
a – b – i
|
||||
|
|
||||
f – e – g |
|
||||
| |
|
||||
| |
|
||||
j – d – – c
|
||||
|
|
||||
h
|
||||
"""
|
||||
|
||||
And the ways
|
||||
| nodes | turn:lanes:forward | highway | name |
|
||||
@@ -694,14 +760,16 @@ Feature: Turn Lane Guidance
|
||||
@anticipate
|
||||
Scenario: Tripple Left keeping Right
|
||||
Given the node map
|
||||
| i | | b | | | | a |
|
||||
| | | | | | | |
|
||||
| | | | | | | |
|
||||
| g | | | | e | | f |
|
||||
| | | | | | | |
|
||||
| | | | | | | |
|
||||
| | | c | | d | j | |
|
||||
| | | h | | | | |
|
||||
"""
|
||||
i – b – a
|
||||
|
|
||||
| g – e – f
|
||||
| |
|
||||
| |
|
||||
c – – d – j
|
||||
|
|
||||
h
|
||||
"""
|
||||
|
||||
And the ways
|
||||
| nodes | turn:lanes:forward | highway | name |
|
||||
|
||||
@@ -0,0 +1,33 @@
|
||||
@routing @bicycle @mode
|
||||
Feature: Bike - Mode flag
|
||||
|
||||
Background:
|
||||
Given the profile "bicycle"
|
||||
Given a grid size of 5 meters
|
||||
|
||||
Scenario: Bike Sliproad
|
||||
Given the node map
|
||||
"""
|
||||
i
|
||||
a b - c-d
|
||||
` |
|
||||
g-e-h
|
||||
|
|
||||
|
|
||||
f
|
||||
"""
|
||||
|
||||
And the nodes
|
||||
| node | highway |
|
||||
| c | traffic_signals |
|
||||
|
||||
And the ways
|
||||
| nodes | highway | name | oneway:bicycle |
|
||||
| abcd | cycleway | street | |
|
||||
| eb | path | | yes |
|
||||
| icef | tertiary | road | |
|
||||
| geh | secondary | street | |
|
||||
|
||||
When I route I should get
|
||||
| waypoints | route | turns |
|
||||
| a,f | street,,road,road | depart,turn right,turn right,arrive |
|
||||
@@ -6,7 +6,9 @@ Feature: Car - Guidance - Bridges and Tunnels
|
||||
|
||||
Scenario: Simple Bridge
|
||||
Given the node map
|
||||
| a | b | c | d |
|
||||
"""
|
||||
a b c d
|
||||
"""
|
||||
|
||||
And the ways
|
||||
| nodes | highway | bridge | name |
|
||||
@@ -20,9 +22,11 @@ Feature: Car - Guidance - Bridges and Tunnels
|
||||
|
||||
Scenario: Bridge with Immediate Turn
|
||||
Given the node map
|
||||
| | | | d |
|
||||
| a | | b | c |
|
||||
| | | | e |
|
||||
"""
|
||||
d
|
||||
a b c
|
||||
e
|
||||
"""
|
||||
|
||||
And the ways
|
||||
| nodes | highway | bridge | name |
|
||||
@@ -31,17 +35,19 @@ Feature: Car - Guidance - Bridges and Tunnels
|
||||
| dce | primary | | Nebenstraße |
|
||||
|
||||
When I route I should get
|
||||
| from | to | route | turns |
|
||||
| a | d | Hauptstraße,Nebenstraße,Nebenstraße | depart,end of road left,arrive |
|
||||
| a | e | Hauptstraße,Nebenstraße,Nebenstraße | depart,end of road right,arrive |
|
||||
| e | a | Nebenstraße,Hauptstraßenbrücke,Hauptstraße | depart,turn left,arrive |
|
||||
| d | a | Nebenstraße,Hauptstraßenbrücke,Hauptstraße | depart,turn right,arrive |
|
||||
| from | to | route | turns |
|
||||
| a | d | Hauptstraße,Nebenstraße,Nebenstraße | depart,turn left,arrive |
|
||||
| a | e | Hauptstraße,Nebenstraße,Nebenstraße | depart,turn right,arrive |
|
||||
| e | a | Nebenstraße,Hauptstraßenbrücke,Hauptstraße | depart,turn left,arrive |
|
||||
| d | a | Nebenstraße,Hauptstraßenbrücke,Hauptstraße | depart,turn right,arrive |
|
||||
|
||||
Scenario: Bridge with Immediate Turn Front and Back
|
||||
Given the node map
|
||||
| f | | | d |
|
||||
| a | | b | c |
|
||||
| g | | | e |
|
||||
"""
|
||||
f d
|
||||
a b c
|
||||
g e
|
||||
"""
|
||||
|
||||
And the ways
|
||||
| nodes | highway | bridge | name |
|
||||
@@ -51,19 +57,21 @@ Feature: Car - Guidance - Bridges and Tunnels
|
||||
| gaf | primary | | Anderestraße |
|
||||
|
||||
When I route I should get
|
||||
| from | to | route | turns |
|
||||
| f | d | Anderestraße,Hauptstraße,Nebenstraße,Nebenstraße | depart,turn left,end of road left,arrive |
|
||||
| f | e | Anderestraße,Hauptstraße,Nebenstraße,Nebenstraße | depart,turn left,end of road right,arrive |
|
||||
| g | d | Anderestraße,Hauptstraße,Nebenstraße,Nebenstraße | depart,turn right,end of road left,arrive |
|
||||
| g | e | Anderestraße,Hauptstraße,Nebenstraße,Nebenstraße | depart,turn right,end of road right,arrive |
|
||||
| e | f | Nebenstraße,Hauptstraßenbrücke,Anderestraße,Anderestraße | depart,turn left,end of road right,arrive |
|
||||
| e | g | Nebenstraße,Hauptstraßenbrücke,Anderestraße,Anderestraße | depart,turn left,end of road left,arrive |
|
||||
| d | f | Nebenstraße,Hauptstraßenbrücke,Anderestraße,Anderestraße | depart,turn right,end of road right,arrive |
|
||||
| d | g | Nebenstraße,Hauptstraßenbrücke,Anderestraße,Anderestraße | depart,turn right,end of road left,arrive |
|
||||
| from | to | route | turns |
|
||||
| f | d | Anderestraße,Hauptstraße,Nebenstraße,Nebenstraße | depart,turn left,turn left,arrive |
|
||||
| f | e | Anderestraße,Hauptstraße,Nebenstraße,Nebenstraße | depart,turn left,turn right,arrive |
|
||||
| g | d | Anderestraße,Hauptstraße,Nebenstraße,Nebenstraße | depart,turn right,turn left,arrive |
|
||||
| g | e | Anderestraße,Hauptstraße,Nebenstraße,Nebenstraße | depart,turn right,turn right,arrive |
|
||||
| e | f | Nebenstraße,Hauptstraßenbrücke,Anderestraße,Anderestraße | depart,turn left,turn right,arrive |
|
||||
| e | g | Nebenstraße,Hauptstraßenbrücke,Anderestraße,Anderestraße | depart,turn left,turn left,arrive |
|
||||
| d | f | Nebenstraße,Hauptstraßenbrücke,Anderestraße,Anderestraße | depart,turn right,turn right,arrive |
|
||||
| d | g | Nebenstraße,Hauptstraßenbrücke,Anderestraße,Anderestraße | depart,turn right,turn left,arrive |
|
||||
|
||||
Scenario: Simple Tunnel
|
||||
Given the node map
|
||||
| a | b | c | d |
|
||||
"""
|
||||
a b c d
|
||||
"""
|
||||
|
||||
And the ways
|
||||
| nodes | highway | tunnel | name |
|
||||
@@ -77,9 +85,11 @@ Feature: Car - Guidance - Bridges and Tunnels
|
||||
|
||||
Scenario: Tunnel with Immediate Turn
|
||||
Given the node map
|
||||
| | | | d |
|
||||
| a | | b | c |
|
||||
| | | | e |
|
||||
"""
|
||||
d
|
||||
a b c
|
||||
e
|
||||
"""
|
||||
|
||||
And the ways
|
||||
| nodes | highway | tunnel | name |
|
||||
@@ -88,17 +98,19 @@ Feature: Car - Guidance - Bridges and Tunnels
|
||||
| dce | primary | | Nebenstraße |
|
||||
|
||||
When I route I should get
|
||||
| from | to | route | turns |
|
||||
| a | d | Hauptstraße,Nebenstraße,Nebenstraße | depart,end of road left,arrive |
|
||||
| a | e | Hauptstraße,Nebenstraße,Nebenstraße | depart,end of road right,arrive |
|
||||
| e | a | Nebenstraße,Hauptstraßentunnel,Hauptstraße | depart,turn left,arrive |
|
||||
| d | a | Nebenstraße,Hauptstraßentunnel,Hauptstraße | depart,turn right,arrive |
|
||||
| from | to | route | turns |
|
||||
| a | d | Hauptstraße,Nebenstraße,Nebenstraße | depart,turn left,arrive |
|
||||
| a | e | Hauptstraße,Nebenstraße,Nebenstraße | depart,turn right,arrive |
|
||||
| e | a | Nebenstraße,Hauptstraßentunnel,Hauptstraße | depart,turn left,arrive |
|
||||
| d | a | Nebenstraße,Hauptstraßentunnel,Hauptstraße | depart,turn right,arrive |
|
||||
|
||||
Scenario: Tunnel with Immediate Turn Front and Back
|
||||
Given the node map
|
||||
| f | | | d |
|
||||
| a | | b | c |
|
||||
| g | | | e |
|
||||
"""
|
||||
f d
|
||||
a b c
|
||||
g e
|
||||
"""
|
||||
|
||||
And the ways
|
||||
| nodes | highway | bridge | name |
|
||||
@@ -108,13 +120,13 @@ Feature: Car - Guidance - Bridges and Tunnels
|
||||
| gaf | primary | | Anderestraße |
|
||||
|
||||
When I route I should get
|
||||
| from | to | route | turns |
|
||||
| f | d | Anderestraße,Hauptstraße,Nebenstraße,Nebenstraße | depart,turn left,end of road left,arrive |
|
||||
| f | e | Anderestraße,Hauptstraße,Nebenstraße,Nebenstraße | depart,turn left,end of road right,arrive |
|
||||
| g | d | Anderestraße,Hauptstraße,Nebenstraße,Nebenstraße | depart,turn right,end of road left,arrive |
|
||||
| g | e | Anderestraße,Hauptstraße,Nebenstraße,Nebenstraße | depart,turn right,end of road right,arrive |
|
||||
| e | f | Nebenstraße,Hauptstraßentunnel,Anderestraße,Anderestraße | depart,turn left,end of road right,arrive |
|
||||
| e | g | Nebenstraße,Hauptstraßentunnel,Anderestraße,Anderestraße | depart,turn left,end of road left,arrive |
|
||||
| d | f | Nebenstraße,Hauptstraßentunnel,Anderestraße,Anderestraße | depart,turn right,end of road right,arrive |
|
||||
| d | g | Nebenstraße,Hauptstraßentunnel,Anderestraße,Anderestraße | depart,turn right,end of road left,arrive |
|
||||
| from | to | route | turns |
|
||||
| f | d | Anderestraße,Hauptstraße,Nebenstraße,Nebenstraße | depart,turn left,turn left,arrive |
|
||||
| f | e | Anderestraße,Hauptstraße,Nebenstraße,Nebenstraße | depart,turn left,turn right,arrive |
|
||||
| g | d | Anderestraße,Hauptstraße,Nebenstraße,Nebenstraße | depart,turn right,turn left,arrive |
|
||||
| g | e | Anderestraße,Hauptstraße,Nebenstraße,Nebenstraße | depart,turn right,turn right,arrive |
|
||||
| e | f | Nebenstraße,Hauptstraßentunnel,Anderestraße,Anderestraße | depart,turn left,turn right,arrive |
|
||||
| e | g | Nebenstraße,Hauptstraßentunnel,Anderestraße,Anderestraße | depart,turn left,turn left,arrive |
|
||||
| d | f | Nebenstraße,Hauptstraßentunnel,Anderestraße,Anderestraße | depart,turn right,turn right,arrive |
|
||||
| d | g | Nebenstraße,Hauptstraßentunnel,Anderestraße,Anderestraße | depart,turn right,turn left,arrive |
|
||||
|
||||
|
||||
@@ -8,13 +8,15 @@ Feature: Features related to bugs
|
||||
@2852
|
||||
Scenario: Loop
|
||||
Given the node map
|
||||
| a | 1 | | g | | | b |
|
||||
| | | | | | | |
|
||||
| | | | | | | |
|
||||
| e | | | | | | f |
|
||||
| | | | | | | |
|
||||
| | | | | | | 2 |
|
||||
| d | | | h | | | c |
|
||||
"""
|
||||
a 1 g b
|
||||
|
||||
|
||||
e f
|
||||
|
||||
2
|
||||
d h c
|
||||
"""
|
||||
|
||||
And the ways
|
||||
| nodes | name | oneway |
|
||||
@@ -33,3 +35,18 @@ Feature: Features related to bugs
|
||||
When I route I should get
|
||||
| waypoints | route | turns |
|
||||
| 1,2 | top,right,right | depart,new name right,arrive |
|
||||
|
||||
@3156
|
||||
Scenario: Incorrect lanes tag
|
||||
Given the node map
|
||||
"""
|
||||
a b
|
||||
"""
|
||||
|
||||
And the ways
|
||||
| nodes | lanes |
|
||||
| ab | 1; 2 |
|
||||
|
||||
And the data has been saved to disk
|
||||
When I try to run "osrm-extract {osm_file} --profile {profile_file}"
|
||||
Then it should exit successfully
|
||||
|
||||
@@ -8,17 +8,19 @@ Feature: Collapse
|
||||
@reverse
|
||||
Scenario: Collapse U-Turn Triangle Intersection
|
||||
Given the node map
|
||||
| g | | f | | e | | d |
|
||||
| | | | | | | |
|
||||
| | | | | | | |
|
||||
| a | | | b | | | c |
|
||||
"""
|
||||
g f e d
|
||||
|
||||
|
||||
a b c
|
||||
"""
|
||||
|
||||
And the ways
|
||||
| nodes | highway | name | oneway |
|
||||
| abc | primary | road | yes |
|
||||
| defg | primary | road | yes |
|
||||
| fb | primary_link | | |
|
||||
| be | primary_link | | |
|
||||
| fb | primary_link | | yes |
|
||||
| be | primary_link | | yes |
|
||||
|
||||
When I route I should get
|
||||
| waypoints | route | turns |
|
||||
@@ -28,11 +30,13 @@ Feature: Collapse
|
||||
@reverse @traffic-signals
|
||||
Scenario: Collapse U-Turn Triangle Intersection
|
||||
Given the node map
|
||||
| g | | f | | j | | e | | d |
|
||||
| | | | | | | | | |
|
||||
| | | | h | | i | | | |
|
||||
| | | | | | | | | |
|
||||
| a | | | | b | | | | c |
|
||||
"""
|
||||
g f j e d
|
||||
|
||||
h i
|
||||
|
||||
a b c
|
||||
"""
|
||||
|
||||
And the ways
|
||||
| nodes | highway | name | oneway |
|
||||
|
||||
+357
-190
@@ -7,12 +7,14 @@ Feature: Collapse
|
||||
|
||||
Scenario: Segregated Intersection, Cross Belonging to Single Street
|
||||
Given the node map
|
||||
| | | i | l | | |
|
||||
| | | | | | |
|
||||
| d | | c | b | | a |
|
||||
| e | | f | g | | h |
|
||||
| | | | | | |
|
||||
| | | j | k | | |
|
||||
"""
|
||||
i l
|
||||
|
||||
d c b a
|
||||
e f g h
|
||||
|
||||
j k
|
||||
"""
|
||||
|
||||
And the ways
|
||||
| nodes | highway | name | oneway |
|
||||
@@ -50,12 +52,14 @@ Feature: Collapse
|
||||
|
||||
Scenario: Segregated Intersection, Cross Belonging to Correct Street
|
||||
Given the node map
|
||||
| | | i | l | | |
|
||||
| | | | | | |
|
||||
| d | | c | b | | a |
|
||||
| e | | f | g | | h |
|
||||
| | | | | | |
|
||||
| | | j | k | | |
|
||||
"""
|
||||
i l
|
||||
|
||||
d c b a
|
||||
e f g h
|
||||
|
||||
j k
|
||||
"""
|
||||
|
||||
And the ways
|
||||
| nodes | highway | name | oneway |
|
||||
@@ -93,12 +97,14 @@ Feature: Collapse
|
||||
|
||||
Scenario: Segregated Intersection, Cross Belonging to Mixed Streets
|
||||
Given the node map
|
||||
| | | i | l | | |
|
||||
| | | | | | |
|
||||
| d | | c | b | | a |
|
||||
| e | | f | g | | h |
|
||||
| | | | | | |
|
||||
| | | j | k | | |
|
||||
"""
|
||||
i l
|
||||
|
||||
d c b a
|
||||
e f g h
|
||||
|
||||
j k
|
||||
"""
|
||||
|
||||
And the ways
|
||||
| nodes | highway | name | oneway |
|
||||
@@ -136,26 +142,28 @@ Feature: Collapse
|
||||
|
||||
Scenario: Partly Segregated Intersection, Two Segregated Roads
|
||||
Given the node map
|
||||
| | n | | m | |
|
||||
| | | | | |
|
||||
| | | | | |
|
||||
| | | | | |
|
||||
| | | | | |
|
||||
| | | | | |
|
||||
| | g | | h | |
|
||||
| | | | | |
|
||||
| | | | | |
|
||||
| c | | b | | a |
|
||||
| d | | e | | f |
|
||||
| | | | | |
|
||||
| | | | | |
|
||||
| | j | | i | |
|
||||
| | | | | |
|
||||
| | | | | |
|
||||
| | | | | |
|
||||
| | | | | |
|
||||
| | | | | |
|
||||
| | k | | l | |
|
||||
"""
|
||||
n m
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
g h
|
||||
|
||||
|
||||
c b a
|
||||
d e f
|
||||
|
||||
|
||||
j i
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
k l
|
||||
"""
|
||||
|
||||
And the ways
|
||||
| nodes | highway | name | oneway |
|
||||
@@ -188,22 +196,24 @@ Feature: Collapse
|
||||
|
||||
Scenario: Partly Segregated Intersection, Two Segregated Roads, Intersection belongs to Second
|
||||
Given the node map
|
||||
| | n | | m | |
|
||||
| | | | | |
|
||||
| | | | | |
|
||||
| | | | | |
|
||||
| | g | | h | |
|
||||
| | | | | |
|
||||
| | | | | |
|
||||
| c | | b | | a |
|
||||
| d | | e | | f |
|
||||
| | | | | |
|
||||
| | | | | |
|
||||
| | j | | i | |
|
||||
| | | | | |
|
||||
| | | | | |
|
||||
| | | | | |
|
||||
| | k | | l | |
|
||||
"""
|
||||
n m
|
||||
|
||||
|
||||
|
||||
g h
|
||||
|
||||
|
||||
c b a
|
||||
d e f
|
||||
|
||||
|
||||
j i
|
||||
|
||||
|
||||
|
||||
k l
|
||||
"""
|
||||
|
||||
And the ways
|
||||
| nodes | highway | name | oneway |
|
||||
@@ -236,12 +246,14 @@ Feature: Collapse
|
||||
|
||||
Scenario: Segregated Intersection, Cross Belonging to Mixed Streets - Slight Angles
|
||||
Given the node map
|
||||
| | | i | l | | |
|
||||
| | | | | | a |
|
||||
| | | c | b | | h |
|
||||
| d | | f | g | | |
|
||||
| e | | | | | |
|
||||
| | | j | k | | |
|
||||
"""
|
||||
i l
|
||||
a
|
||||
c b h
|
||||
d f g
|
||||
e
|
||||
j k
|
||||
"""
|
||||
|
||||
And the ways
|
||||
| nodes | highway | name | oneway |
|
||||
@@ -279,12 +291,14 @@ Feature: Collapse
|
||||
|
||||
Scenario: Segregated Intersection, Cross Belonging to Mixed Streets - Slight Angles (2)
|
||||
Given the node map
|
||||
| | | i | l | | |
|
||||
| | | | | | |
|
||||
| | | c | b | | |
|
||||
| d | | f | g | | a |
|
||||
| e | | | | | h |
|
||||
| | | j | k | | |
|
||||
"""
|
||||
i l
|
||||
|
||||
c b
|
||||
d f g a
|
||||
e h
|
||||
j k
|
||||
"""
|
||||
|
||||
And the ways
|
||||
| nodes | highway | name | oneway |
|
||||
@@ -322,12 +336,14 @@ Feature: Collapse
|
||||
|
||||
Scenario: Entering a segregated road
|
||||
Given the node map
|
||||
| | a | f | | | | g |
|
||||
| | | | | | | |
|
||||
| | b | e | | | | |
|
||||
| | | | | | | |
|
||||
| | | | | | | |
|
||||
| c | d | | | | | |
|
||||
"""
|
||||
a f g
|
||||
|
||||
b e
|
||||
|
||||
|
||||
c d
|
||||
"""
|
||||
|
||||
And the ways
|
||||
| nodes | highway | name | oneway |
|
||||
@@ -347,9 +363,11 @@ Feature: Collapse
|
||||
|
||||
Scenario: Do not collapse turning roads
|
||||
Given the node map
|
||||
| | | e | | |
|
||||
| | | c | | d |
|
||||
| a | | b | f | |
|
||||
"""
|
||||
e
|
||||
c d
|
||||
a b f
|
||||
"""
|
||||
|
||||
And the ways
|
||||
| nodes | highway | name | oneway |
|
||||
@@ -367,7 +385,9 @@ Feature: Collapse
|
||||
|
||||
Scenario: Bridge on unnamed road
|
||||
Given the node map
|
||||
| a | b | | | | c | d |
|
||||
"""
|
||||
a b c d
|
||||
"""
|
||||
|
||||
And the ways
|
||||
| nodes | highway | name |
|
||||
@@ -381,9 +401,11 @@ Feature: Collapse
|
||||
|
||||
Scenario: Crossing Bridge into Segregated Turn
|
||||
Given the node map
|
||||
| | | | | | f |
|
||||
| i | h | | | g | e |
|
||||
| a | b | | | c | d |
|
||||
"""
|
||||
f
|
||||
i h g e
|
||||
a b c d
|
||||
"""
|
||||
|
||||
And the ways
|
||||
| nodes | highway | oneway | name |
|
||||
@@ -402,9 +424,11 @@ Feature: Collapse
|
||||
|
||||
Scenario: Pankenbruecke
|
||||
Given the node map
|
||||
| j | | | | h | | | | | | i | | | | | | |
|
||||
| | | | | | | b | c | d | e | f | | | | | | g |
|
||||
| k | | | | a | | | | | | | | | | | | |
|
||||
"""
|
||||
j h i
|
||||
b c d e f g
|
||||
k a
|
||||
"""
|
||||
|
||||
And the ways
|
||||
| nodes | highway | name | oneway |
|
||||
@@ -421,11 +445,13 @@ Feature: Collapse
|
||||
|
||||
Scenario: Close Turns - Don't Collapse
|
||||
Given the node map
|
||||
| | g | d | |
|
||||
| | | | |
|
||||
| e | b | c | f |
|
||||
| | | | |
|
||||
| | a | h | |
|
||||
"""
|
||||
g d
|
||||
|
||||
e b c f
|
||||
|
||||
a h
|
||||
"""
|
||||
|
||||
And the ways
|
||||
| nodes | highway | name |
|
||||
@@ -443,8 +469,10 @@ Feature: Collapse
|
||||
|
||||
Scenario: No Name During Turns
|
||||
Given the node map
|
||||
| a | b | |
|
||||
| | c | d |
|
||||
"""
|
||||
a b
|
||||
c d
|
||||
"""
|
||||
|
||||
And the ways
|
||||
| nodes | highway | name |
|
||||
@@ -458,8 +486,10 @@ Feature: Collapse
|
||||
|
||||
Scenario: No Name During Turns, Random Oneway
|
||||
Given the node map
|
||||
| a | b | |
|
||||
| | c | d |
|
||||
"""
|
||||
a b
|
||||
c d
|
||||
"""
|
||||
|
||||
And the ways
|
||||
| nodes | highway | name | oneway |
|
||||
@@ -473,9 +503,11 @@ Feature: Collapse
|
||||
|
||||
Scenario: Pulled Back Turn
|
||||
Given the node map
|
||||
| | | d |
|
||||
| a | b | c |
|
||||
| | e | |
|
||||
"""
|
||||
d
|
||||
a b c
|
||||
e
|
||||
"""
|
||||
|
||||
And the ways
|
||||
| nodes | highway | name |
|
||||
@@ -490,8 +522,10 @@ Feature: Collapse
|
||||
|
||||
Scenario: No Name During Turns, keep important turns
|
||||
Given the node map
|
||||
| a | b | e |
|
||||
| | c | d |
|
||||
"""
|
||||
a b e
|
||||
c d
|
||||
"""
|
||||
|
||||
And the ways
|
||||
| nodes | highway | name |
|
||||
@@ -506,17 +540,19 @@ Feature: Collapse
|
||||
|
||||
Scenario: Segregated Intersection into Slight Turn
|
||||
Given the node map
|
||||
| h | | | | | | |
|
||||
| a | | | | | | |
|
||||
| | | | | | | |
|
||||
| | | g | | | | |
|
||||
| | | b | f | | | |
|
||||
| | | | c | | | |
|
||||
| | | | | | | |
|
||||
| | | | | | | |
|
||||
| | | | | | | e |
|
||||
| | | | | | | d |
|
||||
| | | j | i | | | |
|
||||
"""
|
||||
h
|
||||
a
|
||||
|
||||
g
|
||||
b f
|
||||
c
|
||||
|
||||
|
||||
e
|
||||
d
|
||||
j i
|
||||
"""
|
||||
|
||||
And the ways
|
||||
| nodes | highway | name | oneway |
|
||||
@@ -533,20 +569,22 @@ Feature: Collapse
|
||||
|
||||
Scenario: Segregated Intersection into Very Slight Turn
|
||||
Given the node map
|
||||
| h | | | | | | |
|
||||
| a | | | | | | |
|
||||
| | | | | | | |
|
||||
| | | | | | | |
|
||||
| | | g | | | | |
|
||||
| | | b | | | | |
|
||||
| | | | f | | | |
|
||||
| | | | c | | | |
|
||||
| | | | | | | |
|
||||
| | | | | | | |
|
||||
| | | | | | | |
|
||||
| | | | | | | e |
|
||||
| | | | | | | d |
|
||||
| | | j | i | | | |
|
||||
"""
|
||||
h
|
||||
a
|
||||
|
||||
|
||||
g
|
||||
b
|
||||
f
|
||||
c
|
||||
|
||||
|
||||
|
||||
e
|
||||
d
|
||||
j i
|
||||
"""
|
||||
|
||||
And the ways
|
||||
| nodes | highway | name | oneway |
|
||||
@@ -563,9 +601,11 @@ Feature: Collapse
|
||||
|
||||
Scenario: Don't collapse everything to u-turn / too wide
|
||||
Given the node map
|
||||
| a | | b | | e |
|
||||
| | | | | |
|
||||
| d | | c | | f |
|
||||
"""
|
||||
a b e
|
||||
|
||||
d c f
|
||||
"""
|
||||
|
||||
And the ways
|
||||
| nodes | highway | name |
|
||||
@@ -580,12 +620,14 @@ Feature: Collapse
|
||||
|
||||
Scenario: Forking before a turn
|
||||
Given the node map
|
||||
| | | | g | |
|
||||
| | | | | |
|
||||
| | | | c | |
|
||||
| a | | b | d | e |
|
||||
| | | | | |
|
||||
| | | | f | |
|
||||
"""
|
||||
g
|
||||
|
||||
c
|
||||
a b d e
|
||||
|
||||
f
|
||||
"""
|
||||
|
||||
And the ways
|
||||
| nodes | name | oneway | highway |
|
||||
@@ -593,12 +635,14 @@ Feature: Collapse
|
||||
| bd | road | yes | primary |
|
||||
| bc | road | yes | primary |
|
||||
| de | road | yes | primary |
|
||||
| fdcg | cross | no | secondary |
|
||||
| fd | cross | no | secondary |
|
||||
| dc | cross | no | secondary |
|
||||
| cg | cross | no | secondary |
|
||||
|
||||
And the relations
|
||||
| type | way:from | way:to | node:via | restriction |
|
||||
| restriction | bd | fdcg | d | no_left_turn |
|
||||
| restriction | bc | fdcg | c | no_right_turn |
|
||||
| restriction | bd | dc | d | no_left_turn |
|
||||
| restriction | bc | dc | c | no_right_turn |
|
||||
|
||||
When I route I should get
|
||||
| waypoints | route | turns |
|
||||
@@ -607,12 +651,14 @@ Feature: Collapse
|
||||
|
||||
Scenario: Forking before a turn (narrow)
|
||||
Given the node map
|
||||
| | | | g | |
|
||||
| | | | | |
|
||||
| | | | c | |
|
||||
| a | b | | d | e |
|
||||
| | | | | |
|
||||
| | | | f | |
|
||||
"""
|
||||
g
|
||||
|
||||
c
|
||||
a b d e
|
||||
|
||||
f
|
||||
"""
|
||||
|
||||
And the ways
|
||||
| nodes | name | oneway | highway |
|
||||
@@ -636,12 +682,14 @@ Feature: Collapse
|
||||
|
||||
Scenario: Forking before a turn (forky)
|
||||
Given the node map
|
||||
| | | | | | g | | |
|
||||
| | | | | | | | |
|
||||
| | | | | | c | | |
|
||||
| a | | | b | | | | |
|
||||
| | | | | | | d | |
|
||||
| | | | | | | f | e |
|
||||
"""
|
||||
g
|
||||
|
||||
c
|
||||
a b
|
||||
d
|
||||
f e
|
||||
"""
|
||||
|
||||
And the ways
|
||||
| nodes | name | oneway | highway |
|
||||
@@ -667,9 +715,11 @@ Feature: Collapse
|
||||
|
||||
Scenario: On-Off on Highway
|
||||
Given the node map
|
||||
| f | | | |
|
||||
| a | b | c | d |
|
||||
| | | | e |
|
||||
"""
|
||||
f
|
||||
a b c d
|
||||
e
|
||||
"""
|
||||
|
||||
And the ways
|
||||
| nodes | name | highway | oneway |
|
||||
@@ -687,13 +737,15 @@ Feature: Collapse
|
||||
@negative @straight
|
||||
Scenario: Don't collapse going straight if actual turn
|
||||
Given the node map
|
||||
| | c | e | | |
|
||||
| | | d | | f |
|
||||
| | | | | |
|
||||
| | | b | | |
|
||||
| | | | | |
|
||||
| | | | | |
|
||||
| | | a | | |
|
||||
"""
|
||||
c e
|
||||
d f
|
||||
|
||||
b
|
||||
|
||||
|
||||
a
|
||||
"""
|
||||
|
||||
And the ways
|
||||
| nodes | name | highway |
|
||||
@@ -709,12 +761,14 @@ Feature: Collapse
|
||||
|
||||
Scenario: Entering a segregated road
|
||||
Given the node map
|
||||
| | a | f | | |
|
||||
| | | | | g |
|
||||
| | b | e | | |
|
||||
| | | | | |
|
||||
| | | | | |
|
||||
| c | d | | | |
|
||||
"""
|
||||
a f
|
||||
g
|
||||
b e
|
||||
|
||||
|
||||
c d
|
||||
"""
|
||||
|
||||
And the ways
|
||||
| nodes | highway | name | oneway |
|
||||
@@ -729,12 +783,14 @@ Feature: Collapse
|
||||
|
||||
Scenario: Entering a segregated road slight turn
|
||||
Given the node map
|
||||
| | | a | f | |
|
||||
| | | | | g |
|
||||
| | b | e | | |
|
||||
| | | | | |
|
||||
| | | | | |
|
||||
| c | d | | | |
|
||||
"""
|
||||
a f
|
||||
g
|
||||
b e
|
||||
|
||||
|
||||
c d
|
||||
"""
|
||||
|
||||
And the ways
|
||||
| nodes | highway | name | oneway |
|
||||
@@ -749,11 +805,13 @@ Feature: Collapse
|
||||
|
||||
Scenario: Do not collapse UseLane step when lanes change
|
||||
Given the node map
|
||||
| | | | f | g | |
|
||||
| | | | | | |
|
||||
| a | b | c | d | | e |
|
||||
| | | | | | |
|
||||
| | | | h | i | |
|
||||
"""
|
||||
f g
|
||||
|
||||
a b c d e
|
||||
|
||||
h i
|
||||
"""
|
||||
|
||||
And the ways
|
||||
| nodes | turn:lanes:forward | name |
|
||||
@@ -772,11 +830,13 @@ Feature: Collapse
|
||||
|
||||
Scenario: But _do_ collapse UseLane step when lanes stay the same
|
||||
Given the node map
|
||||
| | | | f | g | |
|
||||
| | | | | | |
|
||||
| a | b | c | d | | e |
|
||||
| | | | | | |
|
||||
| | | | h | i | |
|
||||
"""
|
||||
f g
|
||||
|
||||
a b c d e
|
||||
|
||||
h i
|
||||
"""
|
||||
|
||||
And the ways
|
||||
| nodes | turn:lanes:forward | name |
|
||||
@@ -795,10 +855,12 @@ Feature: Collapse
|
||||
|
||||
Scenario: Don't collapse different travel modes
|
||||
Given the node map
|
||||
| g | | | | | | | h | |
|
||||
| a | b | | c | | | | e | f |
|
||||
| | | | | | d | | | |
|
||||
| | | | i | j | | | | |
|
||||
"""
|
||||
g h
|
||||
a b c e f
|
||||
d
|
||||
i j
|
||||
"""
|
||||
|
||||
And the ways
|
||||
| nodes | highway | route | name |
|
||||
@@ -818,23 +880,128 @@ Feature: Collapse
|
||||
|
||||
Scenario: U-Turn onto a Ferry
|
||||
Given the node map
|
||||
| | | | | | | i | | |
|
||||
| j | e | | | | | d | c | h |
|
||||
| | | | | | | | | |
|
||||
| | | | | | | | | |
|
||||
| k | g | | | | | a | b | f |
|
||||
"""
|
||||
i
|
||||
j e d c h
|
||||
|
||||
|
||||
k g a b f
|
||||
"""
|
||||
|
||||
And the ways
|
||||
| nodes | highway | route | name | oneway |
|
||||
| bf | primary | | road | yes |
|
||||
| abf | primary | | road | yes |
|
||||
| hcd | primary | | road | yes |
|
||||
| bc | primary | | | yes |
|
||||
| di | service | | serv | yes |
|
||||
| ed | | ferry | ferry | |
|
||||
| gab | | ferry | ferry | |
|
||||
| ga | | ferry | ferry | |
|
||||
| kg | primary | | on | yes |
|
||||
| ej | primary | | off | yes |
|
||||
|
||||
When I route I should get
|
||||
| waypoints | route | turns |
|
||||
| k,j | on,ferry,,ferry,off,off | depart,new name straight,continue uturn,turn straight,new name straight,arrive |
|
||||
| waypoints | route | turns |
|
||||
| k,j | on,ferry,road,road,ferry,off,off | depart,notification straight,notification straight,continue uturn,turn straight,notification straight,arrive |
|
||||
|
||||
# http://www.openstreetmap.org/#map=19/37.78090/-122.41251
|
||||
Scenario: U-Turn onto unnamed-road
|
||||
Given the node map
|
||||
"""
|
||||
d . _ h
|
||||
' b . _ |
|
||||
| ' e g
|
||||
| f '
|
||||
| 1 '
|
||||
a '
|
||||
"""
|
||||
|
||||
And the ways
|
||||
| nodes | highway | turn:lanes | name | oneway |
|
||||
| ab | secondary | | up | yes |
|
||||
| gfa | secondary | | | yes |
|
||||
| dbe | tertiary | | turn | no |
|
||||
| he | secondary | through\|right | down | yes |
|
||||
| ef | secondary | | down | yes |
|
||||
|
||||
When I route I should get
|
||||
| waypoints | route | turns |
|
||||
| a,1 | up,turn,, | depart,turn right,turn sharp right,arrive |
|
||||
|
||||
#http://www.openstreetmap.org/#map=19/52.48778/13.30024
|
||||
Scenario: Hohenzollerdammbrücke
|
||||
Given the node map
|
||||
"""
|
||||
q s
|
||||
p o
|
||||
.. . .
|
||||
. . . .
|
||||
j - i - - - h - - - g - f
|
||||
> k < > l <
|
||||
a - b - - - c - - - d - e
|
||||
. . . .
|
||||
.. ..
|
||||
m n
|
||||
t r
|
||||
"""
|
||||
|
||||
And the ways
|
||||
| nodes | highway | name | oneway |
|
||||
| ab | secondary | hohe | yes |
|
||||
| bc | secondary | hohebruecke | yes |
|
||||
| cd | secondary | hohebruecke | yes |
|
||||
| bk | secondary | hohebruecke | yes |
|
||||
| kh | secondary | hohebruecke | yes |
|
||||
| ki | secondary | hohebruecke | yes |
|
||||
| ck | secondary | hohebruecke | yes |
|
||||
| de | secondary | hohe | yes |
|
||||
| fg | secondary | hohe | yes |
|
||||
| gh | secondary | hohebruecke | yes |
|
||||
| hi | secondary | hohebruecke | yes |
|
||||
| gl | secondary | hohebruecke | yes |
|
||||
| lc | secondary | hohebruecke | yes |
|
||||
| hl | secondary | hohebruecke | yes |
|
||||
| ld | secondary | hohebruecke | yes |
|
||||
| ij | secondary | hohe | yes |
|
||||
| bm | motorway_link | a100 | yes |
|
||||
| cm | motorway_link | a100 | yes |
|
||||
| nc | motorway_link | a100 | yes |
|
||||
| nd | motorway_link | a100 | yes |
|
||||
| go | motorway_link | a100 | yes |
|
||||
| ho | motorway_link | a100 | yes |
|
||||
| ph | motorway_link | a100 | yes |
|
||||
| pi | motorway_link | a100 | yes |
|
||||
| qp | motorway_link | a100 | yes |
|
||||
| mt | motorway_link | a100 | yes |
|
||||
| rn | motorway_link | a100 | yes |
|
||||
| os | motorway_link | a100 | yes |
|
||||
|
||||
And the relations
|
||||
| type | way:from | way:to | node:via | restriction |
|
||||
| restriction | ck | kh | k | no_right_turn |
|
||||
| restriction | bk | ki | k | no_left_turn |
|
||||
| restriction | hl | lc | l | no_right_turn |
|
||||
| restriction | gl | ld | l | no_left_turn |
|
||||
| restriction | bc | cm | c | no_right_turn |
|
||||
| restriction | bc | ck | c | no_left_turn |
|
||||
| restriction | nc | cm | c | no_left_turn |
|
||||
| restriction | nc | cd | c | no_right_turn |
|
||||
| restriction | lc | ck | c | no_left_turn |
|
||||
| restriction | lc | cd | c | no_right_turn |
|
||||
| restriction | gh | ho | h | no_right_turn |
|
||||
| restriction | gh | hl | h | no_left_turn |
|
||||
| restriction | kh | hi | h | no_left_turn |
|
||||
| restriction | kh | hl | h | no_right_turn |
|
||||
| restriction | ph | ho | h | no_left_turn |
|
||||
| restriction | ph | hi | h | no_right_turn |
|
||||
|
||||
When I route I should get
|
||||
| waypoints | route | turns |
|
||||
| a,e | hohe,hohe | depart,arrive |
|
||||
| a,s | hohe,a100,a100 | depart,on ramp left,arrive |
|
||||
| a,t | hohe,a100,a100 | depart,on ramp right,arrive |
|
||||
| a,j | | |
|
||||
| f,j | hohe,hohe | depart,arrive |
|
||||
| a,t | hohe,a100,a100 | depart,on ramp right,arrive |
|
||||
| f,e | | |
|
||||
| q,j | a100,hohe,hohe | depart,turn right,arrive |
|
||||
| q,e | a100,a100,hohe | depart,continue left,arrive |
|
||||
|
||||
@@ -7,8 +7,10 @@ Feature: Continue Instructions
|
||||
|
||||
Scenario: Road turning left
|
||||
Given the node map
|
||||
| | | c | |
|
||||
| a | | b | d |
|
||||
"""
|
||||
c
|
||||
a b d
|
||||
"""
|
||||
|
||||
And the ways
|
||||
| nodes | highway |
|
||||
@@ -22,8 +24,10 @@ Feature: Continue Instructions
|
||||
|
||||
Scenario: Road turning left and straight
|
||||
Given the node map
|
||||
| | | c | |
|
||||
| a | | b | d |
|
||||
"""
|
||||
c
|
||||
a b d
|
||||
"""
|
||||
|
||||
And the ways
|
||||
| nodes | highway | name |
|
||||
@@ -37,9 +41,11 @@ Feature: Continue Instructions
|
||||
|
||||
Scenario: Road turning left and straight
|
||||
Given the node map
|
||||
| | | c | |
|
||||
| a | | b | d |
|
||||
| | | e | |
|
||||
"""
|
||||
c
|
||||
a b d
|
||||
e
|
||||
"""
|
||||
|
||||
And the ways
|
||||
| nodes | highway | name |
|
||||
@@ -55,8 +61,10 @@ Feature: Continue Instructions
|
||||
|
||||
Scenario: Road turning right
|
||||
Given the node map
|
||||
| a | | b | d |
|
||||
| | | c | |
|
||||
"""
|
||||
a b d
|
||||
c
|
||||
"""
|
||||
|
||||
And the ways
|
||||
| nodes | highway |
|
||||
@@ -70,10 +78,12 @@ Feature: Continue Instructions
|
||||
|
||||
Scenario: Road turning slight left
|
||||
Given the node map
|
||||
| | | | | c |
|
||||
| | | | | |
|
||||
| a | | b | | |
|
||||
| | | | d | |
|
||||
"""
|
||||
c
|
||||
|
||||
a b
|
||||
d
|
||||
"""
|
||||
|
||||
And the ways
|
||||
| nodes | highway |
|
||||
@@ -87,10 +97,12 @@ Feature: Continue Instructions
|
||||
|
||||
Scenario: Road turning slight right
|
||||
Given the node map
|
||||
| | | | d | |
|
||||
| a | | b | | |
|
||||
| | | | | |
|
||||
| | | | | c |
|
||||
"""
|
||||
d
|
||||
a b
|
||||
|
||||
c
|
||||
"""
|
||||
|
||||
And the ways
|
||||
| nodes | highway |
|
||||
@@ -104,11 +116,13 @@ Feature: Continue Instructions
|
||||
|
||||
Scenario: Road Loop
|
||||
Given the node map
|
||||
| | | f | | e |
|
||||
| | | | | |
|
||||
| a | | b | g | |
|
||||
| | | | | |
|
||||
| | | c | | d |
|
||||
"""
|
||||
f e
|
||||
|
||||
a b g
|
||||
|
||||
c d
|
||||
"""
|
||||
|
||||
And the ways
|
||||
| nodes | highway |
|
||||
@@ -120,4 +134,5 @@ Feature: Continue Instructions
|
||||
| a,c | abcdefb,abcdefb,abcdefb | depart,continue right,arrive |
|
||||
| a,f | abcdefb,abcdefb,abcdefb | depart,continue left,arrive |
|
||||
| a,d | abcdefb,abcdefb,abcdefb | depart,continue right,arrive |
|
||||
| a,e | abcdefb,abcdefb,abcdefb | depart,continue left,arrive |
|
||||
# continuing right here, since the turn to the left is more expensive
|
||||
| a,e | abcdefb,abcdefb,abcdefb | depart,continue right,arrive |
|
||||
|
||||
@@ -7,43 +7,85 @@ Feature: Slipways and Dedicated Turn Lanes
|
||||
|
||||
Scenario: Turn Instead of Ramp
|
||||
Given the node map
|
||||
| | | | | e | |
|
||||
| a | b | | | c | d |
|
||||
| | | | h | | |
|
||||
| | | | | | |
|
||||
| | | | 1 | | |
|
||||
| | | | | | |
|
||||
| | | | | f | |
|
||||
| | | | | | |
|
||||
| | | | | g | |
|
||||
"""
|
||||
e
|
||||
a b c d
|
||||
h
|
||||
|
||||
1
|
||||
|
||||
f
|
||||
|
||||
g
|
||||
"""
|
||||
|
||||
And the ways
|
||||
| nodes | highway | name |
|
||||
| abcd | trunk | first |
|
||||
| abc | trunk | first |
|
||||
| cd | trunk | first |
|
||||
| bhf | trunk_link | |
|
||||
| ecfg | primary | second |
|
||||
| cfg | primary | second |
|
||||
| ec | primary | second |
|
||||
|
||||
And the relations
|
||||
| type | way:from | way:to | node:via | restriction |
|
||||
| restriction | abcd | ecfg | c | no_right_turn |
|
||||
| restriction | abc | cfg | c | no_right_turn |
|
||||
|
||||
When I route I should get
|
||||
| waypoints | route | turns |
|
||||
| a,g | first,second,second | depart,turn right,arrive |
|
||||
| a,1 | first,, | depart,turn slight right,arrive |
|
||||
|
||||
Scenario: Turn Instead of Ramp - Max-Speed
|
||||
Given the node map
|
||||
"""
|
||||
e
|
||||
a-b-----c-------------------------d
|
||||
`h |
|
||||
||
|
||||
1||
|
||||
`|
|
||||
f
|
||||
|
|
||||
g
|
||||
"""
|
||||
|
||||
And the ways
|
||||
| nodes | highway | name | maxspeed |
|
||||
| abc | trunk | first | 70 |
|
||||
| cd | trunk | first | 2 |
|
||||
| bhf | trunk_link | | 2 |
|
||||
| cfg | primary | second | 50 |
|
||||
| ec | primary | second | 50 |
|
||||
|
||||
And the relations
|
||||
| type | way:from | way:to | node:via | restriction |
|
||||
| restriction | abc | cfg | c | no_right_turn |
|
||||
|
||||
When I route I should get
|
||||
| waypoints | route | turns |
|
||||
| a,g | first,second,second | depart,turn right,arrive |
|
||||
| a,1 | first,, | depart,turn slight right,arrive |
|
||||
|
||||
|
||||
Scenario: Turn Instead of Ramp
|
||||
Given the node map
|
||||
| | | | | e | |
|
||||
| a | b | | | c | d |
|
||||
| | | | h | | |
|
||||
| | | | | | |
|
||||
| | | | | | |
|
||||
| | | | | | |
|
||||
| | | | | f | |
|
||||
| | | | | | |
|
||||
| | | | | | |
|
||||
| | | | | g | |
|
||||
"""
|
||||
e
|
||||
a b c d
|
||||
h
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
f
|
||||
|
||||
|
||||
g
|
||||
"""
|
||||
|
||||
And the ways
|
||||
| nodes | highway | name |
|
||||
@@ -55,18 +97,45 @@ Feature: Slipways and Dedicated Turn Lanes
|
||||
| waypoints | route | turns |
|
||||
| a,g | first,,second,second | depart,off ramp slight right,turn straight,arrive |
|
||||
|
||||
Scenario: Turn Instead of Ramp
|
||||
Given the node map
|
||||
"""
|
||||
e
|
||||
a b c d
|
||||
h
|
||||
|
||||
|
||||
|
||||
f
|
||||
|
||||
|
||||
g
|
||||
"""
|
||||
|
||||
And the ways
|
||||
| nodes | highway | name |
|
||||
| abcd | motorway | first |
|
||||
| bhf | motorway_link | |
|
||||
| efg | primary | second |
|
||||
|
||||
When I route I should get
|
||||
| waypoints | route | turns |
|
||||
| a,g | first,,second,second | depart,off ramp slight right,turn straight,arrive |
|
||||
|
||||
Scenario: Inner city expressway with on road
|
||||
Given the node map
|
||||
| a | b | | | | c | g |
|
||||
| | | | | f | | |
|
||||
| | | | | | | |
|
||||
| | | | | | | |
|
||||
| | | | | | | |
|
||||
| | | | | | d | |
|
||||
| | | | | | | |
|
||||
| | | | | | | |
|
||||
| | | | | | | |
|
||||
| | | | | | e | |
|
||||
"""
|
||||
a b c g
|
||||
f
|
||||
|
||||
|
||||
|
||||
d
|
||||
|
||||
|
||||
|
||||
e
|
||||
"""
|
||||
|
||||
And the ways
|
||||
| nodes | highway | name |
|
||||
@@ -86,14 +155,16 @@ Feature: Slipways and Dedicated Turn Lanes
|
||||
|
||||
Scenario: Slipway Round U-Turn
|
||||
Given the node map
|
||||
| a | | f |
|
||||
| | | |
|
||||
| b | | e |
|
||||
| | | |
|
||||
| | | |
|
||||
| | g | |
|
||||
| | | |
|
||||
| c | | d |
|
||||
"""
|
||||
a f
|
||||
|
||||
b e
|
||||
|
||||
|
||||
g
|
||||
|
||||
c d
|
||||
"""
|
||||
|
||||
And the ways
|
||||
| nodes | highway | name | oneway |
|
||||
@@ -107,13 +178,15 @@ Feature: Slipways and Dedicated Turn Lanes
|
||||
|
||||
Scenario: Slipway Steep U-Turn
|
||||
Given the node map
|
||||
| a | | f |
|
||||
| | | |
|
||||
| b | | e |
|
||||
| | g | |
|
||||
| | | |
|
||||
| | | |
|
||||
| c | | d |
|
||||
"""
|
||||
a f
|
||||
|
||||
b e
|
||||
g
|
||||
|
||||
|
||||
c d
|
||||
"""
|
||||
|
||||
And the ways
|
||||
| nodes | highway | name | oneway |
|
||||
@@ -127,21 +200,23 @@ Feature: Slipways and Dedicated Turn Lanes
|
||||
|
||||
Scenario: Schwarzwaldstrasse Autobahn
|
||||
Given the node map
|
||||
| | | | | i | | | | | | h | | | | | g |
|
||||
| | | j | | | | | | | | | | | | | |
|
||||
| a | | | | | | | k | | | | | | | | |
|
||||
| | | | b | | r | c | | d | | e | | | | | f |
|
||||
| | | | | | | | | | | | | | | | |
|
||||
| | | | | | | | | | | | | | | | |
|
||||
| | | | | | | | | | | | | | | | |
|
||||
| | | | | | | | | | | | | | | | |
|
||||
| | | | | | l | | | | | | | | | | |
|
||||
| | | | | | m | | | | | | | | | | |
|
||||
| | | | | | | n | | q | | | | | | | |
|
||||
| | | | | | | | | | | | | | | | |
|
||||
| | | | | | | | | | | | | | | | |
|
||||
| | | | | | | | | | | | | | | | |
|
||||
| | | | | | | o | | p | | | | | | | |
|
||||
"""
|
||||
. i . . . . . h . . . . g
|
||||
.j '. . '
|
||||
a . k
|
||||
' b . r c . d . e . . . . f
|
||||
. . .
|
||||
. . .
|
||||
. . .
|
||||
. . .
|
||||
l . .
|
||||
m . .
|
||||
n q
|
||||
. .
|
||||
. .
|
||||
. .
|
||||
o p
|
||||
"""
|
||||
|
||||
And the nodes
|
||||
# the traffic light at `l` is not actually in the data, but necessary for the test to check everything
|
||||
@@ -166,20 +241,22 @@ Feature: Slipways and Dedicated Turn Lanes
|
||||
|
||||
When I route I should get
|
||||
| waypoints | route | turns | ref |
|
||||
| a,o | Schwarzwaldstrasse,Ettlinger Allee,Ettlinger Allee | depart,turn right,arrive | L561,, |
|
||||
| a,o | Schwarzwaldstrasse,Ettlinger Allee,Ettlinger Allee | depart,turn right,arrive | L561,L561, |
|
||||
|
||||
Scenario: Traffic Lights everywhere
|
||||
#http://map.project-osrm.org/?z=18¢er=48.995336%2C8.383813&loc=48.995467%2C8.384548&loc=48.995115%2C8.382761&hl=en&alt=0
|
||||
Given the node map
|
||||
| a | | | k | l | | | j | |
|
||||
| | | | | | d | b | c | i |
|
||||
| | | | | | | | | |
|
||||
| | | | | | | e | g | |
|
||||
| | | | | | | | | |
|
||||
| | | | | | | 1 | | |
|
||||
| | | | | | | | h | |
|
||||
| | | | | | | | | |
|
||||
| | | | | | | | f | |
|
||||
"""
|
||||
a k l j
|
||||
d b c i
|
||||
|
||||
e g
|
||||
|
||||
1
|
||||
h
|
||||
|
||||
f
|
||||
"""
|
||||
|
||||
And the nodes
|
||||
| node | highway |
|
||||
@@ -194,33 +271,34 @@ Feature: Slipways and Dedicated Turn Lanes
|
||||
| jcghf | primary | Brauerstrasse | yes |
|
||||
|
||||
When I route I should get
|
||||
| waypoints | route | turns |
|
||||
| a,i | Ebertstrasse,Ebertstrasse | depart,arrive |
|
||||
| a,l | Ebertstrasse,Ebertstrasse | depart,arrive |
|
||||
| a,f | Ebertstrasse,Brauerstrasse,Brauerstrasse | depart,turn right,arrive |
|
||||
| a,1 | Ebertstrasse,, | depart,turn slight right,arrive |
|
||||
| waypoints | route | turns |
|
||||
| a,i | Ebertstrasse,Ebertstrasse | depart,arrive |
|
||||
| a,l | Ebertstrasse,Ebertstrasse | depart,arrive |
|
||||
| a,f | Ebertstrasse,Brauerstrasse,Brauerstrasse | depart,turn right,arrive |
|
||||
| a,1 | Ebertstrasse,, | depart,turn right,arrive |
|
||||
|
||||
#2839
|
||||
Scenario: Self-Loop
|
||||
Given the node map
|
||||
# 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
|
||||
| | | | | | | | | | | | | | | | | | | | | | l | | | k | | | | | | |
|
||||
| | | | | | | | | | | | | | | | | | | | | | | | | | | | j | | | |
|
||||
| | | | | | | | | | | | | | | | | | | | m | | | | | | | | | | | |
|
||||
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | i | |
|
||||
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
|
||||
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
|
||||
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | h |
|
||||
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
|
||||
| | | | | | | | | | | | | | | | | | | n | | | | | | | | | | | | |
|
||||
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
|
||||
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | g |
|
||||
| | | | | | | | | | | | | | | | | | | o | | | | | | | | | | | | |
|
||||
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
|
||||
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | f | |
|
||||
| | | | | | | | | | | | | | | | | | p | | | | | | | | | | | | | |
|
||||
| | | | | | | | | | | | | | | | | | | | | | | | | | | | e | | | |
|
||||
| a | | | | | b | | | | | | | | | c | | | | | | | | | | d | | | | | | |
|
||||
"""
|
||||
l k
|
||||
j
|
||||
m
|
||||
i
|
||||
|
||||
|
||||
h
|
||||
|
||||
n
|
||||
|
||||
g
|
||||
o
|
||||
|
||||
f
|
||||
p
|
||||
e
|
||||
a b c d
|
||||
"""
|
||||
|
||||
And the ways
|
||||
| nodes | name | oneway | highway | lanes |
|
||||
@@ -237,24 +315,25 @@ Feature: Slipways and Dedicated Turn Lanes
|
||||
#has to remain as todo (see #https://github.com/Project-OSRM/osrm-backend/pull/2849)
|
||||
Scenario: Self-Loop - Bidirectional
|
||||
Given the node map
|
||||
# 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
|
||||
| | | | | | | | | | | | | | | | | | | | | | l | | | k | | | | | | |
|
||||
| | | | | | | | | | | | | | | | | | | | | | | | | | | | j | | | |
|
||||
| | | | | | | | | | | | | | | | | | | | m | | | | | | | | | | | |
|
||||
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | i | |
|
||||
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
|
||||
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
|
||||
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | h |
|
||||
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
|
||||
| | | | | | | | | | | | | | | | | | | n | | | | | | | | | | | | |
|
||||
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
|
||||
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | g |
|
||||
| | | | | | | | | | | | | | | | | | | o | | | | | | | | | | | | |
|
||||
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
|
||||
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | f | |
|
||||
| | | | | | | | | | | | | | | | | | p | | | | | | | | | | | | | |
|
||||
| | | | | | | | | | | | | | | | | | | | | | | | | | | | e | | | |
|
||||
| a | | | | | b | | | | | | | | | c | | | | | | | | | | d | | | | | | |
|
||||
"""
|
||||
l k
|
||||
j
|
||||
m
|
||||
i
|
||||
|
||||
|
||||
h
|
||||
|
||||
n
|
||||
|
||||
g
|
||||
o
|
||||
|
||||
f
|
||||
p
|
||||
e
|
||||
a b c d
|
||||
"""
|
||||
|
||||
And the ways
|
||||
| nodes | name | oneway | highway | lanes |
|
||||
@@ -268,34 +347,35 @@ Feature: Slipways and Dedicated Turn Lanes
|
||||
#http://www.openstreetmap.org/#map=19/38.90597/-77.01276
|
||||
Scenario: Don't falsly classify as sliproads
|
||||
Given the node map
|
||||
# 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
|
||||
| | | | | | | | | | | | | | | | | | | | | | | | j | | | | | | | |
|
||||
| a | b | | | | | | | | | | | | | | | | | | | | | | c | | | | | | | d |
|
||||
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
|
||||
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
|
||||
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
|
||||
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
|
||||
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
|
||||
| | | | | e | | | | | | | | | | | | | | | | | | | | | | | | | | |
|
||||
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
|
||||
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
|
||||
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
|
||||
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
|
||||
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
|
||||
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
|
||||
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
|
||||
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
|
||||
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
|
||||
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
|
||||
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
|
||||
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
|
||||
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
|
||||
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
|
||||
| | | | | | | | | | | | | | | | | | | | | | | | 1 | | | | | | | |
|
||||
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
|
||||
| | | | | | | | | | | | | | | | | | | f | | | | | g | | | | | | | |
|
||||
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
|
||||
| | | | | | | | | | | | | | | | | | | | | | | | i | | | | | | | h |
|
||||
"""
|
||||
j
|
||||
a b c d
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
e
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
1
|
||||
|
||||
f g
|
||||
|
||||
i h
|
||||
"""
|
||||
|
||||
And the ways
|
||||
| nodes | name | highway | oneway | maxspeed |
|
||||
@@ -317,21 +397,23 @@ Feature: Slipways and Dedicated Turn Lanes
|
||||
# Merging into degree two loop on dedicated turn detection / 2927
|
||||
Scenario: Turn Instead of Ramp
|
||||
Given the node map
|
||||
| | | | | | | | | | | | | | | | f |
|
||||
| | | | | g | | | | | | h | | | | | |
|
||||
| | | | | | | | | | | | | d | | | e |
|
||||
| i | | | | c | | | | | | j | | | | | |
|
||||
| | | | | | | | | | | | | | | | |
|
||||
| | | | | | | | | | | | | | | | |
|
||||
| | | | | | | | | | | | | | | | |
|
||||
| | | | | | | | | | | | | | | | |
|
||||
| | | | | | | | | | | | | | | | |
|
||||
| | | | | | | | | | | | | | | | |
|
||||
| | | | | | | | | | | | | | | | |
|
||||
| | | | | | | | | | | | | | | | |
|
||||
| | | b | | | | | | | | | | | | | |
|
||||
| | | | | | | | | | | | | | | | |
|
||||
| | | a | | | | | | | | | | | | | |
|
||||
"""
|
||||
f
|
||||
g h
|
||||
d e
|
||||
i c j
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
b
|
||||
|
||||
a
|
||||
"""
|
||||
|
||||
And the ways
|
||||
| nodes | highway | name | oneway |
|
||||
|
||||
@@ -6,15 +6,17 @@ Feature: Destination Signs
|
||||
|
||||
Scenario: Car - route name assembly with destination signs
|
||||
Given the node map
|
||||
| a | b |
|
||||
| c | d |
|
||||
| e | f |
|
||||
| g | h |
|
||||
| i | j |
|
||||
| k | l |
|
||||
| m | n |
|
||||
| o | p |
|
||||
| q | r |
|
||||
"""
|
||||
a b
|
||||
c d
|
||||
e f
|
||||
g h
|
||||
i j
|
||||
k l
|
||||
m n
|
||||
o p
|
||||
q r
|
||||
"""
|
||||
|
||||
And the ways
|
||||
| nodes | name | ref | destination | destination:ref | oneway | # |
|
||||
@@ -29,13 +31,13 @@ Feature: Destination Signs
|
||||
| qr | QR | | | A1;A2 | yes | |
|
||||
|
||||
When I route I should get
|
||||
| from | to | route | destinations | ref | # |
|
||||
| a | b | AB,AB | , | E1,E1 | |
|
||||
| c | d | CD,CD | Berlin,Berlin | , | |
|
||||
| e | f | EF,EF | A1: Berlin,A1: Berlin | , | |
|
||||
| g | h | , | A1: Berlin,A1: Berlin | , | |
|
||||
| i | j | , | Berlin,Berlin | , | |
|
||||
| k | l | KL,KL | A1: Berlin,A1: Berlin | E1,E1 | |
|
||||
| m | n | MN,MN | A1, A2: Berlin, Hamburg,A1, A2: Berlin, Hamburg | , | |
|
||||
| o | p | OP,OP | , | , | guard against mis-tagging |
|
||||
| q | r | QR,QR | A1, A2,A1, A2 | , | |
|
||||
| from | to | route | destinations | ref | # |
|
||||
| a | b | AB,AB | , | E1,E1 | |
|
||||
| c | d | CD,CD | Berlin,Berlin | , | |
|
||||
| e | f | EF,EF | A1: Berlin,A1: Berlin | , | |
|
||||
| g | h | , | A1: Berlin,A1: Berlin | , | |
|
||||
| i | j | , | Berlin,Berlin | , | |
|
||||
| k | l | KL,KL | A1: Berlin,A1: Berlin | E1,E1 | |
|
||||
| m | n | MN,MN | A1, A2: Berlin, Hamburg,A1, A2: Berlin, Hamburg | , | |
|
||||
| o | p | OP,OP | , | , | guard against mis-tagging |
|
||||
| q | r | QR,QR | A1, A2,A1, A2 | , | |
|
||||
|
||||
@@ -0,0 +1,43 @@
|
||||
@routing @guidance
|
||||
Feature: Destination Signs
|
||||
|
||||
Background:
|
||||
Given the profile "car"
|
||||
|
||||
Scenario: Car - route name assembly with destination signs accounting for directional tags
|
||||
Given the node map
|
||||
"""
|
||||
a b
|
||||
c d
|
||||
e f
|
||||
g h
|
||||
i j
|
||||
k l
|
||||
m n
|
||||
o p
|
||||
q r
|
||||
"""
|
||||
|
||||
And the ways
|
||||
| nodes | name | ref | destination | destination:ref | destination:forward | destination:backward | oneway | # |
|
||||
| ab | AB | | Berlin | | | | yes | |
|
||||
| cd | CD | | | | Berlin | | yes | |
|
||||
| ef | EF | | | | Berlin | Hamburg | -1 | |
|
||||
| gh | GH | | | A1 | | | yes | |
|
||||
| ij | IJ | | Berlin | A1 | | | no | mis-tagged destination: not a oneway |
|
||||
| kl | KL | | | A1 | Berlin | Hamburg | yes | |
|
||||
| mn | MN | | Berlin | A1 | Berlin | Hamburg | yes | |
|
||||
| op | OP | | Berlin | | | Hamburg | -1 | |
|
||||
| qr | QR | | | | | Hamburg | -1 | |
|
||||
|
||||
When I route I should get
|
||||
| from | to | route | destinations | ref | # |
|
||||
| a | b | AB,AB | Berlin,Berlin | , | |
|
||||
| c | d | CD,CD | Berlin,Berlin | , | |
|
||||
| f | e | EF,EF | Hamburg,Hamburg | , | |
|
||||
| g | h | GH,GH | A1,A1 | , | |
|
||||
| i | j | IJ,IJ | , | , | guard against mis-tagging |
|
||||
| k | l | KL,KL | A1: Berlin,A1: Berlin | , | |
|
||||
| m | n | MN,MN | A1: Berlin,A1: Berlin | , | |
|
||||
| p | o | OP,OP | Hamburg,Hamburg | , | |
|
||||
| r | q | QR,QR | Hamburg,Hamburg | , | |
|
||||
@@ -0,0 +1,39 @@
|
||||
@routing @guidance
|
||||
Feature: Destination Signs
|
||||
|
||||
Background:
|
||||
Given the profile "car"
|
||||
|
||||
Scenario: Car - route name assembly with destination signs accounting for directional:ref tags
|
||||
Given the node map
|
||||
"""
|
||||
a b
|
||||
c d
|
||||
e f
|
||||
g h
|
||||
i j
|
||||
k l
|
||||
m n
|
||||
o p
|
||||
q r
|
||||
"""
|
||||
|
||||
And the ways
|
||||
| nodes | name | destination | destination:ref | destination:ref:forward | destination:ref:backward | destination:forward | destination:backward | oneway | # |
|
||||
| ab | AB | Berlin | A1 | A1 | A2 | | | yes | |
|
||||
| cd | CD | | A1 | A1 | A2 | Berlin | Hamburg | -1 | |
|
||||
| ef | EF | | | A1 | A2 | Berlin | Hamburg | yes | |
|
||||
| gh | GH | | | A1 | A2 | Berlin | Hamburg | -1 | |
|
||||
| ij | IJ | Berlin | A1 | | A2 | Berlin | Hamburg | yes | |
|
||||
| kl | KL | | A1 | | A2 | Berlin | Hamburg | -1 | |
|
||||
| mn | MN | Berlin | A1 | A1 | | Berlin | Hamburg | no | mis-tagged destination: not a oneway |
|
||||
|
||||
When I route I should get
|
||||
| from | to | route | destinations | ref | # |
|
||||
| a | b | AB,AB | A1: Berlin,A1: Berlin | , | |
|
||||
| d | c | CD,CD | A2: Hamburg,A2: Hamburg | , | |
|
||||
| e | f | EF,EF | A1: Berlin,A1: Berlin | , | |
|
||||
| h | g | GH,GH | A2: Hamburg,A2: Hamburg | , | |
|
||||
| i | j | IJ,IJ | A1: Berlin,A1: Berlin | , | |
|
||||
| l | k | KL,KL | A2: Hamburg,A2: Hamburg | , | |
|
||||
| m | n | MN,MN | , | , | guard against mis-tagging |
|
||||
@@ -7,9 +7,11 @@ Feature: End Of Road Instructions
|
||||
|
||||
Scenario: End of Road with through street
|
||||
Given the node map
|
||||
| | | c |
|
||||
| a | e | b |
|
||||
| | f | d |
|
||||
"""
|
||||
c
|
||||
a e b
|
||||
f d
|
||||
"""
|
||||
|
||||
And the ways
|
||||
| nodes | highway |
|
||||
@@ -24,9 +26,11 @@ Feature: End Of Road Instructions
|
||||
|
||||
Scenario: End of Road with three streets
|
||||
Given the node map
|
||||
| | | c |
|
||||
| a | e | b |
|
||||
| | f | d |
|
||||
"""
|
||||
c
|
||||
a e b
|
||||
f d
|
||||
"""
|
||||
|
||||
And the ways
|
||||
| nodes | highway |
|
||||
@@ -42,9 +46,11 @@ Feature: End Of Road Instructions
|
||||
|
||||
Scenario: End of Road with three streets, slightly angled
|
||||
Given the node map
|
||||
| a | e | | | | c |
|
||||
| | f | | | | b |
|
||||
| | | | | | d |
|
||||
"""
|
||||
a e c
|
||||
f b
|
||||
d
|
||||
"""
|
||||
|
||||
And the ways
|
||||
| nodes | highway |
|
||||
@@ -60,9 +66,11 @@ Feature: End Of Road Instructions
|
||||
|
||||
Scenario: End of Road with three streets, slightly angled
|
||||
Given the node map
|
||||
| | | | | | c |
|
||||
| | f | | | | b |
|
||||
| a | e | | | | d |
|
||||
"""
|
||||
c
|
||||
f b
|
||||
a e d
|
||||
"""
|
||||
|
||||
And the ways
|
||||
| nodes | highway |
|
||||
@@ -78,9 +86,11 @@ Feature: End Of Road Instructions
|
||||
|
||||
Scenario: End of Road with through street, slightly angled
|
||||
Given the node map
|
||||
| a | e | | | | c |
|
||||
| | f | | | | b |
|
||||
| | | | | | d |
|
||||
"""
|
||||
a e c
|
||||
f b
|
||||
d
|
||||
"""
|
||||
|
||||
And the ways
|
||||
| nodes | highway |
|
||||
@@ -95,9 +105,11 @@ Feature: End Of Road Instructions
|
||||
|
||||
Scenario: End of Road with through street, slightly angled
|
||||
Given the node map
|
||||
| | | | | | c |
|
||||
| | f | | | | b |
|
||||
| a | e | | | | d |
|
||||
"""
|
||||
c
|
||||
f b
|
||||
a e d
|
||||
"""
|
||||
|
||||
And the ways
|
||||
| nodes | highway |
|
||||
@@ -112,9 +124,11 @@ Feature: End Of Road Instructions
|
||||
|
||||
Scenario: End of Road with two ramps - prefer ramp over end of road
|
||||
Given the node map
|
||||
| | | c |
|
||||
| a | e | b |
|
||||
| | f | d |
|
||||
"""
|
||||
c
|
||||
a e b
|
||||
f d
|
||||
"""
|
||||
|
||||
And the ways
|
||||
| nodes | highway |
|
||||
@@ -132,19 +146,21 @@ Feature: End Of Road Instructions
|
||||
@end-of-road @negative
|
||||
Scenario: Don't Handle Circles as End-Of-Road
|
||||
Given the node map
|
||||
| | r | | | | q | | | | | | |
|
||||
| | | | | | a | s | | | | | |
|
||||
| | | | b | | | | | | | | |
|
||||
| | | | | | | | j | | | | |
|
||||
| | | | | | | | | | | | |
|
||||
| l | | c | | | | | i | | | | k |
|
||||
| | | | | | | | | | | | |
|
||||
| | | | | | | | h | | | | |
|
||||
| m | | | | | | | | | | | |
|
||||
| | | d | | | | | | | | | n |
|
||||
| | | | e | | | g | | | | | |
|
||||
| | | | | f | | | | | | | |
|
||||
| | | | | o | | p | | | | | |
|
||||
"""
|
||||
r q
|
||||
a s
|
||||
b
|
||||
j
|
||||
|
||||
l c i k
|
||||
|
||||
h
|
||||
m
|
||||
d n
|
||||
e g
|
||||
f
|
||||
o p
|
||||
"""
|
||||
|
||||
And the ways
|
||||
| nodes | highway | name | oneway |
|
||||
|
||||
+125
-54
@@ -7,9 +7,11 @@ Feature: Fork Instructions
|
||||
|
||||
Scenario: Fork Same Road Class
|
||||
Given the node map
|
||||
| | | | | c |
|
||||
| a | | b | | |
|
||||
| | | | | d |
|
||||
"""
|
||||
c
|
||||
a b
|
||||
d
|
||||
"""
|
||||
|
||||
And the ways
|
||||
| nodes | highway |
|
||||
@@ -22,11 +24,48 @@ Feature: Fork Instructions
|
||||
| a,c | ab,bc,bc | depart,fork slight left,arrive |
|
||||
| a,d | ab,bd,bd | depart,fork slight right,arrive |
|
||||
|
||||
Scenario: Don't Fork On Single Road
|
||||
Given the node map
|
||||
"""
|
||||
c
|
||||
a b
|
||||
d
|
||||
"""
|
||||
|
||||
And the ways
|
||||
| nodes | highway | oneway |
|
||||
| ab | primary | no |
|
||||
| cb | primary | yes |
|
||||
| bd | primary | yes |
|
||||
|
||||
When I route I should get
|
||||
| waypoints | route | turns |
|
||||
| a,d | ab,bd,bd | depart,new name slight right,arrive |
|
||||
|
||||
Scenario: Don't Fork On Single Road
|
||||
Given the node map
|
||||
"""
|
||||
c
|
||||
a b d
|
||||
"""
|
||||
|
||||
And the ways
|
||||
| nodes | highway | oneway | name |
|
||||
| ab | primary | no | road |
|
||||
| cb | primary | yes | road |
|
||||
| bd | primary | yes | turn |
|
||||
|
||||
When I route I should get
|
||||
| waypoints | route | turns |
|
||||
| a,d | road,turn,turn | depart,new name straight,arrive |
|
||||
|
||||
Scenario: Do not fork on link type
|
||||
Given the node map
|
||||
| | | | | c |
|
||||
| a | | b | | |
|
||||
| | | | | d |
|
||||
"""
|
||||
c
|
||||
a b
|
||||
d
|
||||
"""
|
||||
|
||||
And the ways
|
||||
| nodes | highway |
|
||||
@@ -41,9 +80,11 @@ Feature: Fork Instructions
|
||||
|
||||
Scenario: Fork in presence of other roads
|
||||
Given the node map
|
||||
| | | | | c |
|
||||
| a | | b | | |
|
||||
| | e | | | d |
|
||||
"""
|
||||
c
|
||||
a b
|
||||
e d
|
||||
"""
|
||||
|
||||
And the ways
|
||||
| nodes | highway |
|
||||
@@ -59,10 +100,12 @@ Feature: Fork Instructions
|
||||
|
||||
Scenario: Fork Turning Slight Left
|
||||
Given the node map
|
||||
| | | | | | c |
|
||||
| | | | | | |
|
||||
| a | | b | | | |
|
||||
| | | | | d | |
|
||||
"""
|
||||
c
|
||||
|
||||
a b
|
||||
d
|
||||
"""
|
||||
|
||||
And the ways
|
||||
| nodes | highway |
|
||||
@@ -77,10 +120,12 @@ Feature: Fork Instructions
|
||||
|
||||
Scenario: Fork Turning Slight Right
|
||||
Given the node map
|
||||
| | | | | c | |
|
||||
| a | | b | | | |
|
||||
| | | | | | |
|
||||
| | | | | | d |
|
||||
"""
|
||||
c
|
||||
a b
|
||||
|
||||
d
|
||||
"""
|
||||
|
||||
And the ways
|
||||
| nodes | highway |
|
||||
@@ -95,9 +140,11 @@ Feature: Fork Instructions
|
||||
|
||||
Scenario: Do not fork on service
|
||||
Given the node map
|
||||
| | | | | c |
|
||||
| a | | b | | |
|
||||
| | | | | d |
|
||||
"""
|
||||
c
|
||||
a b
|
||||
d
|
||||
"""
|
||||
|
||||
And the ways
|
||||
| nodes | highway |
|
||||
@@ -111,9 +158,11 @@ Feature: Fork Instructions
|
||||
|
||||
Scenario: Fork Both Turning Slight Right
|
||||
Given the node map
|
||||
| a | | b | | | |
|
||||
| | | | | | c |
|
||||
| | | | | | d |
|
||||
"""
|
||||
a b
|
||||
c
|
||||
d
|
||||
"""
|
||||
|
||||
And the ways
|
||||
| nodes | highway |
|
||||
@@ -128,9 +177,11 @@ Feature: Fork Instructions
|
||||
|
||||
Scenario: Fork Both Turning Slight Left
|
||||
Given the node map
|
||||
| | | | | | c |
|
||||
| | | | | | d |
|
||||
| a | | b | | | |
|
||||
"""
|
||||
c
|
||||
d
|
||||
a b
|
||||
"""
|
||||
|
||||
And the ways
|
||||
| nodes | highway |
|
||||
@@ -145,9 +196,11 @@ Feature: Fork Instructions
|
||||
|
||||
Scenario: Fork Both Turning Slight Right - Unnamed
|
||||
Given the node map
|
||||
| a | | b | | | |
|
||||
| | | | | | c |
|
||||
| | | | | | d |
|
||||
"""
|
||||
a b
|
||||
c
|
||||
d
|
||||
"""
|
||||
|
||||
And the ways
|
||||
| nodes | highway | name |
|
||||
@@ -162,9 +215,11 @@ Feature: Fork Instructions
|
||||
|
||||
Scenario: Fork Both Turning Slight Left - Unnamed
|
||||
Given the node map
|
||||
| | | | | | c |
|
||||
| | | | | | d |
|
||||
| a | | b | | | |
|
||||
"""
|
||||
c
|
||||
d
|
||||
a b
|
||||
"""
|
||||
|
||||
And the ways
|
||||
| nodes | highway | name |
|
||||
@@ -179,9 +234,11 @@ Feature: Fork Instructions
|
||||
|
||||
Scenario: Fork Both Turning Very Slightly Right - Unnamed
|
||||
Given the node map
|
||||
| a | | b | | | | | | | | | | | | | | | |
|
||||
| | | | | | | | | | | | c | | | | | | |
|
||||
| | | | | | | | | | | | | | | | | | d |
|
||||
"""
|
||||
a b
|
||||
c
|
||||
d
|
||||
"""
|
||||
|
||||
And the ways
|
||||
| nodes | highway | name |
|
||||
@@ -196,9 +253,11 @@ Feature: Fork Instructions
|
||||
|
||||
Scenario: Fork Both Turning Very Slightly Right - Unnamed Ramps
|
||||
Given the node map
|
||||
| a | | b | | | | | | | | | | | | | | | |
|
||||
| | | | | | | | | | | | c | | | | | | |
|
||||
| | | | | | | | | | | | | | | | | | d |
|
||||
"""
|
||||
a b
|
||||
c
|
||||
d
|
||||
"""
|
||||
|
||||
And the ways
|
||||
| nodes | highway | name |
|
||||
@@ -213,9 +272,11 @@ Feature: Fork Instructions
|
||||
|
||||
Scenario: Non-Fork on complex intersection - left
|
||||
Given the node map
|
||||
| | | | | c |
|
||||
| a | | b | | |
|
||||
| | e | | | d |
|
||||
"""
|
||||
c
|
||||
a b
|
||||
e d
|
||||
"""
|
||||
|
||||
And the ways
|
||||
| nodes | highway |
|
||||
@@ -230,9 +291,11 @@ Feature: Fork Instructions
|
||||
|
||||
Scenario: Non-Fork on complex intersection - right
|
||||
Given the node map
|
||||
| | e | | | c |
|
||||
| a | | b | | |
|
||||
| | | | | d |
|
||||
"""
|
||||
e c
|
||||
a b
|
||||
d
|
||||
"""
|
||||
|
||||
And the ways
|
||||
| nodes | highway |
|
||||
@@ -247,9 +310,11 @@ Feature: Fork Instructions
|
||||
|
||||
Scenario: Tripple fork
|
||||
Given the node map
|
||||
| | | | | | | | | c |
|
||||
| a | | b | | d | | | | |
|
||||
| | | | | | | | | e |
|
||||
"""
|
||||
c
|
||||
a b d
|
||||
e
|
||||
"""
|
||||
|
||||
And the ways
|
||||
| nodes | highway |
|
||||
@@ -266,9 +331,11 @@ Feature: Fork Instructions
|
||||
|
||||
Scenario: Tripple fork -- middle obvious
|
||||
Given the node map
|
||||
| | | | | c |
|
||||
| a | | b | | d |
|
||||
| | | | | e |
|
||||
"""
|
||||
c
|
||||
a b d
|
||||
e
|
||||
"""
|
||||
|
||||
And the ways
|
||||
| nodes | highway |
|
||||
@@ -284,8 +351,10 @@ Feature: Fork Instructions
|
||||
|
||||
Scenario: Don't Fork when leaving Road
|
||||
Given the node map
|
||||
| a | | b | | c |
|
||||
| | | | | d |
|
||||
"""
|
||||
a b c
|
||||
d
|
||||
"""
|
||||
|
||||
And the ways
|
||||
| nodes | highway |
|
||||
@@ -299,8 +368,10 @@ Feature: Fork Instructions
|
||||
|
||||
Scenario: Fork on motorway links - don't fork on through
|
||||
Given the node map
|
||||
| i | | | | | a |
|
||||
| j | | c | b | | x |
|
||||
"""
|
||||
i a
|
||||
j c b x
|
||||
"""
|
||||
|
||||
And the ways
|
||||
| nodes | name | highway |
|
||||
|
||||
@@ -7,8 +7,10 @@ Feature: Intersections Data
|
||||
|
||||
Scenario: Passing Three Way South
|
||||
Given the node map
|
||||
| a | | b | | c |
|
||||
| | | d | | |
|
||||
"""
|
||||
a b c
|
||||
d
|
||||
"""
|
||||
|
||||
And the ways
|
||||
| nodes | name |
|
||||
@@ -22,8 +24,10 @@ Feature: Intersections Data
|
||||
|
||||
Scenario: Passing Three Way North
|
||||
Given the node map
|
||||
| | | d | | |
|
||||
| a | | b | | c |
|
||||
"""
|
||||
d
|
||||
a b c
|
||||
"""
|
||||
|
||||
And the ways
|
||||
| nodes | name |
|
||||
@@ -37,8 +41,10 @@ Feature: Intersections Data
|
||||
|
||||
Scenario: Passing Oneway Street In
|
||||
Given the node map
|
||||
| | | d | | |
|
||||
| a | | b | | c |
|
||||
"""
|
||||
d
|
||||
a b c
|
||||
"""
|
||||
|
||||
And the ways
|
||||
| nodes | name | oneway |
|
||||
@@ -52,8 +58,10 @@ Feature: Intersections Data
|
||||
|
||||
Scenario: Passing Oneway Street Out
|
||||
Given the node map
|
||||
| | | d | | |
|
||||
| a | | b | | c |
|
||||
"""
|
||||
d
|
||||
a b c
|
||||
"""
|
||||
|
||||
And the ways
|
||||
| nodes | name | oneway |
|
||||
@@ -67,9 +75,11 @@ Feature: Intersections Data
|
||||
|
||||
Scenario: Passing Two Intersections
|
||||
Given the node map
|
||||
| | | e | | | | |
|
||||
| a | | b | | c | | d |
|
||||
| | | | | f | | |
|
||||
"""
|
||||
e
|
||||
a b c d
|
||||
f
|
||||
"""
|
||||
|
||||
And the ways
|
||||
| nodes | name |
|
||||
@@ -85,9 +95,11 @@ Feature: Intersections Data
|
||||
|
||||
Scenario: Passing Two Intersections, Collapsing
|
||||
Given the node map
|
||||
| | | e | | | | |
|
||||
| a | | b | | c | | d |
|
||||
| | | | | f | | |
|
||||
"""
|
||||
e
|
||||
a b c d
|
||||
f
|
||||
"""
|
||||
|
||||
And the ways
|
||||
| nodes | name |
|
||||
@@ -104,17 +116,19 @@ Feature: Intersections Data
|
||||
|
||||
Scenario: Roundabouts
|
||||
Given the node map
|
||||
| | | | | e | | | | |
|
||||
| | | | | | | | | |
|
||||
| | | | | a | | | | |
|
||||
| | | | 1 | | 4 | | | |
|
||||
| | | | | | | | | |
|
||||
| f | | b | | | | d | | h |
|
||||
| | | | | | | | | |
|
||||
| | | | 2 | | 3 | | | |
|
||||
| | | | | c | | | | |
|
||||
| | | | | | | | | |
|
||||
| | | | | g | | | | |
|
||||
"""
|
||||
e
|
||||
|
||||
a
|
||||
1 4
|
||||
|
||||
f b d h
|
||||
|
||||
2 3
|
||||
c
|
||||
|
||||
g
|
||||
"""
|
||||
|
||||
And the ways
|
||||
| nodes | junction |
|
||||
|
||||
@@ -8,9 +8,11 @@ Feature: Merging
|
||||
@merge
|
||||
Scenario: Merge on Four Way Intersection
|
||||
Given the node map
|
||||
| d | | | | | | | | | |
|
||||
| a | | b | | | | | | | c |
|
||||
| e | | | | | | | | | |
|
||||
"""
|
||||
d
|
||||
a b c
|
||||
e
|
||||
"""
|
||||
|
||||
And the ways
|
||||
| nodes | highway |
|
||||
@@ -26,8 +28,10 @@ Feature: Merging
|
||||
@merge
|
||||
Scenario: Merge on Three Way Intersection Right
|
||||
Given the node map
|
||||
| d | | | | | | | | | |
|
||||
| a | | b | | | | | | | c |
|
||||
"""
|
||||
d
|
||||
a b c
|
||||
"""
|
||||
|
||||
And the ways
|
||||
| nodes | highway |
|
||||
@@ -41,8 +45,10 @@ Feature: Merging
|
||||
@merge @negative
|
||||
Scenario: Don't Merge on Short-Three Way Intersection Right
|
||||
Given the node map
|
||||
| d | | | | | | | |
|
||||
| a | | b | | | | | c |
|
||||
"""
|
||||
d
|
||||
a b c
|
||||
"""
|
||||
|
||||
And the ways
|
||||
| nodes | highway |
|
||||
@@ -57,8 +63,10 @@ Feature: Merging
|
||||
@merge
|
||||
Scenario: Merge on Three Way Intersection Right
|
||||
Given the node map
|
||||
| a | | b | | | | | | | c |
|
||||
| d | | | | | | | | | |
|
||||
"""
|
||||
a b c
|
||||
d
|
||||
"""
|
||||
|
||||
And the ways
|
||||
| nodes | highway |
|
||||
@@ -72,23 +80,25 @@ Feature: Merging
|
||||
@merge
|
||||
Scenario: Merge onto a turning road
|
||||
Given the node map
|
||||
| | | | | | | e |
|
||||
| | | | | | | |
|
||||
| | | | | | | |
|
||||
| | | | | | | |
|
||||
| | | | | | | |
|
||||
| | | | | | | |
|
||||
| | | | | | | |
|
||||
| | | | | | | |
|
||||
| | | | | | | |
|
||||
| | | | | | d | |
|
||||
| | | | | | | |
|
||||
| | | | | | | |
|
||||
| | | | | | | |
|
||||
| | | | | | | |
|
||||
| | | | | c | | |
|
||||
| | | | b | | | |
|
||||
| a | | | | | | f |
|
||||
"""
|
||||
e
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
d
|
||||
|
||||
|
||||
|
||||
|
||||
c
|
||||
b
|
||||
a f
|
||||
"""
|
||||
|
||||
And the ways
|
||||
| nodes | highway | name |
|
||||
@@ -103,8 +113,10 @@ Feature: Merging
|
||||
@merge
|
||||
Scenario: Merge onto a motorway
|
||||
Given the node map
|
||||
| d | | | | | | | | | |
|
||||
| a | | | b | | | | | | c |
|
||||
"""
|
||||
d
|
||||
a b c
|
||||
"""
|
||||
|
||||
And the ways
|
||||
| nodes | name | highway | oneway |
|
||||
|
||||
@@ -7,8 +7,10 @@ Feature: Motorway Guidance
|
||||
|
||||
Scenario: Ramp Exit Right
|
||||
Given the node map
|
||||
| a | b | c | d | e |
|
||||
| | | | f | g |
|
||||
"""
|
||||
a b c d e
|
||||
f g
|
||||
"""
|
||||
|
||||
And the ways
|
||||
| nodes | highway | oneway |
|
||||
@@ -22,9 +24,11 @@ Feature: Motorway Guidance
|
||||
|
||||
Scenario: Ramp Exit Right Curved Right
|
||||
Given the node map
|
||||
| a | b | c | | |
|
||||
| | | f | d | |
|
||||
| | | | g | e |
|
||||
"""
|
||||
a b c
|
||||
f d
|
||||
g e
|
||||
"""
|
||||
|
||||
And the ways
|
||||
| nodes | highway | oneway |
|
||||
@@ -38,9 +42,11 @@ Feature: Motorway Guidance
|
||||
|
||||
Scenario: Ramp Exit Right Curved Left
|
||||
Given the node map
|
||||
| | | | | e |
|
||||
| | | | d | g |
|
||||
| a | b | c | f | |
|
||||
"""
|
||||
e
|
||||
d g
|
||||
a b c f
|
||||
"""
|
||||
|
||||
|
||||
And the ways
|
||||
@@ -56,8 +62,10 @@ Feature: Motorway Guidance
|
||||
|
||||
Scenario: Ramp Exit Left
|
||||
Given the node map
|
||||
| | | | f | g |
|
||||
| a | b | c | d | e |
|
||||
"""
|
||||
f g
|
||||
a b c d e
|
||||
"""
|
||||
|
||||
And the ways
|
||||
| nodes | highway | oneway |
|
||||
@@ -71,9 +79,11 @@ Feature: Motorway Guidance
|
||||
|
||||
Scenario: Ramp Exit Left Curved Left
|
||||
Given the node map
|
||||
| | | | g | e |
|
||||
| | | f | d | |
|
||||
| a | b | c | | |
|
||||
"""
|
||||
g e
|
||||
f d
|
||||
a b c
|
||||
"""
|
||||
|
||||
And the ways
|
||||
| nodes | highway | oneway |
|
||||
@@ -87,9 +97,11 @@ Feature: Motorway Guidance
|
||||
|
||||
Scenario: Ramp Exit Left Curved Right
|
||||
Given the node map
|
||||
| a | b | c | f | |
|
||||
| | | | d | g |
|
||||
| | | | | e |
|
||||
"""
|
||||
a b c f
|
||||
d g
|
||||
e
|
||||
"""
|
||||
|
||||
And the ways
|
||||
| nodes | highway | oneway |
|
||||
@@ -103,8 +115,10 @@ Feature: Motorway Guidance
|
||||
|
||||
Scenario: On Ramp Right
|
||||
Given the node map
|
||||
| a | b | c | d | e |
|
||||
| f | g | | | |
|
||||
"""
|
||||
a b c d e
|
||||
f g
|
||||
"""
|
||||
|
||||
And the ways
|
||||
| nodes | highway | oneway |
|
||||
@@ -118,8 +132,10 @@ Feature: Motorway Guidance
|
||||
|
||||
Scenario: On Ramp Left
|
||||
Given the node map
|
||||
| f | g | | | |
|
||||
| a | b | c | d | e |
|
||||
"""
|
||||
f g
|
||||
a b c d e
|
||||
"""
|
||||
|
||||
And the ways
|
||||
| nodes | highway | oneway |
|
||||
@@ -133,9 +149,11 @@ Feature: Motorway Guidance
|
||||
|
||||
Scenario: Highway Fork
|
||||
Given the node map
|
||||
| | | | | d | e |
|
||||
| a | b | c | | | |
|
||||
| | | | | f | g |
|
||||
"""
|
||||
d e
|
||||
a b c
|
||||
f g
|
||||
"""
|
||||
|
||||
And the ways
|
||||
| nodes | highway |
|
||||
@@ -149,9 +167,11 @@ Feature: Motorway Guidance
|
||||
|
||||
Scenario: Fork After Ramp
|
||||
Given the node map
|
||||
| | | | | d | e |
|
||||
| a | b | c | | | |
|
||||
| | | | | f | g |
|
||||
"""
|
||||
d e
|
||||
a b c
|
||||
f g
|
||||
"""
|
||||
|
||||
And the ways
|
||||
| nodes | highway | oneway |
|
||||
@@ -166,8 +186,10 @@ Feature: Motorway Guidance
|
||||
|
||||
Scenario: On And Off Ramp Right
|
||||
Given the node map
|
||||
| a | b | | c | | d | e |
|
||||
| f | g | | | | h | i |
|
||||
"""
|
||||
a b c d e
|
||||
f g h i
|
||||
"""
|
||||
|
||||
And the ways
|
||||
| nodes | highway | oneway |
|
||||
@@ -184,8 +206,10 @@ Feature: Motorway Guidance
|
||||
|
||||
Scenario: On And Off Ramp Left
|
||||
Given the node map
|
||||
| f | g | | | | h | i |
|
||||
| a | b | | c | | d | e |
|
||||
"""
|
||||
f g h i
|
||||
a b c d e
|
||||
"""
|
||||
|
||||
And the ways
|
||||
| nodes | highway | oneway |
|
||||
@@ -202,9 +226,11 @@ Feature: Motorway Guidance
|
||||
|
||||
Scenario: Merging Motorways
|
||||
Given the node map
|
||||
| e | | |
|
||||
| a | b | c |
|
||||
| d | | |
|
||||
"""
|
||||
e
|
||||
a b c
|
||||
d
|
||||
"""
|
||||
|
||||
And the ways
|
||||
| nodes | highway |
|
||||
@@ -219,9 +245,11 @@ Feature: Motorway Guidance
|
||||
|
||||
Scenario: Handle 90 degree off ramps correctly
|
||||
Given the node map
|
||||
| a | | | | |
|
||||
| x | b | | c | y |
|
||||
| | | | d | |
|
||||
"""
|
||||
a
|
||||
x b c y
|
||||
d
|
||||
"""
|
||||
|
||||
And the ways
|
||||
| nodes | name | highway | oneway |
|
||||
|
||||
@@ -7,7 +7,9 @@ Feature: New-Name Instructions
|
||||
|
||||
Scenario: Undisturbed name Change
|
||||
Given the node map
|
||||
| a | | b | | c |
|
||||
"""
|
||||
a b c
|
||||
"""
|
||||
|
||||
And the ways
|
||||
| nodes |
|
||||
@@ -21,8 +23,10 @@ Feature: New-Name Instructions
|
||||
|
||||
Scenario: Undisturbed Name Change with unannounced Turn Right
|
||||
Given the node map
|
||||
| a | | b | | |
|
||||
| | | | | c |
|
||||
"""
|
||||
a b
|
||||
c
|
||||
"""
|
||||
|
||||
And the ways
|
||||
| nodes |
|
||||
@@ -35,8 +39,10 @@ Feature: New-Name Instructions
|
||||
|
||||
Scenario: Undisturbed Name Change with unannounced Turn Left
|
||||
Given the node map
|
||||
| | | | | c |
|
||||
| a | | b | | |
|
||||
"""
|
||||
c
|
||||
a b
|
||||
"""
|
||||
|
||||
And the ways
|
||||
| nodes |
|
||||
@@ -49,8 +55,10 @@ Feature: New-Name Instructions
|
||||
|
||||
Scenario: Disturbed Name Change with Turn
|
||||
Given the node map
|
||||
| a | | b | | |
|
||||
| | d | | | c |
|
||||
"""
|
||||
a b
|
||||
d c
|
||||
"""
|
||||
|
||||
And the ways
|
||||
| nodes |
|
||||
@@ -64,8 +72,10 @@ Feature: New-Name Instructions
|
||||
|
||||
Scenario: Undisturbed Name Change with announced Turn Left
|
||||
Given the node map
|
||||
| | | c |
|
||||
| a | | b |
|
||||
"""
|
||||
c
|
||||
a b
|
||||
"""
|
||||
|
||||
And the ways
|
||||
| nodes |
|
||||
@@ -78,8 +88,10 @@ Feature: New-Name Instructions
|
||||
|
||||
Scenario: Undisturbed Name Change with announced Turn Sharp Left
|
||||
Given the node map
|
||||
| c | | |
|
||||
| a | | b |
|
||||
"""
|
||||
c
|
||||
a b
|
||||
"""
|
||||
|
||||
And the ways
|
||||
| nodes |
|
||||
@@ -92,8 +104,10 @@ Feature: New-Name Instructions
|
||||
|
||||
Scenario: Undisturbed Name Change with announced Turn Right
|
||||
Given the node map
|
||||
| a | | b |
|
||||
| | | c |
|
||||
"""
|
||||
a b
|
||||
c
|
||||
"""
|
||||
|
||||
And the ways
|
||||
| nodes |
|
||||
@@ -106,8 +120,10 @@ Feature: New-Name Instructions
|
||||
|
||||
Scenario: Undisturbed Name Change with announced Turn Sharp Right
|
||||
Given the node map
|
||||
| a | | b |
|
||||
| c | | |
|
||||
"""
|
||||
a b
|
||||
c
|
||||
"""
|
||||
|
||||
And the ways
|
||||
| nodes |
|
||||
@@ -121,8 +137,10 @@ Feature: New-Name Instructions
|
||||
|
||||
Scenario: Disturbed Name Change with minor road class
|
||||
Given the node map
|
||||
| a | | b | | d |
|
||||
| | | | | c |
|
||||
"""
|
||||
a b d
|
||||
c
|
||||
"""
|
||||
|
||||
And the ways
|
||||
| nodes | highway | oneway |
|
||||
@@ -136,7 +154,9 @@ Feature: New-Name Instructions
|
||||
|
||||
Scenario: Empty road names - Announce Change From, suppress Change To
|
||||
Given the node map
|
||||
| a | | b | 1 | c | | d |
|
||||
"""
|
||||
a b 1 c d
|
||||
"""
|
||||
|
||||
And the ways
|
||||
| nodes | name |
|
||||
@@ -151,7 +171,9 @@ Feature: New-Name Instructions
|
||||
|
||||
Scenario: Empty road names - Loose name shortly
|
||||
Given the node map
|
||||
| a | | b | | c | | d | | e |
|
||||
"""
|
||||
a b c d e
|
||||
"""
|
||||
|
||||
And the ways
|
||||
| nodes | name |
|
||||
@@ -167,7 +189,9 @@ Feature: New-Name Instructions
|
||||
|
||||
Scenario: Both Name and Ref Empty
|
||||
Given the node map
|
||||
| a | | b | | c |
|
||||
"""
|
||||
a b c
|
||||
"""
|
||||
|
||||
And the ways
|
||||
| nodes | name | ref |
|
||||
@@ -180,7 +204,9 @@ Feature: New-Name Instructions
|
||||
|
||||
Scenario: Same Name, Ref Extended
|
||||
Given the node map
|
||||
| a | | b | | c |
|
||||
"""
|
||||
a b c
|
||||
"""
|
||||
|
||||
And the ways
|
||||
| nodes | name | ref |
|
||||
@@ -193,7 +219,9 @@ Feature: New-Name Instructions
|
||||
|
||||
Scenario: Same Name, Ref Removed
|
||||
Given the node map
|
||||
| a | | b | | c |
|
||||
"""
|
||||
a b c
|
||||
"""
|
||||
|
||||
And the ways
|
||||
| nodes | name | ref |
|
||||
@@ -206,7 +234,9 @@ Feature: New-Name Instructions
|
||||
|
||||
Scenario: Name Removed, Ref Extended
|
||||
Given the node map
|
||||
| a | | b | | c |
|
||||
"""
|
||||
a b c
|
||||
"""
|
||||
|
||||
And the ways
|
||||
| nodes | name | ref |
|
||||
@@ -219,7 +249,9 @@ Feature: New-Name Instructions
|
||||
|
||||
Scenario: Name Added, Ref Removed
|
||||
Given the node map
|
||||
| a | | b | | c |
|
||||
"""
|
||||
a b c
|
||||
"""
|
||||
|
||||
And the ways
|
||||
| nodes | name | ref |
|
||||
@@ -232,7 +264,9 @@ Feature: New-Name Instructions
|
||||
|
||||
Scenario: Prefix Change
|
||||
Given the node map
|
||||
| a | | | | b | | | | c |
|
||||
"""
|
||||
a b c
|
||||
"""
|
||||
|
||||
And the ways
|
||||
| nodes | name | ref | highway |
|
||||
@@ -245,7 +279,9 @@ Feature: New-Name Instructions
|
||||
|
||||
Scenario: Prefix Change
|
||||
Given the node map
|
||||
| a | | | | b | | | | c |
|
||||
"""
|
||||
a b c
|
||||
"""
|
||||
|
||||
And the ways
|
||||
| nodes | name | ref | highway |
|
||||
@@ -258,7 +294,9 @@ Feature: New-Name Instructions
|
||||
|
||||
Scenario: No Name, Same Reference
|
||||
Given the node map
|
||||
| a | | | | b | | | | c |
|
||||
"""
|
||||
a b c
|
||||
"""
|
||||
|
||||
And the ways
|
||||
| nodes | name | ref | highway |
|
||||
@@ -271,7 +309,9 @@ Feature: New-Name Instructions
|
||||
|
||||
Scenario: No Name, Same Reference
|
||||
Given the node map
|
||||
| a | | | | b | | | | c |
|
||||
"""
|
||||
a b c
|
||||
"""
|
||||
|
||||
And the ways
|
||||
| nodes | name | ref | highway |
|
||||
@@ -284,7 +324,9 @@ Feature: New-Name Instructions
|
||||
|
||||
Scenario: No Name, Same Reference
|
||||
Given the node map
|
||||
| a | | | | b | | | | c |
|
||||
"""
|
||||
a b c
|
||||
"""
|
||||
|
||||
And the ways
|
||||
| nodes | name | ref | highway |
|
||||
@@ -297,7 +339,9 @@ Feature: New-Name Instructions
|
||||
|
||||
Scenario: No Name, Same Reference
|
||||
Given the node map
|
||||
| a | | | | b | | | | c |
|
||||
"""
|
||||
a b c
|
||||
"""
|
||||
|
||||
And the ways
|
||||
| nodes | name | ref | highway |
|
||||
@@ -310,7 +354,9 @@ Feature: New-Name Instructions
|
||||
|
||||
Scenario: No Name, Same Reference
|
||||
Given the node map
|
||||
| a | | | | b | | | | c |
|
||||
"""
|
||||
a b c
|
||||
"""
|
||||
|
||||
And the ways
|
||||
| nodes | name | ref | highway |
|
||||
@@ -323,7 +369,9 @@ Feature: New-Name Instructions
|
||||
|
||||
Scenario: No Name, Same Reference
|
||||
Given the node map
|
||||
| a | | | | b | | | | c |
|
||||
"""
|
||||
a b c
|
||||
"""
|
||||
|
||||
And the ways
|
||||
| nodes | name | ref | highway |
|
||||
@@ -333,3 +381,33 @@ Feature: New-Name Instructions
|
||||
When I route I should get
|
||||
| waypoints | route | turns |
|
||||
| a,c | , | depart,arrive |
|
||||
|
||||
Scenario: Spaces in refs for containment check, #3086
|
||||
Given the node map
|
||||
"""
|
||||
a b c
|
||||
"""
|
||||
|
||||
And the ways
|
||||
| nodes | name | ref | highway |
|
||||
| ab | Keystone | US 64;US 412;OK 151 Detour | motorway |
|
||||
| bc | Keystone | US 64; US 412 | motorway |
|
||||
|
||||
When I route I should get
|
||||
| waypoints | route | turns |
|
||||
| a,c | Keystone,Keystone | depart,arrive |
|
||||
|
||||
Scenario: More spaces in refs for containment check, #3086
|
||||
Given the node map
|
||||
"""
|
||||
a b c
|
||||
"""
|
||||
|
||||
And the ways
|
||||
| nodes | name | ref | highway |
|
||||
| ab | Keystone | US 64; US 412 ; OK 151 Detour | motorway |
|
||||
| bc | Keystone | US 64 ; US 412 | motorway |
|
||||
|
||||
When I route I should get
|
||||
| waypoints | route | turns |
|
||||
| a,c | Keystone,Keystone | depart,arrive |
|
||||
|
||||
@@ -0,0 +1,63 @@
|
||||
@routing @guidance @mode-change
|
||||
Feature: Notification on turn onto mode change
|
||||
|
||||
Background:
|
||||
Given the profile "car"
|
||||
Given a grid size of 400 meters
|
||||
|
||||
Scenario: Turn onto a Ferry
|
||||
Given the node map
|
||||
"""
|
||||
f
|
||||
b d
|
||||
a e
|
||||
"""
|
||||
|
||||
And the ways
|
||||
| nodes | highway | route | name |
|
||||
| abf | primary | | |
|
||||
| bd | | ferry | ferry |
|
||||
| de | primary | | |
|
||||
|
||||
When I route I should get
|
||||
| waypoints | route | turns | modes |
|
||||
| a,e | ,ferry,, | depart,turn right,notification right,arrive | driving,ferry,driving,driving |
|
||||
|
||||
Scenario: Turn onto a Ferry
|
||||
Given the node map
|
||||
"""
|
||||
h g
|
||||
a c e
|
||||
b f
|
||||
"""
|
||||
|
||||
And the ways
|
||||
| nodes | highway | route | name |
|
||||
| ac | primary | | |
|
||||
| bah | primary | | |
|
||||
| ec | | ferry | ferry |
|
||||
| gef | primary | | |
|
||||
|
||||
When I route I should get
|
||||
| waypoints | route | turns | modes |
|
||||
| g,h | ,ferry,,, | depart,turn right,notification straight,turn right,arrive | driving,ferry,driving,driving,driving |
|
||||
| b,g | ,,ferry,, | depart,turn right,notification straight,turn left,arrive | driving,driving,ferry,driving,driving |
|
||||
|
||||
Scenario: Straight onto a Ferry
|
||||
Given the node map
|
||||
"""
|
||||
|
||||
c d i
|
||||
a
|
||||
f
|
||||
"""
|
||||
|
||||
And the ways
|
||||
| nodes | highway | route | name |
|
||||
| ac | primary | | |
|
||||
| dc | | ferry | ferry |
|
||||
| df | primary | | |
|
||||
|
||||
When I route I should get
|
||||
| waypoints | route | turns | modes |
|
||||
| a,f | ,ferry,, | depart,notification right,notification right,arrive | driving,ferry,driving,driving |
|
||||
@@ -7,15 +7,17 @@ Feature: Simple Turns
|
||||
|
||||
Scenario: Turning into splitting road
|
||||
Given the node map
|
||||
| | a | | |
|
||||
| | b | | |
|
||||
| | | | |
|
||||
| | | | |
|
||||
| c | | d | |
|
||||
| | | | |
|
||||
| | | | e |
|
||||
| | | | |
|
||||
| | | f | |
|
||||
"""
|
||||
a
|
||||
b
|
||||
|
||||
|
||||
c d
|
||||
|
||||
e
|
||||
|
||||
f
|
||||
"""
|
||||
|
||||
And the ways
|
||||
| nodes | name | highway | oneway |
|
||||
@@ -29,20 +31,52 @@ Feature: Simple Turns
|
||||
| f,a | depart,arrive | road,road |
|
||||
| e,a | depart,turn slight right,arrive | turn,road,road |
|
||||
|
||||
Scenario: Turning into splitting road
|
||||
Given the node map
|
||||
"""
|
||||
a
|
||||
g-b
|
||||
/\
|
||||
/ \
|
||||
c d
|
||||
|\
|
||||
| e
|
||||
|
|
||||
f
|
||||
"""
|
||||
|
||||
And the ways
|
||||
| nodes | name | highway | oneway |
|
||||
| ab | road | primary | no |
|
||||
| bc | road | primary | yes |
|
||||
| fdb | road | primary | yes |
|
||||
| de | turn | primary | no |
|
||||
| bg | left | primary | yes |
|
||||
|
||||
When I route I should get
|
||||
| waypoints | turns | route |
|
||||
| f,a | depart,arrive | road,road |
|
||||
| e,a | depart,turn slight right,arrive | turn,road,road |
|
||||
| e,g | depart,turn slight right,turn left,arrive | turn,road,left,left |
|
||||
| f,g | depart,turn left,arrive | road,left,left |
|
||||
| f,c | depart,continue uturn,arrive | road,road,road |
|
||||
|
||||
Scenario: Middle Island
|
||||
Given the node map
|
||||
| | a | |
|
||||
| | | |
|
||||
| | b | |
|
||||
| c | | h |
|
||||
| | | |
|
||||
| | | |
|
||||
| | | |
|
||||
| | | |
|
||||
| d | | g |
|
||||
| | e | |
|
||||
| | | |
|
||||
| | f | |
|
||||
"""
|
||||
a
|
||||
|
||||
b
|
||||
c h
|
||||
|
||||
|
||||
|
||||
|
||||
d g
|
||||
e
|
||||
|
||||
f
|
||||
"""
|
||||
|
||||
And the ways
|
||||
| nodes | name | oneway |
|
||||
@@ -60,18 +94,20 @@ Feature: Simple Turns
|
||||
|
||||
Scenario: Middle Island Over Bridge
|
||||
Given the node map
|
||||
| | a | |
|
||||
| | | |
|
||||
| | b | |
|
||||
| c | | h |
|
||||
| | | |
|
||||
| | | |
|
||||
| 1 | | 2 |
|
||||
| | | |
|
||||
| d | | g |
|
||||
| | e | |
|
||||
| | | |
|
||||
| | f | |
|
||||
"""
|
||||
a
|
||||
|
||||
b
|
||||
c h
|
||||
|
||||
|
||||
1 2
|
||||
|
||||
d g
|
||||
e
|
||||
|
||||
f
|
||||
"""
|
||||
|
||||
And the ways
|
||||
| nodes | name | oneway |
|
||||
@@ -96,19 +132,21 @@ Feature: Simple Turns
|
||||
@negative
|
||||
Scenario: Don't Collapse Places:
|
||||
Given the node map
|
||||
| | | | | | | h | | | | | | |
|
||||
| | | | | | | g | | | | | | |
|
||||
| | | | | | | | | | | | | |
|
||||
| | | | | | | | | | | | | |
|
||||
| | | | | | | | | | | | | |
|
||||
| | | | | | | | | | | | | |
|
||||
| a | b | | | | | | | | | | e | f |
|
||||
| | | | | | | | | | | | | |
|
||||
| | | | | | | | | | | | | |
|
||||
| | | | | | | | | | | | | |
|
||||
| | | | | | | | | | | | | |
|
||||
| | | | | | | c | | | | | | |
|
||||
| | | | | | | d | | | | | | |
|
||||
"""
|
||||
h
|
||||
g
|
||||
|
||||
|
||||
|
||||
|
||||
a b e f
|
||||
|
||||
|
||||
|
||||
|
||||
c
|
||||
d
|
||||
"""
|
||||
|
||||
And the ways
|
||||
| nodes | name | oneway |
|
||||
@@ -124,3 +162,31 @@ Feature: Simple Turns
|
||||
| a,f | depart,continue left,continue right,arrive | place,place,place,place |
|
||||
| d,f | depart,turn right,continue right,arrive | bottom,place,place,place |
|
||||
| d,h | depart,turn right,continue left,turn right,arrive | bottom,place,place,top,top |
|
||||
|
||||
@bug @not-sorted @3179
|
||||
Scenario: Adjusting road angles to not be sorted
|
||||
Given the node map
|
||||
"""
|
||||
g
|
||||
|
|
||||
|
|
||||
|
|
||||
_e - - - - - - - - - f
|
||||
/
|
||||
a - - - - -b <
|
||||
i \ _
|
||||
h c - - - - - - - - - d
|
||||
|
||||
"""
|
||||
|
||||
And the ways
|
||||
| nodes | name | oneway |
|
||||
| ab | road | no |
|
||||
| febcd | road | yes |
|
||||
| ge | in | yes |
|
||||
| eh | right | yes |
|
||||
| ei | left | yes |
|
||||
|
||||
When I route I should get
|
||||
| waypoints | route |
|
||||
| g,a | in,road,road |
|
||||
|
||||
@@ -8,9 +8,11 @@ Feature: General Post-Processing related features
|
||||
# this testcase used to crash geometry generation (at that time handled during intersection generation)
|
||||
Scenario: Regression test #2424
|
||||
Given the node map
|
||||
| | | e | | | | | | i | | | | |
|
||||
| a | | b | | c | | d | | h | | k | | m |
|
||||
| | | | | f | | | | | | l | | |
|
||||
"""
|
||||
e i
|
||||
a b c d h k m
|
||||
f l
|
||||
"""
|
||||
|
||||
And the ways
|
||||
| nodes | name |
|
||||
|
||||
@@ -7,8 +7,10 @@ Feature: Ramp Guidance
|
||||
|
||||
Scenario: Ramp On Through Street Right
|
||||
Given the node map
|
||||
| a | b | c |
|
||||
| | d | |
|
||||
"""
|
||||
a b c
|
||||
d
|
||||
"""
|
||||
|
||||
And the ways
|
||||
| nodes | highway |
|
||||
@@ -21,8 +23,10 @@ Feature: Ramp Guidance
|
||||
|
||||
Scenario: Ramp On Through Street Left
|
||||
Given the node map
|
||||
| | d | |
|
||||
| a | b | c |
|
||||
"""
|
||||
d
|
||||
a b c
|
||||
"""
|
||||
|
||||
And the ways
|
||||
| nodes | highway |
|
||||
@@ -35,9 +39,11 @@ Feature: Ramp Guidance
|
||||
|
||||
Scenario: Ramp On Through Street Left and Right
|
||||
Given the node map
|
||||
| | e | |
|
||||
| a | b | c |
|
||||
| | d | |
|
||||
"""
|
||||
e
|
||||
a b c
|
||||
d
|
||||
"""
|
||||
|
||||
And the ways
|
||||
| nodes | highway |
|
||||
@@ -52,8 +58,10 @@ Feature: Ramp Guidance
|
||||
|
||||
Scenario: Ramp On Three Way Intersection Right
|
||||
Given the node map
|
||||
| a | b | c |
|
||||
| | d | |
|
||||
"""
|
||||
a b c
|
||||
d
|
||||
"""
|
||||
|
||||
And the ways
|
||||
| nodes | highway |
|
||||
@@ -67,9 +75,11 @@ Feature: Ramp Guidance
|
||||
|
||||
Scenario: Ramp On Three Way Intersection Right
|
||||
Given the node map
|
||||
| | | c |
|
||||
| a | b | |
|
||||
| | d | |
|
||||
"""
|
||||
c
|
||||
a b
|
||||
d
|
||||
"""
|
||||
|
||||
And the ways
|
||||
| nodes | highway |
|
||||
@@ -83,9 +93,11 @@ Feature: Ramp Guidance
|
||||
|
||||
Scenario: Ramp Off Though Street
|
||||
Given the node map
|
||||
| | | | | c |
|
||||
| a | | | b | |
|
||||
| | | | d | |
|
||||
"""
|
||||
c
|
||||
a b
|
||||
d
|
||||
"""
|
||||
|
||||
And the ways
|
||||
| nodes | highway | oneway |
|
||||
@@ -99,8 +111,10 @@ Feature: Ramp Guidance
|
||||
|
||||
Scenario: Straight Ramp Off Turning Though Street
|
||||
Given the node map
|
||||
| | | c |
|
||||
| a | b | d |
|
||||
"""
|
||||
c
|
||||
a b d
|
||||
"""
|
||||
|
||||
And the ways
|
||||
| nodes | highway |
|
||||
@@ -114,9 +128,11 @@ Feature: Ramp Guidance
|
||||
|
||||
Scenario: Fork Ramp Off Turning Though Street
|
||||
Given the node map
|
||||
| | | c |
|
||||
| a | b | |
|
||||
| | | d |
|
||||
"""
|
||||
c
|
||||
a b
|
||||
d
|
||||
"""
|
||||
|
||||
And the ways
|
||||
| nodes | highway |
|
||||
@@ -130,9 +146,11 @@ Feature: Ramp Guidance
|
||||
|
||||
Scenario: Fork Ramp
|
||||
Given the node map
|
||||
| | | c |
|
||||
| a | b | |
|
||||
| | | d |
|
||||
"""
|
||||
c
|
||||
a b
|
||||
d
|
||||
"""
|
||||
|
||||
And the ways
|
||||
| nodes | highway |
|
||||
@@ -147,9 +165,11 @@ Feature: Ramp Guidance
|
||||
|
||||
Scenario: Fork Slight Ramp
|
||||
Given the node map
|
||||
| | | | c |
|
||||
| a | b | | |
|
||||
| | | | d |
|
||||
"""
|
||||
c
|
||||
a b
|
||||
d
|
||||
"""
|
||||
|
||||
And the ways
|
||||
| nodes | highway |
|
||||
@@ -164,9 +184,11 @@ Feature: Ramp Guidance
|
||||
|
||||
Scenario: Fork Slight Ramp on Through Street
|
||||
Given the node map
|
||||
| | | | c |
|
||||
| a | b | | |
|
||||
| | | | d |
|
||||
"""
|
||||
c
|
||||
a b
|
||||
d
|
||||
"""
|
||||
|
||||
And the ways
|
||||
| nodes | highway |
|
||||
@@ -180,9 +202,11 @@ Feature: Ramp Guidance
|
||||
|
||||
Scenario: Fork Slight Ramp on Obvious Through Street
|
||||
Given the node map
|
||||
| | | | c |
|
||||
| a | b | | |
|
||||
| | | | d |
|
||||
"""
|
||||
c
|
||||
a b
|
||||
d
|
||||
"""
|
||||
|
||||
And the ways
|
||||
| nodes | highway |
|
||||
@@ -196,9 +220,11 @@ Feature: Ramp Guidance
|
||||
|
||||
Scenario: Two Ramps Joining into common Motorway
|
||||
Given the node map
|
||||
| a | | | |
|
||||
| | | c | d |
|
||||
| b | | | |
|
||||
"""
|
||||
a
|
||||
c d
|
||||
b
|
||||
"""
|
||||
|
||||
And the ways
|
||||
| nodes | highway |
|
||||
@@ -213,9 +239,11 @@ Feature: Ramp Guidance
|
||||
|
||||
Scenario: Two Ramps Joining into common Motorway Unnamed
|
||||
Given the node map
|
||||
| a | | | |
|
||||
| | | c | d |
|
||||
| b | | | |
|
||||
"""
|
||||
a
|
||||
c d
|
||||
b
|
||||
"""
|
||||
|
||||
And the ways
|
||||
| nodes | highway | name |
|
||||
@@ -227,3 +255,24 @@ Feature: Ramp Guidance
|
||||
| waypoints | route | turns |
|
||||
| a,d | , | depart,arrive |
|
||||
| b,d | , | depart,arrive |
|
||||
|
||||
Scenario: Ferry Onto A Ramp
|
||||
Given the node map
|
||||
"""
|
||||
d - e - g
|
||||
|
|
||||
a - b ~ ~ ~ ~ ~ ~ ~ c
|
||||
` f
|
||||
"""
|
||||
|
||||
And the ways
|
||||
| nodes | highway | route | name | ref |
|
||||
| ab | primary | | boarding | |
|
||||
| bc | | ferry | boaty mc boatface | m2 |
|
||||
| cf | | ferry | boaty mc boatface | |
|
||||
| cd | | ferry | boaty mc boatface's cousin | |
|
||||
| de | motorway_link | | | |
|
||||
|
||||
When I route I should get
|
||||
| waypoints | route |
|
||||
| a,e | boarding,boaty mc boatface,boaty mc boatface's cousin,, |
|
||||
|
||||
@@ -7,11 +7,13 @@ Feature: Rotary
|
||||
|
||||
Scenario: Enter and Exit
|
||||
Given the node map
|
||||
| | | a | | |
|
||||
| | | b | | |
|
||||
| h | g | | c | d |
|
||||
| | | e | | |
|
||||
| | | f | | |
|
||||
"""
|
||||
a
|
||||
b
|
||||
h g c d
|
||||
e
|
||||
f
|
||||
"""
|
||||
|
||||
And the ways
|
||||
| nodes | junction |
|
||||
@@ -38,11 +40,13 @@ Feature: Rotary
|
||||
|
||||
Scenario: Only Enter
|
||||
Given the node map
|
||||
| | | a | | |
|
||||
| | | b | | |
|
||||
| d | c | | g | h |
|
||||
| | | e | | |
|
||||
| | | f | | |
|
||||
"""
|
||||
a
|
||||
b
|
||||
d c g h
|
||||
e
|
||||
f
|
||||
"""
|
||||
|
||||
And the ways
|
||||
| nodes | junction |
|
||||
@@ -69,11 +73,13 @@ Feature: Rotary
|
||||
|
||||
Scenario: Only Exit
|
||||
Given the node map
|
||||
| | | a | | |
|
||||
| | | b | | |
|
||||
| d | c | | g | h |
|
||||
| | | e | | |
|
||||
| | | f | | |
|
||||
"""
|
||||
a
|
||||
b
|
||||
d c g h
|
||||
e
|
||||
f
|
||||
"""
|
||||
|
||||
And the ways
|
||||
| nodes | junction |
|
||||
@@ -101,11 +107,13 @@ Feature: Rotary
|
||||
|
||||
Scenario: Drive Around
|
||||
Given the node map
|
||||
| | | a | | |
|
||||
| | | b | | |
|
||||
| d | c | | g | h |
|
||||
| | | e | | |
|
||||
| | | f | | |
|
||||
"""
|
||||
a
|
||||
b
|
||||
d c g h
|
||||
e
|
||||
f
|
||||
"""
|
||||
|
||||
And the ways
|
||||
| nodes | junction |
|
||||
@@ -133,11 +141,13 @@ Feature: Rotary
|
||||
#needs to be adjusted when name-discovery works for entrys
|
||||
Scenario: Mixed Entry and Exit
|
||||
Given the node map
|
||||
| | c | | a | |
|
||||
| j | | b | | f |
|
||||
| | k | | e | |
|
||||
| l | | h | | d |
|
||||
| | g | | i | |
|
||||
"""
|
||||
c a
|
||||
j b f
|
||||
k e
|
||||
l h d
|
||||
g i
|
||||
"""
|
||||
|
||||
And the ways
|
||||
| nodes | junction | oneway |
|
||||
|
||||
@@ -7,11 +7,13 @@ Feature: Rotary
|
||||
|
||||
Scenario: Enter and Exit
|
||||
Given the node map
|
||||
| | | a | | |
|
||||
| | | b | | |
|
||||
| h | g | | c | d |
|
||||
| | | e | | |
|
||||
| | | f | | |
|
||||
"""
|
||||
a
|
||||
b
|
||||
h g c d
|
||||
e
|
||||
f
|
||||
"""
|
||||
|
||||
And the ways
|
||||
| nodes | junction |
|
||||
@@ -38,11 +40,13 @@ Feature: Rotary
|
||||
|
||||
Scenario: Only Enter
|
||||
Given the node map
|
||||
| | | a | | |
|
||||
| | | b | | |
|
||||
| d | c | | g | h |
|
||||
| | | e | | |
|
||||
| | | f | | |
|
||||
"""
|
||||
a
|
||||
b
|
||||
d c g h
|
||||
e
|
||||
f
|
||||
"""
|
||||
|
||||
And the ways
|
||||
| nodes | junction |
|
||||
@@ -69,11 +73,13 @@ Feature: Rotary
|
||||
|
||||
Scenario: Only Exit
|
||||
Given the node map
|
||||
| | | a | | |
|
||||
| | | b | | |
|
||||
| d | c | | g | h |
|
||||
| | | e | | |
|
||||
| | | f | | |
|
||||
"""
|
||||
a
|
||||
b
|
||||
d c g h
|
||||
e
|
||||
f
|
||||
"""
|
||||
|
||||
And the ways
|
||||
| nodes | junction |
|
||||
@@ -101,11 +107,13 @@ Feature: Rotary
|
||||
|
||||
Scenario: Drive Around
|
||||
Given the node map
|
||||
| | | a | | |
|
||||
| | | b | | |
|
||||
| d | c | | g | h |
|
||||
| | | e | | |
|
||||
| | | f | | |
|
||||
"""
|
||||
a
|
||||
b
|
||||
d c g h
|
||||
e
|
||||
f
|
||||
"""
|
||||
|
||||
And the ways
|
||||
| nodes | junction |
|
||||
@@ -133,11 +141,13 @@ Feature: Rotary
|
||||
#needs to be adjusted when name-discovery works for entrys
|
||||
Scenario: Mixed Entry and Exit
|
||||
Given the node map
|
||||
| | c | | a | |
|
||||
| j | | b | | f |
|
||||
| | k | | e | |
|
||||
| l | | h | | d |
|
||||
| | g | | i | |
|
||||
"""
|
||||
c a
|
||||
j b f
|
||||
k e
|
||||
l h d
|
||||
g i
|
||||
"""
|
||||
|
||||
And the ways
|
||||
| nodes | junction | oneway |
|
||||
@@ -168,10 +178,12 @@ Feature: Rotary
|
||||
|
||||
Scenario: Collinear in X,Y
|
||||
Given the node map
|
||||
| a | | |
|
||||
| b | | |
|
||||
| c | d | f |
|
||||
| e | | |
|
||||
"""
|
||||
a
|
||||
b
|
||||
c d f
|
||||
e
|
||||
"""
|
||||
|
||||
And the ways
|
||||
| nodes | junction |
|
||||
@@ -187,10 +199,12 @@ Feature: Rotary
|
||||
|
||||
Scenario: Collinear in X,Y
|
||||
Given the node map
|
||||
| a | | |
|
||||
| d | | |
|
||||
| b | c | f |
|
||||
| e | | |
|
||||
"""
|
||||
a
|
||||
d
|
||||
b c f
|
||||
e
|
||||
"""
|
||||
|
||||
And the ways
|
||||
| nodes | junction |
|
||||
@@ -206,10 +220,12 @@ Feature: Rotary
|
||||
|
||||
Scenario: Collinear in X,Y
|
||||
Given the node map
|
||||
| a | | |
|
||||
| c | | |
|
||||
| d | b | f |
|
||||
| e | | |
|
||||
"""
|
||||
a
|
||||
c
|
||||
d b f
|
||||
e
|
||||
"""
|
||||
|
||||
And the ways
|
||||
| nodes | junction |
|
||||
@@ -225,10 +241,12 @@ Feature: Rotary
|
||||
|
||||
Scenario: Collinear in X,Y
|
||||
Given the node map
|
||||
| f | | |
|
||||
| d | c | e |
|
||||
| | b | |
|
||||
| | a | |
|
||||
"""
|
||||
f
|
||||
d c e
|
||||
b
|
||||
a
|
||||
"""
|
||||
|
||||
And the ways
|
||||
| nodes | junction |
|
||||
@@ -244,10 +262,12 @@ Feature: Rotary
|
||||
|
||||
Scenario: Collinear in X,Y
|
||||
Given the node map
|
||||
| f | | |
|
||||
| d | c | e |
|
||||
| b | | |
|
||||
| a | | |
|
||||
"""
|
||||
f
|
||||
d c e
|
||||
b
|
||||
a
|
||||
"""
|
||||
|
||||
And the ways
|
||||
| nodes | junction |
|
||||
|
||||
@@ -7,11 +7,13 @@ Feature: Basic Roundabout
|
||||
|
||||
Scenario: Only Enter
|
||||
Given the node map
|
||||
| | | a | | |
|
||||
| | | b | | |
|
||||
| d | c | | g | h |
|
||||
| | | e | | |
|
||||
| | | f | | |
|
||||
"""
|
||||
a
|
||||
b
|
||||
d c g h
|
||||
e
|
||||
f
|
||||
"""
|
||||
|
||||
And the ways
|
||||
| nodes | junction |
|
||||
@@ -38,11 +40,13 @@ Feature: Basic Roundabout
|
||||
|
||||
Scenario: Only Exit
|
||||
Given the node map
|
||||
| | | a | | |
|
||||
| | | b | | |
|
||||
| d | c | | g | h |
|
||||
| | | e | | |
|
||||
| | | f | | |
|
||||
"""
|
||||
a
|
||||
b
|
||||
d c g h
|
||||
e
|
||||
f
|
||||
"""
|
||||
|
||||
And the ways
|
||||
| nodes | junction |
|
||||
@@ -70,11 +74,13 @@ Feature: Basic Roundabout
|
||||
|
||||
Scenario: Drive Around
|
||||
Given the node map
|
||||
| | | a | | |
|
||||
| | | b | | |
|
||||
| d | c | | g | h |
|
||||
| | | e | | |
|
||||
| | | f | | |
|
||||
"""
|
||||
a
|
||||
b
|
||||
d c g h
|
||||
e
|
||||
f
|
||||
"""
|
||||
|
||||
And the ways
|
||||
| nodes | junction |
|
||||
@@ -101,11 +107,13 @@ Feature: Basic Roundabout
|
||||
|
||||
Scenario: Mixed Entry and Exit
|
||||
Given the node map
|
||||
| | c | | a | |
|
||||
| j | | b | | f |
|
||||
| | k | | e | |
|
||||
| l | | h | | d |
|
||||
| | g | | i | |
|
||||
"""
|
||||
c a
|
||||
j b f
|
||||
k e
|
||||
l h d
|
||||
g i
|
||||
"""
|
||||
|
||||
And the ways
|
||||
| nodes | junction | oneway |
|
||||
|
||||
@@ -7,11 +7,13 @@ Feature: Basic Roundabout
|
||||
|
||||
Scenario: Enter and Exit
|
||||
Given the node map
|
||||
| | | a | | |
|
||||
| | | b | | |
|
||||
| h | g | | c | d |
|
||||
| | | e | | |
|
||||
| | | f | | |
|
||||
"""
|
||||
a
|
||||
b
|
||||
h g c d
|
||||
e
|
||||
f
|
||||
"""
|
||||
|
||||
And the ways
|
||||
| nodes | junction |
|
||||
|
||||
@@ -7,11 +7,13 @@ Feature: Basic Roundabout
|
||||
|
||||
Scenario: Enter and Exit
|
||||
Given the node map
|
||||
| | | a | | |
|
||||
| | | b | | |
|
||||
| h | g | | c | d |
|
||||
| | | e | | |
|
||||
| | | f | | |
|
||||
"""
|
||||
a
|
||||
b
|
||||
h g c d
|
||||
e
|
||||
f
|
||||
"""
|
||||
|
||||
And the ways
|
||||
| nodes | junction |
|
||||
@@ -38,10 +40,12 @@ Feature: Basic Roundabout
|
||||
|
||||
Scenario: Enter and Exit - Rotated
|
||||
Given the node map
|
||||
| a | | | d |
|
||||
| | b | c | |
|
||||
| | g | e | |
|
||||
| h | | | f |
|
||||
"""
|
||||
a d
|
||||
b c
|
||||
g e
|
||||
h f
|
||||
"""
|
||||
|
||||
And the ways
|
||||
| nodes | junction |
|
||||
@@ -68,11 +72,13 @@ Feature: Basic Roundabout
|
||||
|
||||
Scenario: Only Enter
|
||||
Given the node map
|
||||
| | | a | | |
|
||||
| | | b | | |
|
||||
| d | c | | g | h |
|
||||
| | | e | | |
|
||||
| | | f | | |
|
||||
"""
|
||||
a
|
||||
b
|
||||
d c g h
|
||||
e
|
||||
f
|
||||
"""
|
||||
|
||||
And the ways
|
||||
| nodes | junction |
|
||||
@@ -99,11 +105,13 @@ Feature: Basic Roundabout
|
||||
|
||||
Scenario: Only Exit
|
||||
Given the node map
|
||||
| | | a | | |
|
||||
| | | b | | |
|
||||
| d | c | | g | h |
|
||||
| | | e | | |
|
||||
| | | f | | |
|
||||
"""
|
||||
a
|
||||
b
|
||||
d c g h
|
||||
e
|
||||
f
|
||||
"""
|
||||
|
||||
And the ways
|
||||
| nodes | junction |
|
||||
@@ -131,11 +139,13 @@ Feature: Basic Roundabout
|
||||
|
||||
Scenario: Drive Around
|
||||
Given the node map
|
||||
| | | a | | |
|
||||
| | | b | | |
|
||||
| d | c | | g | h |
|
||||
| | | e | | |
|
||||
| | | f | | |
|
||||
"""
|
||||
a
|
||||
b
|
||||
d c g h
|
||||
e
|
||||
f
|
||||
"""
|
||||
|
||||
And the ways
|
||||
| nodes | junction |
|
||||
@@ -162,11 +172,13 @@ Feature: Basic Roundabout
|
||||
|
||||
Scenario: Mixed Entry and Exit - Not an Intersection
|
||||
Given the node map
|
||||
| | c | | a | |
|
||||
| j | | b | | f |
|
||||
| | k | | e | |
|
||||
| l | | h | | d |
|
||||
| | g | | i | |
|
||||
"""
|
||||
c a
|
||||
j b f
|
||||
k e
|
||||
l h d
|
||||
g i
|
||||
"""
|
||||
|
||||
And the ways
|
||||
| nodes | junction | oneway |
|
||||
@@ -197,11 +209,13 @@ Feature: Basic Roundabout
|
||||
|
||||
Scenario: Segregated roads - Not an intersection
|
||||
Given the node map
|
||||
| | a | | c | |
|
||||
| l | | b | | d |
|
||||
| | k | | e | |
|
||||
| j | | h | | f |
|
||||
| | i | | g | |
|
||||
"""
|
||||
a c
|
||||
l b d
|
||||
k e
|
||||
j h f
|
||||
i g
|
||||
"""
|
||||
|
||||
And the ways
|
||||
| nodes | junction | oneway |
|
||||
@@ -232,8 +246,10 @@ Feature: Basic Roundabout
|
||||
|
||||
Scenario: Collinear in X
|
||||
Given the node map
|
||||
| a | b | c | d | f |
|
||||
| | | e | | |
|
||||
"""
|
||||
a b c d f
|
||||
e
|
||||
"""
|
||||
|
||||
And the ways
|
||||
| nodes | junction |
|
||||
@@ -243,16 +259,40 @@ Feature: Basic Roundabout
|
||||
| df | |
|
||||
|
||||
When I route I should get
|
||||
| waypoints | route | turns |
|
||||
| a,e | ab,ce,ce | depart,roundabout-exit-1,arrive |
|
||||
| a,f | ab,df,df | depart,roundabout-exit-2,arrive |
|
||||
| waypoints | route | turns |
|
||||
| a,e | ab,ce,ce | depart,roundabout turn right exit-1,arrive |
|
||||
| a,f | ab,df,df | depart,roundabout turn straight exit-2,arrive |
|
||||
|
||||
Scenario: Collinear in Y
|
||||
Given the node map
|
||||
"""
|
||||
a
|
||||
b
|
||||
e c
|
||||
d
|
||||
f
|
||||
"""
|
||||
|
||||
And the ways
|
||||
| nodes | junction |
|
||||
| ab | |
|
||||
| bcdb | roundabout |
|
||||
| ce | |
|
||||
| df | |
|
||||
|
||||
When I route I should get
|
||||
| waypoints | route | turns |
|
||||
| a,e | ab,ce,ce | depart,roundabout turn right exit-1,arrive |
|
||||
| a,f | ab,df,df | depart,roundabout turn straight exit-2,arrive |
|
||||
|
||||
Scenario: Collinear in X,Y
|
||||
Given the node map
|
||||
| a | | |
|
||||
| b | | |
|
||||
| c | d | f |
|
||||
| e | | |
|
||||
"""
|
||||
a
|
||||
b
|
||||
c d f
|
||||
e
|
||||
"""
|
||||
|
||||
And the ways
|
||||
| nodes | junction |
|
||||
@@ -268,10 +308,12 @@ Feature: Basic Roundabout
|
||||
|
||||
Scenario: Collinear in X,Y
|
||||
Given the node map
|
||||
| a | | |
|
||||
| d | | |
|
||||
| b | c | f |
|
||||
| e | | |
|
||||
"""
|
||||
a
|
||||
d
|
||||
b c f
|
||||
e
|
||||
"""
|
||||
|
||||
And the ways
|
||||
| nodes | junction |
|
||||
@@ -287,10 +329,12 @@ Feature: Basic Roundabout
|
||||
|
||||
Scenario: Collinear in X,Y
|
||||
Given the node map
|
||||
| a | | |
|
||||
| c | | |
|
||||
| d | b | f |
|
||||
| e | | |
|
||||
"""
|
||||
a
|
||||
c
|
||||
d b f
|
||||
e
|
||||
"""
|
||||
|
||||
And the ways
|
||||
| nodes | junction |
|
||||
@@ -306,11 +350,13 @@ Feature: Basic Roundabout
|
||||
|
||||
Scenario: Enter and Exit -- too complex
|
||||
Given the node map
|
||||
| j | | a | | |
|
||||
| | i | b | | |
|
||||
| | g | | c | d |
|
||||
| h | | e | | |
|
||||
| | | f | | |
|
||||
"""
|
||||
j a
|
||||
i b
|
||||
g c d
|
||||
h e
|
||||
f
|
||||
"""
|
||||
|
||||
And the ways
|
||||
| nodes | junction |
|
||||
@@ -338,11 +384,13 @@ Feature: Basic Roundabout
|
||||
|
||||
Scenario: Enter and Exit -- Non-Distinct
|
||||
Given the node map
|
||||
| | | a | | |
|
||||
| | | b | | |
|
||||
| | g | | c | d |
|
||||
| | | e | | |
|
||||
| h | | f | | |
|
||||
"""
|
||||
a
|
||||
b
|
||||
g c d
|
||||
e
|
||||
h f
|
||||
"""
|
||||
|
||||
And the ways
|
||||
| nodes | junction |
|
||||
@@ -369,11 +417,13 @@ Feature: Basic Roundabout
|
||||
|
||||
Scenario: Enter and Exit -- Bearing
|
||||
Given the node map
|
||||
| | | a | | |
|
||||
| | | b | | |
|
||||
| h | g | | c | d |
|
||||
| | | e | | |
|
||||
| | | f | | |
|
||||
"""
|
||||
a
|
||||
b
|
||||
h g c d
|
||||
e
|
||||
f
|
||||
"""
|
||||
|
||||
And the ways
|
||||
| nodes | junction |
|
||||
@@ -385,19 +435,21 @@ Feature: Basic Roundabout
|
||||
|
||||
When I route I should get
|
||||
| waypoints | route | turns | bearing |
|
||||
| a,d | ab,cd,cd | depart,roundabout turn left exit-3,arrive | 0->180,180->224,90->0 |
|
||||
| a,f | ab,ef,ef | depart,roundabout turn straight exit-2,arrive | 0->180,180->224,180->0 |
|
||||
| a,h | ab,gh,gh | depart,roundabout turn right exit-1,arrive | 0->180,180->224,270->0 |
|
||||
| a,d | ab,cd,cd | depart,roundabout turn left exit-3,arrive | 0->180,180->225,90->0 |
|
||||
| a,f | ab,ef,ef | depart,roundabout turn straight exit-2,arrive | 0->180,180->225,180->0 |
|
||||
| a,h | ab,gh,gh | depart,roundabout turn right exit-1,arrive | 0->180,180->225,270->0 |
|
||||
|
||||
Scenario: Enter and Exit - Bearings
|
||||
Given the node map
|
||||
| | | | a | | | |
|
||||
| | | | | | | |
|
||||
| | | i | b | l | | |
|
||||
| h | | g | | c | | d |
|
||||
| | | j | e | k | | |
|
||||
| | | | | | | |
|
||||
| | | | f | | | |
|
||||
"""
|
||||
a
|
||||
|
||||
i b l
|
||||
h g c d
|
||||
j e k
|
||||
|
||||
f
|
||||
"""
|
||||
|
||||
And the ways
|
||||
| nodes | junction |
|
||||
@@ -417,19 +469,21 @@ Feature: Basic Roundabout
|
||||
# http://www.openstreetmap.org/way/348812150
|
||||
# Note: grid size is 3 meter, this roundabout is more like 5-10 meters in radius
|
||||
Given the node map
|
||||
| | | | a | | | | | |
|
||||
| | | | | | | | | |
|
||||
| | | | b | | n | | | |
|
||||
| | | | | | | | | |
|
||||
| | | c | | | | m | | |
|
||||
| | | | | | | | | |
|
||||
| e | | d | | | | k | | l |
|
||||
| | | | | | | | | |
|
||||
| | | f | | | | j | | |
|
||||
| | | | | | | | | |
|
||||
| | | | g | | i | | | |
|
||||
| | | | | | | | | |
|
||||
| | | | h | | | | | |
|
||||
"""
|
||||
a
|
||||
|
||||
b n
|
||||
|
||||
c m
|
||||
|
||||
e d k l
|
||||
|
||||
f j
|
||||
|
||||
g i
|
||||
|
||||
h
|
||||
"""
|
||||
|
||||
And the ways
|
||||
| nodes | junction | highway | name |
|
||||
@@ -456,11 +510,13 @@ Feature: Basic Roundabout
|
||||
|
||||
Scenario: Enter and Exit - Traffic Signals
|
||||
Given the node map
|
||||
| | | a | | |
|
||||
| | i | b | l | |
|
||||
| h | g | | c | d |
|
||||
| | j | e | k | |
|
||||
| | | f | | |
|
||||
"""
|
||||
a
|
||||
i b l
|
||||
h g c d
|
||||
j e k
|
||||
f
|
||||
"""
|
||||
|
||||
And the nodes
|
||||
| node | highway |
|
||||
@@ -496,11 +552,13 @@ Feature: Basic Roundabout
|
||||
#at some point we probably want to recognise these situations and don't mention the roundabout at all here
|
||||
Scenario: Enter And Exit Throughabout
|
||||
Given the node map
|
||||
| | | | | | h | | | | |
|
||||
| | | | | | | | | | |
|
||||
| c | b | | d | | | | e | | f |
|
||||
| | | | | | | | | | |
|
||||
| | a | | | | g | | | | |
|
||||
"""
|
||||
h
|
||||
|
||||
c b d e f
|
||||
|
||||
a g
|
||||
"""
|
||||
|
||||
And the ways
|
||||
| nodes | highway | name | junction | oneway |
|
||||
|
||||
@@ -7,11 +7,13 @@ Feature: Basic Roundabout
|
||||
|
||||
Scenario: Only Enter
|
||||
Given the node map
|
||||
| | | a | | |
|
||||
| | | b | | |
|
||||
| d | c | | g | h |
|
||||
| | | e | | |
|
||||
| | | f | | |
|
||||
"""
|
||||
a
|
||||
b
|
||||
d c g h
|
||||
e
|
||||
f
|
||||
"""
|
||||
|
||||
And the ways
|
||||
| nodes | junction |
|
||||
@@ -39,13 +41,11 @@ Feature: Basic Roundabout
|
||||
#2927
|
||||
Scenario: Only Roundabout
|
||||
Given the node map
|
||||
| | | a | | |
|
||||
| | | | | |
|
||||
| | | | | |
|
||||
| b | | | | d |
|
||||
| | | | | |
|
||||
| | | | | |
|
||||
| | | c | | |
|
||||
"""
|
||||
a
|
||||
b d
|
||||
c
|
||||
"""
|
||||
|
||||
And the ways
|
||||
| nodes | junction |
|
||||
@@ -57,11 +57,13 @@ Feature: Basic Roundabout
|
||||
|
||||
Scenario: Only Exit
|
||||
Given the node map
|
||||
| | | a | | |
|
||||
| | | b | | |
|
||||
| d | c | | g | h |
|
||||
| | | e | | |
|
||||
| | | f | | |
|
||||
"""
|
||||
a
|
||||
b
|
||||
d c g h
|
||||
e
|
||||
f
|
||||
"""
|
||||
|
||||
And the ways
|
||||
| nodes | junction |
|
||||
@@ -89,11 +91,13 @@ Feature: Basic Roundabout
|
||||
|
||||
Scenario: Drive Around
|
||||
Given the node map
|
||||
| | | a | | |
|
||||
| | | b | | |
|
||||
| d | c | | g | h |
|
||||
| | | e | | |
|
||||
| | | f | | |
|
||||
"""
|
||||
a
|
||||
b
|
||||
d c g h
|
||||
e
|
||||
f
|
||||
"""
|
||||
|
||||
And the ways
|
||||
| nodes | junction |
|
||||
@@ -120,11 +124,13 @@ Feature: Basic Roundabout
|
||||
|
||||
Scenario: Mixed Entry and Exit
|
||||
Given the node map
|
||||
| | c | | a | |
|
||||
| j | | b | | f |
|
||||
| | k | | e | |
|
||||
| l | | h | | d |
|
||||
| | g | | i | |
|
||||
"""
|
||||
c a
|
||||
j b f
|
||||
k e
|
||||
l h d
|
||||
g i
|
||||
"""
|
||||
|
||||
And the ways
|
||||
| nodes | junction | oneway |
|
||||
@@ -155,13 +161,15 @@ Feature: Basic Roundabout
|
||||
|
||||
Scenario: Mixed Entry and Exit - segregated roads
|
||||
Given the node map
|
||||
| | | a | | c | | |
|
||||
| | | | | | | |
|
||||
| l | | | b | | | d |
|
||||
| | | k | | e | | |
|
||||
| j | | | h | | | f |
|
||||
| | | | | | | |
|
||||
| | | i | | g | | |
|
||||
"""
|
||||
a c
|
||||
|
||||
l b d
|
||||
k e
|
||||
j h f
|
||||
|
||||
i g
|
||||
"""
|
||||
|
||||
And the ways
|
||||
| nodes | junction | oneway |
|
||||
@@ -192,13 +200,15 @@ Feature: Basic Roundabout
|
||||
|
||||
Scenario: Mixed Entry and Exit - segregated roads, different names
|
||||
Given the node map
|
||||
| | | a | | c | | |
|
||||
| | | | | | | |
|
||||
| l | | | b | | | d |
|
||||
| | | k | | e | | |
|
||||
| j | | | h | | | f |
|
||||
| | | | | | | |
|
||||
| | | i | | g | | |
|
||||
"""
|
||||
a c
|
||||
|
||||
l b d
|
||||
k e
|
||||
j h f
|
||||
|
||||
i g
|
||||
"""
|
||||
|
||||
And the ways
|
||||
| nodes | junction | oneway |
|
||||
@@ -231,61 +241,26 @@ Feature: Basic Roundabout
|
||||
| j,f | jk,ef,ef | depart,roundabout-exit-2,arrive |
|
||||
| j,c | jk,bc,bc | depart,roundabout-exit-3,arrive |
|
||||
|
||||
Scenario: Collinear in X
|
||||
Given the node map
|
||||
| a | b | c | d | f |
|
||||
| | | e | | |
|
||||
|
||||
And the ways
|
||||
| nodes | junction |
|
||||
| ab | |
|
||||
| bcdb | roundabout |
|
||||
| ce | |
|
||||
| df | |
|
||||
|
||||
When I route I should get
|
||||
| waypoints | route | turns |
|
||||
| a,e | ab,ce,ce | depart,roundabout-exit-1,arrive |
|
||||
| a,f | ab,df,df | depart,roundabout-exit-2,arrive |
|
||||
|
||||
Scenario: Collinear in Y
|
||||
Given the node map
|
||||
| | a |
|
||||
| | b |
|
||||
| e | c |
|
||||
| | d |
|
||||
| | f |
|
||||
|
||||
And the ways
|
||||
| nodes | junction |
|
||||
| ab | |
|
||||
| bcdb | roundabout |
|
||||
| ce | |
|
||||
| df | |
|
||||
|
||||
When I route I should get
|
||||
| waypoints | route | turns |
|
||||
| a,e | ab,ce,ce | depart,roundabout-exit-1,arrive |
|
||||
| a,f | ab,df,df | depart,roundabout-exit-2,arrive |
|
||||
|
||||
Scenario: Motorway Roundabout
|
||||
#See 39.933742 -75.082345
|
||||
Given the node map
|
||||
| | | | | l | | | | a | | i |
|
||||
| | | | | | | | | | | |
|
||||
| | | | | | | | | | | |
|
||||
| | | | | | | b | | | | |
|
||||
| | | | c | | | | | | | |
|
||||
| | | | | | | | | | | |
|
||||
| | | | | | | | | h | | |
|
||||
| n | | | | | | | | | | |
|
||||
| | | | | | | | | | | |
|
||||
| | | d | | | | | | | | j |
|
||||
| | | | | | | | | | | |
|
||||
| | | | | m | | | g | | | |
|
||||
| | | | | | | | | | | |
|
||||
| | | | | | | | | | | |
|
||||
| | | e | | f | | | | | | |
|
||||
"""
|
||||
l a i
|
||||
|
||||
|
||||
b
|
||||
c
|
||||
|
||||
h
|
||||
n
|
||||
|
||||
d j
|
||||
|
||||
m g
|
||||
|
||||
|
||||
e f
|
||||
"""
|
||||
|
||||
And the ways
|
||||
| nodes | junction | name | highway | oneway | ref |
|
||||
@@ -306,18 +281,25 @@ Feature: Basic Roundabout
|
||||
| a,e | crescent,crescent,crescent | depart,roundabout-exit-3,arrive | US 130,US 130,US 130 |
|
||||
| j,l | ,, | depart,roundabout-exit-2,arrive | NJ 38,NJ 38,NJ 38 |
|
||||
|
||||
@todo
|
||||
# this test previously only passed by accident. We need to handle throughabouts correctly, since staying on massachusetts is actually
|
||||
# the desired setting. Rotary instructions here are not wanted but rather no instruction at all to go through the roundabout (or add
|
||||
# a throughabout instruction)
|
||||
# see https://github.com/Project-OSRM/osrm-backend/issues/3142
|
||||
Scenario: Double Roundabout with through-lane
|
||||
#http://map.project-osrm.org/?z=18¢er=38.911752%2C-77.048667&loc=38.912003%2C-77.050831&loc=38.909277%2C-77.042516&hl=en&alt=0
|
||||
Given the node map
|
||||
| | | | | o | | | | | | | | | | | | n | | | | |
|
||||
| | | | | e | | | | | | | | | | | | j | | | | |
|
||||
| | | | | | | | | | | | | | | | | | | | | |
|
||||
| | | | | | | q | | | | | | | | | | | | | | |
|
||||
| a | | b | | | | | | s | | f | | | | g | | | | i | | k |
|
||||
| | | | | | | r | | | | | | | | | | | p | | | |
|
||||
| | | | | | | | | | | t | | | | | | | | | | |
|
||||
| | | | | c | | d | | | | | | | | | | h | | | | |
|
||||
| | | | | l | | | | | | | | | | | | m | | | | |
|
||||
"""
|
||||
o n
|
||||
.e. _j_.
|
||||
/ '. / \
|
||||
/ q__ / |
|
||||
a---b | >s---f-------g i---k
|
||||
. r'' | .' . .p'|
|
||||
. | t . .'
|
||||
'c---d 'h'
|
||||
l m
|
||||
"""
|
||||
|
||||
And the nodes
|
||||
| node | highway |
|
||||
@@ -327,9 +309,13 @@ Feature: Basic Roundabout
|
||||
| nodes | junction | name | oneway |
|
||||
| bcdrqeb | roundabout | sheridan circle | yes |
|
||||
| ghi | roundabout | dupont circle | yes |
|
||||
| ijg | roundabout | dupont circle | yes |
|
||||
| ij | roundabout | dupont circle | yes |
|
||||
| jg | roundabout | dupont circle | yes |
|
||||
| ab | | massachusetts | no |
|
||||
| sfgpik | | massachusetts | no |
|
||||
| gp | | massachusetts | no |
|
||||
| pi | | massachusetts | no |
|
||||
| sfg | | massachusetts | no |
|
||||
| ik | | massachusetts | no |
|
||||
| cl | | 23rd street | no |
|
||||
| oe | | r street | no |
|
||||
| jn | | new hampshire | no |
|
||||
@@ -339,45 +325,47 @@ Feature: Basic Roundabout
|
||||
|
||||
And the relations
|
||||
| type | way:from | way:to | node:via | restriction |
|
||||
| restriction | sfgpik | ijg | i | no_left_turn |
|
||||
| restriction | pi | ij | i | no_left_turn |
|
||||
|
||||
When I route I should get
|
||||
| waypoints | route | turns |
|
||||
| a,k | massachusetts,massachusetts,massachusetts,massachusetts | depart,sheridan circle-exit-2,dupont circle-exit-1,arrive |
|
||||
| waypoints | route | turns |
|
||||
| a,k | massachusetts,massachusetts,massachusetts,massachusetts | depart,sheridan circle-exit-2,rotary-exit-1,arrive |
|
||||
|
||||
#2856 - http://www.openstreetmap.org/#map=19/47.23318/-1.56563
|
||||
Scenario: Linked Roundabouts
|
||||
Given the node map
|
||||
| | | | | | | | | | | | | | x |
|
||||
| | u | | | | | | | | | | | r | |
|
||||
| | | | | | | | | | | | | | |
|
||||
| | | | t | | | | | | | | | | |
|
||||
| | | | | | | | | | | s | | | |
|
||||
| | | v | | | i | | h | | g | | | | |
|
||||
| | | | | | | | | | | | q | | |
|
||||
| | | | | | | | | | | | | | |
|
||||
| | | | j | | | | | | | | f | | |
|
||||
| | | | | | | | | | | | | | |
|
||||
| | | | | | | | | | | | | | |
|
||||
| | | | a | | | | | | | | e | | |
|
||||
| | | | | | | | | | | | | | |
|
||||
| | | | | | | | | | | | | | |
|
||||
| | | | | | b | | c | | d | | p | | |
|
||||
| | | | | | | | | | | | | | |
|
||||
| | | m | | | | | | | | n | | | |
|
||||
| | | | | l | | | | | | | | | |
|
||||
| | | | | | | | | | | | | | |
|
||||
| | | | | | | | | | | | | | |
|
||||
| | | | | | | | | | | | | | |
|
||||
| | | | | | | | | | | | | | |
|
||||
| | | | | | | | | | | | | | |
|
||||
| | | | | | | | | | | | | | |
|
||||
| | | | | | | | | | | | | | |
|
||||
| | | k | | | | | | | | | | | |
|
||||
| | | | | | | | | | | | | | |
|
||||
| | | | | | | | | | | | | | |
|
||||
| | | | | | | | | | | | | | |
|
||||
| | w | | | | | | | | | | o | | |
|
||||
"""
|
||||
x
|
||||
u r
|
||||
|
||||
t
|
||||
s
|
||||
v i h g
|
||||
q
|
||||
|
||||
j f
|
||||
|
||||
|
||||
a e
|
||||
|
||||
|
||||
b c d p
|
||||
|
||||
m n
|
||||
l
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
k
|
||||
|
||||
|
||||
|
||||
w o
|
||||
"""
|
||||
|
||||
And the ways
|
||||
| nodes | junction | name | highway | oneway |
|
||||
@@ -398,8 +386,85 @@ Feature: Basic Roundabout
|
||||
| h | give_way |
|
||||
|
||||
When I route I should get
|
||||
| waypoints | route | turns |
|
||||
| waypoints | route | turns |
|
||||
# since we cannot handle these invalid roundabout tags yet, we cannout output roundabout taggings. This will hopefully change some day
|
||||
#| w,x | ll,egg,egg,tr,tr | depart,roundabout-exit-1,roundabout-exit-2,arrive |
|
||||
| w,x | ll,egg,egg,tr,tr | depart,turn right,continue left,turn slight left,arrive |
|
||||
| w,x | ll,egg,egg,tr,tr | depart,turn right,continue left,turn straight,arrive |
|
||||
|
||||
Scenario: Use Lane in Roundabout
|
||||
Given the node map
|
||||
"""
|
||||
. i . . . .. .
|
||||
.' '.
|
||||
a - b. f - g
|
||||
. |
|
||||
'. 1 /
|
||||
'. /
|
||||
j - - - c . . e
|
||||
' d '
|
||||
' h
|
||||
"""
|
||||
|
||||
#using roundabout as name, we can ignore whether we see a roundabout or a rotary here. Cucumber output will be the same
|
||||
And the ways
|
||||
| nodes | junction | name | oneway | turn:lanes:forward |
|
||||
| ba | | left-out | yes | |
|
||||
| jc | | left-in | yes | |
|
||||
| dh | | right-bot-out | yes | |
|
||||
| fg | | right-top-out | yes | |
|
||||
| bc | roundabout | roundabout | yes | left;through\|through |
|
||||
| cdefib | roundabout | roundabout | yes | |
|
||||
|
||||
When I route I should get
|
||||
| waypoints | route | turns |
|
||||
| 1,h | roundabout,right-bot-out,right-bot-out | depart,roundabout-exit-1,arrive |
|
||||
|
||||
@3254
|
||||
Scenario: Driving up to and through a roundabout
|
||||
Given the node map
|
||||
"""
|
||||
g a
|
||||
| / \
|
||||
e-f- - - - b d - - - h
|
||||
| \ /
|
||||
i c
|
||||
|
|
||||
k
|
||||
"""
|
||||
|
||||
And the ways
|
||||
| nodes | junction | name | highway |
|
||||
| abcda | roundabout | roundabout | residential |
|
||||
| gfi | | side | residential |
|
||||
| efb | | left | residential |
|
||||
| dh | | right | residential |
|
||||
| ck | | bottom | residential |
|
||||
|
||||
When I route I should get
|
||||
| waypoints | route | turns |
|
||||
| e,h | left,right,right | depart,roundabout-exit-2,arrive |
|
||||
|
||||
@3254
|
||||
Scenario: Driving up to and through a roundabout
|
||||
Given the node map
|
||||
"""
|
||||
g a
|
||||
| / \
|
||||
e-f - b d - - - h
|
||||
| \ /
|
||||
i c
|
||||
|
|
||||
k
|
||||
"""
|
||||
|
||||
And the ways
|
||||
| nodes | junction | name | highway |
|
||||
| abcda | roundabout | roundabout | residential |
|
||||
| gfi | | side | residential |
|
||||
| efb | | left | residential |
|
||||
| dh | | right | residential |
|
||||
| ck | | bottom | residential |
|
||||
|
||||
When I route I should get
|
||||
| waypoints | route | turns |
|
||||
| e,h | left,right,right | depart,roundabout-exit-2,arrive |
|
||||
|
||||
@@ -9,12 +9,14 @@ Feature: Staggered Intersections
|
||||
# https://www.openstreetmap.org/#map=19/39.26022/-84.25144
|
||||
Scenario: Staggered Intersection: Oak St, Cedar Dr
|
||||
Given the node map
|
||||
| | | j | | |
|
||||
| a | b | c | | |
|
||||
| | | d | | |
|
||||
| | | e | f | g |
|
||||
| | | h | | |
|
||||
| | | i | | |
|
||||
"""
|
||||
j
|
||||
a b c
|
||||
d
|
||||
e f g
|
||||
h
|
||||
i
|
||||
"""
|
||||
|
||||
And the ways
|
||||
| nodes | highway | name |
|
||||
@@ -29,16 +31,18 @@ Feature: Staggered Intersections
|
||||
|
||||
Scenario: Staggered Intersection: do not collapse if long segment in between
|
||||
Given the node map
|
||||
| | | j | | |
|
||||
| a | b | c | | |
|
||||
| | | | | |
|
||||
| | | | | |
|
||||
| | | d | | |
|
||||
| | | | | |
|
||||
| | | | | |
|
||||
| | | e | f | g |
|
||||
| | | h | | |
|
||||
| | | i | | |
|
||||
"""
|
||||
j
|
||||
a b c
|
||||
|
||||
|
||||
d
|
||||
|
||||
|
||||
e f g
|
||||
h
|
||||
i
|
||||
"""
|
||||
|
||||
And the ways
|
||||
| nodes | highway | name |
|
||||
@@ -53,12 +57,14 @@ Feature: Staggered Intersections
|
||||
|
||||
Scenario: Staggered Intersection: do not collapse if not left-right or right-left
|
||||
Given the node map
|
||||
| | | j | | |
|
||||
| a | b | c | | |
|
||||
| | | d | | |
|
||||
| g | f | e | | |
|
||||
| | | h | | |
|
||||
| | | i | | |
|
||||
"""
|
||||
j
|
||||
a b c
|
||||
d
|
||||
g f e
|
||||
h
|
||||
i
|
||||
"""
|
||||
|
||||
And the ways
|
||||
| nodes | highway | name |
|
||||
@@ -73,12 +79,14 @@ Feature: Staggered Intersections
|
||||
|
||||
Scenario: Staggered Intersection: do not collapse if the names are not the same
|
||||
Given the node map
|
||||
| | | j | | |
|
||||
| a | b | c | | |
|
||||
| | | d | | |
|
||||
| | | e | f | g |
|
||||
| | | h | | |
|
||||
| | | i | | |
|
||||
"""
|
||||
j
|
||||
a b c
|
||||
d
|
||||
e f g
|
||||
h
|
||||
i
|
||||
"""
|
||||
|
||||
And the ways
|
||||
| nodes | highway | name |
|
||||
|
||||
@@ -7,7 +7,9 @@ Feature: Suppress New Names on dedicated Suffices
|
||||
|
||||
Scenario: Suffix To Suffix
|
||||
Given the node map
|
||||
| a | | b | | c |
|
||||
"""
|
||||
a b c
|
||||
"""
|
||||
|
||||
And the ways
|
||||
| nodes | name |
|
||||
@@ -20,7 +22,9 @@ Feature: Suppress New Names on dedicated Suffices
|
||||
|
||||
Scenario: Suffix To Suffix Ref
|
||||
Given the node map
|
||||
| a | | b | | c |
|
||||
"""
|
||||
a b c
|
||||
"""
|
||||
|
||||
And the ways
|
||||
| nodes | name | ref |
|
||||
@@ -33,7 +37,9 @@ Feature: Suppress New Names on dedicated Suffices
|
||||
|
||||
Scenario: Prefix Change
|
||||
Given the node map
|
||||
| a | | b | | c |
|
||||
"""
|
||||
a b c
|
||||
"""
|
||||
|
||||
And the ways
|
||||
| nodes | name |
|
||||
@@ -46,7 +52,9 @@ Feature: Suppress New Names on dedicated Suffices
|
||||
|
||||
Scenario: Prefix Change ref
|
||||
Given the node map
|
||||
| a | | b | | c |
|
||||
"""
|
||||
a b c
|
||||
"""
|
||||
|
||||
And the ways
|
||||
| nodes | name |
|
||||
@@ -59,7 +67,9 @@ Feature: Suppress New Names on dedicated Suffices
|
||||
|
||||
Scenario: Prefix Change and Reference
|
||||
Given the node map
|
||||
| a | | b | | c |
|
||||
"""
|
||||
a b c
|
||||
"""
|
||||
|
||||
And the ways
|
||||
| nodes | name | ref |
|
||||
@@ -72,8 +82,10 @@ Feature: Suppress New Names on dedicated Suffices
|
||||
|
||||
Scenario: Suffix To Suffix - Turn
|
||||
Given the node map
|
||||
| a | | b | | c |
|
||||
| | | d | | |
|
||||
"""
|
||||
a b c
|
||||
d
|
||||
"""
|
||||
|
||||
And the ways
|
||||
| nodes | name |
|
||||
@@ -82,13 +94,15 @@ Feature: Suppress New Names on dedicated Suffices
|
||||
| bd | 42 E |
|
||||
|
||||
When I route I should get
|
||||
| waypoints | route | turns |
|
||||
| a,c | 42 N,42 S | depart,arrive |
|
||||
| a,d | 42 N,42 E,42 E | depart,turn right,arrive |
|
||||
| waypoints | route | turns |
|
||||
| a,c | 42 N,42 S | depart,arrive |
|
||||
| a,d | 42 N,42 E,42 E | depart,continue right,arrive |
|
||||
|
||||
Scenario: Suffix To No Suffix
|
||||
Given the node map
|
||||
| a | | b | | c |
|
||||
"""
|
||||
a b c
|
||||
"""
|
||||
|
||||
And the ways
|
||||
| nodes | name |
|
||||
@@ -101,7 +115,9 @@ Feature: Suppress New Names on dedicated Suffices
|
||||
|
||||
Scenario: No Suffix To Suffix
|
||||
Given the node map
|
||||
| a | | b | | c |
|
||||
"""
|
||||
a b c
|
||||
"""
|
||||
|
||||
And the ways
|
||||
| nodes | name |
|
||||
|
||||
@@ -7,8 +7,10 @@ Feature: Suppressed Turns
|
||||
|
||||
Scenario: Do not announce passing a exit ramp
|
||||
Given the node map
|
||||
| a | b | c | d | e |
|
||||
| | | | f | g |
|
||||
"""
|
||||
a b c d e
|
||||
f g
|
||||
"""
|
||||
|
||||
And the ways
|
||||
| nodes | highway |
|
||||
@@ -21,7 +23,9 @@ Feature: Suppressed Turns
|
||||
|
||||
Scenario: Do not announce reference changes
|
||||
Given the node map
|
||||
| a | b | c | d | e | f |
|
||||
"""
|
||||
a b c d e f
|
||||
"""
|
||||
|
||||
And the ways
|
||||
| nodes | highway | name | ref |
|
||||
@@ -38,8 +42,10 @@ Feature: Suppressed Turns
|
||||
|
||||
Scenario: Don't Announce Turn on following major road class -- service
|
||||
Given the node map
|
||||
| a | b | d |
|
||||
| | | c |
|
||||
"""
|
||||
a b d
|
||||
c
|
||||
"""
|
||||
|
||||
And the ways
|
||||
| nodes | highway |
|
||||
@@ -52,8 +58,10 @@ Feature: Suppressed Turns
|
||||
|
||||
Scenario: Don't Announce Turn on following major road class -- residential
|
||||
Given the node map
|
||||
| a | b | d |
|
||||
| | | c |
|
||||
"""
|
||||
a b d
|
||||
c
|
||||
"""
|
||||
|
||||
And the ways
|
||||
| nodes | highway |
|
||||
|
||||
@@ -8,38 +8,40 @@ Feature: General Post-Processing related features
|
||||
# this testcase used to crash geometry generation (at that time handled during intersection generation)
|
||||
Scenario: Regression Test 2754
|
||||
Given the node map
|
||||
| a | b | c | d | e | | | | |
|
||||
| | | | | | | | | |
|
||||
| | | | | | | | | |
|
||||
| | | | | | | | | |
|
||||
| | | | | | | | | |
|
||||
| | | | | | | | | |
|
||||
| | | | | | | | | |
|
||||
| | | | | | | | | |
|
||||
| | | | | | | | | |
|
||||
| | | | | | | | | |
|
||||
| | | | | | | | | |
|
||||
| | | | | | | | | |
|
||||
| | | | | | | | | |
|
||||
| | | | | | | | | |
|
||||
| | | | | | | | | |
|
||||
| | | | | | | | | |
|
||||
| | | | | | | | | |
|
||||
| | | | | | | | | |
|
||||
| | | | | | | | | |
|
||||
| | | | | | | | | |
|
||||
| | | | | | | | | |
|
||||
| | | | | | | | | |
|
||||
| | | | | | | | | |
|
||||
| | | | | | | | | |
|
||||
| | | | | | | | | |
|
||||
| | | | | | | | | |
|
||||
| | | | | | | | | |
|
||||
| | | | | | | | | |
|
||||
| | | | | | | | | |
|
||||
| | | | | | | | | |
|
||||
| | | | | | | | | |
|
||||
| | | | | f | g | h | i | j |
|
||||
"""
|
||||
a b c d e
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
f g h i j
|
||||
"""
|
||||
|
||||
And the ways
|
||||
| nodes |
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -8,8 +8,10 @@ Feature: Turn Lane Guidance
|
||||
@simple
|
||||
Scenario: Basic Turn Lane 3-way Turn with empty lanes
|
||||
Given the node map
|
||||
| a | | b | | c |
|
||||
| | | d | | |
|
||||
"""
|
||||
a b c
|
||||
d
|
||||
"""
|
||||
|
||||
And the ways
|
||||
| nodes | turn:lanes | turn:lanes:forward | turn:lanes:backward | name |
|
||||
@@ -26,8 +28,10 @@ Feature: Turn Lane Guidance
|
||||
|
||||
Scenario: Basic Turn Lane 3-way Turn with designated lane
|
||||
Given the node map
|
||||
| a | | b | | c |
|
||||
| | | d | | |
|
||||
"""
|
||||
a b c
|
||||
d
|
||||
"""
|
||||
|
||||
And the ways
|
||||
| nodes | turn:lanes | turn:lanes:forward | name | vehicle:lanes:forward |
|
||||
@@ -43,9 +47,11 @@ Feature: Turn Lane Guidance
|
||||
@simple
|
||||
Scenario: Basic Turn Lane 4-Way Turn
|
||||
Given the node map
|
||||
| | | e | | |
|
||||
| a | | b | | c |
|
||||
| | | d | | |
|
||||
"""
|
||||
e
|
||||
a b c
|
||||
d
|
||||
"""
|
||||
|
||||
And the ways
|
||||
| nodes | turn:lanes | turn:lanes:forward | turn:lanes:backward | name |
|
||||
@@ -66,9 +72,11 @@ Feature: Turn Lane Guidance
|
||||
@simple @none
|
||||
Scenario: Basic Turn Lane 4-Way Turn using none
|
||||
Given the node map
|
||||
| | | e | | |
|
||||
| a | | b | | c |
|
||||
| | | d | | |
|
||||
"""
|
||||
e
|
||||
a b c
|
||||
d
|
||||
"""
|
||||
|
||||
And the ways
|
||||
| nodes | turn:lanes | turn:lanes:forward | turn:lanes:backward | name |
|
||||
@@ -86,9 +94,11 @@ Feature: Turn Lane Guidance
|
||||
@simple @reverse
|
||||
Scenario: Basic Turn Lane 4-Way With U-Turn Lane
|
||||
Given the node map
|
||||
| | | e | | |
|
||||
| a | 1 | b | | c |
|
||||
| | | d | | |
|
||||
"""
|
||||
e
|
||||
a 1 b c
|
||||
d
|
||||
"""
|
||||
|
||||
And the ways
|
||||
| nodes | turn:lanes | turn:lanes:forward | name |
|
||||
@@ -109,9 +119,11 @@ Feature: Turn Lane Guidance
|
||||
@simple @psv @none
|
||||
Scenario: Turn with Bus-Lane
|
||||
Given the node map
|
||||
| a | | b | | c |
|
||||
| | | | | |
|
||||
| | | d | | |
|
||||
"""
|
||||
a b c
|
||||
|
||||
d
|
||||
"""
|
||||
|
||||
And the ways
|
||||
| nodes | name | turn:lanes:forward | lanes:psv:forward |
|
||||
@@ -126,10 +138,12 @@ Feature: Turn Lane Guidance
|
||||
|
||||
Scenario: Turn with Bus-Lane Left
|
||||
Given the node map
|
||||
| | | d | | | | |
|
||||
| | | | | | | |
|
||||
| a | | b | | c | | f |
|
||||
| | | | | e | | |
|
||||
"""
|
||||
d
|
||||
|
||||
a b c f
|
||||
e
|
||||
"""
|
||||
|
||||
And the ways
|
||||
| nodes | name | turn:lanes:forward | lanes:psv:forward | oneway |
|
||||
@@ -147,9 +161,11 @@ Feature: Turn Lane Guidance
|
||||
# This tests whether empty/invalid PSV tags cause osrm-extract to crash
|
||||
Scenario: Turn with Bus-Lane
|
||||
Given the node map
|
||||
| a | | b | | c |
|
||||
| | | | | |
|
||||
| | | d | | |
|
||||
"""
|
||||
a b c
|
||||
|
||||
d
|
||||
"""
|
||||
|
||||
And the ways
|
||||
| nodes | name | turn:lanes:forward | lanes:psv:forward | lanes:psv:backward |
|
||||
@@ -164,9 +180,11 @@ Feature: Turn Lane Guidance
|
||||
@simple @psv
|
||||
Scenario: Turn with Bus-Lane but without lanes
|
||||
Given the node map
|
||||
| a | | b | | c |
|
||||
| | | | | |
|
||||
| | | d | | |
|
||||
"""
|
||||
a b c
|
||||
|
||||
d
|
||||
"""
|
||||
|
||||
And the ways
|
||||
| nodes | name | lanes:psv |
|
||||
@@ -183,12 +201,14 @@ Feature: Turn Lane Guidance
|
||||
@todo @collapse @partition-lanes
|
||||
Scenario: Turn Lanes at Segregated Road
|
||||
Given the node map
|
||||
| | | i | l | | |
|
||||
| | | | | | |
|
||||
| h | | g | f | | e |
|
||||
| a | | b | c | | d |
|
||||
| | | | | | |
|
||||
| | | j | k | | |
|
||||
"""
|
||||
i l
|
||||
|
||||
h g f e
|
||||
a b c d
|
||||
|
||||
j k
|
||||
"""
|
||||
|
||||
And the ways
|
||||
| nodes | name | turn:lanes:forward | oneway |
|
||||
@@ -228,12 +248,14 @@ Feature: Turn Lane Guidance
|
||||
@collapse @partition-lanes
|
||||
Scenario: Turn Lanes at Segregated Road
|
||||
Given the node map
|
||||
| | | i | l | | |
|
||||
| | | | | | |
|
||||
| h | | g | f | | e |
|
||||
| a | | b | c | | d |
|
||||
| | | | | | |
|
||||
| | | j | k | | |
|
||||
"""
|
||||
i l
|
||||
|
||||
h g f e
|
||||
a b c d
|
||||
|
||||
j k
|
||||
"""
|
||||
|
||||
And the ways
|
||||
| nodes | name | turn:lanes:forward | oneway |
|
||||
@@ -262,10 +284,12 @@ Feature: Turn Lane Guidance
|
||||
@partition-lanes
|
||||
Scenario: Turn Lanes at Segregated Road
|
||||
Given the node map
|
||||
| | | g | f | | |
|
||||
| a | | b | c | | d |
|
||||
| | | | | | |
|
||||
| | | j | k | | |
|
||||
"""
|
||||
g f
|
||||
a b c d
|
||||
|
||||
j k
|
||||
"""
|
||||
|
||||
And the ways
|
||||
| nodes | name | turn:lanes:forward | oneway |
|
||||
@@ -285,9 +309,11 @@ Feature: Turn Lane Guidance
|
||||
@2654 @previous-lanes
|
||||
Scenario: Turn Lanes Given earlier than actual turn
|
||||
Given the node map
|
||||
| a | | b | c | | d |
|
||||
| | | | | | |
|
||||
| | | | e | | |
|
||||
"""
|
||||
a b c d
|
||||
|
||||
e
|
||||
"""
|
||||
|
||||
And the ways
|
||||
| nodes | name | turn:lanes:forward |
|
||||
@@ -304,8 +330,10 @@ Feature: Turn Lane Guidance
|
||||
@2654 @previous-lanes
|
||||
Scenario: Turn Lanes Given earlier than actual turn
|
||||
Given the node map
|
||||
| a | | b | c | d | | e | | f | g | h | | i |
|
||||
| | | j | | | | | | | | k | | |
|
||||
"""
|
||||
a b c d e f g h i
|
||||
j k
|
||||
"""
|
||||
|
||||
And the ways
|
||||
| nodes | name | turn:lanes:forward | turn:lanes:backward |
|
||||
@@ -327,8 +355,10 @@ Feature: Turn Lane Guidance
|
||||
@previous-lanes
|
||||
Scenario: Passing a one-way street
|
||||
Given the node map
|
||||
| e | | | f | |
|
||||
| a | | b | c | d |
|
||||
"""
|
||||
e f
|
||||
a b c d
|
||||
"""
|
||||
|
||||
And the ways
|
||||
| nodes | name | turn:lanes:forward | oneway |
|
||||
@@ -344,9 +374,11 @@ Feature: Turn Lane Guidance
|
||||
@partition-lanes
|
||||
Scenario: Passing a one-way street, partly pulled back lanes
|
||||
Given the node map
|
||||
| e | | | f | |
|
||||
| a | | b | c | d |
|
||||
| | | g | | |
|
||||
"""
|
||||
e f
|
||||
a b c d
|
||||
g
|
||||
"""
|
||||
|
||||
And the ways
|
||||
| nodes | name | turn:lanes:forward | oneway |
|
||||
@@ -365,9 +397,11 @@ Feature: Turn Lane Guidance
|
||||
@partition-lanes @previous-lanes
|
||||
Scenario: Passing a one-way street, partly pulled back lanes, no through
|
||||
Given the node map
|
||||
| e | | | f |
|
||||
| a | | b | c |
|
||||
| | | g | |
|
||||
"""
|
||||
e f
|
||||
a b c
|
||||
g
|
||||
"""
|
||||
|
||||
And the ways
|
||||
| nodes | name | turn:lanes:forward | oneway |
|
||||
@@ -385,10 +419,12 @@ Feature: Turn Lane Guidance
|
||||
@todo @partition-lanes @previous-lanes
|
||||
Scenario: Narrowing Turn Lanes
|
||||
Given the node map
|
||||
| | | | | g | |
|
||||
| | | | | | |
|
||||
| a | | b | c | d | e |
|
||||
| | | | f | | |
|
||||
"""
|
||||
g
|
||||
|
||||
a b c d e
|
||||
f
|
||||
"""
|
||||
|
||||
And the ways
|
||||
| nodes | name | turn:lanes:forward |
|
||||
@@ -408,8 +444,10 @@ Feature: Turn Lane Guidance
|
||||
@previous-lanes
|
||||
Scenario: Turn at a traffic light
|
||||
Given the node map
|
||||
| a | b | c | d |
|
||||
| | | e | |
|
||||
"""
|
||||
a b c d
|
||||
e
|
||||
"""
|
||||
|
||||
And the nodes
|
||||
| node | highway |
|
||||
@@ -430,17 +468,19 @@ Feature: Turn Lane Guidance
|
||||
@todo @roundabout
|
||||
Scenario: Theodor Heuss Platz
|
||||
Given the node map
|
||||
| | | | i | o | | | l | |
|
||||
| | | b | | | | a | | m |
|
||||
| | c | | | | | | | |
|
||||
| | | | | | | | h | |
|
||||
| | | | | | | | | |
|
||||
| j | | | | | | | | |
|
||||
| | | | | | | | g | |
|
||||
| | | | | | | | | |
|
||||
| | d | | | | | | | |
|
||||
| | | e | | | | f | | |
|
||||
| | | | | k | | | | n |
|
||||
"""
|
||||
i o l
|
||||
b a m
|
||||
c
|
||||
h
|
||||
|
||||
j
|
||||
g
|
||||
|
||||
d
|
||||
e f
|
||||
k n
|
||||
"""
|
||||
|
||||
And the nodes
|
||||
| node | highway |
|
||||
@@ -467,12 +507,14 @@ Feature: Turn Lane Guidance
|
||||
@sliproads
|
||||
Scenario: Turn Lanes Breaking up
|
||||
Given the node map
|
||||
| | | | g | |
|
||||
| | | | | |
|
||||
| | | | c | |
|
||||
| a | b | | d | e |
|
||||
| | | | | |
|
||||
| | | | f | |
|
||||
"""
|
||||
g
|
||||
|
||||
c
|
||||
a b d e
|
||||
|
||||
f
|
||||
"""
|
||||
|
||||
And the ways
|
||||
| nodes | name | turn:lanes:forward | oneway | highway |
|
||||
@@ -481,8 +523,8 @@ Feature: Turn Lane Guidance
|
||||
| bc | road | left\|left | yes | primary |
|
||||
| de | road | | yes | primary |
|
||||
| fd | cross | | | secondary |
|
||||
| dc | cross | | | secondary |
|
||||
| cg | cross | | | secondary |
|
||||
| dc | cross | | | secondary |
|
||||
| cg | cross | | | secondary |
|
||||
|
||||
And the relations
|
||||
| type | way:from | way:to | node:via | restriction |
|
||||
@@ -498,11 +540,13 @@ Feature: Turn Lane Guidance
|
||||
@reverse @previous-lanes
|
||||
Scenario: U-Turn Road at Intersection
|
||||
Given the node map
|
||||
| | | | | | | h | |
|
||||
| | | | | f | | e | j |
|
||||
| a | b | | | | | | |
|
||||
| | | | | c | | d | i |
|
||||
| | | | | | | g | |
|
||||
"""
|
||||
h
|
||||
f e j
|
||||
a b
|
||||
c d i
|
||||
g
|
||||
"""
|
||||
|
||||
And the ways
|
||||
| nodes | name | turn:lanes:forward | oneway | highway |
|
||||
@@ -532,13 +576,15 @@ Feature: Turn Lane Guidance
|
||||
@reverse
|
||||
Scenario: Segregated Intersection Merges With Lanes
|
||||
Given the node map
|
||||
| | | | | | | f |
|
||||
| | | | | | | |
|
||||
| e | | | d | | | |
|
||||
| | | | | | c | g |
|
||||
| a | | | b | | | |
|
||||
| | | | | | | |
|
||||
| | | | | | h | |
|
||||
"""
|
||||
f
|
||||
|
||||
e d
|
||||
c g
|
||||
a b
|
||||
|
||||
h
|
||||
"""
|
||||
|
||||
And the ways
|
||||
| nodes | name | turn:lanes:forward | oneway | highway |
|
||||
@@ -557,13 +603,15 @@ Feature: Turn Lane Guidance
|
||||
@todo @roundabout
|
||||
Scenario: Passing Through a Roundabout
|
||||
Given the node map
|
||||
| | | h | | g | | |
|
||||
| | a | | | | f | k |
|
||||
| i | | | | | | |
|
||||
| | | | | | | |
|
||||
| | b | | | | e | |
|
||||
| | | c | | d | | |
|
||||
| | | | | j | | |
|
||||
"""
|
||||
h g
|
||||
a f k
|
||||
i
|
||||
|
||||
b e
|
||||
c d
|
||||
j
|
||||
"""
|
||||
|
||||
And the ways
|
||||
| nodes | name | turn:lanes:forward | oneway | highway | junction |
|
||||
@@ -584,8 +632,10 @@ Feature: Turn Lane Guidance
|
||||
@previous-lanes
|
||||
Scenario: Crossing Traffic Light
|
||||
Given the node map
|
||||
| a | | b | | c | | d |
|
||||
| | | | | | | e |
|
||||
"""
|
||||
a b c d
|
||||
e
|
||||
"""
|
||||
|
||||
And the nodes
|
||||
| node | highway |
|
||||
@@ -605,8 +655,10 @@ Feature: Turn Lane Guidance
|
||||
@ramp
|
||||
Scenario: Highway Ramp
|
||||
Given the node map
|
||||
| a | | b | | c | | d |
|
||||
| | | | | | | e |
|
||||
"""
|
||||
a b c d
|
||||
e
|
||||
"""
|
||||
|
||||
And the ways
|
||||
| nodes | name | turn:lanes:forward | highway |
|
||||
@@ -622,10 +674,12 @@ Feature: Turn Lane Guidance
|
||||
@todo
|
||||
Scenario: Turning Off Ramp
|
||||
Given the node map
|
||||
| | a | |
|
||||
| d | c | b |
|
||||
| e | f | g |
|
||||
| | h | |
|
||||
"""
|
||||
a
|
||||
d c b
|
||||
e f g
|
||||
h
|
||||
"""
|
||||
|
||||
And the ways
|
||||
| nodes | name | turn:lanes:forward | highway | oneway |
|
||||
@@ -644,10 +698,12 @@ Feature: Turn Lane Guidance
|
||||
@ramp
|
||||
Scenario: Off Ramp In a Turn
|
||||
Given the node map
|
||||
| a | | | | | | | | | | | |
|
||||
| | | | | | | | | | | | |
|
||||
| | | | | | b | | | | | | c |
|
||||
| | | | | | | | | | | d | |
|
||||
"""
|
||||
a
|
||||
|
||||
b c
|
||||
d
|
||||
"""
|
||||
|
||||
And the ways
|
||||
| nodes | name | turn:lanes:forward | highway | oneway |
|
||||
@@ -663,10 +719,12 @@ Feature: Turn Lane Guidance
|
||||
@reverse
|
||||
Scenario: Reverse Lane in Segregated Road
|
||||
Given the node map
|
||||
| h | | | | | g | | | | | | f |
|
||||
| | | | | | | | e | | | | |
|
||||
| | | | | | | | d | | | | |
|
||||
| a | | | | | b | | | | | | c |
|
||||
"""
|
||||
h g f
|
||||
e
|
||||
d
|
||||
a b c
|
||||
"""
|
||||
|
||||
And the ways
|
||||
| nodes | name | turn:lanes:forward | highway | oneway |
|
||||
@@ -682,10 +740,12 @@ Feature: Turn Lane Guidance
|
||||
@reverse
|
||||
Scenario: Reverse Lane in Segregated Road with none
|
||||
Given the node map
|
||||
| h | | | | | g | | | | | | f |
|
||||
| | | | | | | | e | | | | |
|
||||
| | | | | | | | d | | | | |
|
||||
| a | | | | | b | | | | | | c |
|
||||
"""
|
||||
h g f
|
||||
e
|
||||
d
|
||||
a b c
|
||||
"""
|
||||
|
||||
And the ways
|
||||
| nodes | name | turn:lanes:forward | highway | oneway |
|
||||
@@ -701,11 +761,13 @@ Feature: Turn Lane Guidance
|
||||
@reverse
|
||||
Scenario: Reverse Lane in Segregated Road with none, Service Turn Prior
|
||||
Given the node map
|
||||
| h | | | | | g | | | | | | f |
|
||||
| | | | | | | | e | | | | |
|
||||
| | | | | | | | d | | | | |
|
||||
| a | | j | | | b | | | | | | c |
|
||||
| | | i | | | | | | | | | |
|
||||
"""
|
||||
h g f
|
||||
e
|
||||
d
|
||||
a j b c
|
||||
i
|
||||
"""
|
||||
|
||||
And the ways
|
||||
| nodes | name | turn:lanes:forward | highway | oneway |
|
||||
@@ -722,9 +784,11 @@ Feature: Turn Lane Guidance
|
||||
@simple
|
||||
Scenario: Don't collapse everything to u-turn / too wide
|
||||
Given the node map
|
||||
| a | | b | | e |
|
||||
| | | | | |
|
||||
| d | | c | | f |
|
||||
"""
|
||||
a b e
|
||||
|
||||
d c f
|
||||
"""
|
||||
|
||||
And the ways
|
||||
| nodes | highway | name | turn:lanes:forward |
|
||||
@@ -742,8 +806,10 @@ Feature: Turn Lane Guidance
|
||||
@simple
|
||||
Scenario: Merge Lanes Onto Freeway
|
||||
Given the node map
|
||||
| a | | | b | c |
|
||||
| | d | | | |
|
||||
"""
|
||||
a b c
|
||||
d
|
||||
"""
|
||||
|
||||
And the ways
|
||||
| nodes | highway | name | turn:lanes:forward |
|
||||
@@ -757,8 +823,10 @@ Feature: Turn Lane Guidance
|
||||
@2654 @simple
|
||||
Scenario: Fork on motorway links - don't fork on through but use lane
|
||||
Given the node map
|
||||
| i | | | | | a |
|
||||
| j | | c | b | | x |
|
||||
"""
|
||||
i a
|
||||
j c b x
|
||||
"""
|
||||
|
||||
And the ways
|
||||
| nodes | name | highway | turn:lanes:forward |
|
||||
@@ -777,10 +845,12 @@ Feature: Turn Lane Guidance
|
||||
@todo @ramp @2645
|
||||
Scenario: Kreuz Schoeneberg - Continue on ramp, don't merge
|
||||
Given the node map
|
||||
| i | | | | | j | | | | | | | | | | | |
|
||||
| | | | | k | | | | | | | | | | | | |
|
||||
| h | g | | l | | | f | | | | | | | | | | e |
|
||||
| d | | | | | | | | c | | | | | b | | | a |
|
||||
"""
|
||||
i j
|
||||
k
|
||||
h g l f e
|
||||
d c b a
|
||||
"""
|
||||
|
||||
And the ways
|
||||
| nodes | highway | name | oneway | lanes | turn:lanes |
|
||||
@@ -808,8 +878,10 @@ Feature: Turn Lane Guidance
|
||||
@collapse @use-lane
|
||||
Scenario: Collapse Multiple Use Lanes
|
||||
Given the node map
|
||||
| x | a | | b | | | c | | | d |
|
||||
| | | | e | | | f | | | |
|
||||
"""
|
||||
x a b c d
|
||||
e f
|
||||
"""
|
||||
|
||||
And the ways
|
||||
| nodes | name | highway | turn:lanes:forward |
|
||||
@@ -825,14 +897,39 @@ Feature: Turn Lane Guidance
|
||||
| x,d | road,road | depart,arrive | , |
|
||||
|
||||
@partition-lanes
|
||||
Scenario: Partitioned turn, Slight Curve - maxspeed
|
||||
Given the node map
|
||||
"""
|
||||
f e
|
||||
| |
|
||||
| |
|
||||
| c
|
||||
a - b ' |
|
||||
g d
|
||||
"""
|
||||
|
||||
And the ways
|
||||
| nodes | name | highway | oneway | turn:lanes:forward | maxspeed |
|
||||
| ab | road | primary | yes | left\|right | 1 |
|
||||
| bc | cross | primary | yes | | 1 |
|
||||
| fbg | cross | primary | yes | | 1 |
|
||||
| dce | cross | primary | yes | | 1 |
|
||||
|
||||
When I route I should get
|
||||
| waypoints | route | turns | lanes |
|
||||
| a,g | road,cross,cross | depart,turn right,arrive | ,left:false right:true, |
|
||||
| a,e | road,cross,cross | depart,turn left,arrive | ,left:true right:false, |
|
||||
|
||||
Scenario: Partitioned turn, Slight Curve
|
||||
Given the node map
|
||||
| | | f | | e |
|
||||
| | | | | |
|
||||
| | | | | |
|
||||
| | | | | c |
|
||||
| a | | b | | |
|
||||
| | | g | | d |
|
||||
"""
|
||||
f e
|
||||
| |
|
||||
| |
|
||||
| c
|
||||
a - b ' |
|
||||
g d
|
||||
"""
|
||||
|
||||
And the ways
|
||||
| nodes | name | highway | oneway | turn:lanes:forward |
|
||||
@@ -848,9 +945,11 @@ Feature: Turn Lane Guidance
|
||||
|
||||
Scenario: Lane Parsing Issue #2694
|
||||
Given the node map
|
||||
| | c |
|
||||
| a | b |
|
||||
| | d |
|
||||
"""
|
||||
c
|
||||
a b
|
||||
d
|
||||
"""
|
||||
|
||||
And the ways
|
||||
| nodes | highway | turn:lanes:forward |
|
||||
@@ -866,12 +965,14 @@ Feature: Turn Lane Guidance
|
||||
@todo
|
||||
Scenario: Lane Parsing Issue #2706: None Assignments I
|
||||
Given the node map
|
||||
| | f | | | j | |
|
||||
| | | | | | |
|
||||
| a | b | c | | d | e |
|
||||
| | | | | | |
|
||||
| | | | | i | |
|
||||
| | g | | | h | |
|
||||
"""
|
||||
f j
|
||||
|
||||
a b c d e
|
||||
|
||||
i
|
||||
g h
|
||||
"""
|
||||
|
||||
And the nodes
|
||||
| node | highway |
|
||||
@@ -906,10 +1007,12 @@ Feature: Turn Lane Guidance
|
||||
@todo
|
||||
Scenario: Lane Parsing Issue #2706: None Assignments II
|
||||
Given the node map
|
||||
| | k | l | |
|
||||
| j | a | b | f |
|
||||
| i | c | d | e |
|
||||
| | h | g | |
|
||||
"""
|
||||
k l
|
||||
j a b f
|
||||
i c d e
|
||||
h g
|
||||
"""
|
||||
|
||||
And the ways
|
||||
| nodes | highway | name | oneway | turn:lanes |
|
||||
@@ -941,10 +1044,12 @@ Feature: Turn Lane Guidance
|
||||
@todo
|
||||
Scenario: Lane Parsing Issue #2706: None Assignments III - Minimal reproduction recipe
|
||||
Given the node map
|
||||
| | | l | |
|
||||
| | a | b | |
|
||||
| | | d | |
|
||||
| | | | |
|
||||
"""
|
||||
l
|
||||
a b
|
||||
d
|
||||
|
||||
"""
|
||||
|
||||
And the ways
|
||||
| nodes | highway | name | oneway | turn:lanes |
|
||||
@@ -960,9 +1065,11 @@ Feature: Turn Lane Guidance
|
||||
@reverse @2730 @todo
|
||||
Scenario: Reverse on the right
|
||||
Given the node map
|
||||
| a | | | c | |
|
||||
| | | | b | d |
|
||||
| f | | | e | |
|
||||
"""
|
||||
a c
|
||||
b d
|
||||
f e
|
||||
"""
|
||||
|
||||
And the ways
|
||||
| nodes | highway | name | turn:lanes:forward | oneway |
|
||||
@@ -983,12 +1090,14 @@ Feature: Turn Lane Guidance
|
||||
#http://www.openstreetmap.org/export#map=19/52.56054/13.32152
|
||||
Scenario: Kurt-Schuhmacher-Damm
|
||||
Given the node map
|
||||
| | | | g | | f |
|
||||
| | | | | | |
|
||||
| j | | | h | | e |
|
||||
| | | | | | |
|
||||
| a | | | b | | c |
|
||||
| | | | i | | d |
|
||||
"""
|
||||
g f
|
||||
|
||||
j h e
|
||||
|
||||
a b c
|
||||
i d
|
||||
"""
|
||||
|
||||
And the ways
|
||||
| nodes | name | highway | oneway | turn:lanes |
|
||||
@@ -1005,3 +1114,26 @@ Feature: Turn Lane Guidance
|
||||
| waypoints | route | turns | lanes |
|
||||
| a,f | ,ksd,ksd | depart,turn left,arrive | ,left:true none:true right:false, |
|
||||
| a,i | ,ksd,ksd | depart,turn right,arrive | ,left:false none:true right:true, |
|
||||
|
||||
Scenario: Reverse Not Allowed
|
||||
Given the node map
|
||||
"""
|
||||
n o
|
||||
f - - e\- - g-j-m
|
||||
d | |
|
||||
a - 1 b/- - c-i-l
|
||||
h k
|
||||
"""
|
||||
|
||||
And the ways
|
||||
| nodes | name | highway | oneway | turn:lanes:forward |
|
||||
| abc | road | secondary | yes | left\|through\|right |
|
||||
| cil | road | secondary | yes | |
|
||||
| mjgef | road | secondary | yes | |
|
||||
| bde | road | secondary_link | yes | |
|
||||
| ngch | turn | secondary | yes | |
|
||||
| kijo | turn | secondary | yes | |
|
||||
|
||||
When I route I should get
|
||||
| waypoints | bearings | route | turns |
|
||||
| 1,a | 90,2 180,180 | | |
|
||||
|
||||
@@ -0,0 +1,23 @@
|
||||
@routing @guidance
|
||||
Feature: Turn Location Feature
|
||||
|
||||
Background:
|
||||
Given the profile "car"
|
||||
Given a grid size of 10 meters
|
||||
|
||||
Scenario: Simple feature to test turn locations
|
||||
Given the node map
|
||||
"""
|
||||
c
|
||||
a b d
|
||||
"""
|
||||
|
||||
And the ways
|
||||
| nodes | highway |
|
||||
| ab | primary |
|
||||
| cb | primary |
|
||||
| db | primary |
|
||||
|
||||
When I route I should get
|
||||
| waypoints | route | turns | locations |
|
||||
| a,c | ab,cb,cb | depart,turn left,arrive | a,b,c |
|
||||
+549
-238
File diff suppressed because it is too large
Load Diff
@@ -113,6 +113,10 @@ class Node {
|
||||
addTag (k, v) {
|
||||
this.tags[k] = v;
|
||||
}
|
||||
|
||||
setID (id ) {
|
||||
this.id = id;
|
||||
}
|
||||
}
|
||||
|
||||
class Way {
|
||||
|
||||
@@ -6,11 +6,13 @@ Feature: Locating Nearest node on a Way - pick closest way
|
||||
|
||||
Scenario: Nearest - two ways crossing
|
||||
Given the node map
|
||||
| | 0 | c | 1 | |
|
||||
| 7 | | n | | 2 |
|
||||
| a | k | x | m | b |
|
||||
| 6 | | l | | 3 |
|
||||
| | 5 | d | 4 | |
|
||||
"""
|
||||
0 c 1
|
||||
7 n 2
|
||||
a k x m b
|
||||
6 l 3
|
||||
5 d 4
|
||||
"""
|
||||
|
||||
And the ways
|
||||
| nodes |
|
||||
@@ -34,12 +36,14 @@ Feature: Locating Nearest node on a Way - pick closest way
|
||||
|
||||
Scenario: Nearest - inside a triangle
|
||||
Given the node map
|
||||
| | | | | | c | | | | | |
|
||||
| | | | | | | | | | | |
|
||||
| | | | y | | | | z | | | |
|
||||
| | | | | 0 | | 1 | | | | |
|
||||
| | | | 2 | | 3 | | 4 | | | |
|
||||
| a | | | x | | u | | w | | | b |
|
||||
"""
|
||||
c
|
||||
|
||||
y z
|
||||
0 1
|
||||
2 3 4
|
||||
a x u w b
|
||||
"""
|
||||
|
||||
And the ways
|
||||
| nodes |
|
||||
|
||||
@@ -6,9 +6,11 @@ Feature: Locating Nearest node on a Way - basic projection onto way
|
||||
|
||||
Scenario: Nearest - easy-west way
|
||||
Given the node map
|
||||
| 0 | 1 | 2 | 3 | 4 |
|
||||
| | a | x | b | |
|
||||
| 5 | 6 | 7 | 8 | 9 |
|
||||
"""
|
||||
0 1 2 3 4
|
||||
a x b
|
||||
5 6 7 8 9
|
||||
"""
|
||||
|
||||
And the ways
|
||||
| nodes |
|
||||
@@ -29,11 +31,13 @@ Feature: Locating Nearest node on a Way - basic projection onto way
|
||||
|
||||
Scenario: Nearest - north-south way
|
||||
Given the node map
|
||||
| 0 | | 5 |
|
||||
| 1 | a | 6 |
|
||||
| 2 | x | 7 |
|
||||
| 3 | b | 8 |
|
||||
| 4 | | 9 |
|
||||
"""
|
||||
0 5
|
||||
1 a 6
|
||||
2 x 7
|
||||
3 b 8
|
||||
4 9
|
||||
"""
|
||||
|
||||
And the ways
|
||||
| nodes |
|
||||
@@ -54,12 +58,14 @@ Feature: Locating Nearest node on a Way - basic projection onto way
|
||||
|
||||
Scenario: Nearest - diagonal 1
|
||||
Given the node map
|
||||
| 8 | | 4 | | | |
|
||||
| | a | | 5 | | |
|
||||
| 0 | | x | | 6 | |
|
||||
| | 1 | | y | | 7 |
|
||||
| | | 2 | | b | |
|
||||
| | | | 3 | | 9 |
|
||||
"""
|
||||
8 4
|
||||
a 5
|
||||
0 x 6
|
||||
1 y 7
|
||||
2 b
|
||||
3 9
|
||||
"""
|
||||
|
||||
And the ways
|
||||
| nodes |
|
||||
@@ -80,12 +86,14 @@ Feature: Locating Nearest node on a Way - basic projection onto way
|
||||
|
||||
Scenario: Nearest - diagonal 2
|
||||
Given the node map
|
||||
| | | | 3 | | 9 |
|
||||
| | | 2 | | b | |
|
||||
| | 1 | | y | | 7 |
|
||||
| 0 | | x | | 6 | |
|
||||
| | a | | 5 | | |
|
||||
| 8 | | 4 | | | |
|
||||
"""
|
||||
3 9
|
||||
2 b
|
||||
1 y 7
|
||||
0 x 6
|
||||
a 5
|
||||
8 4
|
||||
"""
|
||||
|
||||
And the ways
|
||||
| nodes |
|
||||
|
||||
@@ -7,22 +7,24 @@ Feature: osrm-contract command line options: datasources
|
||||
Given the profile "testbot"
|
||||
Given the extract extra arguments "--generate-edge-lookup"
|
||||
And the node map
|
||||
| a | b |
|
||||
"""
|
||||
a b
|
||||
"""
|
||||
And the ways
|
||||
| nodes |
|
||||
| ab |
|
||||
And the speed file
|
||||
"""
|
||||
1,2,27
|
||||
2,1,27
|
||||
2,3,27
|
||||
3,2,27
|
||||
1,4,27
|
||||
4,1,27
|
||||
1,2,50
|
||||
2,1,50
|
||||
2,3,50
|
||||
3,2,50
|
||||
1,4,50
|
||||
4,1,50
|
||||
"""
|
||||
And the data has been extracted
|
||||
|
||||
Scenario: osrm-contract - Passing base file
|
||||
When I run "osrm-contract --segment-speed-file {speeds_file} {processed_file}"
|
||||
Then datasource names should contain "lua profile,25_osrmcontract_passing_base_file_speeds"
|
||||
Then datasource names should contain "lua profile,27_osrmcontract_passing_base_file_speeds"
|
||||
And it should exit successfully
|
||||
|
||||
@@ -0,0 +1,30 @@
|
||||
@contract @options @edge-weight-updates-over-factor
|
||||
Feature: osrm-contract command line option: edge-weight-updates-over-factor
|
||||
|
||||
Background: Log edge weight updates over given factor
|
||||
Given the node locations
|
||||
| node | lat | lon |
|
||||
| a | 0.1 | 0.1 |
|
||||
| b | 0.05 | 0.1 |
|
||||
| c | 0.3 | 0.1 |
|
||||
And the ways
|
||||
| nodes | highway |
|
||||
| ab | residential |
|
||||
| ac | primary |
|
||||
Given the profile "testbot"
|
||||
Given the speed file
|
||||
"""
|
||||
1,2,100
|
||||
1,3,100
|
||||
"""
|
||||
And the data has been saved to disk
|
||||
|
||||
Scenario: Logging weight with updates over factor of 2, long segment
|
||||
When I run "osrm-extract --profile {profile_file} {osm_file} --generate-edge-lookup"
|
||||
When I run "osrm-contract --edge-weight-updates-over-factor 2 --segment-speed-file {speeds_file} {processed_file}"
|
||||
And stderr should contain "weight updates"
|
||||
And stderr should contain "New speed: 100 kph"
|
||||
And I route I should get
|
||||
| from | to | route | speed |
|
||||
| a | b | ab,ab | 100 km/h |
|
||||
| a | c | ac,ac | 100 km/h |
|
||||
@@ -3,7 +3,9 @@ Feature: osrm-contract command line options: files
|
||||
Background:
|
||||
Given the profile "testbot"
|
||||
And the node map
|
||||
| a | b |
|
||||
"""
|
||||
a b
|
||||
"""
|
||||
And the ways
|
||||
| nodes |
|
||||
| ab |
|
||||
|
||||
@@ -6,7 +6,7 @@ Feature: osrm-contract command line options: version
|
||||
|
||||
Background:
|
||||
Given the profile "testbot"
|
||||
|
||||
|
||||
Scenario: osrm-contract - Version, short
|
||||
When I run "osrm-contract --v"
|
||||
Then stderr should be empty
|
||||
|
||||
@@ -7,7 +7,9 @@ Feature: osrm-extract command line options: files
|
||||
Background:
|
||||
Given the profile "testbot"
|
||||
And the node map
|
||||
| a | b |
|
||||
"""
|
||||
a b
|
||||
"""
|
||||
And the ways
|
||||
| nodes |
|
||||
| ab |
|
||||
|
||||
@@ -15,7 +15,9 @@ Feature: osrm-routed command line options: files
|
||||
Background:
|
||||
Given the profile "testbot"
|
||||
And the node map
|
||||
| a | b |
|
||||
"""
|
||||
a b
|
||||
"""
|
||||
And the ways
|
||||
| nodes |
|
||||
| ab |
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user