ó
—W[c           @   s  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 j Z d  d l j Z d  d l m Z d d l m Z y( d  d l Z e j j s® t ‚ e Z Wn e k
 rÎ e Z n Xe e j  ƒ d k  Z! d e" f d „  ƒ  YZ# d	 e" f d
 „  ƒ  YZ$ d S(   iÿÿÿÿN(   t   LooseVersion(   t   skipifi   (   t   distributionss   1.5t   TestKDEc           B   sí   e  Z e j j d  ƒ Z e j d ƒ Z e j d ƒ Z d Z	 d Z
 d Z e j e j f Z d Z d „  Z e e ƒ d „  ƒ Z d „  Z e e ƒ d	 „  ƒ Z e e ƒ d
 „  ƒ Z d „  Z d „  Z e e ƒ d „  ƒ Z d „  Z d „  Z RS(   i    i2   t   gaut   scotti€   i   c         C   s¢   t  j |  j |  j |  j |  j |  j ƒ \ } } t j t	 | ƒ |  j ƒ t j t	 | ƒ |  j ƒ x9 d d g D]+ } t  j |  j | |  j |  j |  j ƒ qo Wd S(   s.   Test the univariate KDE estimation with scipy.t	   silvermangš™™™™™É?N(
   t   distt   _scipy_univariate_kdet   xt   bwt   gridsizet   cutt   clipt   ntt   assert_equalt   len(   t   selft   gridt   yR
   (    (    s?   lib/python2.7/site-packages/seaborn/tests/test_distributions.pyt   test_scipy_univariate_kde$   s    c         C   s®   t  j |  j |  j |  j |  j |  j |  j ƒ \ } } t j	 t
 | ƒ |  j ƒ t j	 t
 | ƒ |  j ƒ x? d d g D]1 } t  j |  j |  j | |  j |  j |  j ƒ qu Wd S(   s4   Test the univariate KDE estimation with statsmodels.R   gš™™™™™É?N(   R   t   _statsmodels_univariate_kdeR	   t   kernelR
   R   R   R   R   R   R   (   R   R   R   R
   (    (    s?   lib/python2.7/site-packages/seaborn/tests/test_distributions.pyt   test_statsmodels_univariate_kde.   s    c         C   s&  |  j  |  j  g } t j |  j |  j |  j |  j |  j | ƒ \ } } } t j	 | j
 |  j |  j f ƒ t j	 | j
 |  j |  j f ƒ t j	 t | ƒ |  j ƒ |  j  |  j  g } t j |  j |  j d |  j |  j | ƒ \ } } } t j t ƒ - t j |  j |  j d |  j |  j | ƒ Wd QXd S(   s-   Test the bivariate KDE estimation with scipy.i   i   N(   i   i   (   R   R   t   _scipy_bivariate_kdeR	   R   R
   R   R   R   R   t   shapeR   t   assert_raisest
   ValueError(   R   R   R	   R   t   z(    (    s?   lib/python2.7/site-packages/seaborn/tests/test_distributions.pyt   test_scipy_bivariate_kde;   s    c         C   s£   |  j  |  j  g } t j |  j |  j |  j |  j |  j | ƒ \ } } } t j	 | j
 |  j |  j f ƒ t j	 | j
 |  j |  j f ƒ t j	 t | ƒ |  j ƒ d S(   s3   Test the bivariate KDE estimation with statsmodels.N(   R   R   t   _statsmodels_bivariate_kdeR	   R   R
   R   R   R   R   R   R   (   R   R   R	   R   R   (    (    s?   lib/python2.7/site-packages/seaborn/tests/test_distributions.pyt   test_statsmodels_bivariate_kdeN   s    c      	   C   s”   t  j |  j |  j |  j |  j |  j |  j d t ƒ\ } } t	 j
 t | ƒ |  j ƒ t	 j
 t | ƒ |  j ƒ t j t j | ƒ d k j ƒ  ƒ d S(   s#   Test computation of cumulative KDE.t
   cumulativei    N(   R   R   R	   R   R
   R   R   R   t   TrueR   R   R   t   nptt   assert_t   npt   difft   all(   R   R   R   (    (    s?   lib/python2.7/site-packages/seaborn/tests/test_distributions.pyt   test_statsmodels_kde_cumulativeY   s    c      
   C   s9   t  j t ƒ $ t j |  j d |  j d t ƒWd QXd S(   s:   Check error if args indicate bivariate KDE and cumulative.t   data2R    N(   R"   R   t	   TypeErrorR   t   kdeplotR	   R   R!   (   R   (    (    s?   lib/python2.7/site-packages/seaborn/tests/test_distributions.pyt   test_kde_cummulative_2de   s    c         C   s©   t  j i |  j d 6|  j d 6ƒ } t j | j | j ƒ } t j | j j | j j ƒ } t j t	 | j
 ƒ t	 | j
 ƒ ƒ t j | j
 d j ƒ  | j
 d j ƒ  ƒ d  S(   NR	   R   i    (   t   pdt	   DataFrameR	   R   R   R*   t   valuesR   R   R   t   collectionst	   get_paths(   R   t   dft	   ax_seriest	   ax_values(    (    s?   lib/python2.7/site-packages/seaborn/tests/test_distributions.pyt   test_bivariate_kde_seriesj   s    #c      	   C   s}   t  j ƒ  \ } } t j |  j |  j d t d t d d ƒ d | ƒt j	 t
 | j ƒ d ƒ t j	 | j d j ƒ  d ƒ d  S(   Nt   cbart   cbar_kwst   labelt   densityt   axi   i   (   t   pltt   subplotsR   R*   R	   R   R!   t   dictR   R   R   t   axest
   get_ylabel(   R   t   fR9   (    (    s?   lib/python2.7/site-packages/seaborn/tests/test_distributions.pyt   test_bivariate_kde_colorbaru   s    c         C   s°   t  j ƒ  \ } } t j |  j |  j d d ƒ| j d } | j ƒ  d k sS t ‚ t  j ƒ  \ } } t j |  j |  j d t	 d d ƒ| j
 d } | j ƒ  d k s¬ t ‚ d  S(   NR7   t   test1iÿÿÿÿt   shadet   test2(   R:   R;   R   R*   R	   R   t   linest	   get_labelt   AssertionErrorR!   R/   (   R   R?   R9   t   linet   fill(    (    s?   lib/python2.7/site-packages/seaborn/tests/test_distributions.pyt   test_legend   s    "c         C   s<  d	 } t  j ƒ  \ } } t j |  j |  j d | ƒ| j d } t j | j	 ƒ  d d  d … f | ƒ so t
 ‚ | j d j	 ƒ  j ƒ  } | j d j	 ƒ  j ƒ  } | | k  s³ t
 ‚ t  j ƒ  \ } } t j |  j |  j d t d | ƒ| j d } | j d j ƒ  j ƒ  } | j d j ƒ  j ƒ  } | | k s8t
 ‚ d  S(
   Ngš™™™™™¹?g      à?gffffffæ?t   coloriÿÿÿÿi    i   RB   (   gš™™™™™¹?g      à?gffffffæ?(   R:   R;   R   R*   R	   R   R/   R$   t   array_equalt	   get_colorRF   t   meanR!   t   get_facecolor(   R   t   rgbR?   R9   t   contourt   lowt   high(    (    s?   lib/python2.7/site-packages/seaborn/tests/test_distributions.pyt   test_contour_color‹   s    ."(   t   __name__t
   __module__R$   t   randomt   RandomStatet   rst   randnR	   R   R   R
   R   t   infR   R   R   R   t   _no_statsmodelsR   R   R   R'   R+   R4   t   _old_matplotlibR@   RI   RS   (    (    (    s?   lib/python2.7/site-packages/seaborn/tests/test_distributions.pyR      s$   	
			
	t   TestRugPlotc           B   sG   e  Z e j d  „  ƒ Z e j d „  ƒ Z e j d „  ƒ Z d „  Z RS(   c         C   s   t  j j d ƒ j ƒ  S(   Ni   (   R$   RV   RY   t   tolist(   R   (    (    s?   lib/python2.7/site-packages/seaborn/tests/test_distributions.pyt	   list_data¡   s    c         C   s   t  j j d ƒ S(   Ni   (   R$   RV   RY   (   R   (    (    s?   lib/python2.7/site-packages/seaborn/tests/test_distributions.pyt
   array_data¥   s    c         C   s   t  j t j j d ƒ ƒ S(   Ni   (   R,   t   SeriesR$   RV   RY   (   R   (    (    s?   lib/python2.7/site-packages/seaborn/tests/test_distributions.pyt   series_data©   s    c         C   sÅ  d } x}| | | g D]l} t  j ƒ  \ } } t j | | ƒ | j \ } t j | j ƒ  ƒ }	 t |	 ƒ t | ƒ k s} t	 ‚ t j
 |	 d  d  … d d f | ƒ s¨ t	 ‚ t j
 |	 d  d  … d d f | ƒ sÓ t	 ‚ t j
 |	 d  d  … d d f t j | ƒ ƒ st	 ‚ t j
 |	 d  d  … d d f t j | ƒ | ƒ s?t	 ‚ t  j | ƒ t  j ƒ  \ } } t j | | d d ƒ| j \ } t j | j ƒ  ƒ }	 t |	 ƒ t | ƒ k s³t	 ‚ t j
 |	 d  d  … d d f | ƒ sÞt	 ‚ t j
 |	 d  d  … d d f | ƒ s	t	 ‚ t j
 |	 d  d  … d d f t j | ƒ ƒ s=t	 ‚ t j
 |	 d  d  … d d f t j | ƒ | ƒ sut	 ‚ t  j | ƒ q Wt  j ƒ  \ } } t j | d d ƒt j | d t ƒ| j \ }
 } t j
 |
 j ƒ  | j ƒ  ƒ sñt	 ‚ t  j | ƒ t  j ƒ  \ } } t j | ƒ t j | d d ƒt j | d	 d
 d d ƒxP t | j d d d
 g ƒ D]3 \ } } t j | j ƒ  ƒ j ƒ  | k set	 ‚ qeW| j ƒ  d k s´t	 ‚ t  j | ƒ d  S(   Ngš™™™™™¹?i    i   t   axisR   t   verticalt   lwi   t	   linewidthi   t   alphag      à?(   R:   R;   R   t   rugplotR/   R$   t   arrayt   get_segmentsR   RF   RK   t
   zeros_liket	   ones_liket   closeR!   t   zipt   squeezet   get_linewidtht   itemt	   get_alpha(   R   R_   R`   Rb   t   ht   dataR?   R9   t   rugt   segmentst   c1t   c2t   cRe   (    (    s?   lib/python2.7/site-packages/seaborn/tests/test_distributions.pyt   test_rugplot­   sH    ++48++48$(+(   RT   RU   t   pytestt   fixtureR_   R`   Rb   Rz   (    (    (    s?   lib/python2.7/site-packages/seaborn/tests/test_distributions.pyR]   Ÿ   s   (%   t   numpyR$   t   pandasR,   t
   matplotlibt   mplt   matplotlib.pyplott   pyplotR:   R{   t   distutils.versionR    t
   nose.toolst   toolsR   t   numpy.testingt   testingR"   t   numpy.testing.decoratorsR   t    R   R   t   statsmodels.nonparametric.apit   statsmodelst   nonparametrict   apiRF   t   FalseR[   t   ImportErrorR!   t   __version__R\   t   objectR   R]   (    (    (    s?   lib/python2.7/site-packages/seaborn/tests/test_distributions.pyt   <module>   s$   

†