229 lines
		
	
	
		
			6.7 KiB
		
	
	
	
		
			Gherkin
		
	
	
	
	
	
			
		
		
	
	
			229 lines
		
	
	
		
			6.7 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    | 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 | 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 | 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   | 10m +-2  |
 | |
|             | b    | a  | abc   | 10m +-2  |
 | |
|             | b    | c  | abc   | 10m +-2  |
 | |
|             | c    | b  | abc   | 10m +-2  |
 | |
|             | a    | c  | abc   | 20m +-4  |
 | |
|             | c    | a  | 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   | 100m +-2 |
 | |
|             | b    | a  | abc   | 100m +-2 |
 | |
|             | b    | c  | abc   | 100m +-2 |
 | |
|             | c    | b  | abc   | 100m +-2 |
 | |
|             | a    | c  | abc   | 200m +-4 |
 | |
|             | c    | a  | 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   | 1000m +-2 |
 | |
|             | b    | a  | abc   | 1000m +-2 |
 | |
|             | b    | c  | abc   | 1000m +-2 |
 | |
|             | c    | b  | abc   | 1000m +-2 |
 | |
|             | a    | c  | abc   | 2000m +-4 |
 | |
|             | c    | a  | 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 | 10m +-2  |
 | |
|             | a    | c  | abcdefgh | 20m +-4  |
 | |
|             | a    | d  | abcdefgh | 30m +-6  |
 | |
|             | a    | e  | abcdefgh | 40m +-8  |
 | |
|             | a    | f  | abcdefgh | 50m +-10 |
 | |
|             | a    | g  | abcdefgh | 60m +-12 |
 | |
|             | a    | h  | 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 | 10m +-2  |
 | |
|             | a    | c  | abcdefgh | 20m +-4  |
 | |
|             | a    | d  | abcdefgh | 30m +-6  |
 | |
|             | a    | e  | abcdefgh | 40m +-8  |
 | |
|             | a    | f  | abcdefgh | 50m +-10 |
 | |
|             | a    | g  | abcdefgh | 60m +-12 |
 | |
|             | a    | h  | abcdefgh | 70m +-14 |
 | |
| 
 | |
|     Scenario: Geometric distances
 | |
|         Given a grid size of 1000 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    | 3000m +-2 |
 | |
|             | x    | b  | xb    | 3162m +-2 |
 | |
|             | x    | c  | xc    | 3606m +-2 |
 | |
|             | x    | d  | xd    | 4243m +-2 |
 | |
|             | x    | e  | xe    | 3606m +-2 |
 | |
|             | x    | f  | xf    | 3162m +-2 |
 | |
|             | x    | g  | xg    | 3000m +-2 |
 | |
|             | x    | h  | xh    | 3162m +-2 |
 | |
|             | x    | i  | xi    | 3606m +-2 |
 | |
|             | x    | j  | xj    | 4243m +-2 |
 | |
|             | x    | k  | xk    | 3606m +-2 |
 | |
|             | x    | l  | xl    | 3162m +-2 |
 | |
|             | x    | m  | xm    | 3000m +-2 |
 | |
|             | x    | n  | xn    | 3162m +-2 |
 | |
|             | x    | o  | xo    | 3606m +-2 |
 | |
|             | x    | p  | xp    | 4243m +-2 |
 | |
|             | x    | q  | xq    | 3606m +-2 |
 | |
|             | x    | r  | xr    | 3162m +-2 |
 | |
|             | x    | s  | xs    | 3000m +-2 |
 | |
|             | x    | t  | xt    | 3162m +-2 |
 | |
|             | x    | u  | xu    | 3606m +-2 |
 | |
|             | x    | v  | xv    | 4243m +-2 |
 | |
|             | x    | w  | xw    | 3606m +-2 |
 | |
|             | x    | y  | xy    | 3162m +-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 | 133m +-2 |
 |