ó
mÜJ]c           @` sÔ  d  d l  m Z m Z m Z m Z d  d l Z e d  d l Z d  d l m Z d  d l m	 Z	 m
 Z
 d  d l m Z d  d l m Z m Z m Z m Z m Z d d l m Z m Z m Z m Z m Z m Z m Z m Z m Z d  d	 l m Z m Z m  Z  m! Z! m" Z" m# Z# m$ Z$ m% Z% m& Z& m' Z' m( Z( m) Z) d
 „  Z* d „  Z+ d „  Z, d „  Z- d „  Z. d „  Z/ d „  Z0 d „  Z1 d „  Z2 d „  Z3 d „  Z4 d „  Z5 d „  Z6 d „  Z7 d „  Z8 d „  Z9 d „  Z: d „  Z; d S(   i    (   t   absolute_importt   divisiont   print_functiont   unicode_literalsN(   t   datetime(   t   fieldt   value(   t   check_integrity(   t   ColumnDataSourcet	   ArrowHeadt   BasicTickert   BasicTickFormattert   GlyphRendereri   (	   t   FILLt   LINEt   TEXTt   ANGLEt   prefixt   check_properties_existencet   check_fill_propertiest   check_line_propertiest   check_text_properties(   t   Legendt
   LegendItemt   ColorBart   Arrowt   BoxAnnotationt   Spant   LabelSett   Labelt   Titlet   Bandt   Whiskert   Slopec          C` sÓ  t  ƒ  }  |  j d k s t ‚ |  j d k s3 t ‚ |  j d  k sH t ‚ |  j d k s] t ‚ |  j d k sr t ‚ |  j d k s‡ t ‚ |  j	 d k sœ t ‚ |  j
 d k s± t ‚ |  j d k sÆ t ‚ |  j d k sÛ t ‚ |  j d k sð t ‚ |  j d k st ‚ |  j g  k st ‚ t |  d d d	 d
 ƒ t |  d d d ƒ t |  d d d ƒ t |  d d d d d d d d d d d d d d d d  g t d t ƒ t d! t ƒ t d t ƒ t d t ƒ t d" t ƒ ƒ d  S(#   Nu	   top_rightu   verticali   i   i
   i   u   border_u   #e5e5e5g      ð?g      à?u   label_u   10ptu   middleu   background_u   #ffffffgffffffî?u   visibleu   locationu   orientationu   titleu   title_standoffu   label_standoffu   label_heightu   label_widthu   glyph_heightu   glyph_widthu   marginu   paddingu   spacingu   itemsu   levelu   click_policyu   title_u	   inactive_(   R   t   locationt   AssertionErrort   orientationt   titlet   Nonet   title_standofft   label_standofft   label_heightt   label_widtht   glyph_heightt   glyph_widtht   paddingt   spacingt   margint   itemsR   R   R   R   R   R   R   R   (   t   legend(    (    sB   lib/python2.7/site-packages/bokeh/models/tests/test_annotations.pyt   test_Legend5   sN    	c          C` s—  t  ƒ  }  |  j d k s t ‚ |  j d k s3 t ‚ |  j d k sH t ‚ |  j d k s] t ‚ |  j d k sr t ‚ |  j d  k s‡ t ‚ |  j	 d k sœ t ‚ t
 |  j t ƒ s´ t ‚ t
 |  j t ƒ sÌ t ‚ |  j d  k sá t ‚ |  j d k sö t ‚ |  j d k st ‚ |  j d k s t ‚ |  j d k s5t ‚ |  j d	 k sJt ‚ |  j d	 k s_t ‚ |  j d	 k stt ‚ t |  d
 d d d ƒ t |  d d d d d ƒ t |  d d ƒ t |  d d  ƒ t |  d d  ƒ t |  d d  ƒ t |  d d d ƒ t |  d d d d d d d  d! d" d# d$ d% d& d' d( d) d* d+ d, d- g t d
 t ƒ t d t ƒ t d t ƒ t d t ƒ t d t ƒ t d t ƒ t d t ƒ ƒ	 d  S(.   Nu	   top_rightu   verticalu   autog      ð?i   i   i
   i   i    u   title_u   10ptu   bottomu   italicu   major_label_u   8ptu   middleu   normalu   centeru   major_tick_u   #ffffffu   minor_tick_u   bar_u   border_u   background_gffffffî?u   levelu   visibleu   locationu   orientationu   heightu   widthu   scale_alphau   titleu   title_standoffu   tickeru	   formatteru   color_mapperu   marginu   paddingu   label_standoffu   major_tick_inu   major_tick_outu   minor_tick_inu   minor_tick_outu   major_label_overrides(   R   R"   R#   R$   t   heightt   widtht   scale_alphaR%   R&   R'   t
   isinstancet   tickerR
   t	   formatterR   t   color_mapperR/   R-   R(   t   major_tick_int   major_tick_outt   minor_tick_int   minor_tick_outR   R   R   R   R   R   R   R   (   t	   color_bar(    (    sB   lib/python2.7/site-packages/bokeh/models/tests/test_annotations.pyt   test_ColorBar_   sj    	c          C` s8  t  ƒ  }  |  j d  k s t ‚ |  j d  k s3 t ‚ |  j d k sH t ‚ |  j d  k s] t ‚ |  j d  k sr t ‚ |  j d  k s‡ t ‚ |  j	 d k sœ t ‚ t
 |  j t ƒ s´ t ‚ |  j d  k sÉ t ‚ |  j d k sÞ t ‚ |  j d k só t ‚ t |  ƒ t |  d d d d d d d	 d
 d d d d d g t ƒ d  S(   Nu   datau   defaultu   levelu   visibleu   x_startu   y_startu   start_unitsu   startu   x_endu   y_endu	   end_unitsu   endu   sourceu   x_range_nameu   y_range_name(   R   t   x_startR&   R#   t   y_startt   start_unitst   startt   x_endt   y_endt	   end_unitsR6   t   endR	   t   sourcet   x_range_namet   y_range_nameR   R   R   (   t   arrow(    (    sB   lib/python2.7/site-packages/bokeh/models/tests/test_annotations.pyt
   test_Arrow˜   s8    	
c          C` sW  t  ƒ  }  |  j d  k s t ‚ |  j d k s3 t ‚ |  j d  k sH t ‚ |  j d k s] t ‚ |  j d  k sr t ‚ |  j d k s‡ t ‚ |  j	 d  k sœ t ‚ |  j
 d k s± t ‚ |  j d k sÆ t ‚ |  j d k sÛ t ‚ |  j d k sð t ‚ t |  d d d d ƒ t |  d d d	 ƒ t |  d
 d d d d d d d d d d d d g t t ƒ d  S(   Nu   datau   defaultu
   annotationu    u   #cccccci   g333333Ó?u   #fff9bagš™™™™™Ù?u   render_modeu   visibleu   leftu
   left_unitsu   rightu   right_unitsu   bottomu   bottom_unitsu   topu	   top_unitsu   x_range_nameu   y_range_nameu   level(   R   t   leftR&   R#   t
   left_unitst   rightt   right_unitst   bottomt   bottom_unitst   topt	   top_unitsRI   RJ   t   levelR   R   R   R   R   (   t   box(    (    sB   lib/python2.7/site-packages/bokeh/models/tests/test_annotations.pyt   test_BoxAnnotation·   s:    	c          C` sB  t  ƒ  }  |  j d k s t ‚ |  j d  k s3 t ‚ |  j d k sH t ‚ |  j d  k s] t ‚ |  j d k sr t ‚ |  j d  k s‡ t ‚ |  j	 d k sœ t ‚ t
 |  j t ƒ s´ t ‚ |  j d k sÉ t ‚ |  j d k sÞ t ‚ t |  d d d d ƒ t |  d d	 d
 ƒ t |  d d d d d d d d d d d d g t t ƒ d  S(   Nu
   annotationu   datau   heightu   defaultu    u   #ccccccg      ð?g333333Ó?u   #fff9bagš™™™™™Ù?u   visibleu   levelu   loweru   lower_unitsu   upperu   upper_unitsu   baseu
   base_unitsu	   dimensionu   sourceu   x_range_nameu   y_range_name(   R   RU   R#   t   lowerR&   t   lower_unitst   uppert   upper_unitst   baset	   dimensionR6   RH   R   RI   RJ   R   R   R   R   R   (   t   band(    (    sB   lib/python2.7/site-packages/bokeh/models/tests/test_annotations.pyt	   test_Band×   s6    	c          C` s£  t  ƒ  }  |  j d k s t ‚ |  j d  k s3 t ‚ |  j d  k sH t ‚ |  j d k s] t ‚ |  j d k sr t ‚ |  j d  k s‡ t ‚ |  j	 d k sœ t ‚ |  j
 d k s± t ‚ |  j d k sÆ t ‚ |  j d k sÛ t ‚ |  j d k sð t ‚ |  j d k st ‚ |  j d k st ‚ t |  ƒ t |  d d  d ƒ t |  d	 d  d d ƒ t |  d
 d d d d d d d d d d d d d g t t d	 t ƒ t d t ƒ ƒ d  S(   Nu
   annotationu   datai    u   radu   canvasu   defaultu   background_g      ð?u   border_u   levelu   visibleu   xu   yu   x_unitsu   y_unitsu   textu   angleu   angle_unitsu   x_offsetu   y_offsetu   render_modeu   x_range_nameu   y_range_name(   R   RU   R#   t   xR&   t   yt   x_unitst   y_unitst   textt   anglet   angle_unitst   x_offsett   y_offsett   render_modeRI   RJ   R   R   R   R   R   R   R   R   (   t   label(    (    sB   lib/python2.7/site-packages/bokeh/models/tests/test_annotations.pyt
   test_Labelõ   sF    	
c       
   C` sg   t  d t d d d d d ƒ d t d d d d d ƒ ƒ }  |  j d k sN t ‚ |  j d k sc t ‚ d  S(   NR`   iâ  i   i   i    Ra   g  €îQvB(   R   R   R`   R#   Ra   (   t   obj(    (    sB   lib/python2.7/site-packages/bokeh/models/tests/test_annotations.pyt   test_Label_accepts_datetime_xy  s    c          C` sÙ  t  ƒ  }  |  j d k s t ‚ |  j d  k s3 t ‚ |  j d  k sH t ‚ |  j d k s] t ‚ |  j d k sr t ‚ |  j d k s‡ t ‚ |  j	 d k sœ t ‚ |  j
 d k s± t ‚ |  j d k sÆ t ‚ |  j d k sÛ t ‚ |  j d k sð t ‚ |  j d k st ‚ |  j d k st ‚ t |  j t ƒ s2t ‚ |  j j i  k sJt ‚ t |  ƒ t |  d d  d	 ƒ t |  d
 d  d	 d	 ƒ t |  d d d d d d d d d d d d d d d g t t t d
 t ƒ t d t ƒ ƒ d  S(   Nu
   annotationu   datau   texti    u   radu   canvasu   defaultu   background_g      ð?u   border_u   visibleu   levelu   xu   yu   x_unitsu   y_unitsu   angleu   angle_unitsu   x_offsetu   y_offsetu   render_modeu   x_range_nameu   y_range_nameu   source(   R   RU   R#   R`   R&   Ra   Rb   Rc   Rd   Re   Rf   Rg   Rh   Ri   RI   RJ   R6   RH   R   t   dataR   R   R   R   R   R   R   R   R   (   t	   label_set(    (    sB   lib/python2.7/site-packages/bokeh/models/tests/test_annotations.pyt   test_LabelSet   sN    	
c          C` s«   t  ƒ  }  |  j d  k s t ‚ |  j d  k s3 t ‚ |  j d k sH t ‚ |  j d k s] t ‚ |  j d k sr t ‚ t |  d d d ƒ t	 |  d d d d	 d
 d g t
 ƒ d  S(   Nu   defaultu
   annotationu    u   blackg      ð?u   visibleu   gradientu   y_interceptu   x_range_nameu   y_range_nameu   level(   R!   t   gradientR&   R#   t   y_interceptRI   RJ   RU   R   R   R   (   t   slope(    (    sB   lib/python2.7/site-packages/bokeh/models/tests/test_annotations.pyt
   test_SlopeI  s    	c       
   C` sÛ   t  ƒ  }  |  j d  k s t ‚ |  j d k s3 t ‚ |  j d k sH t ‚ |  j d k s] t ‚ |  j d k sr t ‚ |  j d k s‡ t ‚ |  j	 d k sœ t ‚ t
 |  d d d ƒ t |  d	 d
 d d d d d d g t ƒ d  S(   Nu   datau   widthu   defaultu
   annotationu   canvasu    u   blackg      ð?u   visibleu   locationu   location_unitsu	   dimensionu   x_range_nameu   y_range_nameu   levelu   render_mode(   R   R"   R&   R#   t   location_unitsR]   RI   RJ   RU   Ri   R   R   R   (   t   line(    (    sB   lib/python2.7/site-packages/bokeh/models/tests/test_annotations.pyt	   test_Span[  s&    	c          C` s:   t  d t d d d d d ƒ ƒ }  |  j d k s6 t ‚ d  S(   NR"   iâ  i   i   i    g  €îQvB(   R   R   R"   R#   (   Rl   (    (    sB   lib/python2.7/site-packages/bokeh/models/tests/test_annotations.pyt#   test_Span_accepts_datetime_locationp  s    !c          C` sX  t  ƒ  }  |  j d k s t ‚ |  j d  k s3 t ‚ |  j d k sH t ‚ |  j d k s] t ‚ |  j d k sr t ‚ |  j d k s‡ t ‚ |  j	 i d d 6k s£ t ‚ |  j
 d k s¸ t ‚ |  j d	 k sÍ t ‚ |  j d
 k sâ t ‚ t |  d d  d
 ƒ t |  d d  d
 d
 ƒ t |  d d d d d d d d d d d d g t d t ƒ t d t ƒ ƒ d  S(   Nu
   annotationu   bottomu   lefti    u	   helveticau   10ptu   valueu   boldu   #444444g      ð?u   background_u   border_u   visibleu   levelu   textu   vertical_alignu   alignu   offsetu	   text_fontu   text_font_sizeu   text_font_styleu
   text_coloru
   text_alphau   render_mode(   R   RU   R#   Rd   R&   t   vertical_alignt   alignt   offsett	   text_fontt   text_font_sizet   text_font_stylet
   text_colort
   text_alphaR   R   R   R   R   R   (   R%   (    (    sB   lib/python2.7/site-packages/bokeh/models/tests/test_annotations.pyt
   test_Titlet  s8    	c          C` s¹  t  ƒ  }  |  j d k s t ‚ |  j d  k s3 t ‚ |  j d k sH t ‚ t |  j t ƒ s` t ‚ |  j j	 d k sx t ‚ |  j j d k s t ‚ |  j
 d  k s¥ t ‚ |  j d k sº t ‚ t |  j t ƒ sÒ t ‚ |  j j	 d k sê t ‚ |  j j d k st ‚ |  j d  k st ‚ |  j d k s,t ‚ t |  j t ƒ sDt ‚ |  j d k sYt ‚ |  j d k snt ‚ t |  d ƒ t |  d d d	 d
 d d d d d d d d d d g t ƒ d  S(   Nu   underlayu   datai
   u   heightu   defaultu    u   visibleu   levelu   loweru   lower_unitsu
   lower_headu   upperu   upper_unitsu
   upper_headu   baseu
   base_unitsu	   dimensionu   sourceu   x_range_nameu   y_range_name(   R    RU   R#   RX   R&   RY   R6   t
   lower_headR	   t   sizeRZ   R[   t
   upper_headR\   R]   RH   R   RI   RJ   R   R   R   (   t   whisker(    (    sB   lib/python2.7/site-packages/bokeh/models/tests/test_annotations.pyt   test_Whisker“  sD    	c          C` s¸   t  d d d d d d ƒ }  |  j d k s0 t ‚ |  j d k sE t ‚ |  j d k sZ t ‚ t d d d d d d ƒ } | j d k sŠ t ‚ | j d k sŸ t ‚ | j d k s´ t ‚ d  S(   NR\   g      ð¿RX   g      ø¿RZ   g      à¿(   R    R\   R#   RX   RZ   R   (   R…   R^   (    (    sB   lib/python2.7/site-packages/bokeh/models/tests/test_annotations.pyt,   test_Whisker_and_Band_accept_negative_values·  s    c          C` sk   t  ƒ  }  t ƒ  } t ƒ  } | | g |  _ t j d ƒ , } t |  g ƒ | j j d k sa t ‚ Wd  QXd  S(   Nu   bokeh.core.validation.check.logi    (	   R   R   t	   rendererst   mockt   patchR   t   errort
   call_countR#   (   t   legend_itemt   gr_1t   gr_2t   mock_logger(    (    sB   lib/python2.7/site-packages/bokeh/models/tests/test_annotations.pyt4   test_can_add_multiple_glyph_renderers_to_legend_itemÁ  s    			c          C` s¬   t  ƒ  }  t d t d i d g d 6ƒ ƒ } t d t d i d g d 6ƒ ƒ } t d ƒ |  _ | | g |  _ t j d ƒ , } t |  g ƒ | j	 j
 d k s¢ t ‚ Wd  QXd  S(   Nt   data_sourceRn   i   u   labelu   bokeh.core.validation.check.log(   R   R   R   R   Rj   Rˆ   R‰   RŠ   R   R‹   RŒ   R#   (   R   RŽ   R   R   (    (    sB   lib/python2.7/site-packages/bokeh/models/tests/test_annotations.pytV   test_legend_item_with_field_label_and_different_data_sources_raises_a_validation_errorË  s    	""c          C` sŒ   t  ƒ  }  t d t ƒ  ƒ } t d t ƒ  ƒ } t d ƒ |  _ | | g |  _ t j d ƒ , } t |  g ƒ | j	 j
 d k s‚ t ‚ Wd  QXd  S(   NR’   u   labelu   bokeh.core.validation.check.logi    (   R   R   R   R   Rj   Rˆ   R‰   RŠ   R   R‹   RŒ   R#   (   R   RŽ   R   R   (    (    sB   lib/python2.7/site-packages/bokeh/models/tests/test_annotations.pyt^   test_legend_item_with_value_label_and_different_data_sources_does_not_raise_a_validation_errorÖ  s    	c          C` sw   t  ƒ  }  t d t ƒ  ƒ } t d ƒ |  _ | g |  _ t j d ƒ , } t |  g ƒ | j	 j
 d k sm t ‚ Wd  QXd  S(   NR’   u   labelu   bokeh.core.validation.check.logi   (   R   R   R   R   Rj   Rˆ   R‰   RŠ   R   R‹   RŒ   R#   (   R   RŽ   R   (    (    sB   lib/python2.7/site-packages/bokeh/models/tests/test_annotations.pytB   test_legend_item_with_field_label_raises_error_if_field_not_in_cdsá  s    	(<   t
   __future__R    R   R   R   t   pytestR‰   R   t   bokeh.core.propertiesR   R   t   bokeh.core.validationR   t   bokeh.modelsR   R	   R
   R   R   t   utils.property_utilsR   R   R   R   R   R   R   R   R   t   bokeh.models.annotationsR   R   R   R   R   R   R   R   R   R   R    R!   R2   R?   RL   RW   R_   Rk   Rm   Rp   Rt   Rw   Rx   R   R†   R‡   R‘   R“   R”   R•   (    (    (    sB   lib/python2.7/site-packages/bokeh/models/tests/test_annotations.pyt   <module>   s6   " (@R	*	9		 		%		)					$	
	
		