ó
W[c           @   s  d  d l  Z  d  d l Z d  d l Z d  d l Z d  d l j Z d  d l	 Z
 d  d l m Z d  d l m Z d  d l j Z d  d l j Z y d  d l j Z Wn# e k
 rĮ d  d l j j Z n Xd  d l m Z d d l m Z d d l m Z d d l  m! Z! y" d  d l" Z" e" st#  e$ Z% Wn e k
 r=e& Z% n Xd	 e' f d
     YZ( d e' f d     YZ) d e' f d     YZ* d S(   i’’’’N(   t   distance(   t	   hierarchy(   t   skipifi   (   t   matrix(   t   color_palette(   t   ranget   TestHeatmapc           B   sż  e  Z e j j e e e d     Z e j	 d d  Z
 e j d d d d g d d Z e j e
 d	 e Z e j d
 d  Z e j e  Z e d d8 d d8 d d8 d d8 d e d e d d d d8 d e d d8 d d8  Z d   Z d   Z d   Z d   Z d   Z d   Z d   Z d   Z d    Z  d!   Z! d"   Z" d#   Z# d$   Z$ d%   Z% d&   Z& d'   Z' d(   Z( d)   Z) d*   Z* d+   Z+ d,   Z, d-   Z- d.   Z. d/   Z/ d0   Z0 d1   Z1 d2   Z2 d3   Z3 d4   Z4 d5   Z5 d6   Z6 d7   Z7 RS(9   t   heatmapi   i   t   At   Bt   Ct   Dt   namet   letterst   indexi   i   t   vmint   vmaxt   cmapt   centert   robustt   annott   fmts   .2ft	   annot_kwst   cbart   cbar_kwst   maskc         C   sÆ   t  j |  j |  j  } t j | j |  j  t j | j	 t
 j |  j   t j | j t j d   t j | j t j d   t j | j d  t j | j d  d  S(   Ni   i   t    (   t   matt   _HeatMappert   x_normt   default_kwst   nptt   assert_array_equalt	   plot_datat   pdtt   assert_frame_equalt   datat   pdt	   DataFramet   xticklabelst   npt   aranget   yticklabelst   ntt   assert_equalt   xlabelt   ylabel(   t   selft   p(    (    s8   lib/python2.7/site-packages/seaborn/tests/test_matrix.pyt   test_ndarray_input.   s    c         C   s£   t  j |  j |  j  } t j | j |  j  t j	 | j
 |  j  t j | j t j d   t j | j |  j j  t j | j d  t j | j d  d  S(   Ni   R   R   (   R   R   t   df_normR   R   R    R!   R   R"   R#   R$   R'   R(   R)   R*   R   t   valuesR+   R,   R-   R.   (   R/   R0   (    (    s8   lib/python2.7/site-packages/seaborn/tests/test_matrix.pyt   test_df_input:   s    c         C   sŚ   |  j  j   } t j j d d d d g d	 d
 d g } d | _ | | _ t j | |  j	  } d d d d g } t
 j | j |  t j | j d  t j | j |  j	  } t
 j | j |  t j | j d  d  S(   NR   i   R	   i   R
   i   R   i   t   namest   lettert   numbers   letter-numbers   A-1s   B-2s   C-3s   D-4(   R   i   (   R	   i   (   R
   i   (   R   i   (   R2   t   copyR%   t
   MultiIndext   from_tuplesR   R   R   R   R   R   R    R*   R+   R,   R.   t   TR'   R-   (   R/   t   dfR   R0   t   combined_tick_labels(    (    s8   lib/python2.7/site-packages/seaborn/tests/test_matrix.pyt   test_df_multindex_inputF   s    		c         C   sl   |  j  j   } |  j d k } | | d <t j |  j |  } t j j | |  j  } t j	 | j
 |  d  S(   Ni    R   (   R   R8   R   R   R   R(   t   mat   masked_whereR   R    R!   (   R/   t   kwsR   R0   R!   (    (    s8   lib/python2.7/site-packages/seaborn/tests/test_matrix.pyt   test_mask_inputZ   s    
c         C   sT   t  j |  j |  j  } t j | j |  j j    t j | j	 |  j j
    d  S(   N(   R   R   t   df_unifR   R+   R,   R   t   x_unift   minR   t   max(   R/   R0   (    (    s8   lib/python2.7/site-packages/seaborn/tests/test_matrix.pyt   test_default_vlimsd   s    c         C   sv   |  j  j   } t | d <t j |  j |  } t j | j t	 j
 |  j d   t j | j t	 j
 |  j d   d  S(   NR   i   ib   (   R   R8   t   TrueR   R   RC   R+   R,   R   R(   t
   percentileRD   R   (   R/   RA   R0   (    (    s8   lib/python2.7/site-packages/seaborn/tests/test_matrix.pyt   test_robust_vlimsj   s
    
"c         C   sb   |  j  j   } d | d <d | d <t j |  j |  } t j | j d  t j | j d  d  S(   Ni    R   i   R   (	   R   R8   R   R   RC   R+   R,   R   R   (   R/   RA   R0   (    (    s8   lib/python2.7/site-packages/seaborn/tests/test_matrix.pyt   test_custom_sequential_vlimss   s    

c         C   sl   |  j  j   } d | d <d | d <d | d <t j |  j |  } t j | j d  t j | j d  d  S(   Niü’’’R   i   R   i    R   (	   R   R8   R   R   R2   R+   R,   R   R   (   R/   RA   R0   (    (    s8   lib/python2.7/site-packages/seaborn/tests/test_matrix.pyt   test_custom_diverging_vlims}   s    


c         C   s   |  j  j d d  } t j d  t j } t j | | f } t j | |  j  } t j | |  j  } t	 j
 | j | j  t	 j
 | j | j  d  S(   Ni
   (   t   rst   randR(   t   zerost   nant   c_R   R   R   R+   R,   R   R   (   R/   t   x1t   nullst   x2t   m1t   m2(    (    s8   lib/python2.7/site-packages/seaborn/tests/test_matrix.pyt   test_array_with_nans   s    c         C   sØ   t  j d i d d d g d 6d t j d g d 6d d t j g d 6 } |  j j   } t j | j  | d <t j	 | |  } t
 j t j | j j  | j j  d  S(	   NR$   i   t   ai   t   bi   t   cR   (   R%   R&   R(   RP   R   R8   t   isnanR3   R   R   R   R    R!   R$   R   (   R/   R<   RA   t   m(    (    s8   lib/python2.7/site-packages/seaborn/tests/test_matrix.pyt	   test_mask   s    c         C   sK   |  j  j   } d | d <t j |  j |  } t j | j t j	 j
  d  S(   Nt   BuGnR   (   R   R8   R   R   RC   R+   R,   R   t   mplt   cmR^   (   R/   RA   R0   (    (    s8   lib/python2.7/site-packages/seaborn/tests/test_matrix.pyt   test_custom_cmap¢   s    
c         C   sp   |  j  j   } d | d <t j |  j |  } t j | j |  j j j	    t j | j
 |  j j j    d  S(   Ng      ą?R   (   R   R8   R   R   RC   R+   R,   R   R3   RE   R   RF   (   R/   RA   R0   (    (    s8   lib/python2.7/site-packages/seaborn/tests/test_matrix.pyt   test_centered_vlims©   s
    
c         C   s~   t  j d d d  } t j j } t j | g d | } | j d j   } t  j d d d  } t	 j
 | | |  d  d  S(   NgÉ?i   i	   R   i    i   (   R(   t   linspaceR_   R`   t   binaryR   R   t   collectionst   get_facecolorsR   t   assert_array_almost_equal(   R/   t   valsR   t   axt   fct   cvals(    (    s8   lib/python2.7/site-packages/seaborn/tests/test_matrix.pyt   test_default_colors³   s    c         C   so   t  j d d d  } t j j } t j | g d d d | } | j d j   } t	 j
 | | |  d  d  S(   NgÉ?i   i	   R   i    R   i   (   R(   Rc   R_   R`   Rd   R   R   Re   Rf   R   Rg   (   R/   Rh   R   Ri   Rj   (    (    s8   lib/python2.7/site-packages/seaborn/tests/test_matrix.pyt   test_custom_vlim_colors¼   s
    c         C   so   t  j d d d  } t j j } t j | g d d d | } | j d j   } t	 j
 | | |  d  d  S(	   NgÉ?i   i	   R   g      ą?R   i    i   (   R(   Rc   R_   R`   Rd   R   R   Re   Rf   R   Rg   (   R/   Rh   R   Ri   Rj   (    (    s8   lib/python2.7/site-packages/seaborn/tests/test_matrix.pyt   test_custom_center_colorsÄ   s
    c         C   sb   |  j  j   } t | d <t | d <t j |  j |  } t j | j g   t j | j	 g   d  S(   NR'   R*   (
   R   R8   t   FalseR   R   R2   R+   R,   R'   R*   (   R/   RA   R0   (    (    s8   lib/python2.7/site-packages/seaborn/tests/test_matrix.pyt   test_tickabels_offĢ   s    

c         C   s   |  j  j   } t d |  j j d   } t d |  j j d   } | | d <| | d <t j |  j |  } t j | j	 |  t j | j
 |  d  S(   Nt   iheartheatmapsi   t   heatmapsarecooli    R'   R*   (   R   R8   t   listR2   t   shapeR   R   R+   R,   R'   R*   (   R/   RA   R'   R*   R0   (    (    s8   lib/python2.7/site-packages/seaborn/tests/test_matrix.pyt   test_custom_ticklabelsŌ   s    

c         C   sõ   |  j  j   } d \ } } | | d <| | d <t j |  j |  } |  j j j \ } } t j | j	 t
 j d | |  d  t j | j t
 j d | |  d  t j | j |  j j d | |   t j | j |  j j d | |   d  S(   Ni   i   R'   R*   i    g      ą?(   i   i   (   R   R8   R   R   R2   R;   Rt   R   R    t   xticksR(   R)   t   yticksR'   t   columnsR*   R   (   R/   RA   t   xstept   ystepR0   t   nxt   ny(    (    s8   lib/python2.7/site-packages/seaborn/tests/test_matrix.pyt   test_custom_ticklabel_intervalŽ   s    

&&c      
   C   s   t  j |  j d t d d d i d d 6} x[ t |  j j | j  D]A \ } } t j	 | j
   d j |   t j	 | j   d  qD Wd  S(   NR   R   s   .1fR   i   t   fontsizes   {:.1f}(   R   R   R2   RH   t   zipR   t   flatt   textsR+   R,   t   get_textt   formatt   get_fontsize(   R/   Ri   t   valt   text(    (    s8   lib/python2.7/site-packages/seaborn/tests/test_matrix.pyt   test_heatmap_annotationī   s
    %c         C   s   t  d d d d d d  } t j |  j d t d d	 d
 | } xS | j D]H } t j | j   d  t j | j	   d  t j | j
   d  qI Wd  S(   Nt   colors   0.3t   vat   bottomt   hat   leftR   R   s   .1fR   (   t   dictR   R   R2   RH   R   R+   R,   t	   get_colort   get_hat   get_va(   R/   R   Ri   R   (    (    s8   lib/python2.7/site-packages/seaborn/tests/test_matrix.pyt%   test_heatmap_annotation_overwrite_kwsö   s    	c         C   s  t  j d i d d d g d 6d t j d g d 6d d t j g d 6 } t j | j  } t j j | |  } t j	 | d t
 d	 d
 d | } t j t | j    t | j   xE t | j   | j  D]+ \ } } t j d j |  | j    qĪ Wd  S(   NR$   i   RX   i   RY   i   RZ   R   R   s   .1fR   s   {:.1f}(   R%   R&   R(   RP   R[   R3   R?   R@   R   R   RH   R+   R,   t   lent
   compressedR   R   R   R   (   R/   R<   R   t	   df_maskedRi   R   R   (    (    s8   lib/python2.7/site-packages/seaborn/tests/test_matrix.pyt!   test_heatmap_annotation_with_mask   s    !%%c         C   s[   t  j |  j d t } | j d } t j t | j    |  j j	 j
  t j d  d  S(   NR   i    t   all(   R   R   R2   RH   Re   R+   R,   R   Rf   R3   t   sizet   pltt   close(   R/   Ri   t   mesh(    (    s8   lib/python2.7/site-packages/seaborn/tests/test_matrix.pyt#   test_heatmap_annotation_mesh_colors  s    %c      
   C   s   |  j  d } t j |  j  d | d d d i d d 6} x[ t | j j | j  D]A \ } } t j | j	   d j
 |   t j | j   d  qQ Wd  S(	   Ni
   R   R   s   .1fR   i   R~   s   {:.1f}(   R2   R   R   R   R3   R   R   R+   R,   R   R   R   (   R/   t
   annot_dataRi   R   R   (    (    s8   lib/python2.7/site-packages/seaborn/tests/test_matrix.pyt"   test_heatmap_annotation_other_data  s    %c      
   C   sv   t  j |  j d d d t d t d t } xE t |  j j | j  D]+ \ } } t	 j
 | j   d j |   qC Wd  S(   NR   s   .2fR   R'   R*   s   {:.2f}(   R   R   R2   RH   Ro   R   R   R   R   R+   R,   R   R   (   R/   Ri   R   R   (    (    s8   lib/python2.7/site-packages/seaborn/tests/test_matrix.pyt/   test_heatmap_annotation_with_limited_ticklabels  s    %c         C   sė   t  j   } t j |  j  t j t | j  d  t  j	 |  t  j   } t j |  j d t
 t j t | j  d  t  j	 |  t  j d  \ } \ } } t j |  j d | d | t j t | j  d  t  j	 |  d  S(   Ni   R   i   Ri   t   cbar_ax(   R   t   figureR   R   R2   R+   R,   R   t   axesR   Ro   t   subplots(   R/   t   ft   ax1t   ax2(    (    s8   lib/python2.7/site-packages/seaborn/tests/test_matrix.pyt   test_heatmap_cbar$  s    c         C   sö   t  j |  j  } g  | j   D] } t | j    ^ q } t j | t |  j j	   g  | j
   D] } | j   ^ qf } t j | t |  j j   t j | j   d  t j | j   d  t j | j   d  t j | j   d  d  S(   NR   R   i    i   i   (   i    i   (   i   i    (   R   R   R2   t   get_xticklabelst   intR   R+   R,   Rs   Rx   t   get_yticklabelsR   t
   get_xlabelt
   get_ylabelt   get_xlimt   get_ylim(   R/   Ri   t   lt   xtlt   ytl(    (    s8   lib/python2.7/site-packages/seaborn/tests/test_matrix.pyt   test_heatmap_axes5  s    +%c         C   s  t  j d d
  \ } } t j |  j d d d d d | x* | j   D] } t j | j   d  qG Wx* | j	   D] } t j | j   d  qt Wt  j
 |  |  j j   } g  | j D] } t |  d	 ^ qŗ | _ g  | j D] } | d	 ^ qć | _ t  j d d  \ } } t j | d d d d d | x* | j   D] } t j | j   d  q@Wx* | j	   D] } t j | j   d  qmWt  j
 |  d  S(   Nt   figsizei   R'   i   R*   Ri   i    iZ   i
   (   i   i   (   i   i   (   R   R¢   R   R   R2   R§   R+   R,   t   get_rotationR©   R   R8   Rx   t   strR   (   R/   R£   Ri   t   tR<   RZ   t   i(    (    s8   lib/python2.7/site-packages/seaborn/tests/test_matrix.pyt   test_heatmap_ticklabel_rotationD  s"    ")#c         C   so   d } t  j |  j d d d | } | j d } t j | j   d d  t j t | j   d  |  d  S(   Ni    i   t
   linewidthsi   t	   linecolor(   i    i    i   i   (	   R   R   R2   Re   R+   R,   t   get_linewidthst   tuplet   get_edgecolor(   R/   RZ   Ri   R   (    (    s8   lib/python2.7/site-packages/seaborn/tests/test_matrix.pyt   test_heatmap_inner_lines`  s
    c         C   s2   t  j |  j d t } t j | j   d  d  S(   Nt   squaret   equal(   R   R   R2   RH   R+   R,   t
   get_aspect(   R/   Ri   (    (    s8   lib/python2.7/site-packages/seaborn/tests/test_matrix.pyt   test_square_aspecth  s    c      	   C   sÜ   t  j |  j d   } t j | j |  j j  t j | j j   d  t j	 t
  3 |  j j d d  d k } t  j |  j |  Wd  QXt j	 t
  < t j |  j j d d  d k  } t  j |  j |  Wd  QXd  S(   Ni    i   i   i   i   (   R   t   _matrix_maskR2   t   NoneR+   R,   Rt   R3   t   sumt   assert_raisest
   ValueErrorRM   t   randnR%   R&   (   R/   R   t   bad_array_maskt   bad_df_mask(    (    s8   lib/python2.7/site-packages/seaborn/tests/test_matrix.pyt   test_mask_validationm  s    $c         C   sŹ   t  j t j d d t j j d d   } t j | j d <t j	 | d   } t j | t t g t t g g  t j t t g t t g g  } t j	 | |  } t j | t t g t t g g  d  S(   Ni   t   dtypei   i    (   i    i    (   R%   R&   R(   R)   t   floatt   reshapeRP   t   locR   RĀ   RĆ   R   R    RH   Ro   t   array(   R/   R$   R   t   mask_int   mask_out(    (    s8   lib/python2.7/site-packages/seaborn/tests/test_matrix.pyt   test_missing_data_mask{  s    -"!c      
   C   s   d } t  j j |  } t j d  \ } \ } } t j |  j d | d | d t d |  t	 j
 t | j j    |  t j |  d  S(   Ni   i   Ri   R   R   t   ticks(   R_   t   tickert   MaxNLocatorR   R¢   R   R   R2   R   R+   R,   R   t   yaxist   get_ticklabelsR   (   R/   t   max_n_tickst   locatorR£   R¤   R„   (    (    s8   lib/python2.7/site-packages/seaborn/tests/test_matrix.pyt   test_cbar_ticks  s    N(8   t   __name__t
   __module__R(   t   randomt   RandomStateRÄ   t   mapt   ordRM   RĒ   R   R%   t   SeriesR   R&   R2   RN   RD   RC   R   RĆ   Ro   RH   R   R1   R4   R>   RB   RG   RJ   RK   RL   RW   R]   Ra   Rb   Rl   Rm   Rn   Rp   Ru   R}   R   R   R   R   R   R   R¦   R±   R·   R½   RĮ   RŹ   RŅ   RŚ   (    (    (    s8   lib/python2.7/site-packages/seaborn/tests/test_matrix.pyR       sR   !!				
				
					
						
			
			
								t   TestDendrogramc           B   s  e  Z e j j e e e d     Z e j	 d d  e j
 d  Z e j e j
 d  j Z e j d d d d d d d	 d
 g d d Z e j e d e Z y. d d l Z e j e j d d d d Z Wn> e k
 re j e j d d Z e j e d d Z n Xe j e d e d e j Z e d Z e j  e j! e  Z" e# d d d d d d d d d e d e%  Z& d   Z' d   Z( d   Z) d   Z* d    Z+ d!   Z, d"   Z- d#   Z. d$   Z/ e0 e1  d%    Z2 e0 e1  d&    Z3 d'   Z4 d(   Z5 d)   Z6 RS(*   t
   dendrogrami   i   R   R	   R
   R   t   Et   Ft   Gt   HR   R   Rx   i’’’’Nt   metrict	   euclideant   methodt   singlet   no_plott   color_thresholdt   leavest   linkaget   axisi   t   labelt   rotatec         C   sč   t  j |  j |  j  } t j | j j |  j  t j	 | j
 j t j |  j   t j | j |  j  t j | j |  j  t j | j |  j  t j | j |  j  t j | j g   t j | j d   t j | j d  d  S(   NR   (   R   t   _DendrogramPlotterR   R   R   R    RĻ   R;   R"   R#   R$   R%   R&   Rļ   t   x_norm_linkageR+   t   assert_dict_equalRć   t   x_norm_dendrogramt   reordered_indt   x_norm_leavesR'   R*   R,   R-   RĆ   R.   (   R/   R0   (    (    s8   lib/python2.7/site-packages/seaborn/tests/test_matrix.pyR1   «  s    "c         C   så   t  j |  j |  j  } t j | j j t j	 |  j   t
 j | j j |  j  t j | j |  j  t j | j |  j  t j | j t j	 |  j j  |  j  t j | j g   t j | j d  t j | j d  d  S(   NR   R   (   R   Ró   R2   R   R   R    RĻ   R;   R(   t   asarrayR"   R#   R$   Rļ   Rō   R+   Rõ   Rć   Rö   R'   Rx   Rų   R*   R,   R-   R.   (   R/   R0   (    (    s8   lib/python2.7/site-packages/seaborn/tests/test_matrix.pyR4   »  s    "c         C   sč   |  j  j   } t j j d d d d g d	 d
 d g } d | _ | | _ |  j j   } t | d <t	 j
 | j |  } d d d d g } g  | j D] } | | ^ q } t j | j |  t j | j g   t j | j d  d  S(   NR   i   R	   i   R
   i   R   i   R5   R6   R7   s   letter-numberRń   s   A-1s   B-2s   C-3s   D-4(   R   i   (   R	   i   (   R
   i   (   R   i   (   R2   R8   R%   R9   R:   R   R   R   RH   R   Ró   R;   R÷   R   R    R'   R*   R+   R,   R-   (   R/   R<   R   RA   R0   R'   R¶   (    (    s8   lib/python2.7/site-packages/seaborn/tests/test_matrix.pyR>   Ė  s    		
 c         C   sė   |  j  j   } d | d <t j |  j j |  } t j | j t	 j
 |  j j   t j | j |  j j  t j | j |  j  t j | j |  j  t j | j |  j  t j | j g   t j | j d  t j | j d  d  S(   Ni    Rš   R   R   (   R   R8   R   Ró   R2   R;   R   R    RĻ   R(   Rł   R"   R#   R$   Rļ   Rō   R+   Rõ   Rć   Rö   R'   t   df_norm_leavesR*   R,   R-   R.   (   R/   RA   R0   (    (    s8   lib/python2.7/site-packages/seaborn/tests/test_matrix.pyt   test_axis0_inputŽ  s    
"c         C   s¼   |  j  j   } t | d <t j |  j |  } t j | j j	 t
 j |  j   t j | j j	 |  j  t j | j g   t j | j |  j  t j | j d  t j | j d  d  S(   NRņ   R   R   (   R   R8   RH   R   Ró   R2   R   R    RĻ   R;   R(   Rł   R"   R#   R$   R'   R*   Rś   R+   R,   R-   R.   (   R/   RA   R0   (    (    s8   lib/python2.7/site-packages/seaborn/tests/test_matrix.pyt   test_rotate_inputļ  s    
"c         C   sU   |  j  j   } t | d <d | d <t j |  j j |  } t j | j	 |  j
  d  S(   NRņ   i    Rš   (   R   R8   RH   R   Ró   R2   R;   R   R    R÷   Rų   (   R/   RA   R0   (    (    s8   lib/python2.7/site-packages/seaborn/tests/test_matrix.pyt   test_rotate_axis0_inputü  s
    

c         C   sę   |  j  j   } y. d d  l } | j |  j d d d d } Wn> t k
 r} t j |  j d d } t j	 | d d } n Xt j
 | d t d t j } | | d <t j |  j |  } t j | j	 |  t j | j
 |  d  S(	   Ni’’’’Rź   Rė   Rč   Ré   Rģ   Rķ   Rļ   (   R   R8   t   fastclustert   linkage_vectorR   t   ImportErrorR    t   pdistR   Rļ   Rć   RH   R(   t   infR   Ró   R2   R   R    R+   Rõ   (   R/   RA   Rž   Rļ   t   dRć   R0   (    (    s8   lib/python2.7/site-packages/seaborn/tests/test_matrix.pyt   test_custom_linkage  s    
c         C   s¤   |  j  j   } t | d <t j |  j |  } t j | j g   t j | j	 g   t j | j
 g   t j | j g   t j | j d  t j | j d  d  S(   NRń   R   (   R   R8   Ro   R   Ró   R2   R+   R,   Rv   Rw   R'   R*   R-   R.   (   R/   RA   R0   (    (    s8   lib/python2.7/site-packages/seaborn/tests/test_matrix.pyt   test_label_false  s    
c         C   s   t  j |  j |  j  } | j   } d d l m } d d l m } | j	 |  j j
 d |  j d } | j | d |  j d } t j | |  d  S(   Ni’’’’(   R    (   R   Rč   Rź   (   R   Ró   R   R   t   _calculate_linkage_scipyt   scipy.spatialR    t   scipy.clusterR   R  R;   Rļ   R   R    (   R/   R0   t   scipy_linkageR    R   t   distsRļ   (    (    s8   lib/python2.7/site-packages/seaborn/tests/test_matrix.pyt   test_linkage_scipy"  s    c         C   sr   d d  l  } |  j j   } d | d <| j |  j j d d d d } t j |  j |  } t j	 | j |  d  S(   Ni’’’’t   averageRź   Rč   Ré   (
   Rž   R   R8   Rļ   R   R;   R   Ró   R   R    (   R/   Rž   RA   Rļ   R0   (    (    s8   lib/python2.7/site-packages/seaborn/tests/test_matrix.pyt   test_fastcluster_other_method0  s    
	c         C   s   d d  l  } |  j j   } d | d <d | d <| j |  j j d | d d | d } t j |  j |  } t j	 | j |  d  S(   Ni’’’’t   cosineRč   R  Rź   (
   Rž   R   R8   Rļ   R   R;   R   Ró   R   R    (   R/   Rž   RA   Rļ   R0   (    (    s8   lib/python2.7/site-packages/seaborn/tests/test_matrix.pyt   test_fastcluster_non_euclidean;  s    

c         C   s   t  j |  j |  j  } t j   } | j   } t | j  d } t	 j
 | d d  t	 j
 | d |  t	 j
 t | j d j    t | j   d  S(   Ni
   i    i   (   R   Rć   R   R   R   t   gcaR¬   R   R÷   R+   R,   Re   t	   get_pathst   dependent_coord(   R/   R  Ri   t   xlimt   xmax(    (    s8   lib/python2.7/site-packages/seaborn/tests/test_matrix.pyt   test_dendrogram_plotG  s    c         C   s   |  j  j   } t | d <t j |  j |  } t j   } | j   } t	 | j
  d } t j | d d  t j | d |  d  S(   NRņ   i
   i   i    (   R   R8   RH   R   Rć   R   R   R  R­   R   R÷   R+   R,   (   R/   RA   R  Ri   t   ylimt   ymax(    (    s8   lib/python2.7/site-packages/seaborn/tests/test_matrix.pyt   test_dendrogram_rotateU  s    
c         C   s  t  j d d	  \ } } t j |  j d | x* | j   D] } t j | j   d  q; Wt  j	 |  |  j j
   } g  | j D] } t |  d ^ q | _ g  | j D] } | d ^ qŖ | _ t  j d d
  \ } } t j | d | x* | j   D] } t j | j   d  qū Wt  j	 |  t  j d d  \ } } t j | j d d d t x* | j   D] } t j | j   d  qiWt  j	 |  d  S(   NR²   i   Ri   i    i
   iZ   Rš   Rņ   (   i   i   (   i   i   (   i   i   (   R   R¢   R   Rć   R2   R§   R+   R,   R³   R   R8   Rx   R“   R   R;   RH   R©   (   R/   R£   Ri   Rµ   R<   RZ   R¶   (    (    s8   lib/python2.7/site-packages/seaborn/tests/test_matrix.pyt"   test_dendrogram_ticklabel_rotationf  s$    )#(7   RŪ   RÜ   R(   RŻ   RŽ   RÄ   Rß   Rą   RM   RĒ   R)   R   R;   R%   Rį   R   R&   R2   Rž   R’   Rō   R   R    R  t   x_norm_distancesR   Rļ   Rć   RH   R  Rö   Rų   Rł   Rx   Rś   R   RĆ   Ro   R   R1   R4   R>   Rū   Rü   Rż   R  R  R  R   t   _no_fastclusterR  R  R  R  R  (    (    (    s8   lib/python2.7/site-packages/seaborn/tests/test_matrix.pyRā     sD   !$	
											t   TestClustermapc           B   sė  e  Z e j j e e e d     Z e j	 d d  e j
 d  Z e j e j
 d  j Z e j d d d d d d d	 d
 g d d Z e j e d e Z y. d d l Z e j e j d d d d Z Wn> e k
 re j e j d d Z e j e d d Z n Xe j e d e d e j Z e d Z e j  e j! e  Z" e# d d d d d d d d d d d d  Z% e# d d d d d d d e d  e d! d d" d  Z& e' d# e j( d$  Z) e' d% e j( d&  Z* d'   Z+ d(   Z, d)   Z- d*   Z. d+   Z/ d,   Z0 d-   Z1 d.   Z2 d/   Z3 d0   Z4 d1   Z5 d2   Z6 d3   Z7 d4   Z8 d5   Z9 d6   Z: d7   Z; d8   Z< d9   Z= d:   Z> d;   Z? d<   Z@ d=   ZA d>   ZB d?   ZC d@   ZD dA   ZE dB   ZF dC   ZG dD   ZH RS(E   t
   clustermapi   i   R   R	   R
   R   Rä   Rå   Rę   Rē   R   R   Rx   i’’’’NRč   Ré   Rź   Rė   Rģ   Rķ   Rī   t	   pivot_kwst   z_scoret   standard_scaleR²   t
   row_colorst
   col_colorsR  t   colorbar_kwst   row_clustert   col_clustert   row_linkaget   col_linkaget   Set2i    t   Dark2i   c         C   s}   t  j |  j |  j  } t j | j t j |  j   t	 j
 t | j j  d  t	 j
 | j d   t	 j
 | j d   d  S(   Ni   (   R   t   ClusterGridR   R   R"   R#   R$   R%   R&   R+   R,   R   t   figR”   t   ax_row_colorsRĆ   t   ax_col_colors(   R/   R`   (    (    s8   lib/python2.7/site-packages/seaborn/tests/test_matrix.pyR1   ¤  s
    c         C   s2   t  j |  j |  j  } t j | j |  j  d  S(   N(   R   R*  R2   R   R"   R#   R$   (   R/   R`   (    (    s8   lib/python2.7/site-packages/seaborn/tests/test_matrix.pyR4   «  s    c         C   sw   |  j  j   } t j | |  j  } | j |  j   | j j t	 j
 | j  } t j | t	 j | j j d   d  S(   Ni    (   R2   t   corrR   R*  R   t   plott   default_plot_kwst   data2dR3   R(   t   diag_indices_fromR   R    t   onesRt   (   R/   R<   t   cgt   diag(    (    s8   lib/python2.7/site-packages/seaborn/tests/test_matrix.pyt   test_corr_df_inputÆ  s
    c         C   s   |  j  j   } d | j _ t j | j   d d d d } |  j j   } t d d d d d d  | d	 <t	 j
 | |  } t j | j |  d  S(
   Nt   numberst   var_nameR   t   id_varsR   Rx   R3   t   valueR  (   R2   R8   R   R   R%   t   meltt   reset_indexR   R   R   R*  R"   R#   R1  (   R/   R2   t   df_longRA   R`   (    (    s8   lib/python2.7/site-packages/seaborn/tests/test_matrix.pyt   test_pivot_input¶  s    	c         C   s   |  j  j   } |  j | d <|  j | d <t j |  j |  } t j | j |  j  t j | j |  j  t	 j
 t | j j  d  d  S(   NR!  R"  i   (   R   R8   R!  R"  R   R*  R2   R   R    R+   R,   R   R+  R”   (   R/   RA   R`   (    (    s8   lib/python2.7/site-packages/seaborn/tests/test_matrix.pyt   test_colors_inputĀ  s    c         C   s¢   |  j  j   } |  j |  j g } |  j |  j g } | | d <| | d <t j |  j |  } t j | j |  t j | j |  t	 j
 t | j j  d  d  S(   NR!  R"  i   (   R   R8   R!  R"  R   R*  R2   R   R    R+   R,   R   R+  R”   (   R/   RA   R!  R"  R`   (    (    s8   lib/python2.7/site-packages/seaborn/tests/test_matrix.pyt   test_nested_colors_inputĪ  s    

c         C   s   |  j  j   } t j j | d <|  j | d <|  j | d <t j |  j	 |  } t
 j | j |  j  t
 j | j |  j  t j t | j j  d  d  S(   NR   R!  R"  i   (   R   R8   R_   R`   t   PRGnR!  R"  R   R  R2   R   R    R+   R,   R   R+  R”   (   R/   RA   R`   (    (    s8   lib/python2.7/site-packages/seaborn/tests/test_matrix.pyt   test_colors_input_custom_cmapÜ  s    c         C   sn   |  j  j   } | | j   | j   } |  j j   } d | d <t j |  j  |  } t j | j	 |  d  S(   Ni   R  (
   R2   R8   t   meant   stdR   R   R*  R"   R#   R1  (   R/   R<   RA   R`   (    (    s8   lib/python2.7/site-packages/seaborn/tests/test_matrix.pyt   test_z_scoreé  s    
c         C   s   |  j  j   } | j } | | j   | j   } | j } |  j j   } d | d <t j |  j  |  } t j	 | j
 |  d  S(   Ni    R  (   R2   R8   R;   RC  RD  R   R   R*  R"   R#   R1  (   R/   R<   RA   R`   (    (    s8   lib/python2.7/site-packages/seaborn/tests/test_matrix.pyt   test_z_score_axis0ņ  s    		
c         C   sx   |  j  j   } | | j   | j   | j   } |  j j   } d | d <t j |  j  |  } t j | j	 |  d  S(   Ni   R   (
   R2   R8   RE   RF   R   R   R*  R"   R#   R1  (   R/   R<   RA   R`   (    (    s8   lib/python2.7/site-packages/seaborn/tests/test_matrix.pyt   test_standard_scależ  s    $
c         C   s   |  j  j   } | j } | | j   | j   | j   } | j } |  j j   } d | d <t j |  j  |  } t j	 | j
 |  d  S(   Ni    R   (   R2   R8   R;   RE   RF   R   R   R*  R"   R#   R1  (   R/   R<   RA   R`   (    (    s8   lib/python2.7/site-packages/seaborn/tests/test_matrix.pyt   test_standard_scale_axis0  s    	$	
c         C   sR   |  j  j   } t | d <t | d <t j t   t j |  j |  } Wd  QXd  S(   NR  R   (	   R   R8   RH   R+   RÅ   RĘ   R   R*  R2   (   R/   RA   R`   (    (    s8   lib/python2.7/site-packages/seaborn/tests/test_matrix.pyt   test_z_score_standard_scale  s
    

c   	      C   sÜ   t  j j |  j |  j  \ } } t |  j  } t d   t |  D  } t j	 g  |  j D] } | | ^ q\  |  j } t
 |  j  d f } | j |  } t j j |  } t j | |  t j | j | j  d  S(   Nc         s   s!   |  ] \ } } | | f Vq d  S(   N(    (   t   .0R¶   t   col(    (    s8   lib/python2.7/site-packages/seaborn/tests/test_matrix.pys	   <genexpr>  s    i   (   R   R*  t   color_list_to_matrix_and_cmapR"  Rų   t   setR   t	   enumerateR(   RĻ   R   RĶ   R_   t   colorst   ListedColormapR   R    (	   R/   R   R   t
   colors_sett   col_to_valueRK  t   matrix_testRt   t	   cmap_test(    (    s8   lib/python2.7/site-packages/seaborn/tests/test_matrix.pyt"   test_color_list_to_matrix_and_cmap  s    		'c         C   s  |  j  |  j  g } t j j | |  j  \ } } t t j |    } t d   t	 |  D  } t
 j g  | D] } | D] } | | ^ qx qn  } t |  t | d  f }	 | j |	  } | d  d   |  j f } | j } t j j |  }
 t j | |  t j | j |
 j  d  S(   Nc         s   s!   |  ] \ } } | | f Vq d  S(   N(    (   RJ  R¶   RK  (    (    s8   lib/python2.7/site-packages/seaborn/tests/test_matrix.pys	   <genexpr>,  s    i    (   R"  R   R*  RL  Rų   RM  t	   itertoolst   chainR   RN  R(   RĻ   R   RĶ   R;   R_   RO  RP  R   R    (   R/   RO  R   R   t
   all_colorst   color_to_valueR   RZ   RS  Rt   RT  (    (    s8   lib/python2.7/site-packages/seaborn/tests/test_matrix.pyt)   test_nested_color_list_to_matrix_and_cmap&  s    	-	c   	      C   sā   t  j j |  j |  j d d \ } } t |  j  } t d   t |  D  } t j	 g  |  j D] } | | ^ qb  |  j } d t
 |  j  f } | j |  } t j j |  } t j | |  t j | j | j  d  S(   NRš   i   c         s   s!   |  ] \ } } | | f Vq d  S(   N(    (   RJ  R¶   RK  (    (    s8   lib/python2.7/site-packages/seaborn/tests/test_matrix.pys	   <genexpr>=  s    (   R   R*  RL  R"  Rų   RM  R   RN  R(   RĻ   R   RĶ   R_   RO  RP  R   R    (	   R/   R   R   RQ  RR  RK  RS  Rt   RT  (    (    s8   lib/python2.7/site-packages/seaborn/tests/test_matrix.pyt(   test_color_list_to_matrix_and_cmap_axis18  s    		'c         C   sE   t  j |  j |  j  } | j |  j   | j t j   d d d  S(   NR   t   png(	   R   R*  R2   R   R/  R0  t   savefigt   tempfilet   NamedTemporaryFile(   R/   R`   (    (    s8   lib/python2.7/site-packages/seaborn/tests/test_matrix.pyt   test_savefigF  s    c         C   sµ   t  j |  j |  j  } t j t | j j d j	    t | j
 j   t j t | j j d j	    t | j j   |  j j | j
 j | j j f } t j | j |  d  S(   Ni    (   R   R  R2   R   R+   R,   R   t   ax_row_dendrogramRe   R  t   dendrogram_rowt   independent_coordt   ax_col_dendrogramt   dendrogram_colt   ilocR÷   R"   R#   R1  (   R/   R`   R1  (    (    s8   lib/python2.7/site-packages/seaborn/tests/test_matrix.pyt   test_plot_dendrogramsL  s    c         C   s  |  j  j   } t | d <t | d <t j |  j |  } t j t | j	 j
  d  t j t | j j
  d  t j t | j	 j    d  t j t | j	 j    d  t j t | j j    d  t j t | j j    d  t j | j |  j  d  S(   NR$  R%  i    (   R   R8   Ro   R   R  R2   R+   R,   R   Ra  t   linesRd  t
   get_xtickst
   get_yticksR"   R#   R1  (   R/   RA   R`   (    (    s8   lib/python2.7/site-packages/seaborn/tests/test_matrix.pyt   test_cluster_falseW  s    

c         C   sz   |  j  j   } |  j | d <|  j | d <t j |  j |  } t j t	 | j
 j  d  t j t	 | j j  d  d  S(   NR!  R"  i   (   R   R8   R!  R"  R   R  R2   R+   R,   R   R,  Re   R-  (   R/   RA   R`   (    (    s8   lib/python2.7/site-packages/seaborn/tests/test_matrix.pyt   test_row_col_colorsg  s    c         C   sX  |  j  j   } t | d <t | d <|  j | d <|  j | d <t j |  j |  } t j	 t
 | j j  d  t j	 t
 | j j  d  t j	 t
 | j j    d  t j	 t
 | j j    d  t j	 t
 | j j    d  t j	 t
 | j j    d  t j	 t
 | j j  d  t j	 t
 | j j  d  t j | j |  j  d  S(   NR$  R%  R!  R"  i    i   (   R   R8   Ro   R!  R"  R   R  R2   R+   R,   R   Ra  Rh  Rd  Ri  Rj  R,  Re   R-  R"   R#   R1  (   R/   RA   R`   (    (    s8   lib/python2.7/site-packages/seaborn/tests/test_matrix.pyt!   test_cluster_false_row_col_colorsq  s    

c         C   sf  |  j  j   } t j i t |  j  d 6t |  j  d 6d |  j j d d d g | d <t j i t |  j  d 6t |  j  d 6d |  j j	 d d d g | d <t
 j |  j |  } g  | j j   D] } | j   ^ qŹ } t j | j d d g  t j | | j  g  | j j   D] } | j   ^ q} t j | j d d g  t j | | j  d  S(	   Nt   row_1t   row_2R   Rx   R!  t   col_1t   col_2R"  (   R   R8   R%   R&   Rs   R!  R2   R   R"  Rx   R   R  R,  R§   R   R+   R,   t   row_color_labelsR-  R©   t   col_color_labels(   R/   RA   R`   R®   t
   row_labelst
   col_labels(    (    s8   lib/python2.7/site-packages/seaborn/tests/test_matrix.pyt   test_row_col_colors_df  s$    %%c   
      C   s  |  j  j \ } } g  t t d | d   t t d | d   D] } |  j  j | ^ qA } g  t t d | d   t t d | d   D] } |  j  j | ^ q } |  j j   } t j	 i t |  j
  d 6d |  j  j } | j | | d <t j	 i t |  j  d 6d |  j  j } | j | | d <t j |  j  |  }	 t j t |	 j  d t |  j   t j t |	 j
  d t |  j
   d  S(	   Ni    i   i   t	   row_annotR   R!  t	   col_annotR"  (   R2   Rt   Rs   R   R   Rx   R   R8   R%   R&   R!  RĪ   R"  R   R  R+   R,   (
   R/   R\   t   nR¶   t   shuffled_indst   shuffled_colsRA   R!  R"  R`   (    (    s8   lib/python2.7/site-packages/seaborn/tests/test_matrix.pyt   test_row_col_colors_df_shuffled  s    HH&c         C   s  |  j  j   } t j i t |  j  d 6d |  j j } | j |  j j d  | d <t j i t |  j	  d 6d |  j j
 } | j |  j j
 d  | d <t j |  j |  } t j t | j	  d d	 g t |  j	 d   t j t | j  d d
 g t |  j d   d  S(   NRw  R   i    R!  Rx  R"  g      š?i   (   g      š?g      š?g      š?(   g      š?g      š?g      š?(   R   R8   R%   R&   Rs   R!  R2   R   t   dropR"  Rx   R   R  R+   R,   (   R/   RA   R!  R"  R`   (    (    s8   lib/python2.7/site-packages/seaborn/tests/test_matrix.pyt   test_row_col_colors_df_missing³  s    c         C   s  |  j  j   } t j i t |  j  d 6t |  j  d 6d |  j j d d d g | d <t j	 |  j |  } g  | j
 j   D] } | j   ^ q } t j | j d d g  t j | | j  |  j  j   } t j i t |  j  d 6t |  j  d 6d |  j j d d d g | d <t j	 |  j |  } g  | j j   D] } | j   ^ qB} t j | j d d g  t j | | j  d  S(	   NRn  Ro  R   Rx   R!  Rp  Rq  R"  (   R   R8   R%   R&   Rs   R!  R2   R   R   R  R,  R§   R   R+   R,   Rr  R"  Rx   R-  R©   Rs  (   R/   t   kws1t   cm1R®   Rt  t   kws2t   cm2Ru  (    (    s8   lib/python2.7/site-packages/seaborn/tests/test_matrix.pyt   test_row_col_colors_df_one_axisÄ  s(    %%c         C   s&  |  j  j   } t j t |  j  d d d |  j j | d <t j t |  j  d d d |  j j	 | d <t
 j |  j |  } g  | j j   D] } | j   ^ q } t j | j d g  t j | | j  g  | j j   D] } | j   ^ qį } t j | j d g  t j | | j  d  S(   NR   Rw  R   R!  Rx  R"  (   R   R8   R%   Rį   Rs   R!  R2   R   R"  Rx   R   R  R,  R§   R   R+   R,   Rr  R-  R©   Rs  (   R/   RA   R`   R®   Rt  Ru  (    (    s8   lib/python2.7/site-packages/seaborn/tests/test_matrix.pyt   test_row_col_colors_seriesį  s    %%c   
      C   s  |  j  j \ } } g  t t d | d   t t d | d   D] } |  j  j | ^ qA } g  t t d | d   t t d | d   D] } |  j  j | ^ q } |  j j   } t j	 t |  j
  d d d |  j  j } | j | | d <t j	 t |  j  d d d |  j  j } | j | | d	 <t j |  j  |  }	 t j t |	 j  t |  j   t j t |	 j
  t |  j
   d  S(
   Ni    i   i   R   Rw  R   R!  Rx  R"  (   R2   Rt   Rs   R   R   Rx   R   R8   R%   Rį   R!  RĪ   R"  R   R  R+   R,   (
   R/   R\   Ry  R¶   Rz  R{  RA   R!  R"  R`   (    (    s8   lib/python2.7/site-packages/seaborn/tests/test_matrix.pyt#   test_row_col_colors_series_shuffledō  s    HH"c         C   s  |  j  j   } t j t |  j  d d d |  j j } | j |  j j d  | d <t j t |  j	  d d d |  j j
 } | j |  j j
 d  | d <t j |  j |  } t j t | j	  d
 g t |  j	 d	   t j t | j  d g t |  j d	   d  S(   NR   Rw  R   i    R!  Rx  R"  g      š?i   (   g      š?g      š?g      š?(   g      š?g      š?g      š?(   R   R8   R%   Rį   Rs   R!  R2   R   R}  R"  Rx   R   R  R+   R,   (   R/   RA   R!  R"  R`   (    (    s8   lib/python2.7/site-packages/seaborn/tests/test_matrix.pyt"   test_row_col_colors_series_missing  s    c         C   sæ   |  j  j   } |  j d k | d <t j |  j |  } t j | j j | j	 j  t j | j j
 | j	 j
  t j | j	 j |  j j | j j  t j | j	 j
 |  j j
 | j j  d  S(   Ni    R   (   R   R8   R2   R   R  R   R    R1  R   R   Rx   Rb  R÷   Re  (   R/   RA   t   g(    (    s8   lib/python2.7/site-packages/seaborn/tests/test_matrix.pyt   test_mask_reorganization  s    		c   
      C   s  |  j  j   } t j |  j j d  } t |  | d <|  j j |  j j d  } | | d <t	 j
 |  j |  } g  | j j   D] } | j   ^ q } g  | j j   D] } | j   ^ q© } | | j j j d  } | | j j j d  }	 t j | |  t j | |	  d  S(   Ni   R'   i    R*   s   <U1(   R   R8   R(   R)   R2   Rt   Rs   R   RĪ   R   R  t
   ax_heatmapR§   R   R©   Re  R÷   t   astypeRb  R   R    (
   R/   RA   RÆ   R°   R  Rµ   t
   xtl_actualt
   ytl_actualt   xtl_wantt   ytl_want(    (    s8   lib/python2.7/site-packages/seaborn/tests/test_matrix.pyt   test_ticklabel_reorganization,  s    
((c         C   s¬   |  j  j   } t | d <t | d <t j |  j |  } g  | j j   D] } | j   ^ qH } g  | j j	   D] } | j   ^ qp } t
 j | g   t
 j | g   d  S(   NR'   R*   (   R   R8   Ro   R   R  R2   R  R§   R   R©   R+   R,   (   R/   RA   R  Rµ   R  R  (    (    s8   lib/python2.7/site-packages/seaborn/tests/test_matrix.pyt   test_noticklabels?  s    

(((I   RŪ   RÜ   R(   RŻ   RŽ   RÄ   Rß   Rą   RM   RĒ   R)   R   R;   R%   Rį   R   R&   R2   Rž   R’   Rō   R   R    R  R  R   Rļ   Rć   RH   R  Rö   Rų   Rł   Rx   Rś   R   RĆ   R   R0  R   Rt   R!  R"  R1   R4   R6  R>  R?  R@  RB  RE  RF  RG  RH  RI  RU  RZ  R[  R`  Rg  Rk  Rl  Rm  Rv  R|  R~  R  R  R  R  R  R  R  (    (    (    s8   lib/python2.7/site-packages/seaborn/tests/test_matrix.pyR    sp   !$	
																					
										(+   RV  R^  t   numpyR(   t
   matplotlibR_   t   matplotlib.pyplott   pyplotR   t   pandasR%   R  R    R  R   t
   nose.toolst   toolsR+   t   numpy.testingt   testingR   t   pandas.testingR"   R   t   pandas.util.testingt   utilt   numpy.testing.decoratorsR   R   R   R   R   t   external.six.movesR   Rž   t   AssertionErrorRo   R  RH   t   objectR   Rā   R  (    (    (    s8   lib/python2.7/site-packages/seaborn/tests/test_matrix.pyt   <module>   s6   

’ rń