1@routing @car @ferry
2Feature: Car - Handle ferry routes
3
4    Background:
5        Given the profile "car"
6
7    Scenario: Car - Use a ferry route
8        Given the node map
9            """
10            a b c
11                d
12                e f g
13            """
14
15        And the ways
16            | nodes | highway | route | bicycle |
17            | abc   | primary |       |         |
18            | cde   |         | ferry | yes     |
19            | efg   | primary |       |         |
20
21        When I route I should get
22            | from | to | route           | modes                         |
23            | a    | g  | abc,cde,efg,efg | driving,ferry,driving,driving |
24            | b    | f  | abc,cde,efg,efg | driving,ferry,driving,driving |
25            | e    | c  | cde,cde         | ferry,ferry                   |
26            | e    | b  | cde,abc,abc     | ferry,driving,driving         |
27            | e    | a  | cde,abc,abc     | ferry,driving,driving         |
28            | c    | e  | cde,cde         | ferry,ferry                   |
29            | c    | f  | cde,efg,efg     | ferry,driving,driving         |
30            | c    | g  | cde,efg,efg     | ferry,driving,driving         |
31
32
33    Scenario: Car - Use default speeds to calculate duration if no duration given
34        Given the node map
35            """
36            a b c
37                d
38                e f g
39            """
40
41        And the ways
42            | nodes | highway | route |
43            | abc   | primary |       |
44            | cde   |         | ferry |
45            | efg   | primary |       |
46
47        When I route I should get
48            | from | to | route           | modes                         | speed   | time    |
49            | a    | g  | abc,cde,efg,efg | driving,ferry,driving,driving | 12 km/h | 173.4s  |
50            | b    | f  | abc,cde,efg,efg | driving,ferry,driving,driving | 9 km/h  | 162.4s  |
51            | c    | e  | cde,cde         | ferry,ferry                   | 5 km/h  | 151.4s  |
52            | e    | c  | cde,cde         | ferry,ferry                   | 5 km/h  | 151.4s  |
53
54    Scenario: Car - Properly handle simple durations
55        Given the node map
56            """
57            a b c
58                d
59                e f g
60            """
61
62        And the ways
63            | nodes | highway | route | duration |
64            | abc   | primary |       |          |
65            | cde   |         | ferry | 00:01:00 |
66            | efg   | primary |       |          |
67
68        When I route I should get
69            | from | to | route           | modes                         | speed   | time  |
70            | a    | g  | abc,cde,efg,efg | driving,ferry,driving,driving | 24 km/h | 89.4s |
71            | b    | f  | abc,cde,efg,efg | driving,ferry,driving,driving | 18 km/h | 78.4s |
72            | c    | e  | cde,cde         | ferry,ferry                   | 11 km/h | 67.4s |
73            | e    | c  | cde,cde         | ferry,ferry                   | 11 km/h | 67.4s |
74
75    Scenario: Car - Properly handle ISO 8601 durations
76        Given the node map
77            """
78            a b c
79                d
80                e f g
81            """
82
83        And the ways
84            | nodes | highway | route | duration |
85            | abc   | primary |       |          |
86            | cde   |         | ferry | PT1M     |
87            | efg   | primary |       |          |
88
89        When I route I should get
90            | from | to | route           | modes                         | speed   | time  |
91            | a    | g  | abc,cde,efg,efg | driving,ferry,driving,driving | 24 km/h | 89.4s |
92            | b    | f  | abc,cde,efg,efg | driving,ferry,driving,driving | 18 km/h | 78.4s |
93            | c    | e  | cde,cde         | ferry,ferry                   | 11 km/h | 67.4s |
94            | e    | c  | cde,cde         | ferry,ferry                   | 11 km/h | 67.4s |
95
96	@snapping
97    Scenario: Car - Snapping when using a ferry
98        Given the node map
99            """
100            a b   c d   e f
101            """
102
103        And the ways
104            | nodes | highway | route | duration |
105            | ab    | primary |       |          |
106            | bcde  |         | ferry | 0:10     |
107            | ef    | primary |       |          |
108
109        When I route I should get
110            | from | to | route     | modes       | time  |
111            | c    | d  | bcde,bcde | ferry,ferry | 600s  |
112
113        Given the query options
114          | geometries     | geojson                  |
115          | overview       | full                     |
116
117        # Note that matching *should* work across unsnappable ferries
118        When I match I should get
119          | trace | geometry             | duration |
120          | abcdef| 1,1,1.000899,1,1.000899,1,1.002697,1,1.002697,1,1.003596,1,1.003596,1,1.005394,1,1.005394,1,1.006293,1 | 610.9      |
121