ó
šxŠ\c           @  s¢   d  d l  m Z d  d l Z d  d l Z d  d l Z d  d l m Z m Z m	 Z	 d  d l
 m Z d  d l j j Z d  d l m Z m Z d e f d „  ƒ  YZ d S(   iÿÿÿÿ(   t   print_functionN(   t	   DataFramet   Seriest	   Timestamp(   t   TestData(   t   assert_frame_equalt   assert_series_equalt   TestDataFrameQuantilec           B  sk   e  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  sÛ  d d l  m } |  j j d d d ƒ} | d | |  j d d ƒ k sN t ‚ t j | j |  j j ƒ |  j j d d d	 ƒ} | d
 | |  j j	 d
 d ƒ k s¨ t ‚ t j | j |  j j ƒ t
 i g  d 6g  d 6ƒ j d d d ƒ} t j | d ƒ rt j | d ƒ st ‚ t
 i d d d d g d 6d	 d d d g d 6ƒ } | j d ƒ } | j ƒ  j d ƒ } t | | ƒ t
 i d	 d d g d 6d d d g d 6d d	 d d g ƒ} | j d d d	 ƒ} t d d d g d d	 d d g d d ƒ} t | | ƒ | j d d g d d	 ƒ} t
 i d d g d	 6d d g d 6d d g d 6d d d g ƒ} t | | d t ƒt
 d	 d d g d d  d g g ƒ } | j d d d	 ƒ} t d! d" g d d d	 g d d ƒ} t | | ƒ d  S(#   Niÿÿÿÿ(   t
   percentilegš™™™™™¹?t   axisi    t   Ai
   gÍÌÌÌÌÌì?i   s
   2000-01-17iZ   t   xt   yt   Bt   col1i   i   i   t   col2g      à?t   indexg      ø?g      @g      @t   nameg      è?g      ü?g      @g      @t   check_index_typet   at   bg      @g      @(   t   numpyR   t   tsframet   quantilet   AssertionErrort   tmt   assert_index_equalR   t   columnst   locR   t   npt   isnant   mediant   renameR   R   R   t   True(   t   selfR   t   qt   dft   rst   xpt   resultt   expected(    (    s?   lib/python2.7/site-packages/pandas/tests/frame/test_quantile.pyt   test_quantile   s6    &"),2;* $c      
   C  sÂ   t  i d d d g d 6d d d g d 6t j d	 d
 d ƒd 6d d d g d 6ƒ } | j d d d ƒ} t d d d g d d ƒ} t | | ƒ t j t ƒ  | j d d d d t	 ƒWd  QXd  S(   Ni   i   i   R
   g       @g      @g      @R   t   20130101t   periodst   Ct   foot   bart   bazt   Dg      à?R	   g      ø?g      @g      @R   t   numeric_only(
   R   t   pdt
   date_rangeR   R   R   t   pytestt   raisest	   TypeErrort   False(   R"   R$   R'   R(   (    (    s?   lib/python2.7/site-packages/pandas/tests/frame/test_quantile.pyt   test_quantile_axis_mixed;   s    c         C  sM  t  i d d d g d 6d d d g d 6d d d d g ƒ} | j d d	 d
 ƒ} t d d g d d d g d d ƒ} t | | ƒ | j d d	 d ƒ} t | | ƒ | j d d	 d ƒ} t d d d g d d d d g d d ƒ} t | | ƒ | j d d	 d ƒ} t | | ƒ t j t | j d d	 d ƒt j t | j d d	 d ƒd  S(   Ni   i   i   R
   i   R   R   g      à?R	   i    g       @g      @R   g      ø?g      @g      @R   gš™™™™™¹?iÿÿÿÿt   column(   R   R   R   R   R4   R5   t
   ValueError(   R"   R$   R'   R(   (    (    s?   lib/python2.7/site-packages/pandas/tests/frame/test_quantile.pyt   test_quantile_axis_parameterJ   s    ;$*c         C  sX  d d l  m } |  j j d d d d d ƒ} | d | |  j d d	 ƒ k sT t ‚ |  j j d ƒ } | d | |  j d d	 ƒ k sŒ t ‚ |  j j d ƒ } | d t j |  j d d	 ƒ k sÇ t ‚ t j | | ƒ t	 i d
 d d g d 6d d d g d 6d d
 d d g ƒ} | j d d d
 d d ƒ} t
 d
 d d g d d
 d d g d d ƒ} t j | | ƒ t j t j d
 d d g d d d g g ƒ d d d d d ƒ} t
 | d d
 d d g d d d d ƒ} t j | | ƒ t	 i d d d g d 6d d d g d 6d d
 d d g ƒ} | j d d d
 d d ƒ} t
 d d d g d d
 d d g d d ƒ} t j | | ƒ t j t j d d d g d d d g g ƒ d d d d d ƒ} t
 | d d
 d d g d d d d ƒ} t | | ƒ | j d d g d d
 d d ƒ} t	 i d d g d
 6d d g d 6d d g d 6d d d g ƒ} t | | ƒ t	 i g  d 6g  d 6ƒ } | j d d d d d ƒ} t j | d ƒ r¨t j | d ƒ s®t ‚ t	 d
 d
 d
 g d d d g d d d g g d d  d! d" g ƒ} | j d# d g d d$ ƒ} t	 d% d% d% g d d d g g d d# d g d d  d! d" g ƒ} t | | ƒ d  S(&   Niÿÿÿÿ(   R   gš™™™™™¹?R	   i    t   interpolationt   linearR
   i
   i   i   i   i   R   R   g      à?t   nearestR   t   dtypet   int64g      ð?g       @g      @g      @t   float64g      è?t   lowerR   R   t   higherR   R   R   t   cg      Ð?t   midpointg      ø?(   R   R   R   R   R   t   intframeR   R   R   R   R   t   arrayR   R   (   R"   R   R#   t   q1R$   R'   R(   t   exp(    (    s?   lib/python2.7/site-packages/pandas/tests/frame/test_quantile.pyt   test_quantile_interpolationb   sJ    &&);*0';*0'! ,-!c         C  sx  t  d d d g d d d g d d d g g d d d d g ƒ} | j d d	 g ƒ } t  d
 d
 d
 g d d d g g d d d	 g d d d d g ƒ} t | | ƒ | j d d	 g d d ƒ} t  d
 d
 d
 g d d d g g d d d	 g d d d d g ƒ} t  i g  d 6g  d 6ƒ j d d g d d ƒ} t  i t j t j g d 6t j t j g d 6d d d g ƒ} t | | ƒ d  S(   Ni   i   i   R   R   R   RD   g      Ð?g      à?g      ø?g       @R   R	   i    R   R   gš™™™™™¹?gÍÌÌÌÌÌì?(   R   R   R   R   t   nan(   R"   R$   R'   R(   (    (    s?   lib/python2.7/site-packages/pandas/tests/frame/test_quantile.pyt   test_quantile_multiœ   s    -!!//c         C  sá  t  i t j d d g ƒ d 6d d g d 6ƒ } | j d ƒ } t d g d	 d g ƒ} | j d d
 t ƒ} t t d ƒ d g d	 d d g d d ƒ} t | | ƒ | j d g d
 t ƒ} t  t d ƒ d g g d	 d g d d d g ƒ} t | | ƒ t j d d g ƒ | d <| d d g j d d d d
 t ƒ} t t d ƒ t d ƒ g d	 d d g d d ƒ} t | | ƒ | d d g j d g d d d
 t ƒ} t  t d ƒ t d ƒ g g d	 d g d d d g ƒ} t | | ƒ d  S(   Nt   2010t   2011R   i    i   R   g      à?g      @R   R1   s   2010-07-02 12:00:00R   R   t   2012RD   R	   i   s   2011-07-02 12:00:00(	   R   R2   t   to_datetimeR   R   R7   R   R   R   (   R"   R$   R'   R(   (    (    s?   lib/python2.7/site-packages/pandas/tests/frame/test_quantile.pyt   test_quantile_datetime¯   s0    /	%	(c         C  s_   d } xR d d d d g d d g g D]2 } t  j t d | ƒ |  j j | ƒ Wd  QXq% Wd  S(   Ns2   percentiles should all be in the interval \[0, 1\]iÿÿÿÿi   g      à?t   match(   R4   R5   R:   R   R   (   R"   t   msgt   invalid(    (    s?   lib/python2.7/site-packages/pandas/tests/frame/test_quantile.pyt   test_quantile_invalid×   s    %c      	   C  s1  t  i t j d ƒ t j d ƒ t j d ƒ g d 6t j d d d ƒt j d d d ƒt j d d d ƒg d 6t j d ƒ t j d	 ƒ t j d
 ƒ g d 6ƒ } | j d d t ƒ} t j t j d ƒ t j d d d ƒt j d	 ƒ g d d d d d d g ƒ} t j | | ƒ | j d g d t ƒ} t j  t j d ƒ t j d d d ƒt j d	 ƒ g g d d g d d d d g ƒ} t j	 | | ƒ t  i t j d ƒ t j
 t j d ƒ t j d ƒ g d 6t j d ƒ t j d ƒ t j
 t j d ƒ g d 6t j d d d ƒt j
 t j d d d ƒt j d d d ƒg d 6t j d d d ƒt j d d d ƒt j
 t j d d d ƒg d 6t j d ƒ t j d	 ƒ t j d
 ƒ t j
 g d 6t j
 t j d ƒ t j d	 ƒ t j d
 ƒ g d 6d t d ƒ ƒ} | j d d t ƒ} t j t j d ƒ t j d ƒ t j d d d ƒt j d d d ƒt j d	 ƒ t j d	 ƒ g d d d t d ƒ ƒ} t j | | ƒ | j d g d t ƒ} t j  t j d ƒ t j d ƒ t j d d d ƒt j d d d ƒt j d	 ƒ t j d	 ƒ g g d d g d t d ƒ ƒ} t j	 | | ƒ d  S(   Ns
   2011-01-01s
   2011-01-02s
   2011-01-03R
   t   tzs
   US/EasternR   s   1 dayss   2 dayss   3 daysR,   g      à?R1   R   R   R   R   R   RD   t   AaBbCc(   R   R2   R   t	   TimedeltaR   R7   R   R   R   R   t   NaTt   list(   R"   R$   t   resRI   (    (    s?   lib/python2.7/site-packages/pandas/tests/frame/test_quantile.pyt   test_quantile_boxÝ   s€    c         C  s)  t  i t j d d ƒ d 6t j d d ƒ d 6ƒ } t j | j d <| j d ƒ } t d d g d	 d d g d
 d ƒ} t j | | ƒ | j d d g ƒ } t  i d d g d 6d d g d 6d	 d d g ƒ} t j	 | | ƒ | j d d d ƒ} t t j d d ƒ d
 d ƒ} t j | | ƒ | j d d g d d ƒ} t  t j d d ƒ g d d	 d d g ƒ} t j	 | | ƒ t j | d <| j d ƒ } t d t j g d	 d d g d
 d ƒ} t j | | ƒ | j d d g ƒ } t  i d d g d 6t j t j g d 6d	 d d g ƒ} t j	 | | ƒ d  S(   Ni   g      @R   R   iÿÿÿÿg      à?g      @g      @R   R   g      è?g      @g      
@R	   g      ð?i   (   iÿÿÿÿi   (
   R   R   t   arangeRK   t   ilocR   R   R   R   R   (   R"   R$   R[   RI   (    (    s?   lib/python2.7/site-packages/pandas/tests/frame/test_quantile.pyt   test_quantile_nan&  s,    2$2+')c         C  s¼  t  i t j t j t j g d 6ƒ } | j d d t ƒ} t t j g d d g d d ƒ} t j | | ƒ | j d g d t ƒ} t  i t j g d 6d d g ƒ} t j | | ƒ t  i t j	 d ƒ t j	 d ƒ t j	 d ƒ g d 6t j t j t j g d	 6ƒ } | j d d t ƒ} t t j	 d ƒ t j g d d d	 g d d ƒ} t j | | ƒ | j d g d t ƒ} t  t j	 d ƒ t j g g d d g d
 d d	 g ƒ} t j | | ƒ d  S(   NR   g      à?R1   R   R   s
   2012-01-01s
   2012-01-02s
   2012-01-03R   R   (
   R   R2   RY   R   R7   R   R   R   R   R   (   R"   R$   R[   RI   (    (    s?   lib/python2.7/site-packages/pandas/tests/frame/test_quantile.pyt   test_quantile_natH  s&    %!"'	'c         C  sð   t  d d d g d d ƒ } | j d ƒ } t t j t j g d d d g d d ƒ} t j | | ƒ | j d g ƒ } t  t j t j g g d d d g d d g ƒ} t j | | ƒ t  d d d g d d	 ƒ } t  d d d g d d
 ƒ } d  S(   NR   R   R   R?   RA   g      à?R   R   R@   s   datetime64[ns](   R   R   R   R   RK   R   R   R   (   R"   R$   R[   RI   (    (    s?   lib/python2.7/site-packages/pandas/tests/frame/test_quantile.pyt   test_quantile_emptye  s    *0(   t   __name__t
   __module__R)   R8   R;   RJ   RL   RQ   RU   R\   R_   R`   Ra   (    (    (    s?   lib/python2.7/site-packages/pandas/tests/frame/test_quantile.pyR      s   	*			:		(		I	"	(   t
   __future__R    R   R   R4   t   pandasR2   R   R   R   t   pandas.tests.frame.commonR   t   pandas.util.testingt   utilt   testingR   R   R   R   (    (    (    s?   lib/python2.7/site-packages/pandas/tests/frame/test_quantile.pyt   <module>   s   