1@routing @bicycle @access
2Feature: Bike - Access tags on ways
3# Reference: http://wiki.openstreetmap.org/wiki/Key:access
4
5    Background:
6        Given the profile "bicycle"
7
8    Scenario: Bike - Access tag hierarchy on ways
9        Then routability should be
10            | highway | access | vehicle | bicycle | bothw   |
11            | primary |        |         |         | cycling |
12            | primary | yes    |         |         | cycling |
13            | primary | no     |         |         |         |
14            | primary |        | yes     |         | cycling |
15            | primary |        | no      |         |         |
16            | primary | no     | yes     |         | cycling |
17            | primary | yes    | no      |         |         |
18            | primary |        |         | yes     | cycling |
19            | primary |        |         | no      |         |
20            | primary | no     |         | yes     | cycling |
21            | primary | yes    |         | no      |         |
22            | primary |        | no      | yes     | cycling |
23            | primary |        | yes     | no      |         |
24
25    @todo
26    Scenario: Bike - Access tag in forward direction
27        Then routability should be
28            | highway | access:forward | vehicle:forward | bicycle:forward | forw    | backw |
29            | primary |                |                 |                 | cycling |       |
30            | primary | yes            |                 |                 | cycling |       |
31            | primary | no             |                 |                 |         |       |
32            | primary |                | yes             |                 | cycling |       |
33            | primary |                | no              |                 |         |       |
34            | primary | no             | yes             |                 | cycling |       |
35            | primary | yes            | no              |                 |         |       |
36            | primary |                |                 | yes             | cycling |       |
37            | primary |                |                 | no              |         |       |
38            | primary | no             |                 | yes             | cycling |       |
39            | primary | yes            |                 | no              |         |       |
40            | primary |                | no              | yes             | cycling |       |
41            | primary |                | yes             | no              |         |       |
42            | runway  |                |                 |                 | cycling |       |
43            | runway  | yes            |                 |                 | cycling |       |
44            | runway  | no             |                 |                 |         |       |
45            | runway  |                | yes             |                 | cycling |       |
46            | runway  |                | no              |                 |         |       |
47            | runway  | no             | yes             |                 | cycling |       |
48            | runway  | yes            | no              |                 |         |       |
49            | runway  |                |                 | yes             | cycling |       |
50            | runway  |                |                 | no              |         |       |
51            | runway  | no             |                 | yes             | cycling |       |
52            | runway  | yes            |                 | no              |         |       |
53            | runway  |                | no              | yes             | cycling |       |
54            | runway  |                | yes             | no              |         |       |
55
56    @todo
57    Scenario: Bike - Access tag in backward direction
58        Then routability should be
59            | highway | access:forward | vehicle:forward | bicycle:forward | forw | backw   |
60            | primary |                |                 |                 |      | cycling |
61            | primary | yes            |                 |                 |      | cycling |
62            | primary | no             |                 |                 |      |         |
63            | primary |                | yes             |                 |      | cycling |
64            | primary |                | no              |                 |      |         |
65            | primary | no             | yes             |                 |      | cycling |
66            | primary | yes            | no              |                 |      |         |
67            | primary |                |                 | yes             |      | cycling |
68            | primary |                |                 | no              |      |         |
69            | primary | no             |                 | yes             |      | cycling |
70            | primary | yes            |                 | no              |      |         |
71            | primary |                | no              | yes             |      | cycling |
72            | primary |                | yes             | no              |      |         |
73            | runway  |                |                 |                 |      | cycling |
74            | runway  | yes            |                 |                 |      | cycling |
75            | runway  | no             |                 |                 |      |         |
76            | runway  |                | yes             |                 |      | cycling |
77            | runway  |                | no              |                 |      |         |
78            | runway  | no             | yes             |                 |      | cycling |
79            | runway  | yes            | no              |                 |      |         |
80            | runway  |                |                 | yes             |      | cycling |
81            | runway  |                |                 | no              |      |         |
82            | runway  | no             |                 | yes             |      | cycling |
83            | runway  | yes            |                 | no              |      |         |
84            | runway  |                | no              | yes             |      | cycling |
85            | runway  |                | yes             | no              |      |         |
86
87    Scenario: Bike - Overwriting implied acccess on ways
88        Then routability should be
89            | highway  | access | vehicle | bicycle | bothw   |
90            | cycleway |        |         |         | cycling |
91            | runway   |        |         |         |         |
92            | cycleway | no     |         |         |         |
93            | cycleway |        | no      |         |         |
94            | cycleway |        |         | no      |         |
95            | runway   | yes    |         |         | cycling |
96            | runway   |        | yes     |         | cycling |
97            | runway   |        |         | yes     | cycling |
98
99    Scenario: Bike - Access tags on ways
100        Then routability should be
101            | access       | vehicle      | bicycle      | bothw   |
102            |              |              |              | cycling |
103            | yes          |              |              | cycling |
104            | permissive   |              |              | cycling |
105            | designated   |              |              | cycling |
106            | some_tag     |              |              | cycling |
107            | no           |              |              |         |
108            | private      |              |              |         |
109            | agricultural |              |              |         |
110            | forestry     |              |              |         |
111            | delivery     |              |              |         |
112            |              | yes          |              | cycling |
113            |              | permissive   |              | cycling |
114            |              | designated   |              | cycling |
115            |              | some_tag     |              | cycling |
116            |              | no           |              |         |
117            |              | private      |              |         |
118            |              | agricultural |              |         |
119            |              | forestry     |              |         |
120            |              | delivery     |              |         |
121            |              |              | yes          | cycling |
122            |              |              | permissive   | cycling |
123            |              |              | designated   | cycling |
124            |              |              | some_tag     | cycling |
125            |              |              | no           |         |
126            |              |              | private      |         |
127            |              |              | agricultural |         |
128            |              |              | forestry     |         |
129            |              |              | delivery     |         |
130            |              |              | use_sidepath |         |
131
132    Scenario: Bike - Access tags on both node and way
133        Then routability should be
134            | access   | node/access | bothw   |
135            | yes      | yes         | cycling |
136            | yes      | no          |         |
137            | yes      | some_tag    | cycling |
138            | no       | yes         |         |
139            | no       | no          |         |
140            | no       | some_tag    |         |
141            | some_tag | yes         | cycling |
142            | some_tag | no          |         |
143            | some_tag | some_tag    | cycling |
144
145    Scenario: Bike - Access combinations
146        Then routability should be
147            | highway     | access     | vehicle    | bicycle    | forw    | backw   |
148            | runway      | private    |            | yes        | cycling | cycling |
149            | footway     |            | no         | permissive | cycling | cycling |
150            | motorway    |            |            | yes        | cycling |         |
151            | track       | forestry   |            | permissive | cycling | cycling |
152            | cycleway    | yes        | designated | no         |         |         |
153            | primary     |            | yes        | private    |         |         |
154            | residential | permissive |            | no         |         |         |
155
156    Scenario: Bike - Ignore access tags for other modes
157        Then routability should be
158            | highway  | boat | motor_vehicle | moped | bothw   |
159            | river    | yes  |               |       |         |
160            | cycleway | no   |               |       | cycling |
161            | runway   |      | yes           |       |         |
162            | cycleway |      | no            |       | cycling |
163            | runway   |      |               | yes   |         |
164            | cycleway |      |               | no    | cycling |
165
166    Scenario: Bike - Bridleways when access is explicit
167        Then routability should be
168            | highway   | horse      | foot | bicycle | bothw        |
169            | bridleway |            |      | yes     | cycling      |
170            | bridleway |            | yes  |         | pushing bike |
171            | bridleway | designated |      |         |              |
172            | bridleway |            |      |         |              |
173
174    Scenario: Bike - Tram with oneway when access is implicit
175        Then routability should be
176            | highway     | railway | access | oneway | forw    | backw        |
177            | residential | tram    |        | yes    | cycling | pushing bike |
178            | service     | tram    | psv    | yes    | cycling | pushing bike |
179
180    Scenario: Bike - Access combinations
181        Then routability should be
182            | highway    | access     | bothw   |
183            | primary    | permissive | cycling |
184            | steps      | permissive | cycling |
185            | footway    | permissive | cycling |
186            | garbagetag | permissive | cycling |
187