2018-01-24 15:39:55 -05:00
@routing @testbot @turn_function
Feature : Turn Function Information
Background :
Given t h e p r o f i l e f i l e
"""
f u n c t i o n s = r e q u i r e ( ' c a r ' )
f u n c t i o n t e s t _ s e t u p ( )
p r o f i l e = f u n c t i o n s . s e t u p ( )
p r o f i l e . h i g h w a y _ t u r n _ c l a s s i f i c a t i o n = {
[ ' m o t o r w a y ' ] = 4 ,
[ ' m o t o r w a y _ l i n k ' ] = 4 ,
[ ' t r u n k ' ] = 4 ,
[ ' t r u n k _ l i n k ' ] = 4 ,
[ ' p r i m a r y ' ] = 4 ,
[ ' p r i m a r y _ l i n k ' ] = 4 ,
[ ' s e c o n d a r y ' ] = 3 ,
[ ' s e c o n d a r y _ l i n k ' ] = 3 ,
[ ' t e r t i a r y ' ] = 2 ,
[ ' t e r t i a r y _ l i n k ' ] = 2 ,
[ ' r e s i d e n t i a l ' ] = 1 ,
[ ' l i v i n g _ s t r e e t ' ] = 1 ,
}
p r o f i l e . a c c e s s _ t u r n _ c l a s s i f i c a t i o n = {
[ ' d i s c o u r a g e d ' ] = 1 ;
[ ' p e r m i s s i v e ' ] = 1 ;
[ ' p r i v a t e ' ] = 1 ;
[ ' c u s t o m e r s ' ] = 1 ;
[ ' d i s m o u n t ' ] = 1 ;
}
r e t u r n p r o f i l e
e n d
f u n c t i o n t u r n _ l e g _ s t r i n g ( l e g )
r e t u r n ' s p e e d : ' . . t o s t r i n g ( l e g . s p e e d )
. . ' , i s _ i n c o m i n g : ' . . t o s t r i n g ( l e g . i s _ i n c o m i n g )
. . ' , i s _ o u t g o i n g : ' . . t o s t r i n g ( l e g . i s _ o u t g o i n g )
. . ' , h i g h w a y _ t u r n _ c l a s s i f i c a t i o n : ' . . t o s t r i n g ( l e g . h i g h w a y _ t u r n _ c l a s s i f i c a t i o n )
. . ' , a c c e s s _ t u r n _ c l a s s i f i c a t i o n : ' . . t o s t r i n g ( l e g . a c c e s s _ t u r n _ c l a s s i f i c a t i o n )
2018-02-07 05:39:02 -05:00
. . ' , p r i o r i t y _ c l a s s : ' . . t o s t r i n g ( l e g . p r i o r i t y _ c l a s s )
2018-01-24 15:39:55 -05:00
e n d
f u n c t i o n p r i n t _ t u r n ( p r o f i l e , t u r n )
p r i n t ( ' s o u r c e _ r e s t r i c t e d ' . . s t r i n g . f o r m a t ( " % s " , t o s t r i n g ( t u r n . s o u r c e _ r e s t r i c t e d ) ) )
p r i n t ( ' s o u r c e _ i s _ m o t o r w a y ' . . s t r i n g . f o r m a t ( " % s " , t o s t r i n g ( t u r n . s o u r c e _ i s _ m o t o r w a y ) ) )
p r i n t ( ' s o u r c e _ i s _ l i n k ' . . s t r i n g . f o r m a t ( " % s " , t o s t r i n g ( t u r n . s o u r c e _ i s _ l i n k ) ) )
p r i n t ( ' s o u r c e _ n u m b e r _ o f _ l a n e s ' . . s t r i n g . f o r m a t ( " % s " , t o s t r i n g ( t u r n . s o u r c e _ n u m b e r _ o f _ l a n e s ) ) )
p r i n t ( ' s o u r c e _ h i g h w a y _ t u r n _ c l a s s i f i c a t i o n ' . . s t r i n g . f o r m a t ( " % s " , t o s t r i n g ( t u r n . s o u r c e _ h i g h w a y _ t u r n _ c l a s s i f i c a t i o n ) ) )
p r i n t ( ' s o u r c e _ a c c e s s _ t u r n _ c l a s s i f i c a t i o n ' . . s t r i n g . f o r m a t ( " % s " , t o s t r i n g ( t u r n . s o u r c e _ a c c e s s _ t u r n _ c l a s s i f i c a t i o n ) ) )
p r i n t ( ' s o u r c e _ s p e e d ' . . s t r i n g . f o r m a t ( " % s " , t o s t r i n g ( t u r n . s o u r c e _ s p e e d ) ) )
2018-02-07 05:39:02 -05:00
p r i n t ( ' s o u r c e _ p r i o r i t y _ c l a s s ' . . s t r i n g . f o r m a t ( " % s " , t o s t r i n g ( t u r n . s o u r c e _ p r i o r i t y _ c l a s s ) ) )
p r i n t ( ' s o u r c e _ m o d e ' . . s t r i n g . f o r m a t ( " % s " , t o s t r i n g ( t u r n . s o u r c e _ m o d e ) ) )
2018-01-24 15:39:55 -05:00
p r i n t ( ' t a r g e t _ r e s t r i c t e d ' . . s t r i n g . f o r m a t ( " % s " , t o s t r i n g ( t u r n . t a r g e t _ r e s t r i c t e d ) ) )
p r i n t ( ' t a r g e t _ i s _ m o t o r w a y ' . . s t r i n g . f o r m a t ( " % s " , t o s t r i n g ( t u r n . t a r g e t _ i s _ m o t o r w a y ) ) )
p r i n t ( ' t a r g e t _ i s _ l i n k ' . . s t r i n g . f o r m a t ( " % s " , t o s t r i n g ( t u r n . t a r g e t _ i s _ l i n k ) ) )
p r i n t ( ' t a r g e t _ n u m b e r _ o f _ l a n e s ' . . s t r i n g . f o r m a t ( " % s " , t o s t r i n g ( t u r n . t a r g e t _ n u m b e r _ o f _ l a n e s ) ) )
p r i n t ( ' t a r g e t _ h i g h w a y _ t u r n _ c l a s s i f i c a t i o n ' . . s t r i n g . f o r m a t ( " % s " , t o s t r i n g ( t u r n . t a r g e t _ h i g h w a y _ t u r n _ c l a s s i f i c a t i o n ) ) )
p r i n t ( ' t a r g e t _ a c c e s s _ t u r n _ c l a s s i f i c a t i o n ' . . s t r i n g . f o r m a t ( " % s " , t o s t r i n g ( t u r n . t a r g e t _ a c c e s s _ t u r n _ c l a s s i f i c a t i o n ) ) )
p r i n t ( ' t a r g e t _ s p e e d ' . . s t r i n g . f o r m a t ( " % s " , t o s t r i n g ( t u r n . t a r g e t _ s p e e d ) ) )
2018-02-07 05:39:02 -05:00
p r i n t ( ' t a r g e t _ p r i o r i t y _ c l a s s ' . . s t r i n g . f o r m a t ( " % s " , t o s t r i n g ( t u r n . t a r g e t _ p r i o r i t y _ c l a s s ) ) )
p r i n t ( ' t a r g e t _ m o d e ' . . s t r i n g . f o r m a t ( " % s " , t o s t r i n g ( t u r n . t a r g e t _ m o d e ) ) )
2018-01-24 15:39:55 -05:00
p r i n t ( ' n u m b e r _ o f _ r o a d s ' . . s t r i n g . f o r m a t ( " % s " , t o s t r i n g ( t u r n . n u m b e r _ o f _ r o a d s ) ) )
i f n o t t u r n . i s _ u _ t u r n t h e n
f o r r o a d C o u n t , r o a d i n i p a i r s ( t u r n . r o a d s _ o n _ t h e _ r i g h t ) d o
p r i n t ( ' r o a d s _ o n _ t h e _ r i g h t [ ' . . t o s t r i n g ( r o a d C o u n t ) . . ' ] ' . . t u r n _ l e g _ s t r i n g ( r o a d ) )
e n d
f o r r o a d C o u n t , r o a d i n i p a i r s ( t u r n . r o a d s _ o n _ t h e _ l e f t ) d o
p r i n t ( ' r o a d s _ o n _ t h e _ l e f t [ ' . . t o s t r i n g ( r o a d C o u n t ) . . ' ] ' . . t u r n _ l e g _ s t r i n g ( r o a d ) )
e n d
e n d
e n d
r e t u r n {
s e t u p = t e s t _ s e t u p ,
p r o c e s s _ w a y = f u n c t i o n s . p r o c e s s _ w a y ,
p r o c e s s _ n o d e = f u n c t i o n s . p r o c e s s _ n o d e ,
p r o c e s s _ t u r n = p r i n t _ t u r n
}
"""
Scenario : Turns should have correct information of source and target
Given t h e n o d e m a p
"""
a b c
"""
And t h e w a y s
| n o d e s | h i g h w a y |
| a b | m o t o r w a y |
| b c | m o t o r w a y |
And t h e d a t a h a s b e e n s a v e d t o d i s k
When I r u n " o s r m - e x t r a c t - - p r o f i l e { p r o f i l e _ f i l e } { o s m _ f i l e } "
Then i t s h o u l d e x i t s u c c e s s f u l l y
And s t d o u t s h o u l d c o n t a i n " s o u r c e _ i s _ m o t o r w a y t r u e "
And s t d o u t s h o u l d c o n t a i n " t a r g e t _ i s _ m o t o r w a y t r u e "
And s t d o u t s h o u l d c o n t a i n " s o u r c e _ i s _ l i n k f a l s e "
2018-02-07 05:39:02 -05:00
And s t d o u t s h o u l d c o n t a i n " s o u r c e _ p r i o r i t y _ c l a s s 0 "
2018-01-24 15:39:55 -05:00
And s t d o u t s h o u l d c o n t a i n " t a r g e t _ i s _ m o t o r w a y t r u e "
And s t d o u t s h o u l d c o n t a i n " t a r g e t _ i s _ l i n k f a l s e "
2018-02-07 05:39:02 -05:00
And s t d o u t s h o u l d c o n t a i n " t a r g e t _ p r i o r i t y _ c l a s s 0 "
2018-01-24 15:39:55 -05:00
Scenario : Turns should detect when turn is leaving highway
Given t h e n o d e m a p
"""
a b c
"""
And t h e w a y s
| n o d e s | h i g h w a y | l a n e s |
| a b | m o t o r w a y | 3 |
| b c | m o t o r w a y _ l i n k | |
And t h e d a t a h a s b e e n s a v e d t o d i s k
When I r u n " o s r m - e x t r a c t - - p r o f i l e { p r o f i l e _ f i l e } { o s m _ f i l e } "
Then i t s h o u l d e x i t s u c c e s s f u l l y
And s t d o u t s h o u l d c o n t a i n " s o u r c e _ i s _ m o t o r w a y t r u e "
And s t d o u t s h o u l d c o n t a i n " s o u r c e _ i s _ l i n k f a l s e "
And s t d o u t s h o u l d c o n t a i n " s o u r c e _ n u m b e r _ o f _ l a n e s 3 "
And s t d o u t s h o u l d c o n t a i n " t a r g e t _ i s _ m o t o r w a y f a l s e "
And s t d o u t s h o u l d c o n t a i n " t a r g e t _ i s _ l i n k t r u e "
And s t d o u t s h o u l d c o n t a i n " t a r g e t _ n u m b e r _ o f _ l a n e s 0 "
And s t d o u t s h o u l d c o n t a i n " n u m b e r _ o f _ r o a d s 2 "
Scenario : Turns should have correct information of other roads at intersection I
Given t h e n o d e m a p
"""
d
^
|
a - > b - > c
"""
And t h e w a y s
| n o d e s | h i g h w a y | o n e w a y |
| a b | p r i m a r y | y e s |
| b c | m o t o r w a y | y e s |
| b d | r e s i d e n t i a l | y e s |
And t h e d a t a h a s b e e n s a v e d t o d i s k
When I r u n " o s r m - e x t r a c t - - p r o f i l e { p r o f i l e _ f i l e } { o s m _ f i l e } "
Then i t s h o u l d e x i t s u c c e s s f u l l y
And s t d o u t s h o u l d c o n t a i n " n u m b e r _ o f _ r o a d s 3 "
2018-02-07 05:39:02 -05:00
And s t d o u t s h o u l d c o n t a i n " s o u r c e _ p r i o r i t y _ c l a s s 4 "
And s t d o u t s h o u l d c o n t a i n " t a r g e t _ p r i o r i t y _ c l a s s 0 "
And s t d o u t s h o u l d c o n t a i n " t a r g e t _ p r i o r i t y _ c l a s s 1 1 "
2018-01-24 15:39:55 -05:00
# turning abd, give information about bc
And s t d o u t s h o u l d c o n t a i n / r o a d s _ o n _ t h e _ r i g h t \ [ 1 \ ] s p e e d : [ 0 - 9 ] + , i s _ i n c o m i n g : f a l s e , i s _ o u t g o i n g : t r u e , h i g h w a y _ t u r n _ c l a s s i f i c a t i o n : 4 , a c c e s s _ t u r n _ c l a s s i f i c a t i o n : 0 /
# turning abc, give information about bd
And s t d o u t s h o u l d c o n t a i n / r o a d s _ o n _ t h e _ l e f t \ [ 1 \ ] s p e e d : [ 0 - 9 ] + , i s _ i n c o m i n g : f a l s e , i s _ o u t g o i n g : t r u e , h i g h w a y _ t u r n _ c l a s s i f i c a t i o n : 1 , a c c e s s _ t u r n _ c l a s s i f i c a t i o n : 0 /
Scenario : Turns should have correct information of other roads at intersection II
Given t h e n o d e m a p
"""
d
|
v
a - > b - > c
"""
And t h e w a y s
| n o d e s | h i g h w a y | o n e w a y | a c c e s s |
| a b | s e c o n d a r y | y e s | |
| b c | m o t o r w a y | y e s | |
| d b | u n c l a s s i f i e d | y e s | d i s c o u r a g e d |
And t h e d a t a h a s b e e n s a v e d t o d i s k
When I r u n " o s r m - e x t r a c t - - p r o f i l e { p r o f i l e _ f i l e } { o s m _ f i l e } "
Then i t s h o u l d e x i t s u c c e s s f u l l y
And s t d o u t s h o u l d c o n t a i n " n u m b e r _ o f _ r o a d s 3 "
# turning dbc, give information about about ab
And s t d o u t s h o u l d c o n t a i n / r o a d s _ o n _ t h e _ r i g h t \ [ 1 \ ] s p e e d : [ 0 - 9 ] + , i s _ i n c o m i n g : t r u e , i s _ o u t g o i n g : f a l s e , h i g h w a y _ t u r n _ c l a s s i f i c a t i o n : 3 , a c c e s s _ t u r n _ c l a s s i f i c a t i o n : 0 /
# turning abc, give information about about db
And s t d o u t s h o u l d c o n t a i n / r o a d s _ o n _ t h e _ l e f t \ [ 1 \ ] s p e e d : [ 0 - 9 ] + , i s _ i n c o m i n g : t r u e , i s _ o u t g o i n g : f a l s e , h i g h w a y _ t u r n _ c l a s s i f i c a t i o n : 0 , a c c e s s _ t u r n _ c l a s s i f i c a t i o n : 1 /