229 lines
		
	
	
		
			6.9 KiB
		
	
	
	
		
			Gherkin
		
	
	
	
	
	
			
		
		
	
	
			229 lines
		
	
	
		
			6.9 KiB
		
	
	
	
		
			Gherkin
		
	
	
	
	
	
| @routing @distance @testbot
 | |
| Feature: Distance calculation
 | |
| 
 | |
|     Background:
 | |
|         Given the profile "testbot"
 | |
| 
 | |
|     Scenario: 100m distance
 | |
|         Given a grid size of 100 meters
 | |
|         Given the node map
 | |
|             | a | b |
 | |
| 
 | |
|         And the ways
 | |
|             | nodes |
 | |
|             | ab    |
 | |
| 
 | |
|         When I route I should get
 | |
|             | from | to | route | distance  |
 | |
|             | a    | b  | ab,ab | 100m +- 2 |
 | |
| 
 | |
|     Scenario: Distance should equal sum of segments, leftwinded
 | |
|         Given the node map
 | |
|             | e |   |
 | |
|             | d | c |
 | |
|             | a | b |
 | |
| 
 | |
|         And the ways
 | |
|             | nodes |
 | |
|             | abcde |
 | |
| 
 | |
|         When I route I should get
 | |
|             | from | to | route       | distance |
 | |
|             | a    | d  | abcde,abcde | 300m +-2 |
 | |
| 
 | |
|     Scenario: Distance should equal sum of segments, rightwinded
 | |
|         Given the node map
 | |
|             |   | e |
 | |
|             | c | d |
 | |
|             | b | a |
 | |
| 
 | |
|         And the ways
 | |
|             | nodes |
 | |
|             | abcde |
 | |
| 
 | |
|         When I route I should get
 | |
|             | from | to | route       | distance |
 | |
|             | a    | d  | abcde,abcde | 300m +-2 |
 | |
| 
 | |
|     Scenario: 10m distances
 | |
|         Given a grid size of 10 meters
 | |
|         Given the node map
 | |
|             | a | b |
 | |
|             |   | c |
 | |
| 
 | |
|         And the ways
 | |
|             | nodes |
 | |
|             | abc   |
 | |
| 
 | |
|         When I route I should get
 | |
|             | from | to | route   | distance |
 | |
|             | a    | b  | abc,abc | 10m +-2  |
 | |
|             | b    | a  | abc,abc | 10m +-2  |
 | |
|             | b    | c  | abc,abc | 10m +-2  |
 | |
|             | c    | b  | abc,abc | 10m +-2  |
 | |
|             | a    | c  | abc,abc | 20m +-4  |
 | |
|             | c    | a  | abc,abc | 20m +-4  |
 | |
| 
 | |
|     Scenario: 100m distances
 | |
|         Given a grid size of 100 meters
 | |
|         Given the node map
 | |
|             | a | b |
 | |
|             |   | c |
 | |
| 
 | |
|         And the ways
 | |
|             | nodes |
 | |
|             | abc   |
 | |
| 
 | |
|         When I route I should get
 | |
|             | from | to | route   | distance |
 | |
|             | a    | b  | abc,abc | 100m +-2 |
 | |
|             | b    | a  | abc,abc | 100m +-2 |
 | |
|             | b    | c  | abc,abc | 100m +-2 |
 | |
|             | c    | b  | abc,abc | 100m +-2 |
 | |
|             | a    | c  | abc,abc | 200m +-4 |
 | |
|             | c    | a  | abc,abc | 200m +-4 |
 | |
| 
 | |
|     Scenario: 1km distance
 | |
|         Given a grid size of 1000 meters
 | |
|         Given the node map
 | |
|             | a | b |
 | |
|             |   | c |
 | |
| 
 | |
|         And the ways
 | |
|             | nodes |
 | |
|             | abc   |
 | |
| 
 | |
|         When I route I should get
 | |
|             | from | to | route   | distance  |
 | |
|             | a    | b  | abc,abc | 1000m +-2 |
 | |
|             | b    | a  | abc,abc | 1000m +-2 |
 | |
|             | b    | c  | abc,abc | 1000m +-2 |
 | |
|             | c    | b  | abc,abc | 1000m +-2 |
 | |
|             | a    | c  | abc,abc | 2000m +-4 |
 | |
|             | c    | a  | abc,abc | 2000m +-4 |
 | |
| 
 | |
|     Scenario: Distance of a winding south-north path
 | |
|         Given a grid size of 10 meters
 | |
|         Given the node map
 | |
|             | a | b |
 | |
|             | d | c |
 | |
|             | e | f |
 | |
|             | h | g |
 | |
| 
 | |
|         And the ways
 | |
|             | nodes    |
 | |
|             | abcdefgh |
 | |
| 
 | |
|         When I route I should get
 | |
|             | from | to | route             | distance |
 | |
|             | a    | b  | abcdefgh,abcdefgh | 10m +-2  |
 | |
|             | a    | c  | abcdefgh,abcdefgh | 20m +-4  |
 | |
|             | a    | d  | abcdefgh,abcdefgh | 30m +-6  |
 | |
|             | a    | e  | abcdefgh,abcdefgh | 40m +-8  |
 | |
|             | a    | f  | abcdefgh,abcdefgh | 50m +-10 |
 | |
|             | a    | g  | abcdefgh,abcdefgh | 60m +-12 |
 | |
|             | a    | h  | abcdefgh,abcdefgh | 70m +-14 |
 | |
| 
 | |
|     Scenario: Distance of a winding east-west path
 | |
|         Given a grid size of 10 meters
 | |
|         Given the node map
 | |
|             | a | d | e | h |
 | |
|             | b | c | f | g |
 | |
| 
 | |
|         And the ways
 | |
|             | nodes    |
 | |
|             | abcdefgh |
 | |
| 
 | |
|         When I route I should get
 | |
|             | from | to | route             | distance |
 | |
|             | a    | b  | abcdefgh,abcdefgh | 10m +-2  |
 | |
|             | a    | c  | abcdefgh,abcdefgh | 20m +-4  |
 | |
|             | a    | d  | abcdefgh,abcdefgh | 30m +-6  |
 | |
|             | a    | e  | abcdefgh,abcdefgh | 40m +-8  |
 | |
|             | a    | f  | abcdefgh,abcdefgh | 50m +-10 |
 | |
|             | a    | g  | abcdefgh,abcdefgh | 60m +-12 |
 | |
|             | a    | h  | abcdefgh,abcdefgh | 70m +-14 |
 | |
| 
 | |
|     Scenario: Geometric distances
 | |
|         Given a grid size of 100 meters
 | |
|         Given the node map
 | |
|             | 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,xa | 300m +-2 |
 | |
|             | x    | b  | xb,xb | 316m +-2 |
 | |
|             | x    | c  | xc,xc | 360m +-2 |
 | |
|             | x    | d  | xd,xd | 424m +-2 |
 | |
|             | x    | e  | xe,xe | 360m +-2 |
 | |
|             | x    | f  | xf,xf | 316m +-2 |
 | |
|             | x    | g  | xg,xg | 300m +-2 |
 | |
|             | x    | h  | xh,xh | 316m +-2 |
 | |
|             | x    | i  | xi,xi | 360m +-2 |
 | |
|             | x    | j  | xj,xj | 424m +-2 |
 | |
|             | x    | k  | xk,xk | 360m +-2 |
 | |
|             | x    | l  | xl,xl | 316m +-2 |
 | |
|             | x    | m  | xm,xm | 300m +-2 |
 | |
|             | x    | n  | xn,xn | 316m +-2 |
 | |
|             | x    | o  | xo,xo | 360m +-2 |
 | |
|             | x    | p  | xp,xp | 424m +-2 |
 | |
|             | x    | q  | xq,xq | 360m +-2 |
 | |
|             | x    | r  | xr,xr | 316m +-2 |
 | |
|             | x    | s  | xs,xs | 300m +-2 |
 | |
|             | x    | t  | xt,xt | 316m +-2 |
 | |
|             | x    | u  | xu,xu | 360m +-2 |
 | |
|             | x    | v  | xv,xv | 424m +-2 |
 | |
|             | x    | w  | xw,xw | 360m +-2 |
 | |
|             | x    | y  | xy,xy | 316m +-2 |
 | |
| 
 | |
|     @maze
 | |
|     Scenario: Distance of a maze of short segments
 | |
|         Given a grid size of 7 meters
 | |
|         Given the node map
 | |
|             | a | b | s | t |
 | |
|             | d | c | r | q |
 | |
|             | e | f | o | p |
 | |
|             | h | g | n | m |
 | |
|             | i | j | k | l |
 | |
| 
 | |
|         And the ways
 | |
|             | nodes                |
 | |
|             | abcdefghijklmnopqrst |
 | |
| 
 | |
|         When I route I should get
 | |
|             | from | to | route                                     | distance |
 | |
|             | a    | t  | abcdefghijklmnopqrst,abcdefghijklmnopqrst | 133m +-2 |
 |