ó
—W[c           @   sñ   d  d l  m Z d  d l m 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 m Z m Z d e f d	 „  ƒ  YZ d
 e f d „  ƒ  YZ d e f d „  ƒ  YZ d e f d „  ƒ  YZ d S(   iÿÿÿÿ(   t   division(   t   productNi   (   t
   relational(   t   color_palette(   t   categorical_ordert   sort_dft   TestRelationalPlotterc           B   s‚  e  Z d  „  Z d „  Z d „  Z e j d „  ƒ Z e j d „  ƒ Z e j d „  ƒ Z	 e j d „  ƒ Z
 e j d „  ƒ Z e j d „  ƒ Z e j d	 „  ƒ Z e j d
 „  ƒ Z e j d „  ƒ Z e j 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# RS(    c         C   sD   g  } x7 | D]/ } t  | j ƒ  j ƒ  d  ƒ } | j | ƒ q W| S(   Ni   (   t   tuplet   get_facecolort   squeezet   append(   t   selft   collectionst   rgbst   colt   rgb(    (    s<   lib/python2.7/site-packages/seaborn/tests/test_relational.pyt   scatter_rgbs   s
    c         G   ss   t  } xf t | Œ  D]X \ } } t j j j t j | ƒ ƒ } t j j j t j | ƒ ƒ } | | | k M} q W| S(   N(   t   Truet   zipt   mplt   colorst   colorConvertert   to_rgbt   npR	   (   R   t   argst   equalt   c1t   c2(    (    s<   lib/python2.7/site-packages/seaborn/tests/test_relational.pyt   colors_equal   s    c         G   s_   t  } xR t | Œ  D]D \ } } | t j | j | j ƒ M} | t j | j | j ƒ M} q W| S(   N(   R   R   R   t   array_equalt   verticest   codes(   R   R   R   t   p1t   p2(    (    s<   lib/python2.7/site-packages/seaborn/tests/test_relational.pyt   paths_equal   s
     c         C   sj   t  d ƒ } t j t j d d d ƒ d d ƒ} t j j t | ƒ t | ƒ ƒ } t j | d | d | ƒS(	   Nt   abci
   i2   i   t   namet
   wide_indext   indext   columns(	   t   listt   pdt
   Int64IndexR   t   aranget   randomt   randnt   lent	   DataFrame(   R   R'   R&   t   values(    (    s<   lib/python2.7/site-packages/seaborn/tests/test_relational.pyt   wide_df'   s    $!c         C   s   t  j j d d ƒ S(   Ni   i   (   R   R,   R-   (   R   (    (    s<   lib/python2.7/site-packages/seaborn/tests/test_relational.pyt
   wide_array/   s    c         C   s   t  j j d ƒ S(   Ni   (   R   R,   R-   (   R   (    (    s<   lib/python2.7/site-packages/seaborn/tests/test_relational.pyt
   flat_array4   s    c         C   sC   t  j t j d d ƒ d d ƒ} t  j t j j d ƒ | d d ƒS(   Ni
   i   R$   t   ti   t   s(   R)   R*   R   R+   t   SeriesR,   R-   (   R   R&   (    (    s<   lib/python2.7/site-packages/seaborn/tests/test_relational.pyt   flat_series9   s    !c         C   s"   t  j j d ƒ t  j j d ƒ g S(   Ni   i
   (   R   R,   R-   (   R   (    (    s<   lib/python2.7/site-packages/seaborn/tests/test_relational.pyt	   wide_list?   s    c         C   s[   t  j t j j d ƒ t j d ƒ d d ƒt  j t j j d ƒ t j d d ƒ d d ƒg S(   Ni   R$   t   ai
   i   i   t   b(   R)   R6   R   R,   R-   R+   (   R   (    (    s<   lib/python2.7/site-packages/seaborn/tests/test_relational.pyt   wide_list_of_seriesD   s    *c         C   sî   d } t  j j ƒ  } t j t d | j d d | ƒ d | j | ƒ d t  j t	 d ƒ | j d d | ƒ ƒ d	 t  j t	 d
 ƒ | j d d | ƒ ƒ d t  j t	 d d g ƒ | j d d | ƒ ƒ d t  j d d d g | j d d | ƒ ƒ ƒ ƒ S(   Nid   t   xi    i   t   yR9   R#   i   R:   t   mnopi   t   ci   i   R5   i   (
   R   R,   t   RandomStateR)   R/   t   dictt   randintR-   t   takeR(   (   R   t   nt   rs(    (    s<   lib/python2.7/site-packages/seaborn/tests/test_relational.pyt   long_dfJ   s    ''-c         C   s™   d } t  j j ƒ  } t j t d t  j t  j | d ƒ d ƒ d | j | ƒ d t  j	 t
 d ƒ | j d d | ƒ ƒ d	 t  j t  j d ƒ | d ƒ ƒ ƒ S(
   Nid   R<   i   R=   R9   R#   i    i   t   u(   R   R,   R@   R)   R/   RA   t   tileR+   R-   RC   R(   RB   t   repeat(   R   RD   RE   (    (    s<   lib/python2.7/site-packages/seaborn/tests/test_relational.pyt   repeated_dfX   s    'c         C   s  d } t  j j ƒ  } t j t d | j d d | ƒ d | j | ƒ d t  j t	 d ƒ | j d d | ƒ ƒ d	 t  j t	 d
 ƒ | j d d | ƒ ƒ d t  j d d d g | j d d | ƒ ƒ ƒ ƒ } x: | D]2 } | j
 | j ƒ d  } t  j | j | | f <qÊ W| S(   Nid   R<   i    i   R=   R9   R#   i   R:   R>   i   R5   i   i   i
   (   R   R,   R@   R)   R/   RA   RB   R-   RC   R(   t   permutationR&   t   nant   loc(   R   RD   RE   t   dfR   t   idx(    (    s<   lib/python2.7/site-packages/seaborn/tests/test_relational.pyt
   missing_dfd   s    ''0c         C   s   t  j d t j d ƒ ƒ S(   NR&   i   (   R)   R6   R   R+   (   R   (    (    s<   lib/python2.7/site-packages/seaborn/tests/test_relational.pyt   null_columnu   s    c         C   s  t  j ƒ  } | j d | ƒ | j d k s1 t ‚ | j d d d d g k sR t ‚ t | j ƒ t j	 | j
 ƒ k sy t ‚ | j d } t j | j | j
 d ƒ } t j | | ƒ sº t ‚ | j d } | j j d d	 ƒ } t j | | ƒ sô t ‚ | j d } t j | j j | j
 d
 ƒ } t j | | ƒ s8t ‚ | j d }	 | }
 t j |	 |
 ƒ sct ‚ | j d j ƒ  j ƒ  s‚t ‚ | j | j j k st ‚ | j d  k s²t ‚ | j | j j k sÍt ‚ | j d  k sât ‚ | j | j j k sýt ‚ d  S(   Nt   datat   wideR<   R=   t   huet   stylei   t   ordert   fi    t   size(   t   relt   _RelationalPlottert   establish_variablest   input_formatt   AssertionErrort	   semanticsR.   t	   plot_dataR   R   t   shapeRH   R&   R   R0   t   ravelRI   R'   t   isnullt   allt   x_labelR$   t   y_labelt   Nonet	   hue_labelt
   size_labelt   style_label(   R   R1   t   pR<   t
   expected_xR=   t
   expected_yRT   t   expected_hueRU   t   expected_style(    (    s<   lib/python2.7/site-packages/seaborn/tests/test_relational.pyt   test_wide_df_variablesz   s.    !'c         C   s[   t  j ƒ  } | j ƒ  } d | j d  d  … d f <t j t ƒ  | j d | ƒ Wd  QXd  S(   NR9   t   not_numericRR   (   RY   RZ   t   copyRM   t   pytestt   raisest
   ValueErrorR[   (   R   R1   Rj   (    (    s<   lib/python2.7/site-packages/seaborn/tests/test_relational.pyt   test_wide_df_variables_checkš   s
    c         C   sö  t  j ƒ  } | j d | ƒ | j d k s1 t ‚ | j d d d d g k sR t ‚ t | j ƒ t j	 | j
 ƒ k sy t ‚ | j
 \ } } | j d } t j t j | ƒ | ƒ } t j | | ƒ sÈ t ‚ | j d } | j d d ƒ } t j | | ƒ sÿ t ‚ | j d }	 t j t j | ƒ | ƒ }
 t j |	 |
 ƒ s?t ‚ | j d } |
 } t j | | ƒ sjt ‚ | j d	 j ƒ  j ƒ  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 ‚ d  S(
   NRR   RS   R<   R=   RT   RU   RV   RW   RX   (   RY   RZ   R[   R\   R]   R^   R.   R_   R   R   R`   RH   R+   R   Ra   RI   Rb   Rc   Rd   Rf   Re   Rg   Rh   Ri   (   R   R2   Rj   t   nrowt   ncolR<   Rk   R=   Rl   RT   Rm   RU   Rn   (    (    s<   lib/python2.7/site-packages/seaborn/tests/test_relational.pyt   test_wide_array_variables¢   s0    !'c         C   s£  t  j ƒ  } | j d | ƒ | j d k s1 t ‚ | j d d g k sL t ‚ t | j ƒ t j	 | j
 ƒ k ss t ‚ | j d } t j | j
 d ƒ } t j | | ƒ s® t ‚ | j d } | } t j | | ƒ sÙ t ‚ | j d j ƒ  j ƒ  sø t ‚ | j d j ƒ  j ƒ  st ‚ | j d j ƒ  j ƒ  s6t ‚ | j d  k sKt ‚ | j d  k s`t ‚ | j d  k sut ‚ | j d  k sŠt ‚ | j d  k sŸt ‚ d  S(	   NRR   RS   R<   R=   i    RT   RU   RX   (   RY   RZ   R[   R\   R]   R^   R.   R_   R   R   R`   R+   R   Rb   Rc   Rd   Rf   Re   Rg   Rh   Ri   (   R   R3   Rj   R<   Rk   R=   Rl   (    (    s<   lib/python2.7/site-packages/seaborn/tests/test_relational.pyt   test_flat_array_variablesÄ   s&    'c         C   s3  t  j ƒ  } | j d | ƒ | j d k s1 t ‚ | j d d g k sL t ‚ t | j ƒ t | ƒ k sm t ‚ | j d } | j } t	 j
 | | ƒ s› t ‚ | j d } | } t	 j
 | | ƒ 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 ‚ d  S(   NRR   RS   R<   R=   (   RY   RZ   R[   R\   R]   R^   R.   R_   R&   R   R   Rd   Rf   Re   Rg   Rh   Ri   (   R   R7   Rj   R<   Rk   R=   Rl   (    (    s<   lib/python2.7/site-packages/seaborn/tests/test_relational.pyt   test_flat_series_variablesÞ   s     !	c         C   s  t  j ƒ  } | j d | ƒ | j d k s1 t ‚ | j d d d d g k sR t ‚ t | j ƒ t d „  | Dƒ ƒ k s} t ‚ | j d } t	 j
 g  | D] } t	 j t | ƒ ƒ ^ q— ƒ } t	 j | | ƒ sÓ t ‚ | j d } t	 j
 | ƒ } t	 j | | ƒ st ‚ | j d } t	 j
 g  t | ƒ D] \ }	 } t	 j | ƒ |	 ^ q'ƒ }
 t	 j | |
 ƒ sgt ‚ | j d } |
 } t	 j | | ƒ s’t ‚ | j d j ƒ  j ƒ  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 ‚ d  S(	   NRR   RS   R<   R=   RT   RU   c         s   s   |  ] } t  | ƒ Vq d  S(   N(   R.   (   t   .0t   l(    (    s<   lib/python2.7/site-packages/seaborn/tests/test_relational.pys	   <genexpr>ú   s    RX   (   RY   RZ   R[   R\   R]   R^   R.   R_   t   sumR   t   concatenateR+   R   t	   enumeratet	   ones_likeRb   Rc   Rd   Rf   Re   Rg   Rh   Ri   (   R   R8   Rj   R<   R|   Rk   R=   Rl   RT   t   iRm   RU   Rn   (    (    s<   lib/python2.7/site-packages/seaborn/tests/test_relational.pyt   test_wide_list_variablesô   s0    !+15c         C   s  t  j ƒ  } | j d | ƒ | j d k s1 t ‚ | j d d d d g k sR t ‚ t | j ƒ t d „  | Dƒ ƒ k s} t ‚ | j d } t	 j
 g  | D] } | j ^ q— ƒ } t	 j | | ƒ sÇ t ‚ | j d } t	 j
 | ƒ } t	 j | | ƒ sû t ‚ | j d } t	 j
 g  | D]$ } t	 j t | ƒ | j t ƒ ^ qƒ }	 t	 j | |	 ƒ sZt ‚ | j d }
 |	 } t	 j |
 | ƒ s…t ‚ | j d j ƒ  j ƒ  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 ‚ d  S(	   NRR   RS   R<   R=   RT   RU   c         s   s   |  ] } t  | ƒ Vq d  S(   N(   R.   (   R{   R|   (    (    s<   lib/python2.7/site-packages/seaborn/tests/test_relational.pys	   <genexpr>  s    RX   (   RY   RZ   R[   R\   R]   R^   R.   R_   R}   R   R~   R&   R   t   fullR$   t   objectRb   Rc   Rd   Rf   Re   Rg   Rh   Ri   (   R   R;   Rj   R<   R5   Rk   R=   Rl   RT   Rm   RU   Rn   (    (    s<   lib/python2.7/site-packages/seaborn/tests/test_relational.pyt"   test_wide_list_of_series_variables  s0    !+%4c         C   s{  t  j ƒ  } | j d d d d d | ƒ | j d k s= t ‚ | j d d g k sX t ‚ t j | j d | d ƒ s{ t ‚ t j | j d | d ƒ sž t ‚ x6 d d d g D]% } | j | j	 ƒ  j
 ƒ  s® t ‚ q® W| j | j f d
 k sõ t ‚ | j d  k s
t ‚ | j d  k st ‚ | j d  k s4t ‚ | j d | j d d d | ƒ | j d d g k snt ‚ t j | j d | d ƒ s‘t ‚ t j | j d | d ƒ s´t ‚ | j | j f d k sÒt ‚ | j d d d | j d | ƒ | j d d g k st ‚ t j | j d | d ƒ s/t ‚ t j | j d | d ƒ sRt ‚ | j | j f d k spt ‚ | j d d d d d d d | ƒ | j d d d g k s°t ‚ t j | j d | d ƒ sÓt ‚ x3 d d g D]% } | j | j	 ƒ  j
 ƒ  sàt ‚ qàW| j d k st ‚ | j d  k r<| j d  k sBt ‚ | j d d d d d d d d d | ƒ | j d d d d g k s‹t ‚ t j | j d | d ƒ s®t ‚ t j | j d | d ƒ sÑt ‚ | j d j	 ƒ  j
 ƒ  sðt ‚ | j | j k od k n st ‚ | j d  k s-t ‚ | j d d d d d d d d	 d | ƒ | j d d d d g k svt ‚ t j | j d | d ƒ s™t ‚ t j | j d | d	 ƒ s¼t ‚ | j d j	 ƒ  j
 ƒ  sÛt ‚ | j d d d d d d d | ƒ | j d d d g k st ‚ t j | j d | d ƒ s>t ‚ | j d k sSt ‚ | j d  k rq| j d  k swt ‚ d  S(   NR<   R=   RR   t   longRT   RU   RX   R9   R:   (   R<   R=   (   R<   R=   (   R<   R=   (   RY   RZ   R[   R\   R]   R^   R   R   R_   Rb   Rc   Rd   Re   Rg   Rf   Rh   Ri   R<   R=   (   R   RF   Rj   R   (    (    s<   lib/python2.7/site-packages/seaborn/tests/test_relational.pyt   test_long_df8  s\    #######"##$(!##((!##"#c         C   sò   t  j ƒ  } t j t ƒ  | j d | j ƒ Wd  QXt j t ƒ  | j d | j ƒ Wd  QXt j t ƒ  | j d d d | ƒ Wd  QXt j t ƒ ! | j d d d d d | ƒ Wd  QXt j t ƒ ! | j d d d d d | ƒ Wd  QXd  S(   NR<   R=   t	   not_in_dfRR   (   RY   RZ   Rr   Rs   Rt   R[   R<   R=   (   R   RF   Rj   (    (    s<   lib/python2.7/site-packages/seaborn/tests/test_relational.pyt   test_bad_inputp  s    "c         C   se   t  j ƒ  } | j d g  ƒ | j d t j g  ƒ ƒ | j d t j ƒ  ƒ | j d g  d g  ƒ d  S(   NRR   R<   R=   (   RY   RZ   R[   R   t   arrayR)   R/   (   R   Rj   (    (    s<   lib/python2.7/site-packages/seaborn/tests/test_relational.pyt   test_empty_inputƒ  s
    c      	   C   sU   t  j ƒ  } | j d d d d d d d | ƒ t j | j d | d ƒ sQ t ‚ d  S(   NR<   R=   t   unitsRG   RR   (   RY   RZ   R[   R   R   R_   R]   (   R   RJ   Rj   (    (    s<   lib/python2.7/site-packages/seaborn/tests/test_relational.pyt
   test_unitsŒ  s    "c         C   sƒ   t  j d | ƒ } | j | d d  d  ƒ | j d  g k s@ t ‚ | j i  k sU t ‚ | j d  k sj t ‚ | j d  k s t ‚ d  S(   NRR   t   Blues(	   RY   t   _LinePlottert	   parse_hueRf   t
   hue_levelsR]   t   palettet   hue_typet   cmap(   R   R1   RQ   Rj   (    (    s<   lib/python2.7/site-packages/seaborn/tests/test_relational.pyt   test_parse_hue_null’  s    c         C   sÛ  t  j d | ƒ } | j | j j ƒ  k s0 t ‚ | j d k sE t ‚ | j d  k sZ t ‚ d } t	 | | j
 d ƒ } t t | j | ƒ ƒ } | j | j j | d  d  ƒ | j | k s¿ t ‚ t	 d | j
 d ƒ } | j | j j | d  d  ƒ t t | j | ƒ ƒ } | j | k st ‚ t	 d d ƒ } t t | j | ƒ ƒ } | j | j j | d  d  ƒ | j | k svt ‚ t t | j d  | ƒ ƒ } t j t ƒ ! | j | j j | d  d  ƒ Wd  QX| d  } t j t ƒ ! | j | j j | d  d  ƒ Wd  QXd	 d
 d g } | j | j j d  | d  ƒ | j | k s@t ‚ t  j d d d d d d	 d | ƒ } | j t | j ƒ k s‚t ‚ | j d k s—t ‚ | j d  k s¬t ‚ | j | j j d  d  d  ƒ t | j ƒ }	 t	 d t |	 ƒ ƒ } t t |	 | ƒ ƒ } | j | k st ‚ t j t d ƒ ƒ }
 | j |
 d  d  d  ƒ t	 d d t |
 ƒ ƒ} t t |
 | ƒ ƒ } | j | k sƒt ‚ t  j d d d d d d
 d | ƒ } | j d d g k sÂt ‚ | j d k s×t ‚ d  S(   NRR   t   categoricalRŽ   i   t   Redst   Set1i   iÿÿÿÿR9   R?   t   dR<   R=   RT   t   n_colorst   abcdefghijklmnopqrstuvwxyzt   husli    (   RY   R   R‘   R'   t   tolistR]   R“   R”   Rf   R   R`   RA   R   R   R_   RT   R’   Rr   Rs   Rt   R   R9   R.   R)   R6   R(   (   R   R1   RF   Rj   R’   t   expected_colorst   expected_paletteR   t	   hue_orderR‘   t   levels(    (    s<   lib/python2.7/site-packages/seaborn/tests/test_relational.pyt   test_parse_hue_categorical›  sV    "
"$$c   	      C   s’  t  j d d d d d d d | ƒ } t t j | j j ƒ  ƒ ƒ } | j | k sW t ‚ | j	 d k sl t ‚ | j
 j d k s„ t ‚ d } | j | j j | d  d  ƒ | j
 t j j | ƒ k sÇ t ‚ t j j d	 ƒ } | j | j j | d  d  ƒ | j
 | k s
t ‚ d
 } | j | j j | d  d  ƒ t | j
 t j j ƒ sJt ‚ | j | j j d  d  d  ƒ | j | j j j ƒ  | j j j ƒ  f k s™t ‚ d } | j | j j d  d  | ƒ | j | k sÐt ‚ t | j t j j ƒ sît ‚ | j j | d k s
t ‚ | j j | d k s&t ‚ t j j d d d d d ƒ} | j | j j d  d  | ƒ | j | j | j f k st ‚ | j | k s–t ‚ | j j j ƒ  | j j j ƒ  } } | j | j j d  d  d  ƒ | j | t j  | j
 d ƒ ƒ k st ‚ | j | t j  | j
 d ƒ ƒ k s-t ‚ | d | d f } | j | j j d  d  | ƒ | | d | d | d } | j | t j  | j
 | ƒ ƒ k s¦t ‚ | j | t j  | j
 d ƒ ƒ k sÑt ‚ t t j | j j ƒ  ƒ ƒ } t! d t" | ƒ ƒ } | j | j j | d  d  ƒ | j t# t$ | | ƒ ƒ k sDt ‚ t! d t" | ƒ d ƒ } t j% t& ƒ ! | j | j j | d  d  ƒ Wd  QXt# t$ | t! d ƒ ƒ ƒ } | j | j j | d  d  ƒ | j | k sÛt ‚ | j' | d ƒ t j% t& ƒ ! | j | j j | d  d  ƒ Wd  QXd } t j% t& ƒ ! | j | j j | d  d  ƒ Wd  QXd } t j% t& ƒ ! | j | j j d  d  | ƒ Wd  QXd  S(   NR<   R=   RT   R5   RR   t   numerict   seaborn_cubehelixt   Purplest   Greenss   ch:2,0,light=.2i   i   i    i   t   vmint   vmaxi
   g        g      ð?RŽ   R—   t   not_a_valid_palettes
   not a norm(   i   i   ((   RY   R   R(   R   t   sortR5   t   uniqueR‘   R]   R“   R”   R$   R   R_   RT   Rf   R   t   cmt   get_cmapt
   isinstanceR   t   ListedColormapt
   hue_limitst   mint   maxt   hue_normt	   NormalizeR§   R¨   t	   PowerNormR’   Rr   t   approxR   R.   RA   R   Rs   Rt   t   pop(	   R   RF   Rj   R‘   R’   R³   t   hmint   hmaxt   norm_min(    (    s<   lib/python2.7/site-packages/seaborn/tests/test_relational.pyt   test_parse_hue_numericÝ  sl    $!3!%++++$"""c         C   s˜  t  j d d d d d d d | ƒ } t j d } | j d j ƒ  | j d j ƒ  f } d | d | f } | j | j d d  d  d  ƒ | j	 | k s t
 ‚ t | j j ƒ  ƒ t | j j ƒ  ƒ f } | | k sÙ t
 ‚ d } | j | j d d  d  | ƒ | j	 | k st
 ‚ d } | j | j d | d  d  ƒ | j	 | k sIt
 ‚ d } d }	 | j | j d | d  |	 ƒ t j j d t |	 Œ }
 xM | j j ƒ  D]< \ } } | | d | d	 | d |
 | ƒ k sšt
 ‚ qšWd } t j j d	 d d t ƒ}	 | j | j d | d  |	 ƒ | j j s*t
 ‚ xM | j j ƒ  D]< \ } } | | d | d	 | d |	 | ƒ k s:t
 ‚ q:Wd } | | j ƒ  } d	 d d g } | d	 | d | d g } t  j d d d d d | d | ƒ } | j | j d | | d  ƒ | j t t | | ƒ ƒ k st
 ‚ d } t | | ƒ } t t j j t | ƒ ƒ ƒ } t  j d d d d d | d | ƒ } | j | j d | d  d  ƒ | j t t | | ƒ ƒ k s¸t
 ‚ d } t | | ƒ } t t | t j j t | ƒ ƒ ƒ ƒ } t  j d d d d d | d | ƒ } | j | j d | d  d  ƒ | j | k sKt
 ‚ t t j j t | ƒ d	 ƒ ƒ } t j t  ƒ " | j | j d | d  d  ƒ Wd  QXt t | t j j t | ƒ d	 ƒ ƒ ƒ } t j t  ƒ " | j | j d | d  d  ƒ Wd  QXd } t j t  ƒ " | j | j d | d  d  ƒ Wd  QXd }	 t  j d d d d d d d | ƒ } t j t  ƒ " | j | j d d  d  |	 ƒ Wd  QXd  S(   NR<   R=   RX   R5   RR   s   lines.linewidthg      à?i   i   i   gš™™™™™¹?i
   t   clipi    R9   i   i   t   bad_sizes
   not a norm(   i   i   (   gš™™™™™¹?g      à?(   i   i   (   i   i
   (   i   i   (!   RY   R   R   t   rcParamsR_   R±   R²   t
   parse_sizeRf   t   size_limitsR]   t   sizesR0   R   R´   R   t   itemst   LogNormt   Falset	   size_normR¼   R«   RA   R   R   R(   R   R,   t   randR.   Rr   Rs   Rt   (   R   RF   Rj   t   default_linewidtht   default_limitst   default_ranget
   size_rangeRÀ   RÁ   RÅ   t	   normalizet   levelt   widtht   varR¡   t
   size_order(    (    s<   lib/python2.7/site-packages/seaborn/tests/test_relational.pyt   test_parse_size0  st    $&*44$$$$'$"#+##$c         C   s¨  t  j d d d d d d d | ƒ } t t } } | j | j d | | d  ƒ | j t t | j	 | j
 ƒ ƒ k sx t ‚ | j t t | j	 | j ƒ ƒ k s¢ t ‚ d d d g d d d g } } | j | j d | | d  ƒ | j t t | j	 | ƒ ƒ k st ‚ | j t t | j	 | ƒ ƒ k s,t ‚ t t | j	 | ƒ ƒ } t t | j	 | ƒ ƒ } | j | j d | | d  ƒ | j | k sŽt ‚ | j | k s£t ‚ t j | j	 d	 d d
 g ƒ } t } } | j | j d | | | ƒ | j t t | | j
 ƒ ƒ k st ‚ | j t t | | j ƒ ƒ k s6t ‚ d d g t } } t j t ƒ " | j | j d | | d  ƒ Wd  QXt d g } } t j t ƒ " | j | j d | | d  ƒ Wd  QXi d d 6d d 6t } } t j t ƒ " | j | j d | | d  ƒ Wd  QXt i d d 6d d 6} } t j t ƒ " | j | j d | | d  ƒ Wd  QXd d d g d  } } t j t ƒ " | j | j d | | d  ƒ Wd  QXd  S(   NR<   R=   RU   R9   RR   t   oR5   R™   i   i    i   i   R:   (   i   i    (   i   i   (   i   i   i   i   (   i   i   (   i   i    (   i   i   (   RY   R   R   t   parse_styleR_   Rf   t   markersRA   R   t   style_levelst   default_markersR]   t   dashest   default_dashesR   RC   RÄ   Rr   Rs   Rt   (   R   RF   Rj   RÓ   RÖ   t   style_order(    (    s<   lib/python2.7/site-packages/seaborn/tests/test_relational.pyt   test_parse_style…  sD    $**''
''####c   	      C   s0  t  j d d d d d | ƒ } t t | j ƒ  ƒ ƒ d k sB t ‚ d } t | | j ƒ  ƒ } t  j d d d d d | d | ƒ } t t | j ƒ  ƒ ƒ | k s¦ t ‚ t  j d d d d d | d | ƒ } t t | j ƒ  ƒ ƒ | k sî t ‚ t | | j ƒ  ƒ } t  j d d d d d | d | ƒ } t t | j ƒ  ƒ ƒ | k sLt ‚ d } t | | j ƒ  ƒ } t  j d d d d d | d | d | ƒ } t t | j ƒ  ƒ ƒ | k s¶t ‚ d \ } } t t t t t	 | | | g j
 ƒ ƒ ƒ ƒ } t  j d d d d d | d | d | ƒ } t t | j ƒ  ƒ ƒ | k s>t ‚ t  j d d d d d | d | d | d | ƒ } t t | j ƒ  ƒ ƒ | k s’t ‚ d \ } } } | | | g } t t t t t	 | | j
 ƒ ƒ ƒ ƒ } t  j d d d d d | d | d | d | ƒ } t t | j ƒ  ƒ ƒ | k s,t ‚ d  S(   NR<   R=   RR   i   R9   RT   RU   RX   R5   R:   (   R9   R5   (   R9   R5   R:   (   RY   R   R.   R(   t   subset_dataR]   R«   t   sett   mapR   R0   (	   R   RF   Rj   RÎ   t	   n_subsetst   var1t   var2t   var3t   cols(    (    s<   lib/python2.7/site-packages/seaborn/tests/test_relational.pyt   test_subset_data_quantitiesº  s:    $$$$$$$*$.!	$'	$('	c   
      C   sM  t  j d d d d d | ƒ } xY | j ƒ  D]K \ \ } } } } | d  k sR t ‚ | d  k sd t ‚ | d  k s+ t ‚ q+ Wd } t  j d d d d d | d | ƒ } x` | j ƒ  D]R \ \ } } } } | | | j k sß t ‚ | d  k sñ t ‚ | d  k s± t ‚ q± Wt  j d d d d d | d | ƒ } x` | j ƒ  D]R \ \ } } } } | d  k s_t ‚ | d  k sqt ‚ | | | j k s8t ‚ q8Wt  j d d d d d | d | d | ƒ } xg | j ƒ  D]Y \ \ } } } } | | | j k sót ‚ | d  k st ‚ | | | j k sÅt ‚ qÅWt  j d d d d d | d | ƒ } x` | j ƒ  D]R \ \ } } } } | d  k szt ‚ | | | j k s“t ‚ | d  k sSt ‚ qSWd	 \ } }	 t  j d d d d d | d |	 d | ƒ } xg | j ƒ  D]Y \ \ } } } } | | | j k st ‚ | | |	 j k s3t ‚ | d  k sìt ‚ qìWd  S(
   NR<   R=   RR   R9   RT   RU   RX   R5   (   R9   R5   (   RY   R   RÚ   Rf   R]   R0   (
   R   RF   Rj   RT   RX   RU   t   _RÎ   RÞ   Rß   (    (    s<   lib/python2.7/site-packages/seaborn/tests/test_relational.pyt   test_subset_data_keysî  s@    "$"$"*"$"*"c   
      C   s±  t  j d d d d d | ƒ } t | j ƒ  ƒ \ } } t | j j d  d  … d d g f d d g ƒ } t j | j	 | ƒ s‚ t
 ‚ t  j d d d d d | d t ƒ } t | j ƒ  ƒ \ } } | j j d  d  … d d g f } t j | j	 | ƒ sû t
 ‚ t  j d d d d d d d | ƒ } x | j ƒ  D]q \ \ } } } } | j d | k } d d g } t | j j | | f | ƒ } t j | j	 | j	 ƒ s,t
 ‚ q,Wt  j d d d d d d d | d t ƒ } xv | j ƒ  D]h \ \ } } } } | j d | k } d d g } | j j | | f } t j | j	 | j	 ƒ sØt
 ‚ qØWt  j d d d d d d d d d | ƒ } x | j ƒ  D]q \ \ } } } } | j d | k } d d g } t | j j | | f | ƒ } t j | j	 | j	 ƒ s{t
 ‚ q{Wt  j d d d d d d d d	 d | ƒ } x | j ƒ  D]‚ \ \ } }	 } } | j d | k | j d |	 k @} d d g } t | j j | | f | ƒ } t j | j	 | j	 ƒ s't
 ‚ q'Wd  S(
   NR<   R=   RR   Rª   RT   R9   RU   RX   R5   (   RY   R   t   nextRÚ   R   R_   RM   R   R   R0   R]   RÄ   (
   R   RF   Rj   Rã   RR   t   expectedRT   t   rowsRá   RX   (    (    s<   lib/python2.7/site-packages/seaborn/tests/test_relational.pyt   test_subset_data_values  s@    1$"$""*""*""*"$($   t   __name__t
   __module__R   R   R"   Rr   t   fixtureR1   R2   R3   R7   R8   R;   RF   RJ   RP   RQ   Ro   Ru   Rx   Ry   Rz   R‚   R…   R‡   R‰   R‹   R   R•   R¢   R»   RÐ   RÙ   Râ   Rä   Rè   (    (    (    s<   lib/python2.7/site-packages/seaborn/tests/test_relational.pyR      s@   					 		"			"	"	8							B	S	U	5	4	.t   TestLinePlotterc           B   s>   e  Z d  „  Z d „  Z d „  Z d „  Z d „  Z d „  Z RS(   c         C   s¯  t  j d d d d d | ƒ } d | _ t | _ t j t j d d g d ƒ ƒ } t j t j	 j
 d ƒ ƒ } | j | ƒ j ƒ  } d	 „  } | j | ƒ j | ƒ } t j t d
 | | d | | ƒ d d
 d g ƒ} d | _ d | _ | j | | ƒ \ }	 }
 } t j |	 j | j ƒ  ƒ s"t ‚ |
 j j |	 ƒ s:t ‚ |
 j t j | j ƒ k s[t ‚ | j t j | j d ƒ k st ‚ t | j ƒ d
 d g k s t ‚ t j | _ | j | | ƒ \ }	 }
 } t j |	 j | j ƒ  ƒ sèt ‚ |
 j j |	 ƒ s t ‚ |
 j t j | j ƒ k s!t ‚ | j t j | j d ƒ k sEt ‚ t | j ƒ d
 d g k sft ‚ | j | ƒ j ƒ  } t j t d
 | | d | | ƒ d d
 d g ƒ} d | _ | j | | ƒ \ }	 }
 } t j |	 j | j ƒ  ƒ sòt ‚ |
 j j |	 ƒ s
t ‚ |
 j t j | j ƒ k s+t ‚ | j t j | j ƒ k sLt ‚ t | j ƒ d
 d g k smt ‚ d  | _ | j | | ƒ \ }	 }
 } | d  k s£t ‚ d | _ t j d d d g ƒ t j d d d g ƒ } } | j | | ƒ \ }	 }
 } t j |	 j | ƒ st ‚ t j |
 j | ƒ s.t ‚ | d  k s@t ‚ t j d d d g ƒ t j d d d g ƒ } } | j | | ƒ \ }	 }
 } | j d j  ƒ  j! ƒ  s«t ‚ d  S(   NR<   R=   RR   i'  i   i   id   iÈ   c         S   s    t  j |  ƒ t  j t |  ƒ ƒ S(   N(   R   t   stdt   sqrtR.   (   R<   (    (    s<   lib/python2.7/site-packages/seaborn/tests/test_relational.pyt   semQ  s    t   lowt   highR'   iD   t   meani   t   sdi   ("   RY   R   t   n_bootRÄ   Rª   R)   R6   R   RH   R,   R-   t   groupbyRò   t   applyR/   RA   t   cit	   estimatort	   aggregateR   R0   R«   R]   R&   t   equalsRr   R¶   R(   R'   Rí   Rf   RM   Rb   Rc   (   R   RF   Rj   R<   R=   t   y_meanRï   t   y_semt   y_cisR&   t   estt   cist   y_std(    (    s<   lib/python2.7/site-packages/seaborn/tests/test_relational.pyt   test_aggregateG  sb    		!			!!$!!!$!	!!!!		11c         C   s0  t  j ƒ  \ } } t j d d d d d | d d ƒ } | j | ƒ | j ƒ  \ } } | g  k sg t ‚ | j ƒ  t j d d d d d d d | d d ƒ } | j | ƒ | j ƒ  \ } } g  | D] } | j ƒ  ^ qÁ }	 | d g | j	 k sõ t ‚ |	 d g g  | j	 D] }
 | j
 |
 ^ qk s+t ‚ | j ƒ  t j d d d d d d d	 d d
 t d d d | ƒ } | j | ƒ | j ƒ  \ } } g  | D] } | j ƒ  ^ q‘}	 g  | D] } | j ƒ  ^ q°} | d g | j	 k oód g | j k n sþt ‚ |	 d g g  | j	 D] }
 | j
 |
 ^ qk s4t ‚ | d g g  | j D] }
 | j |
 ^ qGk sjt ‚ | j ƒ  t j d d d d d d d	 d d
 t d d d | ƒ } | j | ƒ | j ƒ  \ } } g  | D] } | j ƒ  ^ qÐ}	 g  | D] } | j ƒ  ^ qï} d g g  | j	 D] }
 | j
 |
 ^ qd g g  | j D] } d ^ q?} d g g  | j	 D] } d ^ qbd g g  | j D] }
 | j |
 ^ qƒ} | d g | j	 d g | j k sÇt ‚ |	 | k sÙt ‚ | | k sët ‚ | j ƒ  t j d d d d d d d d d | d d ƒ } | j | ƒ | j ƒ  \ } } g  | D] } | j ƒ  ^ qK}	 g  | D] } | j ƒ  ^ qj} | d g | j	 k o­d g | j k n s¸t ‚ |	 d g g  | j	 D] }
 | j
 |
 ^ qËk sît ‚ | d g g  | j D] }
 | j |
 ^ qk s$t ‚ t j j d d ƒ \ } } t j t j d ƒ d ƒ } t j d | d | d | ƒ } | j ƒ  d | _ | j | ƒ | j ƒ  \ } } | g  | j	 D] }
 t |
 ƒ ^ q·k sØt ‚ | j ƒ  d | _ | j | ƒ | j ƒ  \ } } t | ƒ d k s"t ‚ t j d | d | d | ƒ } | j ƒ  d | _ | j | ƒ | j ƒ  \ } } | g  | j D] }
 t |
 ƒ ^ qk s t ‚ | j ƒ  d | _ | j | ƒ | j ƒ  \ } } t | ƒ d k sêt ‚ | j ƒ  d | _ t j t ƒ  | j | ƒ Wd  QX| j ƒ  t j d | d | d | d t j j ƒ  d d ƒ } | j | ƒ | j ƒ  \ } } t  | d ƒ t  | d ƒ d k s¦t ‚ | j ƒ  t j d | d | d | d t j j ƒ  d d ƒ } | j | ƒ | j ƒ  \ } } t  | d ƒ t  | d ƒ d k s,t ‚ d  S(   NR<   R=   RR   t   legendRƒ   RT   R9   t   wRU   RÓ   t    R:   s   .2Rf   RX   i    i   i(   i   t   briefi   t	   bad_valueR³   i   i
   RÅ   (!   t   pltt   subplotsRY   R   t   add_legend_datat   get_legend_handles_labelsR]   t   cleart	   get_colorR‘   R’   R   t
   get_markerRÔ   RÓ   t   get_linewidtht   size_levelsRÁ   R   R,   R-   RH   R+   R  t   strR.   Rr   Rs   Rt   R   R   RÃ   t   float(   R   RF   RW   t   axRj   t   handlesRã   t   labelst   hR   R|   RÓ   Rž   t   expected_markerst   widthsR<   R=   t   z(    (    s<   lib/python2.7/site-packages/seaborn/tests/test_relational.pyt   test_legend_data†  s®    $
!	6
!666
!KK*
'	666
	.
	
	.
	
	
	*
	c         C   sd	  t  j ƒ  \ } } t j d d d d d | d t d d  ƒ } | j | i  ƒ | j \ } t j	 | j
 ƒ  | j j ƒ s| t ‚ t j	 | j ƒ  | j j ƒ s  t ‚ | j ƒ  | j | i d d 6d d	 6ƒ | j \ } | j ƒ  d k sì t ‚ | j ƒ  d k st ‚ t j d d d d d | d t d d  ƒ } | j ƒ  | j | i  ƒ | j \ } t | d d g ƒ } t j	 | j
 ƒ  | j j ƒ st ‚ t j	 | j ƒ  | j j ƒ s±t ‚ t j d d d d d
 d d | ƒ } | j ƒ  | j | i  ƒ t | j ƒ t | j ƒ k st ‚ xB t | j | j ƒ D]+ \ } } | j ƒ  | j | k s)t ‚ q)Wt j d d d d d d d | ƒ } | j ƒ  | j | i  ƒ t | j ƒ t | j ƒ k sºt ‚ xB t | j | j ƒ D]+ \ } } | j ƒ  | j | k sÐt ‚ qÐWt j d d d d d
 d d d d t d | ƒ } | j ƒ  | j | i  ƒ t | j ƒ t | j ƒ k o{t | j ƒ k n s†t ‚ xa t | j | j ƒ D]J \ } } | j ƒ  | j | k sÇt ‚ | j ƒ  | j | k sœt ‚ qœWt j d d d d d
 d d d d t d | ƒ } | j ƒ  | j | i  ƒ t | j | j ƒ }	 t | j ƒ t | j ƒ t | j ƒ k szt ‚ xd t | j |	 ƒ D]P \ } \ }
 } | j ƒ  | j |
 k s¾t ‚ | j ƒ  | j | k st ‚ qWt j d d d d d | d d d d d d d t ƒ } | j ƒ  | j | i  ƒ | j \ } | j  d ƒ j j! ƒ  } t j	 | j
 ƒ  | j" j ƒ syt ‚ t j# | j ƒ  | j ƒ sšt ‚ t | j$ ƒ d k sµt ‚ t j d d d d d
 d d | d d d d d d ƒ } | j ƒ  | j | i  ƒ t | j ƒ t | j$ ƒ k o7t | j ƒ k n sBt ‚ x, | j$ D]! } t% | t& j$ j' ƒ sLt ‚ qLWt j d d d d d
 d d | d d d d d d ƒ } | j ƒ  | j | i  ƒ t | j$ ƒ t | j ƒ k såt ‚ x, | j$ D]! } t% | t& j$ j( ƒ sït ‚ qïWt j d d d d d | d d d d  ƒ } | j ƒ  | j | i  ƒ t | d j) ƒ  ƒ } t | j ƒ | k s‰t ‚ t j d d d d d
 d d | d d d d  ƒ } | j ƒ  | j | i  ƒ | t | d j) ƒ  ƒ 9} t | j ƒ | k st ‚ d | _* t+ j, t- ƒ  | j | i  ƒ Wd  QXt j d d d d d
 d d | d d d i d d 6ƒ } | j ƒ  | j | i  ƒ x) | j$ D] } | j. ƒ  d k s’t ‚ q’Wt j d d d d d
 d d | d d d i d d 6ƒ } | j ƒ  | j | i  ƒ x) | j$ D] } | j/ ƒ  d k s	t ‚ q	Wd | _0 t+ j, t- ƒ  | j | i  ƒ Wd  QXd  S(   NR<   R=   RR   Rª   Rø   t   kt   colort   testt   labelRT   R9   RX   RU   RÓ   R:   Rò   t	   err_stylet   bandR÷   Ró   i   t   barsRŒ   RG   t   err_kwsg      à?t   alphai   t
   elinewidtht   invalid(1   R  R  RY   R   RÄ   Rf   t   plott   linesR   R   t	   get_xdataR<   R0   R]   t	   get_ydataR=   R  R  t	   get_labelR   R   R.   R‘   R   R’   R  R  RÁ   RÔ   R  RÓ   R   Rõ   Rò   R&   t   allcloseR   R®   R   t   PolyCollectiont   LineCollectionR«   Rø   Rr   Rs   Rt   t	   get_alphat   get_linestylesR  (   R   RF   RJ   RW   R  Rj   t   linet   sorted_dataRÌ   R¡   RT   RU   t   expected_dataR?   t   n_unitsR  R&  (    (    s<   lib/python2.7/site-packages/seaborn/tests/test_relational.pyt	   test_plotû  sÎ    $$

$$$
$"#$
$"#!
="#!
1%#	
$!!
=!
$
!
	!
!
	c         C   sß   t  j d d d t ƒ\ } \ } } t j d d d d d | ƒ } | j | i  ƒ | j ƒ  d k sj t ‚ | j ƒ  d k s‚ t ‚ | j | i  ƒ | j ƒ  d k sª t ‚ | j ƒ  d k sÂ t ‚ | j	 j
 j ƒ  sÛ t ‚ d  S(   Ni   i   t   shareyR<   R=   RR   (   R  R  R   RY   R   R%  t
   get_xlabelR]   t
   get_ylabelt   yaxisR  t   get_visible(   R   RF   RW   t   ax1t   ax2Rj   (    (    s<   lib/python2.7/site-packages/seaborn/tests/test_relational.pyt   test_axis_labelsƒ  s    $c         C   sv   t  j ƒ  \ } } t  j ƒ  \ } } t j d | ƒ } | | k sH t ‚ t j d | d | ƒ } | | k sr t ‚ d  S(   NRR   R  (   R  R  RY   t   lineplotR]   (   R   R1   t   f1R9  t   f2R:  R  (    (    s<   lib/python2.7/site-packages/seaborn/tests/test_relational.pyt   test_lineplot_axes’  s    c	         C   s)  t  j ƒ  \ }	 }
 t j g  g  ƒ |
 j ƒ  t j d | ƒ |
 j ƒ  t j d | ƒ |
 j ƒ  t j d | ƒ |
 j ƒ  t j d | ƒ |
 j ƒ  t j d | ƒ |
 j ƒ  t j d | ƒ |
 j ƒ  t j d d d d d | ƒ |
 j ƒ  t j d | j d | j ƒ |
 j ƒ  t j d | j d d d | ƒ |
 j ƒ  t j d d d | j j d | ƒ |
 j ƒ  t j d d d d d d d | ƒ |
 j ƒ  t j d d d d d d d d d | ƒ |
 j ƒ  t j d d d d d d d d d | ƒ |
 j ƒ  t j d d d d d d d d d | ƒ |
 j ƒ  t j d d d d d d d d d | ƒ |
 j ƒ  t j d d d d d d d d d | ƒ |
 j ƒ  t j d d d d d d d d	 d | ƒ |
 j ƒ  t j d d d d d d d d d | ƒ |
 j ƒ  t j d d d d d d d d	 d | ƒ |
 j ƒ  d  S(
   NRR   R<   R=   RT   R9   RU   R:   RX   R5   (   R  R  RY   R<  R  R<   R=   R0   (   R   R3   R7   R2   R8   R;   R1   RF   RP   RW   R  (    (    s<   lib/python2.7/site-packages/seaborn/tests/test_relational.pyt   test_lineplot_smoke  sR    









"
"
(
(
(
(
(
(
(
((   Ré   Rê   R  R  R3  R;  R?  R@  (    (    (    s<   lib/python2.7/site-packages/seaborn/tests/test_relational.pyRì   E  s   	?	u	ˆ		t   TestScatterPlotterc           B   s5   e  Z d  „  Z d „  Z d „  Z d „  Z d „  Z RS(   c         C   sÜ  t  j j d ƒ } | j ƒ  j | j ƒ  ƒ } t  j j d ƒ } | j ƒ  j | j ƒ  ƒ } t j ƒ  \ } } t j	 d d d d d | d d ƒ } | j
 | ƒ | j ƒ  \ } }	 | g  k sÁ t ‚ | j ƒ  t j	 d d d d d d	 d | d d ƒ } | j
 | ƒ | j ƒ  \ } }
 g  | D] } | j ƒ  d
 ^ q} d g g  | j D] } | j | ^ qG} |
 d	 g | j k s}t ‚ |  j | | ƒ s•t ‚ | j ƒ  t j	 d d d d d d	 d d	 d t d d d | ƒ } | j
 | ƒ | j ƒ  \ } }
 g  | D] } | j ƒ  d
 ^ qû} d g g  | j D] } | j | ^ q'} g  | D] } | j ƒ  d
 ^ qH} | g g  | j D] } | j | ^ qt} |
 d	 g | j k o¹d	 g | j k n sÄt ‚ |  j | | ƒ sÜt ‚ |  j | | ƒ sôt ‚ | j ƒ  t j	 d d d d d d	 d d d t d d d | ƒ } | j
 | ƒ | j ƒ  \ } }
 g  | D] } | j ƒ  d
 ^ qZ} g  | D] } | j ƒ  d
 ^ q}} d g g  | j D] } | j | ^ q©d g g  | j D] }	 d ^ qÑ} | g g  | j D] }	 | ^ qô| g g  | j D] } | j | ^ q} |
 d	 g | j d g | j k sYt ‚ |  j | | ƒ sqt ‚ |  j | | ƒ s‰t ‚ | j ƒ  t j	 d d d d d d	 d d	 d | d d ƒ } | j
 | ƒ | j ƒ  \ } }
 g  | D] } | j ƒ  d
 ^ qé} d g g  | j D] } | j | ^ q} g  | D] } | j ƒ  d
 ^ q6} d
 g g  | j D] } | j | ^ qb} |
 d	 g | j k o§d	 g | j k n s²t ‚ |  j | | ƒ sÊt ‚ | | k sÜt ‚ t j j d d ƒ \ } } t j t j d ƒ d ƒ } t j	 d | d | d | ƒ } | j ƒ  d | _ | j
 | ƒ | j ƒ  \ } }
 |
 g  | j D] } t  | ƒ ^ qok st ‚ | j ƒ  d | _ | j
 | ƒ | j ƒ  \ } }
 t! |
 ƒ d k sÚt ‚ t j	 d | d | d | ƒ } | j ƒ  d | _ | j
 | ƒ | j ƒ  \ } }
 |
 g  | j D] } t  | ƒ ^ q7k sXt ‚ | j ƒ  d | _ | j
 | ƒ | j ƒ  \ } }
 t! |
 ƒ d k s¢t ‚ | j ƒ  d | _ t" j# t$ ƒ  | j
 | ƒ Wd  QXd  S(   NRÑ   R  R<   R=   RR   R  Rƒ   RT   R9   i    R  RU   RÓ   R:   s   .2RX   i   i(   i   R  i   R  (%   R   RÓ   t   MarkerStylet   get_patht   transformedt   get_transformR  R  RY   t   _ScatterPlotterR	  R
  R]   R  t   get_facecolorsR‘   R’   R   R   t	   get_pathsRÔ   t   pathsR"   t	   get_sizesR  RÁ   R   R,   R-   RH   R+   R  R  R.   Rr   Rs   Rt   (   R   RF   t   mt   default_markt	   null_markRW   R  Rj   R  Rã   R  R  R   R|   Rž   RI  t   expected_pathsRÁ   t   expected_sizesR<   R=   R  (    (    s<   lib/python2.7/site-packages/seaborn/tests/test_relational.pyR  â  s¤    $
!	#*
!#*#*6
!##KK*
!#*#*6
	.
	
	.
	
	c         C   s6  t  j ƒ  \ } } t j d d d d d | ƒ } | j | i  ƒ | j d } t j | j ƒ  | d d g j	 ƒ sx t
 ‚ | j ƒ  | j | i d d 6d d 6ƒ | j d } |  j | j ƒ  d ƒ sË t
 ‚ | j ƒ  d k sã t
 ‚ t j d d d d d	 d
 d | ƒ } | j ƒ  | j | i  ƒ | j d } g  | j d	 D] } | j | ^ q<} |  j | j ƒ  | ƒ sst
 ‚ t j d d d d d d d d d g d | ƒ } | j ƒ  d }	 | j | i |	 d 6ƒ | j d } |  j | j ƒ  |	 g ƒ søt
 ‚ t j d d d d d d
 d | ƒ } | j ƒ  | j | i  ƒ | j d } g  | j d D] } | j | ƒ ^ qQ}
 t j | j ƒ  |
 ƒ sŠt
 ‚ t j d d d d d	 d
 d d
 d t d | ƒ } | j ƒ  | j | i  ƒ g  | j d	 D] } | j | ^ qâ} g  | j d D] } | j | ^ q	} |  j | j ƒ  | ƒ s@t
 ‚ |  j | j ƒ  | ƒ s^t
 ‚ t j d d d d d	 d
 d d d t d | ƒ } | j ƒ  | j | i  ƒ g  | j d	 D] } | j | ^ q¶} g  | j d D] } | j | ^ qÝ} |  j | j ƒ  | ƒ st
 ‚ |  j | j ƒ  | ƒ s2t
 ‚ d  S(   NR<   R=   RR   i    R  R  R  R  RT   R9   RU   R?   RÓ   t   +i   g333333Ó?gš™™™™™é?RX   R:   (   i   g333333Ó?gš™™™™™é?(   R  R  RY   RF  R%  R   R   R   t   get_offsetsR0   R]   R  R   R   R)  R_   R’   RG  t   get_edgecolorst   size_lookupRJ  R   RI  R"   RH  (   R   RF   RJ   RW   R  Rj   t   pointsR  Rž   R  RO  RN  (    (    s<   lib/python2.7/site-packages/seaborn/tests/test_relational.pyR3  R  sZ    +
$
'
!$
)!
''!
''c         C   sß   t  j d d d t ƒ\ } \ } } t j d d d d d | ƒ } | j | i  ƒ | j ƒ  d k sj t ‚ | j ƒ  d k s‚ t ‚ | j | i  ƒ | j ƒ  d k sª t ‚ | j ƒ  d k sÂ t ‚ | j	 j
 j ƒ  sÛ t ‚ d  S(   Ni   i   R4  R<   R=   RR   (   R  R  R   RY   RF  R%  R5  R]   R6  R7  R  R8  (   R   RF   RW   R9  R:  Rj   (    (    s<   lib/python2.7/site-packages/seaborn/tests/test_relational.pyR;    s    $c         C   sv   t  j ƒ  \ } } t  j ƒ  \ } } t j d | ƒ } | | k sH t ‚ t j d | d | ƒ } | | k sr t ‚ d  S(   NRR   R  (   R  R  RY   t   scatterplotR]   (   R   R1   R=  R9  R>  R:  R  (    (    s<   lib/python2.7/site-packages/seaborn/tests/test_relational.pyt   test_scatterplot_axesž  s    c	         C   s)  t  j ƒ  \ }	 }
 t j g  g  ƒ |
 j ƒ  t j d | ƒ |
 j ƒ  t j d | ƒ |
 j ƒ  t j d | ƒ |
 j ƒ  t j d | ƒ |
 j ƒ  t j d | ƒ |
 j ƒ  t j d | ƒ |
 j ƒ  t j d d d d d | ƒ |
 j ƒ  t j d | j d | j ƒ |
 j ƒ  t j d | j d d d | ƒ |
 j ƒ  t j d d d | j j d | ƒ |
 j ƒ  t j d d d d d d d | ƒ |
 j ƒ  t j d d d d d d d d d | ƒ |
 j ƒ  t j d d d d d d d d d | ƒ |
 j ƒ  t j d d d d d d d d d | ƒ |
 j ƒ  t j d d d d d d d d d | ƒ |
 j ƒ  t j d d d d d d d d d | ƒ |
 j ƒ  t j d d d d d d d d	 d | ƒ |
 j ƒ  t j d d d d d d d d d | ƒ |
 j ƒ  t j d d d d d d d d	 d | ƒ |
 j ƒ  d  S(
   NRR   R<   R=   RT   R9   RU   R:   RX   R5   (   R  R  RY   RU  R  R<   R=   R0   (   R   R3   R7   R2   R8   R;   R1   RF   RP   RW   R  (    (    s<   lib/python2.7/site-packages/seaborn/tests/test_relational.pyt   test_scatterplot_smoke©  sR    









"
"
(
(
(
(
(
(
(
((   Ré   Rê   R  R3  R;  RV  RW  (    (    (    s<   lib/python2.7/site-packages/seaborn/tests/test_relational.pyRA  à  s
   	p	=		t   TestRelPlotterc           B   s>   e  Z d  „  Z d „  Z d „  Z d „  Z d „  Z d „  Z RS(   c         C   sM  t  j d d d d d d d | ƒ } | j j d j ƒ  j \ } } t j | | d ƒ s_ t ‚ t j | | d ƒ s{ t ‚ t  j d d d d d d d | ƒ } | j j	 d j
 ƒ  j \ } } | j d ƒ j j ƒ  } t j | | j ƒ sñ t ‚ | t j | j ƒ k st ‚ t j t ƒ ) t  j d d d d d d d | ƒ } Wd  QXd  S(	   NR<   R=   t   kindt   scatterRR   i    R/  t
   not_a_kind(   RY   t   relplotR  R   RQ  t   TR   R   R]   R&  t
   get_xydataRõ   R=   Rò   R&   Rr   R¶   R0   Rs   Rt   (   R   RF   t   gR<   R=   Ræ   (    (    s<   lib/python2.7/site-packages/seaborn/tests/test_relational.pyt   test_relplot_simpleî  s    $$c   
      C   s@  x– d d d g D]… } t  j d d d d d | i d | 6 } | j j d j ƒ  j \ } } t j | | d ƒ sy t ‚ t j | | d ƒ s t ‚ q WxÔ d d d g D]Ã } t  j d d d d d	 d
 d | i d | 6 } | j	 d
 ƒ } x} t
 | | j j ƒ D]f \ \ } } }	 |	 j d j ƒ  j \ } } t j | | d ƒ sLt ‚ t j | | d ƒ st ‚ qWq© Wx× d d g D]É } t  j d d d d d d d	 d
 d | i d | 6 } | j	 d
 ƒ } x} t
 | | j j ƒ D]f \ \ } } }	 |	 j d j ƒ  j \ } } t j | | d ƒ s&t ‚ t j | | d ƒ sÜt ‚ qÜWq}Wxï d d d g D]Þ } t  j d d d d d	 d d d
 d t | d
 d g ƒ i d | 6 } | j	 d
 d g ƒ } x} t
 | | j j ƒ D]f \ \ } } }	 |	 j d j ƒ  j \ } } t j | | d ƒ st ‚ t j | | d ƒ sÎt ‚ qÎWqZWd  S(   NRT   RX   RU   R<   R=   RR   R9   i    R   R?   R:   t   row(   RY   R\  R  R   RQ  R]  R   R   R]   Rõ   R   t   axest   flatR   (
   R   RF   Rï   R_  R<   R=   t   groupedRã   t   grp_dfR  (    (    s<   lib/python2.7/site-packages/seaborn/tests/test_relational.pyt   test_relplot_complexþ  s<    ( ($$($!(c         C   sï   d d d g } t  j d d d d d d d d d	 d
 d | d | ƒ } t t | d j ƒ  | ƒ ƒ } | j d
 ƒ } xu t | | j j ƒ D]^ \ \ } } } | j d } g  | d D] }	 | |	 ^ q³ }
 |  j	 | j
 ƒ  |
 ƒ s‰ t ‚ q‰ Wd  S(   Nt   rR:   R_  R<   R=   RT   R9   RU   R   R?   R’   RR   i    (   RY   R\  RA   R   R«   Rõ   Rb  Rc  R   R   RG  R]   (   R   RF   R’   R_  Rd  Rã   Re  R  RT  t   valt   expected_hues(    (    s<   lib/python2.7/site-packages/seaborn/tests/test_relational.pyt   test_relplot_hues"  s    '(!c         C   sï   d d d g } t  j d d d d d d d d	 d
 d d | d | ƒ } t t | d j ƒ  | ƒ ƒ } | j d ƒ } xu t | | j j ƒ D]^ \ \ } } } | j d } g  | d D] }	 | |	 ^ q³ }
 t	 j
 | j ƒ  |
 ƒ s‰ t ‚ q‰ Wd  S(   Ni   i   i   R<   R=   RX   R9   RT   R:   R   R?   RÁ   RR   i    (   RY   R\  RA   R   R«   Rõ   Rb  Rc  R   R   R   RJ  R]   (   R   RF   RÁ   R_  Rd  Rã   Re  R  RT  Rh  RO  (    (    s<   lib/python2.7/site-packages/seaborn/tests/test_relational.pyt   test_relplot_sizes/  s    '(!c         C   s:  d d d g } t  j d d d d d d d d	 d
 d d | d | ƒ } g  } xB | D]: } t j j | ƒ } | j | j ƒ  j | j ƒ  ƒ ƒ qR Wt	 t
 | d j ƒ  | ƒ ƒ } | j d ƒ } xu t
 | | j j ƒ D]^ \ \ } } }	 |	 j d }
 g  | d D] } | | ^ qþ } |  j |
 j ƒ  | ƒ sÔ t ‚ qÔ Wd  S(   NRÑ   R™   R5   R<   R=   RU   R9   RT   R:   R   R?   RÓ   RR   i    (   RY   R\  R   RÓ   RB  R
   RC  RD  RE  RA   R   R«   Rõ   Rb  Rc  R   R"   RH  R]   (   R   RF   RÓ   R_  RI  RK  Rd  Rã   Re  R  RT  Rh  RN  (    (    s<   lib/python2.7/site-packages/seaborn/tests/test_relational.pyt   test_relplot_styles<  s    '&(!c         C   sn  t  j d d d d d | ƒ } | j d  k s3 t ‚ t  j d d d d d d d | ƒ } g  | j j D] } | j ƒ  ^ qd } t j d g | d j	 ƒ  ƒ } t j
 | | ƒ s³ t ‚ t  j d d d d d d d d d | ƒ } g  | j j D] } | j ƒ  ^ qê } t j
 | d t j | d ƒ ƒ s+t ‚ t  j d d d d d d d	 t d | ƒ } | j d  k sjt ‚ d  S(
   NR<   R=   RR   RT   R9   R5   RX   i   R  (   RY   R\  t   _legendRf   R]   t   textst   get_textR   R
   R«   R   Rª   RÄ   (   R   RF   R_  R4   Rn  t   expected_texts(    (    s<   lib/python2.7/site-packages/seaborn/tests/test_relational.pyt   test_relplot_legendN  s    $%*%)*(   Ré   Rê   R`  Rf  Rj  Rk  Rl  Rq  (    (    (    s<   lib/python2.7/site-packages/seaborn/tests/test_relational.pyRX  ì  s   		$			(   t
   __future__R    t	   itertoolsR   t   numpyR   t   pandasR)   t
   matplotlibR   t   matplotlib.pyplott   pyplotR  Rr   R  R   RY   t   palettesR   t   utilsR   R   R„   R   Rì   RA  RX  (    (    (    s<   lib/python2.7/site-packages/seaborn/tests/test_relational.pyt   <module>   s$   ÿ ÿ ÿ ;ÿ œÿ 