@routing @distance Feature: Distance calculation Scenario: Distance of a winding south-north path Given a grid size of 10 meters Given the nodes | a | b | | d | c | | e | f | | h | g | And the ways | nodes | | abcdefg | When I route I should get | from | to | route | distance | | a | b | abcdefg | 10 | | a | c | abcdefg | 20 | | a | d | abcdefg | 30 | | a | e | abcdefg | 40 | | a | f | abcdefg | 50 | | a | g | abcdefg | 60 | | a | h | abcdefg | 70 | Scenario: Distance of a winding east-west path Given a grid size of 10 meters Given the nodes | a | d | e | h | | b | c | f | g | And the ways | nodes | | abcdefg | When I route I should get | from | to | route | distance | | a | b | abcdefg | 10 | | a | c | abcdefg | 20 | | a | d | abcdefg | 30 | | a | e | abcdefg | 40 | | a | f | abcdefg | 50 | | a | g | abcdefg | 60 | | a | h | abcdefg | 70 | Scenario: Distances when traversing part of a way Given a grid size of 100 meters Given the nodes | a | 0 | 1 | 2 | | 9 | | | 3 | | 8 | | | 4 | | 7 | 6 | 5 | b | And the ways | nodes | | ab | When I route I should get | from | to | route | distance | | a | 0 | ab | 70 | | a | 1 | ab | 140 | | a | 2 | ab | 210 | | a | 3 | ab | 280 | | a | 4 | ab | 350 | | a | b | ab | 420 | | a | 5 | ab | 350 | | a | 6 | ab | 280 | | a | 7 | ab | 210 | | a | 8 | ab | 140 | | a | 9 | ab | 70 | | b | 5 | ab | 70 | | b | 6 | ab | 140 | | b | 7 | ab | 210 | | b | 8 | ab | 280 | | b | 9 | ab | 350 | | b | a | ab | 420 | | b | 0 | ab | 350 | | b | 1 | ab | 280 | | b | 2 | ab | 210 | | b | 3 | ab | 140 | | b | 4 | ab | 70 | Scenario: Geometric distances Given a grid size of 1000 meters Given the nodes | v | w | y | a | b | c | d | | u | | | | | | e | | t | | | | | | f | | s | | | x | | | g | | r | | | | | | h | | q | | | | | | i | | p | o | n | m | l | k | j | And the ways | nodes | | xa | | xb | | xc | | xd | | xe | | xf | | xg | | xh | | xi | | xj | | xk | | xl | | xm | | xn | | xo | | xp | | xq | | xr | | xs | | xt | | xu | | xv | | xw | | xy | When I route I should get | from | to | route | distance | | x | a | xa | 3000 | | x | b | xb | 3160 | | x | c | xc | 3600 | | x | d | xd | 4240 | | x | e | xe | 3600 | | x | f | xf | 3160 | | x | g | xg | 3000 | | x | h | xh | 3160 | | x | i | xi | 3600 | | x | j | xj | 4240 | | x | k | xk | 3600 | | x | l | xl | 3160 | | x | m | xm | 3000 | | x | n | xn | 3160 | | x | o | xo | 3600 | | x | p | xp | 4240 | | x | q | xq | 3600 | | x | r | xr | 3160 | | x | s | xs | 3000 | | x | t | xt | 3160 | | x | u | xu | 3600 | | x | v | xv | 4240 | | x | w | xw | 3600 | | x | y | xy | 3160 | Scenario: 1m distances Given a grid size of 1 meters Given the nodes | a | b | | | c | And the ways | nodes | | abc | When I route I should get | from | to | route | distance | | a | b | abc | 1 | | b | a | abc | 1 | | b | c | abc | 1 | | c | b | abc | 1 | | a | c | abc | 2 | | c | a | abc | 2 | Scenario: 10m distances Given a grid size of 10 meters Given the nodes | a | b | | | c | And the ways | nodes | | abc | When I route I should get | from | to | route | distance | | a | b | abc | 10 | | b | a | abc | 10 | | b | c | abc | 10 | | c | b | abc | 10 | | a | c | abc | 20 | | c | a | abc | 20 | Scenario: 100m distances Given a grid size of 100 meters Given the nodes | a | b | | | c | And the ways | nodes | | abc | When I route I should get | from | to | route | distance | | a | b | abc | 100 | | b | a | abc | 100 | | b | c | abc | 100 | | c | b | abc | 100 | | a | c | abc | 200 | | c | a | abc | 200 | Scenario: 1km distance Given a grid size of 1000 meters Given the nodes | a | b | | | c | And the ways | nodes | | abc | When I route I should get | from | to | route | distance | | a | b | abc | 1000 | | b | a | abc | 1000 | | b | c | abc | 1000 | | c | b | abc | 1000 | | a | c | abc | 2000 | | c | a | abc | 2000 | Scenario: 10km distances Given a grid size of 10000 meters Given the nodes | a | b | | | c | And the ways | nodes | | abc | When I route I should get | from | to | route | distance | | a | b | abc | 10000 | | b | a | abc | 10000 | | b | c | abc | 10000 | | c | b | abc | 10000 | | a | c | abc | 20000 | | c | a | abc | 20000 | Scenario: 100km distances Given a grid size of 100000 meters Given the nodes | a | b | | | c | And the ways | nodes | | abc | When I route I should get | from | to | route | distance | | a | b | abc | 100000 | | b | a | abc | 100000 | | b | c | abc | 100000 | | c | b | abc | 100000 | | a | c | abc | 200000 | | c | a | abc | 200000 | Scenario: 1000km distances Given a grid size of 1000000 meters Given the nodes | a | b | | | c | And the ways | nodes | | abc | When I route I should get | from | to | route | distance | | a | b | abc | 1000000 | | b | a | abc | 1000000 | | b | c | abc | 1000000 | | c | b | abc | 1000000 | | a | c | abc | 2000000 | | c | a | abc | 2000000 |