@match @testbot Feature: Basic Map Matching Background: Given the profile "testbot" Given a grid size of 10 meters Given the extract extra arguments "--generate-edge-lookup" Given the query options | geometries | geojson | Scenario: Testbot - Map matching with outlier that has no candidate Given a grid size of 100 meters Given the node map """ a b c d 1 """ And the ways | nodes | oneway | | abcd | no | When I match I should get | trace | timestamps | matchings | | ab1d | 0 1 2 3 | ad | Scenario: Testbot - Map matching with trace splitting Given the node map """ a b c d e """ And the ways | nodes | oneway | | abcd | no | When I match I should get | trace | timestamps | matchings | | abcd | 0 1 62 63 | ab,cd | Scenario: Testbot - Map matching with core factor Given the contract extra arguments "--core 0.8" Given the node map """ a b c d e """ And the ways | nodes | oneway | | abcd | no | When I match I should get | trace | timestamps | matchings | | abcd | 0 1 2 3 | abcd | Scenario: Testbot - Map matching with small distortion Given the node map """ a b c d e f h k """ # The second way does not need to be a oneway # but the grid spacing triggers the uturn # detection on f And the ways | nodes | oneway | | abcde | no | | bfhke | yes | When I match I should get | trace | matchings | | afcde | abcde | Scenario: Testbot - Map matching with oneways Given a grid size of 10 meters Given the node map """ a b c d e f g h """ And the ways | nodes | oneway | | abcd | yes | | hgfe | yes | When I match I should get | trace | matchings | | dcba | hgfe | Scenario: Testbot - Matching with oneway streets Given a grid size of 10 meters Given the node map """ a b c d e f g h """ And the ways | nodes | oneway | | ab | yes | | bc | yes | | cd | yes | | hg | yes | | gf | yes | | fe | yes | When I match I should get | trace | matchings | | dcba | hgfe | | efgh | abcd | Scenario: Testbot - request duration annotations Given the query options | annotations | duration | Given the node map """ a b c d e g h i """ And the ways | nodes | oneway | | abcdegh | no | | ci | no | And the speed file """ 1,2,36 """ And the contract extra arguments "--segment-speed-file {speeds_file}" When I match I should get | trace | matchings | a:duration | | ach | ach | 1:1,0:1:1:2:1 | Scenario: Testbot - Duration details Given the query options | annotations | duration,nodes | Given the node map """ a b c d e g h i """ And the ways | nodes | oneway | | abcdegh | no | | ci | no | And the speed file """ 1,2,36 """ And the contract extra arguments "--segment-speed-file {speeds_file}" When I match I should get | trace | matchings | a:duration | | abeh | abeh | 1:0,1:1:1,0:2:1 | | abci | abci | 1:0,1,0:1 | # The following is the same as the above, but separated for readability (line length) When I match I should get | trace | matchings | a:nodes | | abeh | abeh | 1:2:3,2:3:4:5,4:5:6:7 | | abci | abci | 1:2:3,2:3,2:3:8 | Scenario: Testbot - Regression test for #3037 Given the query options | overview | simplified | | geometries | geojson | Given the node map """ a--->---b--->---c | | | | ^ | | | | e--->---f--->---g """ And the ways | nodes | oneway | | abc | yes | | efg | yes | | ae | yes | | cg | yes | | fb | yes | When I match I should get | trace | matchings | geometry | | efbc | efbc | 1,0.99964,1.00036,0.99964,1.00036,1,1.000719,1 | Scenario: Testbot - Geometry details using geojson Given the query options | overview | full | | geometries | geojson | Given the node map """ a b c d """ And the ways | nodes | oneway | | abc | no | | bd | no | When I match I should get | trace | matchings | geometry | | abd | abd | 1,1,1.00009,1,1.00009,1,1.00009,0.99991 | Scenario: Testbot - Geometry details using polyline Given the query options | overview | full | | geometries | polyline | Given the node map """ a b c d """ And the ways | nodes | oneway | | abc | no | | bd | no | When I match I should get | trace | matchings | geometry | | abd | abd | 1,1,1,1.00009,1,1.00009,0.99991,1.00009 | Scenario: Testbot - Geometry details using polyline6 Given the query options | overview | full | | geometries | polyline6 | Given the node map """ a b c d """ And the ways | nodes | oneway | | abc | no | | bd | no | When I match I should get | trace | matchings | geometry | | abd | abd | 1,1,1,1.00009,1,1.00009,0.99991,1.00009 | Scenario: Testbot - Matching alternatives count test Given the node map """ a b c d e f g h i """ And the ways | nodes | oneway | | abcdef | yes | | dghi | yes | When I match I should get | trace | matchings | alternatives | | abcdef | abcde | 0,0,0,0,1,1 | Scenario: Testbot - Speed greater than speed threshhold Given a grid size of 10 meters Given the query options | geometries | geojson | Given the node map """ a b ---- x | | y --- c d """ And the ways | nodes | oneway | | abxycd | no | When I match I should get | trace | timestamps | matchings | | abcd | 0 1 2 3 | ab,cd | Scenario: Testbot - Speed less than speed threshhold Given a grid size of 10 meters Given the query options | geometries | geojson | Given the node map """ a b c d """ And the ways | nodes | oneway | | abcd | no | When I match I should get | trace | timestamps | matchings | | abcd | 0 1 2 3 | abcd | # Regression test 1 for issue 3176 Scenario: Testbot - multiple segments: properly expose OSM IDs Given the query options | annotations | true | Given the node map """ a-1-b--c--d--e--f-2-g """ And the nodes | node | id | | a | 1 | | b | 2 | | c | 3 | | d | 4 | | e | 5 | | f | 6 | | g | 7 | And the ways | nodes | oneway | | ab | no | | bc | no | | cd | no | | de | no | | ef | no | | fg | no | When I match I should get | trace | a:nodes | | 12 | 1:2:3:4:5:6:7 | | 21 | 7:6:5:4:3:2:1 | # Regression test 2 for issue 3176 Scenario: Testbot - same edge: properly expose OSM IDs Given the query options | annotations | true | Given the node map """ a-1-b--c--d--e-2-f """ And the nodes | node | id | | a | 1 | | b | 2 | | c | 3 | | d | 4 | | e | 5 | | f | 6 | And the ways | nodes | oneway | | abcdef | no | When I match I should get | trace | a:nodes | | 12 | 1:2:3:4:5:6 | | 21 | 6:5:4:3:2:1 |