ó
šxŠ\c           @   sE  d  d l  Z d  d l Z d  d l m Z d  d l m Z d  d l m Z m	 Z	 d  d l
 Z d  d l m Z m Z d  d l j j Z d „  Z e j j d e j d d	 ƒ g d d
 g f e j d d	 ƒ g d	 d
 g f d g d	 d
 g f d g d	 d
 g f e j d d	 ƒ g e j j j ƒ  d
 g f e j d d	 ƒ d g d d
 e g f e j e j d d d ƒƒ d d
 d d g f e j d d d ƒd d
 d d g f g ƒ d „  ƒ Z d „  Z d „  Z e j j d e j d d	 ƒ e j d d ƒ g d d f e j d d	 ƒ g d d f g ƒ d „  ƒ Z  d „  Z! d „  Z" d „  Z# d „  Z$ e j j d e% e j& e j' d d g ƒ d „  ƒ Z( d „  Z) d  „  Z* d! „  Z+ e j j d" d# d$ g ƒ d% „  ƒ Z, d& „  Z- d' „  Z. e j j d( d) g e j d* d	 ƒ d+ d, d- g f d) g d e d, d- g f d) g e j/ e d, d- g f d) d, d- g e j d* d	 ƒ d+ g d f d) d, d- g e j d* d	 ƒ e j d. d	 ƒ e j d/ d	 ƒ g d+ d0 d1 g f g ƒ d2 „  ƒ Z0 d3 „  Z1 d4 „  Z2 d5 „  Z3 d6 „  Z4 e j j d" e j d* d7 d8 ƒe d* d. d* g d7 d8 ƒg ƒ d9 „  ƒ Z5 d: „  Z6 d; „  Z7 d< e8 f d= „  ƒ  YZ9 d S(>   iÿÿÿÿN(   t   iNaT(   t   IncompatibleFrequency(   t   PeriodDtypet   registry(   t   PeriodArrayt   period_arrayc          C   sF   t  t j k s t ‚ t j d ƒ }  t  d ƒ } |  | k sB t ‚ d  S(   Ns	   Period[D]t   D(   R   R   t   dtypest   AssertionErrort   find(   t   resultt   expected(    (    s>   lib/python2.7/site-packages/pandas/tests/arrays/test_period.pyt   test_registered   s    s   data, freq, expectedt   2017R   iC  iá  t   periodsi   iC  iC  c         C   sA   t  |  d | ƒj } t j | d t j ƒ} t j | | ƒ d  S(   Nt   freqt   dtype(   R   t   asi8t   npt   asarrayt   int64t   tmt   assert_numpy_array_equal(   t   dataR   R   R
   (    (    s>   lib/python2.7/site-packages/pandas/tests/arrays/test_period.pyt   test_period_array_ok   s    c          C   s»   t  t j d ƒ g ƒ }  t j |  d d ƒ} | j d t ƒ t  | ƒ } t j | |  ƒ t j	 | ƒ } t j
 | t j	 |  ƒ ƒ t j i | d 6ƒ } t j | t j i |  d 6ƒ ƒ d  S(   Ns
   2019-01-01R   t   objectt   writet   A(   R   t   pdt   PeriodR   R   t   setflagst   FalseR   t   assert_period_array_equalt   Seriest   assert_series_equalt	   DataFramet   assert_frame_equal(   t   pat   arrR
   (    (    s>   lib/python2.7/site-packages/pandas/tests/arrays/test_period.pyt!   test_period_array_readonly_object,   s    c          C   s_   t  j d d d d d ƒ}  t j |  d d ƒ} t d d d g d d ƒ} t j | | ƒ d  S(   NR   R   i   R   R   t   Ms
   2017-01-01(   R   t
   date_rangeR   t   _from_datetime64R   R   R    (   R&   R
   R   (    (    s>   lib/python2.7/site-packages/pandas/tests/arrays/test_period.pyt!   test_from_datetime64_freq_changes<   s
    	s   data, freq, msgR   s   Input has different freqc         C   s-   t  j t d | ƒ t |  | ƒ Wd  QXd  S(   Nt   match(   t   pytestt   raisesR   R   (   R   R   t   msg(    (    s>   lib/python2.7/site-packages/pandas/tests/arrays/test_period.pyt   test_period_array_raisesE   s    
c          C   sH   t  j d d d g ƒ }  t j t d d ƒ t |  d d ƒWd  QXd  S(   Ni   i   i   R,   R   R   R   (   R   R!   R-   R.   t	   TypeErrorR   (   t   ser(    (    s>   lib/python2.7/site-packages/pandas/tests/arrays/test_period.pyt)   test_period_array_non_period_series_raiesS   s    c       	   C   s€   t  d d g d d ƒ}  t j t d d ƒ t |  d d ƒWd  QXt j t d d ƒ! t |  d t j j j ƒ  ƒWd  QXd  S(   Nt   2000t   2001R   R   R,   R(   (	   R   R-   R.   R   R   R   t   tseriest   offsetst   MonthEnd(   R&   (    (    s>   lib/python2.7/site-packages/pandas/tests/arrays/test_period.pyt   test_period_array_freq_mismatchY   s
    c          C   sJ   t  d d d  g d d ƒj }  t j d d t g ƒ } t j |  | ƒ d  S(   NR4   R5   R   R   iÍ*  i;,  (   R   t   NoneR   R   t   arrayR    R   R   (   R
   R   (    (    s>   lib/python2.7/site-packages/pandas/tests/arrays/test_period.pyt	   test_asi8b   s    c          C   s¡   t  d d g d d ƒ}  t j t d d ƒ3 |  j d d g d t d	 t j d d d
 ƒƒWd  QXt j t d d ƒ$ |  j d d g d t d	 d ƒWd  QXd  S(   NR4   R5   R   R   R,   i    iÿÿÿÿt
   allow_fillt
   fill_valuet   Wt   foo(	   R   R-   R.   R   t   taket   TrueR   R   t
   ValueError(   R&   (    (    s>   lib/python2.7/site-packages/pandas/tests/arrays/test_period.pyt   test_take_raisesh   s    R   t   uint32t   uint64c         C   s›   t  d d d  g d d ƒ} | j |  ƒ } t j |  ƒ j d k rT t j d ƒ } n t j d ƒ } | j | ƒ } | j | k s‡ t ‚ t j | | ƒ d  S(   NR4   R5   R   R   t   uRF   R   (	   R   R:   t   astypeR   R   t   kindR   R   R   (   R   R&   R
   t   expected_dtypeR   (    (    s>   lib/python2.7/site-packages/pandas/tests/arrays/test_period.pyt   test_astyper   s    c          C   s˜   t  d d d  g d d ƒ}  |  j t j d t ƒ} | j |  j k sK t ‚ |  j t j d t	 ƒ} | |  j k	 sx t ‚ t
 j | |  j j d ƒ ƒ d  S(   NR4   R5   R   R   t   copyt   i8(   R   R:   RH   R   R   R   t   baset   _dataR   RB   R   R   t   view(   R&   R
   (    (    s>   lib/python2.7/site-packages/pandas/tests/arrays/test_period.pyt   test_astype_copies…   s    c          C   s€   t  d d d d  g d d ƒ}  |  j d ƒ } t j d d g d d ƒ} t j j d d d d g d	 | ƒ} t j | | ƒ d  S(
   NR4   R5   R   R   t   categoryi    i   iÿÿÿÿt
   categories(	   R   R:   RH   R   t   PeriodIndext   Categoricalt
   from_codesR   t   assert_categorical_equal(   R&   R
   RS   R   (    (    s>   lib/python2.7/site-packages/pandas/tests/arrays/test_period.pyt   test_astype_categorical‘   s
    $c          C   s_   t  d d d  g d d ƒ}  |  j t d ƒ ƒ } t  d d d  g d d ƒ} t j | | ƒ d  S(   NR4   R5   R   R   R(   (   R   R:   RH   R   R   R    (   R&   R
   R   (    (    s>   lib/python2.7/site-packages/pandas/tests/arrays/test_period.pyt   test_astype_period™   s    t   others   datetime64[ns]s   timedelta64[ns]c         C   sL   t  d d d  g d d ƒ} t j t d |  d  ƒ | j |  ƒ Wd  QXd  S(   NR4   R5   R   R   R,   iüÿÿÿ(   R   R:   R-   R.   R1   RH   (   RZ   R&   (    (    s>   lib/python2.7/site-packages/pandas/tests/arrays/test_period.pyt   test_astype_datetime    s    c          C   sL   t  d d d g d d ƒ}  t j t d d ƒ |  j |  d  ƒ Wd  QXd  S(	   NR4   R5   t   2002R   R   R,   t   Lengthi   (   R   R-   R.   RC   t   fillna(   R&   (    (    s>   lib/python2.7/site-packages/pandas/tests/arrays/test_period.pyt   test_fillna_raisesª   s    c          C   sL   t  d d d g d d ƒ}  |  j t j d d ƒ ƒ } | |  k	 sH t ‚ d  S(   NR4   R5   R\   R   R   (   R   R^   R   R   R   (   R&   R
   (    (    s>   lib/python2.7/site-packages/pandas/tests/arrays/test_period.pyt   test_fillna_copies°   s    s   key, value, expectedi    R4   iÍ*  i   i   R5   R\   i;,  i¨-  c         C   sK   t  t j d ƒ d d ƒ} t  | d d ƒ} | | |  <t j | | ƒ d  S(   Ni   R   R   (   R   R   t   arangeR   R    (   t   keyt   valueR   R&   (    (    s>   lib/python2.7/site-packages/pandas/tests/arrays/test_period.pyt   test_setitem¹   s    
c       	   C   s˜   t  t j d ƒ d d ƒ}  t j t d d ƒ t j d d d ƒ|  d <Wd  QXt d d g d d ƒ} t j t d d ƒ | |  d d	 g <Wd  QXd  S(
   Ni   R   R   R,   R4   R   i    R5   i   (	   R   R   Ra   R-   R.   R   R   R   R   (   R&   RZ   (    (    s>   lib/python2.7/site-packages/pandas/tests/arrays/test_period.pyt%   test_setitem_raises_incompatible_freqÊ   s    c          C   s]   t  t j d ƒ d d ƒ}  t j t d d ƒ' t j d d d ƒg |  d d g <Wd  QXd  S(	   Ni   R   R   R,   t   lengthR4   i    i   (   R   R   Ra   R-   R.   RC   R   R   (   R&   (    (    s>   lib/python2.7/site-packages/pandas/tests/arrays/test_period.pyt   test_setitem_raises_lengthÔ   s    c          C   sE   t  t j d ƒ d d ƒ}  t j t d d ƒ d |  d <Wd  QXd  S(   Ni   R   R   R,   t   inti   i    (   R   R   Ra   R-   R.   R1   (   R&   (    (    s>   lib/python2.7/site-packages/pandas/tests/arrays/test_period.pyt   test_setitem_raises_typeÚ   s    c          C   sU   t  d d g d d ƒ}  t j d d d ƒ} t j t d d ƒ |  | Wd  QXd  S(   NR4   R5   R   R   R(   R,   (   R   R   R   R-   R.   R   (   R&   RZ   (    (    s>   lib/python2.7/site-packages/pandas/tests/arrays/test_period.pyt   test_sub_periodã   s    R   t   Hc         C   sl   t  j t d d d g d d ƒƒ } t j t t t g ƒ } t j t	 d d ƒ | j
 | |  ƒ Wd  QXd  S(   NR4   R5   R\   R   R   R,   (   R   R!   R   R   R;   RB   R   R-   R.   R   t   where(   RZ   R2   t   cond(    (    s>   lib/python2.7/site-packages/pandas/tests/arrays/test_period.pyt    test_where_different_freq_raisesí   s    $c          C   s@   t  d d g d d ƒ}  t |  ƒ } d } | | k s< t ‚ d  S(   NR4   R5   R   R   sF   <PeriodArray>
['2000-01-01', '2001-01-01']
Length: 2, dtype: period[D](   R   t   strR   (   R&   R
   R   (    (    s>   lib/python2.7/site-packages/pandas/tests/arrays/test_period.pyt   test_repr_smallû   s    c          C   sD   t  d d g d d d ƒ}  t |  ƒ } d } | | k s@ t ‚ d  S(   NR4   R5   iô  R   R   sM  <PeriodArray>
['2000-01-01', '2001-01-01', '2000-01-01', '2001-01-01', '2000-01-01',
 '2001-01-01', '2000-01-01', '2001-01-01', '2000-01-01', '2001-01-01',
 ...
 '2000-01-01', '2001-01-01', '2000-01-01', '2001-01-01', '2000-01-01',
 '2001-01-01', '2000-01-01', '2001-01-01', '2000-01-01', '2001-01-01']
Length: 1000, dtype: period[D](   R   Ro   R   (   R&   R
   R   (    (    s>   lib/python2.7/site-packages/pandas/tests/arrays/test_period.pyt   test_repr_large  s    t   TestReductionsc           B   s5   e  Z d  „  Z e j j d e e g ƒ d „  ƒ Z RS(   c         C   sÜ   t  d d d d d d g d d ƒ} | j ƒ  } t j d d d ƒ} | | k sW t ‚ | j ƒ  } t j d d d ƒ} | | k sŠ t ‚ | j d t ƒ } | t j k s± t ‚ | j d t ƒ } | t j k sØ t ‚ d  S(	   Ns
   2000-01-03t   NaTs
   2000-01-02s
   2000-01-05s
   2000-01-04R   R   t   skipna(   R   t   minR   R   R   t   maxR   Rs   (   t   selfR&   R
   R   (    (    s>   lib/python2.7/site-packages/pandas/tests/arrays/test_period.pyt   test_min_max  s$    		Rt   c         C   sd   t  g  d d ƒ} | j d | ƒ } | t j k s9 t ‚ | j d | ƒ } | t j k s` t ‚ d  S(   NR   R   Rt   (   R   Ru   R   Rs   R   Rv   (   Rw   Rt   R&   R
   (    (    s>   lib/python2.7/site-packages/pandas/tests/arrays/test_period.pyt   test_min_max_empty6  s
    (	   t   __name__t
   __module__Rx   R-   t   markt   parametrizeRB   R   Ry   (    (    (    s>   lib/python2.7/site-packages/pandas/tests/arrays/test_period.pyRr     s   	(:   t   numpyR   R-   t   pandas._libs.tslibsR    t   pandas._libs.tslibs.periodR   t   pandas.core.dtypes.dtypesR   R   t   pandasR   t   pandas.core.arraysR   R   t   pandas.util.testingt   utilt   testingR   R   R|   R}   R   R:   R6   R7   t   DayR!   R)   R   R'   R+   R0   R3   R9   R<   RD   Rh   t   int32R   RK   RQ   RX   RY   R[   R_   R`   t   nanRd   Re   Rg   Ri   Rj   Rn   Rp   Rq   R   Rr   (    (    (    s>   lib/python2.7/site-packages/pandas/tests/arrays/test_period.pyt   <module>   sx   	
*$6								
'							$(!		
				
*		