From b28077a4377d19a0f09b57a6848e22ed68740779 Mon Sep 17 00:00:00 2001 From: Michael Krasnyk Date: Fri, 30 Jun 2017 14:20:31 +0200 Subject: [PATCH] Use rate rounding up to tenth in routability tests --- features/car/access.feature | 40 +++++++-------- features/car/maxspeed.feature | 64 ++++++++++++------------ features/car/service.feature | 8 +-- features/car/speed.feature | 2 +- features/step_definitions/routability.js | 4 +- 5 files changed, 59 insertions(+), 59 deletions(-) diff --git a/features/car/access.feature b/features/car/access.feature index d0baca4e2..ea11b5238 100644 --- a/features/car/access.feature +++ b/features/car/access.feature @@ -183,9 +183,9 @@ Feature: Car - Restricted access Scenario: Car - designated HOV ways are rated low Then routability should be | highway | hov | bothw | forw_rate | backw_rate | - | primary | designated | x | 18 | 18 | - | primary | yes | x | 18 | 18 | - | primary | no | x | 18 | 18 | + | primary | designated | x | 18.2 | 18.2 | + | primary | yes | x | 18.2 | 18.2 | + | primary | no | x | 18.2 | 18.2 | # Models: # https://www.openstreetmap.org/way/124891268 @@ -201,24 +201,24 @@ Feature: Car - Restricted access Scenario: Car - a way with all lanes HOV-designated is highly penalized by default (similar to hov=designated) Then routability should be | highway | hov:lanes:forward | hov:lanes:backward | hov:lanes | oneway | forw | backw | forw_rate | backw_rate | - | primary | designated | designated | | | x | x | 18 | 18 | + | primary | designated | designated | | | x | x | 18.2 | 18.2 | # This test is flaky because non-deterministic turn generation sometimes emits a NoTurn here that is marked as restricted. #3769 - #| primary | | designated | | | x | x | 18 | 18 | - #| primary | designated | | | | x | x | 18 | 18 | - | primary | designated\|designated | designated\|designated | | | x | x | 18 | 18 | - | primary | designated\|no | designated\|no | | | x | x | 18 | 18 | - | primary | yes\|no | yes\|no | | | x | x | 18 | 18 | - | primary | | | | | x | x | 18 | 18 | - | primary | designated | | | -1 | | x | | 18 | - | primary | | designated | | -1 | | x | | 18 | - | primary | | | designated | yes | x | | 18 | | - | primary | | | designated | -1 | | x | | 18 | - | primary | | | designated\| | yes | x | | 18 | | - | primary | | | designated\| | -1 | | x | | 18 | - | primary | | | designated\|designated | yes | x | | 18 | | - | primary | | | designated\|designated | -1 | | x | | 18 | - | primary | | | designated\|yes | yes | x | | 18 | | - | primary | | | designated\|no | -1 | | x | | 18 | + #| primary | | designated | | | x | x | 18.2 | 18.2 | + #| primary | designated | | | | x | x | 18.2 | 18.2 | + | primary | designated\|designated | designated\|designated | | | x | x | 18.2 | 18.2 | + | primary | designated\|no | designated\|no | | | x | x | 18.2 | 18.2 | + | primary | yes\|no | yes\|no | | | x | x | 18.2 | 18.2 | + | primary | | | | | x | x | 18.2 | 18.2 | + | primary | designated | | | -1 | | x | | 18.2 | + | primary | | designated | | -1 | | x | | 18.2 | + | primary | | | designated | yes | x | | 18.2 | | + | primary | | | designated | -1 | | x | | 18.2 | + | primary | | | designated\| | yes | x | | 18.2 | | + | primary | | | designated\| | -1 | | x | | 18.2 | + | primary | | | designated\|designated | yes | x | | 18.2 | | + | primary | | | designated\|designated | -1 | | x | | 18.2 | + | primary | | | designated\|yes | yes | x | | 18.2 | | + | primary | | | designated\|no | -1 | | x | | 18.2 | Scenario: Car - these toll roads always work Then routability should be diff --git a/features/car/maxspeed.feature b/features/car/maxspeed.feature index 1ae1a666a..2c6da2714 100644 --- a/features/car/maxspeed.feature +++ b/features/car/maxspeed.feature @@ -88,18 +88,18 @@ OSRM will use 4/5 of the projected free-flow speed. | highway | maxspeed | width | maxspeed:forward | maxspeed:backward | forw | backw | forw_rate | backw_rate | | primary | | | | | 64 km/h | 64 km/h | 18 | 18 | | primary | | 3 | | | 64 km/h | 64 km/h | 9 | 9 | - | primary | 60 | | | | 47 km/h | 47 km/h | 13 | 13 | - | primary | 60 | 3 | | | 47 km/h | 47 km/h | 7 | 7 | - | primary | | | 60 | | 47 km/h | 64 km/h | 13 | 18 | - | primary | | 3 | 60 | | 47 km/h | 64 km/h | 7 | 9 | - | primary | | | | 60 | 64 km/h | 47 km/h | 18 | 13 | - | primary | | 3 | | 60 | 64 km/h | 47 km/h | 9 | 7 | - | primary | 15 | | 60 | | 47 km/h | 11 km/h | 13 | 3 | - | primary | 15 | 3 | 60 | | 48 km/h | 12 km/h | 7 | 2 | - | primary | 15 | | | 60 | 12 km/h | 47 km/h | 3 | 13 | - | primary | 15 | 3 | | 60 | 12 km/h | 47 km/h | 2 | 7 | - | primary | 15 | | 30 | 60 | 23 km/h | 47 km/h | 7 | 13 | - | primary | 15 | 3 | 30 | 60 | 23 km/h | 47 km/h | 3 | 7 | + | primary | 60 | | | | 47 km/h | 47 km/h | 13.3 | 13.3 | + | primary | 60 | 3 | | | 47 km/h | 47 km/h | 6.7 | 6.7 | + | primary | | | 60 | | 47 km/h | 64 km/h | 13.3 | 18 | + | primary | | 3 | 60 | | 47 km/h | 64 km/h | 6.7 | 9 | + | primary | | | | 60 | 64 km/h | 47 km/h | 18 | 13.3 | + | primary | | 3 | | 60 | 64 km/h | 47 km/h | 9 | 6.7 | + | primary | 15 | | 60 | | 47 km/h | 11 km/h | 13.3 | 3.3 | + | primary | 15 | 3 | 60 | | 48 km/h | 12 km/h | 6.7 | 1.7 | + | primary | 15 | | | 60 | 12 km/h | 47 km/h | 3.3 | 13.3 | + | primary | 15 | 3 | | 60 | 12 km/h | 47 km/h | 1.7 | 6.7 | + | primary | 15 | | 30 | 60 | 23 km/h | 47 km/h | 6.7 | 13.3 | + | primary | 15 | 3 | 30 | 60 | 23 km/h | 47 km/h | 3.3 | 6.7 | Scenario: Car - Single lane streets be ignored or incur a penalty Then routability should be @@ -107,33 +107,33 @@ OSRM will use 4/5 of the projected free-flow speed. | highway | maxspeed | lanes | maxspeed:forward | maxspeed:backward | forw | backw | forw_rate | backw_rate | | primary | | | | | 64 km/h | 64 km/h | 18 | 18 | | primary | | 1 | | | 64 km/h | 64 km/h | 9 | 9 | - | primary | 60 | | | | 47 km/h | 47 km/h | 13 | 13 | - | primary | 60 | 1 | | | 47 km/h | 47 km/h | 7 | 7 | - | primary | | | 60 | | 47 km/h | 64 km/h | 13 | 18 | - | primary | | 1 | 60 | | 47 km/h | 64 km/h | 7 | 9 | - | primary | | | | 60 | 64 km/h | 47 km/h | 18 | 13 | - | primary | | 1 | | 60 | 64 km/h | 47 km/h | 9 | 7 | - | primary | 15 | | 60 | | 47 km/h | 11 km/h | 13 | 3 | - | primary | 15 | 1 | 60 | | 48 km/h | 12 km/h | 7 | 2 | - | primary | 15 | | | 60 | 12 km/h | 47 km/h | 3 | 13 | - | primary | 15 | 1 | | 60 | 12 km/h | 47 km/h | 2 | 7 | - | primary | 15 | | 30 | 60 | 23 km/h | 47 km/h | 7 | 13 | - | primary | 15 | 1 | 30 | 60 | 23 km/h | 47 km/h | 3 | 7 | + | primary | 60 | | | | 47 km/h | 47 km/h | 13.3 | 13.3 | + | primary | 60 | 1 | | | 47 km/h | 47 km/h | 6.7 | 6.7 | + | primary | | | 60 | | 47 km/h | 64 km/h | 13.3 | 18 | + | primary | | 1 | 60 | | 47 km/h | 64 km/h | 6.7 | 9 | + | primary | | | | 60 | 64 km/h | 47 km/h | 18 | 13.3 | + | primary | | 1 | | 60 | 64 km/h | 47 km/h | 9 | 6.7 | + | primary | 15 | | 60 | | 47 km/h | 11 km/h | 13.3 | 3.3 | + | primary | 15 | 1 | 60 | | 48 km/h | 12 km/h | 6.7 | 1.7 | + | primary | 15 | | | 60 | 12 km/h | 47 km/h | 3.3 | 13.3 | + | primary | 15 | 1 | | 60 | 12 km/h | 47 km/h | 1.7 | 6.7 | + | primary | 15 | | 30 | 60 | 23 km/h | 47 km/h | 6.7 | 13.3 | + | primary | 15 | 1 | 30 | 60 | 23 km/h | 47 km/h | 3.3 | 6.7 | Scenario: Car - Single lane streets only incur a penalty for two-way streets Then routability should be | highway | maxspeed | lanes | oneway | forw | backw | forw_rate | backw_rate | - | primary | 30 | 1 | yes | 23 km/h | | 7 | | - | primary | 30 | 1 | -1 | | 23 km/h | | 7 | - | primary | 30 | 1 | | 23 km/h | 23 km/h | 3 | 3 | - | primary | 30 | 2 | | 23 km/h | 23 km/h | 7 | 7 | + | primary | 30 | 1 | yes | 23 km/h | | 6.7 | | + | primary | 30 | 1 | -1 | | 23 km/h | | 6.7 | + | primary | 30 | 1 | | 23 km/h | 23 km/h | 3.3 | 3.3 | + | primary | 30 | 2 | | 23 km/h | 23 km/h | 6.7 | 6.7 | Scenario: Car - Forward/backward maxspeed on reverse oneways Then routability should be | highway | maxspeed | maxspeed:forward | maxspeed:backward | oneway | forw | backw | forw_rate | backw_rate | | primary | | | | -1 | | 64 km/h | | 18 | - | primary | 30 | | | -1 | | 23 km/h | | 7 | + | primary | 30 | | | -1 | | 23 km/h | | 6.7 | | primary | | 30 | | -1 | | 64 km/h | | 18 | - | primary | | | 30 | -1 | | 23 km/h | | 7 | - | primary | 20 | 30 | | -1 | | 15 km/h | | 4 | - | primary | 20 | | 30 | -1 | | 23 km/h | | 7 | + | primary | | | 30 | -1 | | 23 km/h | | 6.7 | + | primary | 20 | 30 | | -1 | | 15 km/h | | 4.4 | + | primary | 20 | | 30 | -1 | | 23 km/h | | 6.7 | diff --git a/features/car/service.feature b/features/car/service.feature index f294652be..2bdd9780a 100644 --- a/features/car/service.feature +++ b/features/car/service.feature @@ -7,8 +7,8 @@ Feature: Car - Surfaces Scenario: Car - Ways tagged service should reduce speed Then routability should be | highway | service | forw | backw | forw_rate | - | service | alley | 15 km/h +-1 | 15 km/h +-1 | 2 | + | service | alley | 15 km/h +-1 | 15 km/h +-1 | 2.1 | | service | emergency_access | | | | - | service | driveway | 15 km/h +-1 | 15 km/h +-1 | 2 | - | service | drive-through | 15 km/h +-1 | 15 km/h +-1 | 2 | - | service | parking | 15 km/h +-1 | 15 km/h +-1 | 2 | + | service | driveway | 15 km/h +-1 | 15 km/h +-1 | 2.1 | + | service | drive-through | 15 km/h +-1 | 15 km/h +-1 | 2.1 | + | service | parking | 15 km/h +-1 | 15 km/h +-1 | 2.1 | diff --git a/features/car/speed.feature b/features/car/speed.feature index 099983c2a..bbbb67b6f 100644 --- a/features/car/speed.feature +++ b/features/car/speed.feature @@ -50,4 +50,4 @@ Feature: Car - speeds Then routability should be | highway | side_road | forw | backw | forw_rate | backw_rate | - | primary | yes | 64 km/h | 64 km/h | 14 | 14 | + | primary | yes | 64 km/h | 64 km/h | 14.4 | 14.4 | diff --git a/features/step_definitions/routability.js b/features/step_definitions/routability.js index f9e8a01be..36929ff98 100644 --- a/features/step_definitions/routability.js +++ b/features/step_definitions/routability.js @@ -34,7 +34,7 @@ module.exports = function () { outputRow[rate] = result[direction].status ? result[direction].status.toString() : ''; break; - case /^\d+$/.test(want): + case /^\d+(\.\d+){0,1}$/.test(want): if (result[direction].rate !== undefined && !isNaN(result[direction].rate)) { outputRow[rate] = result[direction].rate.toString(); } else { @@ -135,7 +135,7 @@ module.exports = function () { if (r.route.split(',')[0] === util.format('w%d', i)) { r.time = r.json.routes[0].duration; r.distance = r.json.routes[0].distance; - r.rate = Math.round(r.distance / r.json.routes[0].weight); + r.rate = Math.round(r.distance / r.json.routes[0].weight * 10) / 10.; r.speed = r.time > 0 ? parseInt(3.6 * r.distance / r.time) : null; // use the mode of the first step of the route