ó
šxŠ\c           @   su  d  d l  Z  d  d l Z d  d l m Z m Z d  d l Z d  d l m Z d  d l	 Z	 d  d l
 Z
 d  d l m Z m Z m Z m Z m Z m Z m Z d  d l m Z m Z d  d l Z d  d l m Z m Z m Z m Z m Z d  d l m Z m  Z  d  d l! j" j# Z$ d d	 d
 d d d d d d d d g Z% d e& f d „  ƒ  YZ' d e' f d „  ƒ  YZ( d e' f d „  ƒ  YZ) d S(   iÿÿÿÿN(   t   catch_warningst   simplefilter(   t   randn(   t   StringIOt   lranget   lzipt   productt   ranget   ut   zip(   t   is_float_dtypet   is_integer_dtype(   t	   DataFramet   Panelt   Seriest	   Timestampt   isna(   t   Indext
   MultiIndext   sumt   prodt   mint   maxt   mediant   meant   skewt   madt   stdt   vart   semt   Basec           B   s   e  Z d  „  Z RS(   c         C   s$  t  d d d d d g d d d g g d	 d
 d
 d
 d d d d d d d g
 d
 d d d
 d d d d
 d d g
 g d d d g ƒ } t t j j d d ƒ d | d t d d d g d d ƒƒ|  _ t  d d d d d g g d	 d
 d d d g g d d g ƒ |  _ d d d d d d d d g d d d d d d d d g g } t | Œ  } t  j	 | ƒ } t
 t d ƒ d | ƒ} t j | d <| |  _ t j d ƒ |  _ |  j j d „  d „  d „  g ƒ j ƒ  |  _ |  j j j g  |  j j j D] } | j d ƒ ^ qÜd t ƒ|  j j j d  d! d" g d t ƒd  S(#   Nt   levelst   foot   bart   bazt   quxt   onet   twot   threet   codesi    i   i   i   t   namest   firstt   secondi
   t   indext   columnst   At   Bt   Ct   namet   expi   id   c         S   s   |  j  S(   N(   t   year(   t   x(    (    s;   lib/python2.7/site-packages/pandas/tests/test_multilevel.pyt   <lambda>3   s    c         S   s   |  j  S(   N(   t   month(   R3   (    (    s;   lib/python2.7/site-packages/pandas/tests/test_multilevel.pyR4   3   s    c         S   s   |  j  S(   N(   t   day(   R3   (    (    s;   lib/python2.7/site-packages/pandas/tests/test_multilevel.pyR4   4   s    t   i8t   inplaceR2   R5   R6   (   R   R   t   npt   randomR   R   t   framet   single_levelR   t   from_tuplesR   t   NaNt   seriest   tmt   makeTimeDataFramet   tdft   groupbyR   t   ymdR+   t
   set_levelsR   t   astypet   Truet	   set_names(   t   selft   methodR+   t   arrayst   tuplest   st   lev(    (    s;   lib/python2.7/site-packages/pandas/tests/test_multilevel.pyt   setup_method   s.    !'!$!	((   t   __name__t
   __module__RO   (    (    (    s;   lib/python2.7/site-packages/pandas/tests/test_multilevel.pyR      s   t   TestMultiLevelc           B   s@  e  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 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& e' j( j) d% „  ƒ Z* d& „  Z+ d' „  Z, d( „  Z- d) „  Z. d* „  Z/ d+ „  Z0 d, „  Z1 d- „  Z2 d. „  Z3 d/ „  Z4 e' j( j5 d0 e6 ƒ e' j( j5 d1 d2 d3 g ƒ e' j( j5 d4 e7 e8 g ƒ e' j( j5 d5 e7 e8 g ƒ d6 „  ƒ ƒ ƒ ƒ Z9 e' j( j5 d0 e6 ƒ e' j( j5 d1 d2 d3 g ƒ e' j( j5 d7 d2 d3 g ƒ e' j( j5 d4 e7 e8 g ƒ e' j( j5 d5 e7 e8 g ƒ d8 „  ƒ ƒ ƒ ƒ ƒ Z: d9 „  Z; d: „  Z< d; „  Z= d< „  Z> d= „  Z? d> „  Z@ d? „  ZA d@ „  ZB dA „  ZC dB „  ZD dC „  ZE dD „  ZF dE „  ZG dF „  ZH dG „  ZI dH „  ZJ dI „  ZK dJ „  ZL dK „  ZM e' j( j5 dL eN eO g ƒ dM „  ƒ ZP dN „  ZQ dO „  ZR dP „  ZS dQ „  ZT dR „  ZU dS „  ZV dT „  ZW dU „  ZX dV „  ZY dW „  ZZ dX „  Z[ dY „  Z\ dZ „  Z] d[ „  Z^ d\ „  Z_ d] „  Z` d^ „  Za d_ „  Zb d` „  Zc da „  Zd RS(b   c         C   so   |  j  d  |  j  d } } | j | ƒ } t j | |  j  ƒ | d j | d ƒ } t j | |  j  d ƒ d  S(   Ni   R-   (   R;   t   appendR@   t   assert_frame_equalt   assert_series_equal(   RI   t   at   bt   result(    (    s;   lib/python2.7/site-packages/pandas/tests/test_multilevel.pyt   test_append?   s
    c   
   
   C   ss  t  d d d g ƒ } t j d d d d d d	 d
 ƒ} t  d d d g ƒ } t j | | g ƒ } t j | | | g ƒ } | j | ƒ } t j d
 ƒ } d | j t	 j	 d d d ƒ ƒ f d | j t	 j	 d d d ƒ ƒ f d | j t	 j	 d d d ƒ ƒ f g } t  d d d g | ƒ }	 t
 j | |	 ƒ | j | ƒ } t  | d d d g ƒ }	 t
 j | |	 ƒ | j | ƒ } t j | j | ƒ | j | ƒ g ƒ }	 t
 j | |	 ƒ | j | ƒ } t
 j | |	 ƒ | j | ƒ } t  j t j d | j t	 j	 d d d ƒ ƒ d f d | j t	 j	 d d d ƒ ƒ d f d | j t	 j	 d d d ƒ ƒ d f g | ƒ d  ƒ }	 t
 j | |	 ƒ d  S(   Ngš™™™™™ñ?g333333ó?gÍÌÌÌÌÌô?s
   2011-01-01t   freqt   Dt   periodsi   t   tzs
   Asia/TokyoR-   R.   R/   iÛ  i   i   (   R   t   pdt
   date_rangeR   t   from_arraysRS   t   pytzt   timezonet   localizet   datetimeR@   t   assert_index_equalt   _simple_newR9   t   arrayt   None(
   RI   t   idx1t   idx2t   idx3t   midx_lv2t   midx_lv3RX   R]   t   expected_tuplest   expected(    (    s;   lib/python2.7/site-packages/pandas/tests/test_multilevel.pyt   test_append_indexH   s:    	!!'*$'c      	   C   sÝ   t  t j j d d ƒ d t j d d d d g ƒ t j d d d d g ƒ g ƒ} t | j t ƒ si t ‚ t | j	 t ƒ s‚ t ‚ t  t j j d d ƒ d d d d d g d d d d g g ƒ} t | j	 t ƒ sÙ t ‚ d  S(   Ni   R+   RV   RW   R3   t   yR,   (
   R   R9   R:   R   Rg   t
   isinstanceR+   R   t   AssertionErrorR,   (   RI   t   multi(    (    s;   lib/python2.7/site-packages/pandas/tests/test_multilevel.pyt   test_dataframe_constructoro   s    !c      	   C   sô   t  d d t j d d d d g ƒ t j d d d d g ƒ g ƒ} t | j t ƒ sZ t ‚ t  d d d d d d g d d d d g g ƒ} t | j t ƒ s¢ t ‚ t  t d ƒ d d d d d g d d d d g g ƒ} t | j t ƒ sð t ‚ d  S(   Ng      ð?R+   RV   RW   R3   Rq   i   (   R   R9   Rg   Rr   R+   R   Rs   R   (   RI   Rt   (    (    s;   lib/python2.7/site-packages/pandas/tests/test_multilevel.pyt   test_series_constructor{   s    '0c         C   s/  |  j  j d d ƒ } | j |  j  j d d ƒ} |  j  j d d ƒ j t j ƒ } t j | | ƒ | d j |  j  j d d ƒ} |  j  d j d d ƒ j t j ƒ } t j	 | | d t
 ƒ|  j  j j d d d d ƒ } | j d |  j  j d d ƒ } |  j  j d d ƒ j t j ƒ j } t j | | ƒ d  S(   Nt   levelR5   i   R-   t   check_namest   axisR,   (   RD   R   t   reindexR+   RC   t	   transformR9   R@   RT   RU   t   Falset   T(   RI   t
   month_sumsRX   Ro   (    (    s;   lib/python2.7/site-packages/pandas/tests/test_multilevel.pyt   test_reindex_level‡   s    !%$c            s;   ‡  f d †  } | d ƒ | d ƒ | d ƒ | d ƒ d  S(   Nc            s  t  t |  ƒ } ˆ  j j d d ƒ } | ˆ  j | d d ƒ} ˆ  j j d d ƒ j t j ƒ } | ˆ  j | ƒ } t j | | ƒ t  t	 |  ƒ } | ˆ  j d | d d d ƒ} ˆ  j d j d d ƒ j t j ƒ } | ˆ  j d | ƒ } d | _
 t j | | ƒ d  S(   NRw   R5   R-   (   t   getattrR   RD   R   RC   R{   R9   R@   RT   R   R0   RU   (   t   opnamet   opR~   RX   t   broadcastedRo   (   RI   (    s;   lib/python2.7/site-packages/pandas/tests/test_multilevel.pyt	   _check_op›   s    ! 	t   subt   addt   mult   div(    (   RI   R„   (    (   RI   s;   lib/python2.7/site-packages/pandas/tests/test_multilevel.pyt   test_binops_levelš   s
    


c         C   sG   d „  } | |  j  ƒ | |  j  j ƒ | |  j ƒ | |  j j ƒ d  S(   Nc         S   s#   t  j |  ƒ } t  j |  | ƒ d  S(   N(   R@   t   round_trip_pickleRT   (   R;   t	   unpickled(    (    s;   lib/python2.7/site-packages/pandas/tests/test_multilevel.pyt   _test_roundtrip³   s    (   R;   R}   RD   (   RI   RŒ   (    (    s;   lib/python2.7/site-packages/pandas/tests/test_multilevel.pyt   test_pickle²   s
    	c         C   s‰   |  j  j d d g } |  j  j d d	 g } t j | | ƒ t d t ƒ ( t d t ƒ |  j  j	 d
 d g } Wd  QXt j | | ƒ d  S(   Ni    i   R    R$   R!   t   recordt   ignore(   R    R$   (   R!   R$   (   R    R$   (   R!   R$   (
   R;   t   iloct   locR@   RT   R    RG   R   t   DeprecationWarningt   ix(   RI   Ro   t	   reindexed(    (    s;   lib/python2.7/site-packages/pandas/tests/test_multilevel.pyt   test_reindex¼   s    c         C   s  |  j  j d  d  d … } |  j  j | ƒ } | j | k s@ t ‚ |  j  j | } | j | k se t ‚ t d t ƒ " t d t ƒ |  j  j	 | } Wd  QX| j | k s­ t ‚ |  j  j
 } | j d | ƒ } | j | k sà t ‚ | j d  d  … | f } | j | k st ‚ d  S(   Ni
   RŽ   R   R,   (   RD   R+   Rz   Rs   R‘   R    RG   R   R’   R“   R}   R,   (   RI   t	   new_indext   chunkt   ymdT(    (    s;   lib/python2.7/site-packages/pandas/tests/test_multilevel.pyt   test_reindex_preserve_levelsÆ   s    c         C   s™   t  |  j ƒ t  |  j ƒ t  |  j j ƒ t  |  j j ƒ t ƒ  } |  j j d | ƒ |  j j d | ƒ |  j j j d | ƒ |  j j j d | ƒ d  S(   Nt   buf(   t   reprR;   RD   R}   R   t	   to_string(   RI   Rš   (    (    s;   lib/python2.7/site-packages/pandas/tests/test_multilevel.pyt   test_repr_to_stringÚ   s    	c         C   su   t  j d d g d d d d g ƒ} t i d d g d	 6d
 | ƒ} t | ƒ j d ƒ } | d j d ƒ sq t ‚ d  S(   NRV   i    R    RW   i   R!   R(   t   ct   valueR+   s   
i   s   a 0 foo(   RV   i    R    (   RW   i   R!   (   R   R=   R   R›   t   splitt
   startswithRs   (   RI   R+   t   dft   lines(    (    s;   lib/python2.7/site-packages/pandas/tests/test_multilevel.pyt   test_repr_name_coincideæ   s
    c         C   sÁ   g  t  d d g d d g d d g ƒ D] } | ^ q% } t j | d d d	 d
 g ƒ} t t j j d d ƒ d d d d g d | ƒ} | j ƒ  } t | d	 ƒ s§ t	 ‚ t
 | d
 ƒ s½ t	 ‚ d  S(   NR    R!   i
   i   g      ð?gš™™™™™ñ?R(   t   prm0t   prm1t   prm2i   i   R,   R-   R.   R/   R+   (   t   cart_productR   R=   R   R9   R:   R   t   reset_indexR   Rs   R
   (   RI   t   tupleRL   R+   R¢   t	   deleveled(    (    s;   lib/python2.7/site-packages/pandas/tests/test_multilevel.pyt   test_delevel_infer_dtypeï   s    1'	c         C   s  |  j  j d t ƒ } t | j ƒ t |  j  j ƒ k s< t ‚ | j j |  j  j j k s] t ‚ |  j j ƒ  } t	 | t
 ƒ s t ‚ t | j ƒ t |  j j j ƒ d k s¯ t ‚ | j j |  j j j k sÐ t ‚ |  j j d t ƒ } t	 | t ƒ sú t ‚ | j j |  j j j k st ‚ d  S(   Nt   dropi   (   RD   R©   RG   t   lenR,   Rs   R+   R0   R?   Rr   R   R   R   (   RI   R«   (    (    s;   lib/python2.7/site-packages/pandas/tests/test_multilevel.pyt   test_reset_index_with_dropú   s    '!.!c         C   sW  d d „ } t  j |  j j d d d g f <t  j |  j j d d d g f <t  j |  j j d d d g f <t  j |  j j d d d g f <| |  j ƒ | |  j ƒ | |  j j d d ƒ| |  j j d d ƒt j ƒ  } t j	 t
 d d ƒ | j d	 d ƒ Wd  QXd
 |  j d <|  j j d	 d d t ƒ } t j | j t t d ƒ d d ƒƒ d  S(   Ni    c         S   s‹   |  j  | ƒ } xu t | j ƒ D]d } |  j d | d | ƒ } |  j d | d | ƒ j ƒ  } | j | ƒ j d ƒ } t j | | ƒ q Wd  S(   NRy   Rw   R7   (	   t	   _get_axisR   t   nlevelst   countRC   t   reindex_likeRF   R@   RT   (   R;   Ry   R+   t   iRX   Ro   (    (    s;   lib/python2.7/site-packages/pandas/tests/test_multilevel.pyt   _check_counts	  s    i   i   i   Ry   t   matcht   hierarchicalRw   R    R[   t   numeric_onlyt   ABCR0   R1   (   R9   t   nanR;   R   RD   R}   R@   RA   t   pytestt   raisest	   TypeErrorR²   RG   Re   R,   R   t   list(   RI   Rµ   R¢   RX   (    (    s;   lib/python2.7/site-packages/pandas/tests/test_multilevel.pyt   test_count_level  s    c      
   C   s,  t  d d d d g d d d d g g d	 d
 d
 d
 d d g d d
 d d d g g ƒ } t t j j t | ƒ ƒ d | ƒ} | j d d
 ƒ } | j d d
 ƒ j ƒ  } t j	 | j
 d ƒ | j | j ƒ j d
 ƒ ƒ | j d d ƒ } | j d d ƒ j ƒ  } t j	 | j
 d ƒ | j | j ƒ j d
 ƒ ƒ d  S(   NR   R    R!   R"   R$   R%   R&   t   fourR'   i    i   i   R+   Rw   t   f8(   R   R   R9   R:   R   R®   R²   RC   R@   RU   RF   Rz   R+   t   fillna(   RI   R+   RM   RX   Ro   (    (    s;   lib/python2.7/site-packages/pandas/tests/test_multilevel.pyt   test_count_level_series$  s    -$(c         C   sÂ   |  j  d d  } | j d d ƒ } t d d | j j d d d ƒ} t j | | ƒ |  j  d  } | j d d ƒ } t i  d | j j d d | j ƒj	 d ƒ j
 t j ƒ } t j | | ƒ d  S(   NR-   i    Rw   R+   R0   R,   (   R;   R²   R   R+   R   R@   RU   R   R,   RÂ   RF   R9   t   int64RT   (   RI   RM   RX   Ro   R¢   (    (    s;   lib/python2.7/site-packages/pandas/tests/test_multilevel.pyt   test_count_level_corner5  s    "!c         C   sb   t  j t d d ƒ |  j j j d ƒ Wd  QXt  j t d d ƒ |  j j j d ƒ Wd  QXd  S(   NR¶   s   Too many levelsi   s   not a valid level numberiýÿÿÿ(   R»   R¼   t
   IndexErrorR;   R+   t   _get_level_number(   RI   (    (    s;   lib/python2.7/site-packages/pandas/tests/test_multilevel.pyt#   test_get_level_number_out_of_boundsA  s    c         C   sL   |  j  j ƒ  } | j ƒ  |  j  j t ƒ j ƒ  |  j  j t j ƒ j ƒ  d  S(   N(   RD   t   unstackRF   t   intR9   t   int32(   RI   t	   unstacked(    (    s;   lib/python2.7/site-packages/pandas/tests/test_multilevel.pyt   test_unstackG  s    
c         C   sz   t  j d d d d g ƒ } t t j j d ƒ d | ƒ} | j d d	 g ƒ } | j d
 d d d ƒ } t j	 | | ƒ d  S(   Ni    R    R!   i   R"   R#   i   R+   i   Ry   t   howt   all(   i    R    i    (   i    R!   i    (   i   R"   i   (   i   R#   i   (
   R   R=   R   R9   R:   R   RÉ   t   dropnaR@   RT   (   RI   R+   RM   RÌ   Ro   (    (    s;   lib/python2.7/site-packages/pandas/tests/test_multilevel.pyt&   test_unstack_multiple_no_empty_columnsR  s    c      
   C   sO  |  j  j ƒ  } | j ƒ  } t j | |  j  ƒ |  j  j d d ƒ } | j d ƒ } | j ƒ  } t j | j d d ƒ |  j  ƒ | d  d  d … } | j d ƒ } | j ƒ  j d d ƒ } t j | j d d ƒ |  j  ƒ | j d d ƒ } | j d ƒ j d d d d ƒ} | j d ƒ j d d ƒ } t j | j d d ƒ |  j  ƒ |  j  j ƒ  } | j d d d t ƒ } | j ƒ  } t j | |  j  ƒ |  j  j d ƒ j d ƒ } | j d ƒ } |  j  j ƒ  } t j | | ƒ | j d ƒ } |  j  j d ƒ } t j | | ƒ | j d ƒ } |  j  j ƒ  j d ƒ j d ƒ } t j | | ƒ |  j  j d ƒ j d  d  … d  d  d … f } | j ƒ  j ƒ  } |  j  j ƒ  } t j	 | | j
 | j ƒ ƒ |  j  j d ƒ j d	 ƒ } |  j  j d ƒ j d ƒ } d
 „  } t t j d ƒ j d d ƒ d t d ƒ d d d d g ƒ}	 t d d d g d d d g g d t j t j d ƒ j d ƒ d ƒ t j t j d ƒ d ƒ g ƒ }
 |	 j ƒ  t t j d ƒ d |
 ƒ} } | | | ƒ d d d g |	 _ t d d d g d d g g d t j t j d ƒ j d ƒ d ƒ t j d d d g d ƒ g ƒ }
 |	 j ƒ  t t j d ƒ d |
 ƒ} } | | | ƒ d d d d f } t j | ƒ |	 _ t d d d g d d g d d g g d t j t j d ƒ j d ƒ d ƒ t j d d d g d d d g ƒ t j d d d g d ƒ g ƒ }
 |	 j ƒ  t t j d ƒ d |
 ƒ} } | | | ƒ d  S(   NRw   i   i    iÿÿÿÿi   Ry   t	   ascendingi   iþÿÿÿc         S   sO   t  j |  | ƒ |  j j t k s( t ‚ |  j | j } } t  j | | ƒ d  S(   N(   R@   RU   R+   t	   is_uniqueR|   Rs   Re   (   t   leftt   rightt   lit   ri(    (    s;   lib/python2.7/site-packages/pandas/tests/test_multilevel.pyt   check’  s    i   i   R+   t   ababR,   t   1stt   2ndt   3rdR   RV   RW   R'   i   (   RV   i   (   RW   i   (   RV   i   (   RW   i   (   RD   RÉ   t   stackR@   RT   t
   sort_indext	   swaplevelR|   R‘   RU   Rz   R+   R   R9   t   aranget   reshapeR¾   R   t   tilet   repeatR   R,   R=   (   RI   RÌ   t	   restackedt   unlexsortedRX   Ro   t   stackedt   ymd_stackedRØ   R¢   t   miRÔ   RÕ   t   tpls(    (    s;   lib/python2.7/site-packages/pandas/tests/test_multilevel.pyt
   test_stack\  sx    !!.	!!($!('!!(c         C   s\   d } t  j t | ƒ ƒ j d d d g ƒ } | j d ƒ } | j ƒ  } t j | | ƒ d  S(   Ns  day,time,smoker,sum,len
Fri,Dinner,No,8.25,3.
Fri,Dinner,Yes,27.03,9
Fri,Lunch,No,3.0,1
Fri,Lunch,Yes,13.68,6
Sat,Dinner,No,139.63,45
Sat,Dinner,Yes,120.77,42
Sun,Dinner,No,180.57,57
Sun,Dinner,Yes,66.82,19
Thur,Dinner,No,3.0,1
Thur,Lunch,No,117.32,44
Thur,Lunch,Yes,51.51,17R6   t   timet   smokeri   (   R^   t   read_csvR   t	   set_indexRÉ   RÝ   R@   RT   (   RI   t   dataR¢   RX   t   recons(    (    s;   lib/python2.7/site-packages/pandas/tests/test_multilevel.pyt   test_unstack_odd_failure·  s
    'c         C   sŸ   |  j  j } d | d <| j d d d d ƒ } | j ƒ  } | d j ƒ  j ƒ  } t j | d | d t ƒ| j d  k s t	 ‚ | d j
 t j k s› t	 ‚ d  S(	   NR    RÀ   Rw   i   Ry   Rx   R!   (   R    RÀ   (   R;   R}   RÞ   RÝ   R@   RU   R|   R0   Rh   Rs   t   dtypeR9   t   float_(   RI   R¢   Ræ   RX   (    (    s;   lib/python2.7/site-packages/pandas/tests/test_multilevel.pyt   test_stack_mixed_dtypeÍ  s    
c         C   så   t  i d d d d d d g d 6d d d d d d g d 6d d d	 d
 d d	 g d 6d d d d d d g d 6t j d ƒ d 6ƒ } | j d d d d g ƒ j t ƒ } | j ƒ  } | j ƒ  } t j	 | | j
 | j ƒ j t ƒ ƒ d  S(   Nt   naivet   activt   stateRV   RW   R1   i   i   i   i   t   barcodet   hit   byet   peacet   vg      @t   extra(   R   R9   Rà   RC   t   applyR®   RÉ   RÝ   R@   RU   Rz   R+   RF   t   float(   RI   R¢   RX   RÌ   Rä   (    (    s;   lib/python2.7/site-packages/pandas/tests/test_multilevel.pyt   test_unstack_bugØ  s    
$c         C   sv   |  j  j ƒ  } | j j d k s' t ‚ | j j d d g k sE t ‚ | j ƒ  } | j j |  j  j j k sr t ‚ d  S(   NR)   R1   R*   (   R;   RÉ   R+   R0   Rs   R,   R(   RÝ   (   RI   RÌ   Rä   (    (    s;   lib/python2.7/site-packages/pandas/tests/test_multilevel.pyt!   test_stack_unstack_preserve_namesç  s
    c         C   s;   |  j  j d ƒ } |  j  j d d ƒ } t j | | ƒ d  S(   NR*   Rw   i   (   R;   RÉ   R@   RT   (   RI   RX   Ro   (    (    s;   lib/python2.7/site-packages/pandas/tests/test_multilevel.pyt   test_unstack_level_nameï  s    c         C   s~   |  j  j d ƒ } | j d ƒ } |  j  j ƒ  j d ƒ } t j | | ƒ |  j  j d ƒ } |  j  j ƒ  } t j | | ƒ d  S(   NR*   R1   i    (   R;   RÉ   RÝ   R@   RT   RU   (   RI   RÌ   RX   Ro   (    (    s;   lib/python2.7/site-packages/pandas/tests/test_multilevel.pyt   test_stack_level_nameô  s    c         C   sÔ  |  j  j d d g ƒ } |  j  j d ƒ j d ƒ } t j | | ƒ | j j | j j k sa t ‚ |  j  d } | j d d g ƒ } t j | | d ƒ | j d d g ƒ } | j d d ƒ j d d ƒ } | j	 d d ƒ } t j | |  j  ƒ | j
 j |  j  j
 j k st ‚ |  j  j d d g ƒ } |  j  j d ƒ j d ƒ j d d d	 d
 ƒ } t j | | ƒ |  j  j d d g ƒ } |  j  j d ƒ j d ƒ j d d d	 d
 ƒ } t j | | j d  d  … | j f ƒ d  S(   NR2   R5   R-   i    i   i   Rw   Ry   RÎ   RÏ   (   RD   RÉ   R@   RT   R,   R(   Rs   RÝ   Rß   RÞ   R+   RÐ   R‘   (   RI   RÌ   Ro   RM   t   s_unstackedRä   (    (    s;   lib/python2.7/site-packages/pandas/tests/test_multilevel.pyt   test_stack_unstack_multipleþ  s$    !--c         C   sK   |  j  j d d g ƒ } t j t d d ƒ | j d d g ƒ Wd  QXd  S(   NR2   R5   R¶   s   level should containi    (   RD   RÉ   R»   R¼   t
   ValueErrorRÝ   (   RI   RÌ   (    (    s;   lib/python2.7/site-packages/pandas/tests/test_multilevel.pyt   test_stack_names_and_numbers  s    c         C   sz   |  j  j d d g ƒ } t j t d d ƒ | j d d g ƒ Wd  QXt j t d d ƒ | j d d	 g ƒ Wd  QXd  S(
   NR2   R5   R¶   s   Too many levelsi   i   s   not a valid level numberiüÿÿÿiýÿÿÿ(   RD   RÉ   R»   R¼   RÆ   RÝ   (   RI   RÌ   (    (    s;   lib/python2.7/site-packages/pandas/tests/test_multilevel.pyt!   test_stack_multiple_out_of_bounds   s
    c      	   C   s  t  j d d d d d d g d d d d ƒ} t d d	 g d
 d d ƒ} d d d
 d d d g } t j | | g ƒ } t | d | ƒ} | j ƒ  } | j d d ƒ } | j d d ƒ } t  j d d d g d d d d ƒ}	 t i d d
 d g d 6d d d g d	 6d |	 d d d	 g ƒ}
 d |
 j _	 t
 j | |
 ƒ t
 j | |
 ƒ t
 j | |
 j ƒ t  j d d d d d d g d d d d ƒ} t  j d d d d d d g d d d d ƒ} t j | | g ƒ } t | d | ƒ} | j ƒ  } | j d d ƒ } | j d d ƒ } t  j d d d g d d d d ƒ}	 t  j d d d d d d g d d d d ƒ} t t j t j t j t j d d g t j t j d d
 t j t j g d d t j t j t j t j g g d |	 d | ƒ}
 t
 j | |
 ƒ t
 j | |
 ƒ t
 j | |
 j ƒ d  S(   Ns   2013-01s   2013-02s   2013-03RZ   t   MR0   t   periodR-   R.   i   t   stri   i   i   i   i   R+   Rw   i    R,   t   period1s   2013-12s   2013-11s   2013-10s   2013-09s   2013-08s   2013-07t   period2(   R^   t   PeriodIndexR   R   R`   R   RÉ   R   R,   R0   R@   RT   R}   R9   Rº   (   RI   Ri   Rj   RŸ   t   idxRM   t   result1t   result2t   result3t   e_idxRo   t   e_cols(    (    s;   lib/python2.7/site-packages/pandas/tests/test_multilevel.pyt   test_unstack_period_series)  sL    /$!'c         C   ss  t  j d d d d d d g d d d d ƒ} t  j d d d d d d g d d d d	 ƒ} i d
 d d d d d g d 6d d d d d d
 g d 6} t j | | g ƒ } t | d | ƒ} | j ƒ  } | j d d
 ƒ } | j d d ƒ } t  j d d g d d d d ƒ}	 t  j d d d d d d g d d d d	 ƒ}
 t j d j ƒ  |
 g ƒ } t d d
 d d d d
 g d d d d d d g g d |	 d | ƒ} t j | | ƒ t j | | ƒ t  j d d d d g d d d d ƒ}	 t  j d d d g d d d d	 ƒ}
 t j d j ƒ  |	 g ƒ } t d d d d g d
 d d d g d d d
 d g g d |
 d | ƒ} t j | | ƒ d  S(   Ns   2014-01s   2014-02RZ   R	  R0   R  s   2013-12s   2013-10R  i   i   i   i   i   i   R-   R.   R+   Rw   i    s   A A A B B BR,   s   A A B B(	   R^   R  R   R`   R   RÉ   R    R@   RT   (   RI   Ri   Rj   RŸ   R  R¢   R  R  R  t   e_1t   e_2R  Ro   (    (    s;   lib/python2.7/site-packages/pandas/tests/test_multilevel.pyt   test_unstack_period_frame[  s8    8!36c      
   C   s3  d g d d g d } d g d d g d } t  j d d d g d ƒ } t j j d	 d
 d ƒ } t t d | d | d | d | ƒ ƒ } | j d d g ƒ } d | j _	 | j
 d ƒ } | j d ƒ j ƒ  } | j d ƒ }	 | j d d … d g f j d ƒ j ƒ  j d ƒ }
 d |
 j _	 t j |	 |
 ƒ d S(   s8    bug when some uniques are not present in the data #3170i   i   i   RV   RW   s
   2013-01-03s
   2013-01-04s
   2013-01-05i    id   i   t   IDt   NAMEt   DATEt   VAR1t   Paramss   W-THUN(   R^   t   to_datetimeR9   R:   t   randintR   t   dictRî   R,   R0   RÉ   t   resampleR   RÝ   R‘   R@   RT   (   RI   t   id_colR0   t   datet   var1R¢   Rt   t   unstt   downt   rst   xp(    (    s;   lib/python2.7/site-packages/pandas/tests/test_multilevel.pyt   test_stack_multiple_bug  s    '4c         C   s¶   t  i d d g d 6d d g d 6d d g d 6ƒ } | j d d g ƒ } | j ƒ  j d	 t ƒ } t | ƒ t | j ƒ  ƒ k s„ t ‚ | j ƒ  j d	 t ƒ } t	 j
 | | j ƒ  ƒ d  S(
   Nt   a1t   a2R-   t   b1t   b2R.   i   R/   RÐ   (   R   Rî   RÉ   RÝ   R|   R®   RÐ   Rs   RG   R@   RT   (   RI   R¢   Ræ   (    (    s;   lib/python2.7/site-packages/pandas/tests/test_multilevel.pyt   test_stack_dropna‘  s    3$c         C   sÂ   t  d d d d d d d d d g d d d d d d d d g d d d d d d d d g g d d d d d g d d d d g g ƒ } d d d g | j _ d d	 g | j _ | j d d g ƒ d  S(
   NR+   i    i   R,   RV   RW   Rž   t   dt   e(   R   R+   R(   R,   RÉ   (   RI   R¢   (    (    s;   lib/python2.7/site-packages/pandas/tests/test_multilevel.pyt"   test_unstack_multiple_hierarchicalœ  s    !<'c         C   s~   |  j  d } | j j d ƒ } | j | ƒ } | j d „  ƒ } | j d „  ƒ } | j | j ƒ } t j | | d t	 ƒd  S(   NR-   i    c         S   s   |  d S(   Ni   (    (   R3   (    (    s;   lib/python2.7/site-packages/pandas/tests/test_multilevel.pyR4   ®  s    c         S   s   |  d S(   Ni   (    (   R3   (    (    s;   lib/python2.7/site-packages/pandas/tests/test_multilevel.pyR4   ¯  s    Rx   (
   R;   R+   t   get_level_valuesRC   Rþ   R{   Rz   R@   RU   R|   (   RI   RM   t   groupert   groupedt   appliedRo   RX   (    (    s;   lib/python2.7/site-packages/pandas/tests/test_multilevel.pyt   test_groupby_transform¨  s    c         C   s×   d } t  i t j j d d | ƒd 6t j j d d | ƒd 6t j j d d d | ƒd	 6t j j d
 d d | ƒd 6t j j d d | ƒd 6t j j | ƒ d 6ƒ } | j d d d	 d d g ƒ } | j d ƒ d  S(   Niè  id   t   sizeR-   i,  R.   iùÿÿÿi   R/   iíÿÿÿi   R[   i¸  t   Et   F(   R   R9   R:   R  R   Rî   RÉ   (   RI   t   NUM_ROWSR¢   t   idf(    (    s;   lib/python2.7/site-packages/pandas/tests/test_multilevel.pyt   test_unstack_sparse_keyspace³  s    c         C   s¹   d d g d d d d g g } d d d d g d d d d g g } t  | | ƒ } t t j j d d ƒ d | ƒ} | j ƒ  } t | j ƒ d k s™ t ‚ | j	 ƒ  } t
 j | | ƒ d  S(   Ni    i   i   i   i   R+   (   R   R   R9   R:   R   RÉ   R®   R,   Rs   RÝ   R@   RT   (   RI   R   R'   R+   R¢   RX   Rð   (    (    s;   lib/python2.7/site-packages/pandas/tests/test_multilevel.pyt   test_unstack_unobserved_keysÄ  s    $!c         C   sc   t  t j j d d ƒ d t j d ƒ t j d ƒ g ƒ} t j t d d ƒ | j ƒ  Wd  QXd  S(	   Ni   i   R+   R¶   s   int32 overflowi   i   i   (	   R   R9   R:   R   Rà   R»   R¼   R  RÉ   (   RI   R¢   (    (    s;   lib/python2.7/site-packages/pandas/tests/test_multilevel.pyt/   test_unstack_number_of_levels_larger_than_int32Ó  s    !c   
      C   s   d „  } xÝ d d g D]Ï } t  j t  j d d d g | ƒ d d ƒ} xœ | D]” } t d | d d d d d g d d d d g g ƒ } t d	 | d
 t d ƒ g ƒ } x: t d ƒ D], } | j | ƒ } | | | | d | ƒ q± WqM Wq Wt d d d d g d d d g g d t j t d ƒ d ƒ t j	 t d ƒ d ƒ g ƒ }	 t d	 |	 d t d ƒ d
 t j
 d t |	 ƒ ƒ j d d ƒ ƒ } | | | j d ƒ d d ƒ d  S(   Nc            s2   t  ‡  ‡ ‡ ‡ f d †  ˆ  j Dƒ ƒ s. t ‚ d  S(   Nc         3   sS   |  ]I } ˆ  j  D]9 } ˆ  j | | f ˆ j | | ˆ f | ˆ f k Vq q d  S(   N(   R,   R‘   (   t   .0t   rowt   col(   R¢   t
   df_stackedt   lev0t   lev1(    s;   lib/python2.7/site-packages/pandas/tests/test_multilevel.pys	   <genexpr>ß  s   (   RÏ   R+   Rs   (   R¢   RB  RC  RD  (    (   R¢   RB  RC  RD  s;   lib/python2.7/site-packages/pandas/tests/test_multilevel.pyt   manual_compare_stackedÞ  s    i   i   i    i   Rã   R   R'   R,   Rï   i   R-   R/   R.   R+   i   iÿÿÿÿ(   t	   itertoolsR   t   permutationsR   R   R   RÝ   R9   Rã   Râ   Rà   R®   Rá   (
   RI   RE  t   widtht   levels_possR   R,   R¢   t	   stack_levRB  Rè   (    (    s;   lib/python2.7/site-packages/pandas/tests/test_multilevel.pyt%   test_stack_order_with_unsorted_levelsÛ  s&    			$3(c      	   C   s   t  d d g d g d g g d d g d g d g g d d d	 d
 g ƒ } t t j j d ƒ g d d d d d g d | ƒ} | j d d
 ƒ d  S(   NR   R    R!   R"   R'   i    R(   R$   R%   R&   i   R,   RV   RW   Rž   R/  R+   Rw   (   R   R   R9   R:   t   randRC   (   RI   t   midxR¢   (    (    s;   lib/python2.7/site-packages/pandas/tests/test_multilevel.pyt   test_groupby_cornerú  s    *	c         C   sË   t  j d d d d d d g ƒ } t d d d d	 d
 d g d d d d d d g g d | ƒ} | j d d ƒ | j j d „  ƒ } | j d d d d ƒ } | j ƒ  } | j d d g k j ƒ  sÇ t	 ‚ d  S(   Nt   f1t   s1t   s2t   f2t   f3i   i   i   i   i   i   i   i   i	   i
   i   i   R,   Ry   c         S   s   |  d d k S(   Ni    RR  RS  (   RR  RS  (    (   R   (    (    s;   lib/python2.7/site-packages/pandas/tests/test_multilevel.pyR4   
  s    Rw   i    (   RO  RP  (   RO  RQ  (   RR  RP  (   RR  RQ  (   RS  RP  (   RS  RQ  (
   R   R=   R   R‘   R,   t   mapRC   R   RÏ   Rs   (   RI   RM  R¢   t   df1R4  RX   (    (    s;   lib/python2.7/site-packages/pandas/tests/test_multilevel.pyt   test_groupby_level_no_obs  s    9c         C   sÑ   |  j  j |  j  j d  d g f } |  j  j |  j  j d d d g f } | j | d d ƒj |  j  j ƒ } |  j  j ƒ  } t j | j t j	 | j ƒ <t j	 | j ƒ j
 ƒ  s· t ‚ t j | | d t ƒd  S(	   Ni   R-   i   R.   R/   RÎ   t   outerRx   (   R;   R‘   R+   t   joinRz   t   copyR9   Rº   t   valuest   isnanRÏ   Rs   R@   RT   R|   (   RI   RV   RW   t   joinedRo   (    (    s;   lib/python2.7/site-packages/pandas/tests/test_multilevel.pyt	   test_join  s    #&$c         C   s‡  |  j  d j ƒ  } |  j  d j d ƒ } |  j  d j d d ƒ } |  j  d j d d ƒ } | j j |  j  j ƒ sz t ‚ t j | | ƒ t j | | ƒ t j | | ƒ | j ƒ  } | j d ƒ } | j d d ƒ } | j d d ƒ } | j j |  j  j ƒ st ‚ t j | | ƒ t j | | ƒ t j | | ƒ |  j  j }	 |	 j d d d d ƒ} |  j  j d d ƒ j }
 t j | |
 ƒ d  S(   NR-   i    i   R)   R*   Ry   (	   R;   Rß   R+   t   equalsRs   R@   RU   R}   RT   (   RI   t   swappedt   swapped2t   swapped3t   swapped4t   backt   back2t   back3t   back4t   ftR1   (    (    s;   lib/python2.7/site-packages/pandas/tests/test_multilevel.pyt   test_swaplevel  s(    c         C   sÆ   t  d t ƒ ± t d t ƒ t i |  j d 6|  j d d 6ƒ } | j ƒ  } | j j d d ƒ | _ xT | j d d	 ƒ | j d d d	 ƒ| j d d d d	 ƒf D] } t	 j
 | | ƒ q¢ WWd  QXd  S(
   NRŽ   R   t   ItemAi   t   ItemBi    i   Ry   t   major(   R    RG   R   t   FutureWarningR   R;   RY  t
   major_axisRß   R@   t   assert_panel_equal(   RI   t   panelRo   RX   (    (    s;   lib/python2.7/site-packages/pandas/tests/test_multilevel.pyt   test_swaplevel_panel5  s    $c      	   C   sx  |  j  j d d d g ƒ } |  j  j d d ƒ j d d ƒ } t j | | ƒ |  j  d j d d d g ƒ } |  j  d j d d ƒ j d d ƒ } t j | | ƒ |  j  j j d d d g d d ƒ} |  j  j j d d d d ƒj d d d d ƒ} t j | | ƒ t j t	 d	 d
 ƒ! |  j  j d d g d d ƒWd  QXt j t
 d	 d ƒ! |  j  j j d d d g ƒ Wd  QXd  S(   NR5   R6   R2   i    i   i   R-   Ry   R¶   s   hierarchical axiss   Too many levelsi   (   RD   t   reorder_levelsRß   R@   RT   RU   R}   R»   R¼   R½   RÆ   R+   (   RI   RX   Ro   (    (    s;   lib/python2.7/site-packages/pandas/tests/test_multilevel.pyt   test_reorder_levelsA  s    !%$0"c         C   sZ   |  j  d  j } | d | d <t | j t ƒ s6 t ‚ | d | d	 k j ƒ  sV t ‚ d  S(
   Ni   iÐ  i   i   i
   (   iÐ  i   i   (   iÐ  i   i
   (   iÐ  i   i
   (   iÐ  i   i   (   RD   R}   Rr   R,   R   Rs   RÏ   (   RI   R¢   (    (    s;   lib/python2.7/site-packages/pandas/tests/test_multilevel.pyt   test_insert_indexT  s    c      	   C   s  t  d d d d g d t j d d d g ƒ ƒ } t  d d d	 d
 g d t j d d d g ƒ ƒ } | | } | j j | j ƒ } | j | ƒ | j | ƒ } t j | | ƒ | d  d  d … | d  d  d … } | j j | j ƒ } | j | ƒ | j | ƒ } t j | | ƒ d  S(   NRï   i   i   i   R+   R-   R.   i   i   i   t   Ziÿÿÿÿ(   R-   i   (   R-   i   (   R.   i   (   Rt  i   (   Rt  i   (   R.   i   (   R   R   R=   R+   t   unionRz   R@   RU   (   RI   R3   Rq   t   rest	   exp_indexR1   (    (    s;   lib/python2.7/site-packages/pandas/tests/test_multilevel.pyt   test_alignmentZ  s    
$c         C   s™  |  j  j ƒ  } d d g | j _ | j d d ƒ } |  j  j d d ƒ } t j | | d t ƒ| j d d ƒ } |  j  j d d ƒ } t j | | d t ƒ|  j j ƒ  } d d g | j _ | j d d ƒ } |  j j d d ƒ } t j	 | | d t ƒ| j j
 d k st ‚ | j d d ƒ } |  j j d d ƒ } t j	 | | d t ƒ| j j
 d k sft ‚ t j t | j d ƒ t j t | j d d ƒd  S(   NRV   RW   Rw   i   Rx   i    R3   (   R;   RY  R+   R(   R²   R@   RT   R|   R?   RU   R0   Rs   R»   R¼   t   KeyError(   RI   R;   RX   t   expectR?   (    (    s;   lib/python2.7/site-packages/pandas/tests/test_multilevel.pyt
   test_countl  s(    R‚   Rw   i    i   t   skipnat   sortc            s†   |  j  j d | d | ƒ } | j ‡  ‡ f d †  ƒ } t |  j  ˆ  ƒ d | d ˆ ƒ } | rr | j d | ƒ } n  t j | | ƒ d  S(   NRw   R}  c            s   t  |  ˆ  ƒ d ˆ ƒ S(   NR|  (   R€   (   R3   (   R‚   R|  (    s;   lib/python2.7/site-packages/pandas/tests/test_multilevel.pyR4     s    R|  (   R?   RC   t   aggR€   RÞ   R@   RU   (   RI   R‚   Rw   R|  R}  R4  t   leftsidet	   rightside(    (   R‚   R|  s;   lib/python2.7/site-packages/pandas/tests/test_multilevel.pyt   test_series_group_min_maxˆ  s    !Ry   c            sf  t  j |  j j d d d g f <t  j |  j j d d d g f <ˆ  d k rV |  j } n |  j j } | j d | d ˆ  d | ƒ } g  ‰ ‡  ‡ ‡ ‡ f d †  } | j | ƒ }	 t | ˆ ƒ d | d ˆ  d	 ˆ ƒ }
 | r
|
 j d | d ˆ  ƒ }
 | j d | d ˆ  ƒ } n  | j	 ˆ  ƒ j
 | } t j |	 j	 ˆ  ƒ | ƒ t j |
 j	 ˆ  ƒ | ƒ t j |	 |
 ƒ d  S(
   Ni   i   i   i    Rw   Ry   R}  c            s)   ˆ j  |  ƒ t |  ˆ ƒ d ˆ d ˆ  ƒ S(   NR|  Ry   (   RS   R€   (   R3   (   Ry   R‚   t   piecesR|  (    s;   lib/python2.7/site-packages/pandas/tests/test_multilevel.pyt   aggf©  s    R|  (   R9   Rº   R;   R   R}   RC   R~  R€   RÞ   R°   R   R@   Re   RT   (   RI   R‚   Rw   Ry   R|  R}  R;   R4  Rƒ  R  R€  t   level_index(    (   Ry   R‚   R‚  R|  s;   lib/python2.7/site-packages/pandas/tests/test_multilevel.pyt   test_frame_group_ops–  s$    	c         C   s_   t  d g d t j d g ƒ ƒ} | j d d ƒ } t  d g d d g ƒ} t j | | ƒ d  S(   Ng      $@R+   i   i   Rw   i    (   i   i   (   R   R   R=   R   R@   RU   (   RI   t   objRX   Ro   (    (    s;   lib/python2.7/site-packages/pandas/tests/test_multilevel.pyt   test_stat_op_corner¼  s    !c         C   sð   t  i t t t t t t t g d 6d d d d d d d d g d d d d d d d g g ƒ} | j d	 d ƒ } t  i t t g d 6d d d g ƒ} t j | | ƒ | j d	 d ƒ } t  i t t g d 6d d d g ƒ} t j | | ƒ d  S(
   NRï   R+   R$   R%   i    i   i   i   Rw   (   R   R|   RG   t   anyR@   RT   RÏ   (   RI   R¢   RX   t   ex(    (    s;   lib/python2.7/site-packages/pandas/tests/test_multilevel.pyt   test_frame_any_all_groupÃ  s    "!%%c            s0  t  j t j d ƒ j d ƒ t j t j d ƒ d ƒ g ƒ } t t j j t	 | ƒ d ƒ d | ƒ} xÆ d d g D]¸ ‰ d ‰  ‡  ‡ f d †  } t
 | d ˆ ƒ d	 d d
 ˆ  ƒ } | d j d	 d ƒ j | ƒ } t j | | ƒ t
 | ˆ ƒ d	 d d
 ˆ  ƒ } | j d	 d ƒ j | ƒ } t j | | ƒ qp Wd  S(   Ni   i
   R+   R   R   i   c            s   t  |  ˆ ƒ d ˆ  ƒ S(   Nt   ddof(   R€   (   R3   (   R‹  t   meth(    s;   lib/python2.7/site-packages/pandas/tests/test_multilevel.pyR4   Ù  s    i    Rw   R‹  (   R   R`   R9   Rà   Rã   Râ   R   R:   R   R®   R€   RC   R~  R@   RU   RT   (   RI   R+   R¢   t   altRX   Ro   (    (   R‹  RŒ  s;   lib/python2.7/site-packages/pandas/tests/test_multilevel.pyt   test_std_var_pass_ddofÒ  s    !'"c         C   s¤   |  j  j d d d g ƒ } |  j  j d d d g ƒ j ƒ  } t j | | ƒ |  j  d j d d d g ƒ } |  j  d j d d d g ƒ j ƒ  } t j | | ƒ d  S(   NRw   R2   R5   R-   (   RD   R   RC   R@   RT   RU   (   RI   RX   Ro   (    (    s;   lib/python2.7/site-packages/pandas/tests/test_multilevel.pyt%   test_frame_series_agg_multiple_levelsã  s    !%c         C   sà   |  j  j d d d g ƒ j ƒ  } |  j  j j d ƒ } |  j  j j d ƒ } |  j  j | | g ƒ j ƒ  } t j | | d t ƒ| j j |  j  j j d  k s¤ t	 ‚ |  j  j d |  j  j j d  ƒ j ƒ  } t j | | ƒ d  S(   NRw   i    i   Rx   i   (
   RD   RC   R   R+   R2  R@   RT   R|   R(   Rs   (   RI   RX   t   k1t   k2Ro   R  (    (    s;   lib/python2.7/site-packages/pandas/tests/test_multilevel.pyt   test_groupby_multilevelì  s    !%(c         C   s   d  S(   N(    (   RI   (    (    s;   lib/python2.7/site-packages/pandas/tests/test_multilevel.pyt&   test_groupby_multilevel_with_transformû  s    c         C   se   t  j d d d d g ƒ } t t j j d d ƒ d | d | ƒ} | j d ƒ | d <| j ƒ  } d  S(   NR    R$   R%   R!   i   R+   R,   i   t   Totalst    (   R    R$   (   R    R%   (   R!   R$   (   R!   R%   (   R”  R•  (   R   R=   R   R9   R:   R   R   t   _consolidate(   RI   R+   R¢   (    (    s;   lib/python2.7/site-packages/pandas/tests/test_multilevel.pyt   test_multilevel_consolidateþ  s
    'c         C   sà   |  j  j d } |  j  d j d } | j j |  j  j j d k sI t ‚ | j j |  j  j j d k sn t ‚ |  j  j d } |  j  d j d } | j j |  j  j j d k s· t ‚ | j j |  j  j j d k sÜ t ‚ d  S(   NiÐ  R-   i   i   (   iÐ  i   (   iÐ  i   (   RD   R‘   R+   R(   Rs   R0   (   RI   RX   R  (    (    s;   lib/python2.7/site-packages/pandas/tests/test_multilevel.pyt   test_ix_preserve_names  s    %%%c         C   s„   d |  j  d <d |  j  d <|  j  j d ƒ } | d j t j k sH t ‚ | d	 j t j k sd t ‚ | d
 j t j k s€ t ‚ d  S(   NR    R8  i   R9  R5   R-   i   (   R-   i   (   R8  i   (   R9  i   (   RD   RÉ   Rò   R9   t   float64Rs   t   object_(   RI   RÌ   (    (    s;   lib/python2.7/site-packages/pandas/tests/test_multilevel.pyt   test_unstack_preserve_types  s    c         C   s  t  j t  j d ƒ d ƒ } t  j d ƒ } t d | g d d d g g d | g d t  j d ƒ j d ƒ g ƒ } t t  j d ƒ d	 | ƒ} | j ƒ  } | j d k s¯ t ‚ | j	 ƒ  } t
 j | | j | j ƒ ƒ t d d d g g | g d d t  j d ƒ j d ƒ g | g d ƒ } t t  j d ƒ d	 | ƒ} | j d ƒ } | j d k s_t ‚ t d | g d
 d d g g | g d
 d | g d
 t  j d ƒ j d ƒ g | g d
 ƒ } t t  j d ƒ d	 | ƒ} | j d
 ƒ } | j d k sýt ‚ d  S(   Niô  i   R   i   i    i   R'   iè  R+   i   (   iô  i   (   iô  i   (   iô  i   (   R9   Râ   Rà   R   Rã   R   RÉ   t   shapeRs   RÝ   R@   RU   Rz   R+   (   RI   R'   Rw   R+   RM   RX   Ræ   (    (    s;   lib/python2.7/site-packages/pandas/tests/test_multilevel.pyt!   test_unstack_group_index_overflow  s(     ) )+#c      	   C   sÚ  d } g  d g d | d g d | d g d | t  j g | d g d | d g | d g d | t  j g | d g d | d g | g D] } t | ƒ ^ q“ } xš t t | ƒ ƒ D]† } t j | ƒ } | j | | ƒ | k sò t ‚ t  j	 | d d t  j
 ƒ} | j g  | D] } | | ^ qƒ } t j | | ƒ q¾ Wt t | ƒ ƒ }	 t  j d	 g t |	 ƒ d t  j
 ƒ} t d d g d | ƒ }
 | j |
 g g  |	 D] } | | ^ q¬ƒ } t j | | ƒ d  S(
   Ni   i    i
   i   i   i	   i   Rò   iÿÿÿÿ(   R9   Rº   Rª   R   R®   R   R=   t   get_locRs   Rà   t   intpt   get_indexerR@   t   assert_numpy_array_equalRg   R¾   (   RI   t   Nt   lt   keysR  R+   Ro   R´   RX   t   idcest   missing(    (    s;   lib/python2.7/site-packages/pandas/tests/test_multilevel.pyt   test_pyint_engine:  s$    C&%-c         C   s0   d |  j  j _ |  j  j ƒ  |  j  j j ƒ  d  S(   NR    (   RD   R,   R0   t   to_htmlR}   (   RI   (    (    s;   lib/python2.7/site-packages/pandas/tests/test_multilevel.pyt   test_to_htmlZ  s    c         C   s¢  t  d d d d g d d g g d d d d d d	 d	 g d d d d d d g g ƒ } t t j j d
 ƒ d | ƒ} t t j j d
 d ƒ d | ƒ} | d } | j d } | d	  } | j j d ƒ | _ t	 j
 | | ƒ t	 j
 | | ƒ t j t | j d ƒ | j d } | j d ƒ } | d	  } | j j d ƒ | _ t	 j | | ƒ t	 j | | ƒ t  d d d d g d d g g d d d d d d	 d	 g d d d d d d g g ƒ } t t j j d
 ƒ d | ƒ} t t j j d
 d ƒ d | ƒ} | d } | j d } | d	  } | j j d ƒ | _ t	 j
 | | ƒ t	 j
 | | ƒ | j d } | j d ƒ } | d	  } | j j d ƒ | _ t	 j | | ƒ t	 j | | ƒ d  S(   NR   R    R!   i    R"   R#   i   R'   i   i   R+   i   (   R    R!   i    (   R    R"   i    (   R    R#   i    (   R    R!   i    (   R    R!   i    (   R    R!   i    (   (   R    R!   i    i   (   R    R!   i    (   R    R!   i    (   R    R!   (   R    R"   (   R    R#   (   R    R!   (   R    R!   (   R    R!   (   R    R!   (   R   R   R9   R:   R   R   R‘   R+   t	   droplevelR@   RU   R»   R¼   Ry  t   __getitem__t   xsRT   (   RI   R+   R?   R;   RX   R  Ro   (    (    s;   lib/python2.7/site-packages/pandas/tests/test_multilevel.pyt   test_level_with_tuples_  sF    3!


3!


c         C   sÊ  d d d d d d g d d d d d d g d d	 d
 d d d g g } t  t | Œ  ƒ } t j | ƒ } t t d d ƒ d | ƒ} | j d d d ƒ} | j d g d d ƒ} t j | | ƒ | j d g d d ƒ} | j d g d d ƒ} | j d g d d ƒ} t j | | ƒ | j d d d ƒ} | j d g d d ƒ} t j | | ƒ | j d g d d ƒ} | j d d d ƒ} | j d d d d d ƒ} | j d d g d d ƒ} t j | | ƒ d  S(   NRV   t   topt   routine1t   routine2R•  t   ODR  R  t   wxt   wyi   i   R,   Ry   i   Rw   (   RV   R•  R•  (   R®  R±  R²  (   R®  R±  R³  (   R®  R±  R²  (   R®  R±  R²  (   R®  R±  R³  (   R¯  R  R•  (   R°  R  R•  (	   t   sortedR	   R   R=   R   R   R­   R@   RT   (   RI   RK   RL   R+   R¢   RX   Ro   (    (    s;   lib/python2.7/site-packages/pandas/tests/test_multilevel.pyt   test_mixed_depth_dropŒ  s,    	c         C   s=  t  d d d d g d d d d g d d d d	 g d d d d
 g d d d d g d d d d
 g d d d d g d d d d g d d d d g g	 d d d d d g ƒ} | j d ƒ j ƒ  } | j | d k } | j d d d g ƒ } | j | j d d ƒj ƒ  } | | j j	 | j ƒ } | j | _ t
 j | | ƒ d  S(   Ns   x-aR3   RV   g      ø?g333333ó?s   z-ct   zRž   gÍÌÌÌÌÌ@gffffff@s   x-bRW   gffffff@gš™™™™™@s   y-aRq   s   z-bgÍÌÌÌÌÌ @R,   R$  t   var2t   var3t   var4i   Rw   i    (   R   RC   R7  R‘   Rî   R­   R+   R©   R$  t   isinR@   RT   (   RI   R¢   t   grp_sizet   drop_idxR;  RX   Ro   (    (    s;   lib/python2.7/site-packages/pandas/tests/test_multilevel.pyt   test_drop_nonuniqueª  s    !$c   	      C   sG  d d d d d d g d d d d d d g d d	 d
 d d d g g } t  t | Œ  ƒ } t j | ƒ } t t d d ƒ d | ƒ} | j ƒ  } | j ƒ  } | j d ƒ } | j d ƒ } t j	 | | d t
 ƒt j | | ƒ | j d k sò t ‚ | d } | j d g d d ƒ} | j d ƒ } t j | | ƒ t j | | ƒ d  S(   NRV   R®  R¯  R°  R•  R±  R  R  R²  R³  i   i   R,   Rx   Ry   i   (   RV   R•  R•  (   R´  R	   R   R=   R   R   RY  t   popR@   RU   R|   RT   R0   Rs   R­   (	   RI   RK   RL   R+   R¢   RU  t   df2RX   Ro   (    (    s;   lib/python2.7/site-packages/pandas/tests/test_multilevel.pyt   test_mixed_depth_pop¿  s$    
c         C   s  |  j  j d d g d d ƒ} |  j  j d d d d d d	 g } t j | | ƒ |  j  j j d d g d
 d d d ƒ} t j | | j ƒ |  j  j d d g } t j | | ƒ |  j  d j d d g } t j | | d ƒ |  j  j j d  d  … d d g f } t j | | j ƒ d  S(   NR    R#   Rw   i    i   i   i   i   i	   Ry   R-   (   R;   Rz   R   R@   RT   R}   R‘   RU   (   RI   RX   Ro   (    (    s;   lib/python2.7/site-packages/pandas/tests/test_multilevel.pyt$   test_reindex_level_partial_selectionÖ  s    "'%c         C   sP  |  j  j d d g d d ƒ} |  j  j d d d d d	 g } t j | | ƒ |  j  j d
 g d d ƒ} |  j  j d d d d	 d d g } t j | | ƒ |  j  j j d d g d d d d ƒ} |  j  j d d d d d	 g j } t j | | ƒ |  j  j j d
 g d d d d ƒ} |  j  j d d d d	 d d g j } t j | | ƒ d  S(   NR!   R#   Rw   R)   i    i   i   i   i   R%   R*   i   i   i	   Ry   (   R;   R­   R   R@   RT   R}   (   RI   RX   Ro   (    (    s;   lib/python2.7/site-packages/pandas/tests/test_multilevel.pyt   test_drop_levelç  s    "'"$%c         C   sñ   t  d d d d d g d d ƒ} t j d d d	 d	 d
 g ƒ } t t j d ƒ j d d ƒ d t d ƒ d | ƒ} | | d <| j d d t	 ƒ} t
 d	 ƒ } | j j t k sµ t ‚ | j | d d ƒ} | j | d k } t j | | ƒ d  S(   Ni   i   i   i   R0   t   idt   201603231400t   201603231500t   201603231600t   201603231700i
   R,   t   abR+   t   tstampRS   Rw   (   R   R^   R  R   R9   Rà   Rá   R¾   Rî   RG   R   R+   RÓ   R|   Rs   R­   R‘   R@   RT   (   RI   R  t   idxdtR¢   t   tsRX   Ro   (    (    s;   lib/python2.7/site-packages/pandas/tests/test_multilevel.pyt"   test_drop_level_nonunique_datetimeø  s    !	
t   boxc   
      C   sÍ   t  d d d ƒ} t  d d d ƒ} t j | | d d ƒ} | d d g t | ƒ d	 | ƒ } | j | ƒ } t  d
 d d ƒ} t j | | d d ƒ} | d d g t | ƒ d	 | ƒ }	 t j | |	 ƒ d  S(   Ns
   2017-10-29R]   s   Europe/Berlins   2017-10-29 04:00:00RZ   t   15minRï   i   R+   s   2017-10-29 00:15:00(   R   R^   R_   R®   R­   R@   t   assert_equal(
   RI   RÍ  t   startt   endR+   Rï   RX   t   expected_startt   expected_idxRo   (    (    s;   lib/python2.7/site-packages/pandas/tests/test_multilevel.pyt'   test_drop_tz_aware_timestamp_across_dst  s    ""c         C   s”   t  j d d d d d d g d d d d d d g g d d d g ƒ} t t j j d d ƒ d	 | ƒ} | j d
 g ƒ } | j j d k s t	 ‚ d  S(   Ni    i   i   i   R(   R$   R%   i   R+   (   i    i   (   R$   R%   (
   R   R`   R   R9   R:   R   R­   R+   R(   Rs   (   RI   R+   R¢   RX   (    (    s;   lib/python2.7/site-packages/pandas/tests/test_multilevel.pyt   test_drop_preserve_names  s    !c         C   s’   t  t d ƒ t d ƒ t d ƒ g ƒ t  d d g ƒ g } t j d ƒ j d ƒ t j t j d ƒ d ƒ g } t d | d	 | ƒ } t | j ƒ d  S(
   Ns   a/\u03c3s   b/\u03c3s   c/\u03c3i    i   i   i   R   R'   (	   R   R   R9   Rà   Rã   Râ   R   R›   R   (   RI   R   R'   R+   (    (    s;   lib/python2.7/site-packages/pandas/tests/test_multilevel.pyt   test_unicode_repr_issues"  s
    $3c         C   sx   t  j d	 d
 g d t d ƒ d g ƒ} t t d ƒ d | ƒ} t t j j d d ƒ d | ƒ} t	 | ƒ t	 | ƒ d  S(   Ni    i   R(   s   \u0394t   i1i   R+   i   (   i    i    (   i   i   (
   R   R=   R   R   R   R   R9   R:   R   R›   (   RI   R+   RM   R¢   (    (    s;   lib/python2.7/site-packages/pandas/tests/test_multilevel.pyt   test_unicode_repr_level_names-  s    !
c         C   sÁ   t  i d d g d 6d d g d 6d d g d 6ƒ } t  i d d g d 6d d g d 6d d g d 6ƒ } | j d d g ƒ } | j d d g ƒ } x* d d d	 g D] } | j | d
 | ƒq  Wd  S(   Ni   RV   i   RW   R3   Rq   RÔ   RÕ   RW  RÎ   (   R   Rî   RX  (   RI   RU  R¿  RÎ   (    (    s;   lib/python2.7/site-packages/pandas/tests/test_multilevel.pyt   test_join_segfault6  s    33c      	   C   s´   t  d d d d g d t j d	 d
 d d g ƒ ƒ} t  d d d d g d t j d d d d g ƒ ƒ} t  ƒ  } t i | d 6| d 6| d 6ƒ t j i | d 6| d 6| d 6ƒ d  S(   Ni   i   i   i   R+   R    R!   R"   (   i   i   (   i   i   (   i   i   (   i   i   (   i   i   (   i   i   (   i   i   (   i   i   (   R   R   R=   R   t	   from_dict(   RI   RP  RQ  t   s3(    (    s;   lib/python2.7/site-packages/pandas/tests/test_multilevel.pyt(   test_frame_dict_constructor_empty_series@  s    	c         C   s³   d d l  m } t i i d d 6d d 6i | d 6d d 6i | d 6d d 6i | d 6d	 d 6i d d 6d
 d 6i | d 6d d 6ƒ } | j d d d d g ƒ } t | ƒ d  S(   Niÿÿÿÿ(   Rº   t   A0006000R-   t   nuiti   R.   R/   R[   R8  R9  (   R-   RÝ  RÞ  (   R-   RÝ  RÞ  (   R-   RÝ  RÞ  (   R-   RÝ  RÞ  (   R-   RÝ  RÞ  (   R-   RÝ  RÞ  (   t   numpyRº   R   Rî   R›   (   RI   Rº   t   df3R;  (    (    s;   lib/python2.7/site-packages/pandas/tests/test_multilevel.pyt   test_multiindex_na_reprM  s    c         C   sž   t  i d d d g d 6d d d g d 6d	 d
 d g d 6ƒ j d d g ƒ } t | j ƒ } d | d <| | _ t | ƒ d d g | d <| | _ t | ƒ d  S(   Ni   i   i   RV   i   i   i   RW   i   i   i	   Rž   t   fazt   booi    (   Râ  Rã  (   R   Rî   R¾   R+   R›   (   RI   R¢   R+   (    (    s;   lib/python2.7/site-packages/pandas/tests/test_multilevel.pyt   test_assign_index_sequences]  s    %
	
	c         C   sž   t  d d d g d d d d g g d d d d d d d d d g d d d d d d d d g g ƒ } t | d d ƒ s} t ‚ t | j d d ƒ sš t ‚ d  S(	   NR   i   i    i   i   R'   iÿÿÿÿi   (   R   R   Rs   RZ  (   RI   R+   (    (    s;   lib/python2.7/site-packages/pandas/tests/test_multilevel.pyt   test_tuples_have_nal  s
    $$c         C   s…   d d d d g } d d d d g } t  j | d d d g ƒ} t | d	 | ƒ} | j | j ƒ j ƒ  } t | ƒ d
 k s t ‚ d  S(   Nt   600809t   20061231t   20070331t   20070630t   demoR(   t   STK_IDt   RPT_DateR+   i   (   Ræ  Rç  (   Ræ  Rè  (   Ræ  Ré  (   Ræ  Rè  (   R   R=   R   RC   R+   R)   R®   Rs   (   RI   t   idx_tpt   dtR  RM   RX   (    (    s;   lib/python2.7/site-packages/pandas/tests/test_multilevel.pyt   test_duplicate_groupby_issuest  s    c      
   C   s  t  d d d d g d d d d g d d d	 d
 g d d d d g d d d d g d d d d g g d t d ƒ ƒ} | j d d g ƒ } | j d d ƒ } t  d d d d g d d d d g d d d d g g d t d ƒ ƒj d d g ƒ } | j d } t j | | ƒ d  S(   NR    R!   g      ð?i   g       @i   t   baht   bamg      @i   g      @i   g      @i   g      @i   R,   t   ABCDR-   R.   Rw   i    (   R    R!   (   R   R¾   Rî   RÞ   R‘   R@   RT   (   RI   R¢   Ro   RX   (    (    s;   lib/python2.7/site-packages/pandas/tests/test_multilevel.pyt   test_duplicate_mi  s    !!c         C   s&  t  j d d d d d d g d d d d d d g f ƒ } t j t t t t t t g d t ƒ} | j ƒ  } t j	 | | ƒ | j
 t k s‘ t ‚ t  j d d d d d g d d d d d g f ƒ } t j | j ƒ  | ƒ t j t t t t t t g ƒ } | j d d ƒ } t j	 | | ƒ | j
 t k s2t ‚ t  j d d d d d g d d d d d g f ƒ } t j | j d d ƒ | ƒ t j t t t t t t g ƒ } | j d t ƒ } t j	 | | ƒ | j
 t k sÙt ‚ t  j d d d d g d d d d g f ƒ } t j | j d t ƒ | ƒ d  S(   Ni   i   i   Rò   t   keept   last(   R   R`   R9   Rg   R|   RG   t   boolt
   duplicatedR@   R¡  Rò   Rs   Re   t   drop_duplicates(   RI   R  Ro   R÷  (    (    s;   lib/python2.7/site-packages/pandas/tests/test_multilevel.pyt   test_duplicated_drop_duplicatesŽ  s(    9!3!3!-c         C   so   i d d d g d 6d d d g d 6} t  | ƒ } d d d g } | | d <t j | d ƒ } | j | ƒ d  S(   Ni   g      @i   t   t1i   i   i   t   t2i    i   RL   (   i    i   (   i    i   (   i   i   (   R   R   R=   Rî   (   RI   R/  R¢   RL   R+   (    (    s;   lib/python2.7/site-packages/pandas/tests/test_multilevel.pyt   test_multiindex_set_index¨  s    &
c         C   s`  t  j d d d g d d d ƒ} t  j d d d	 d
 d d d ƒ} t j | | g ƒ } t  j d d d g d d ƒ} t j | j d | ƒ t j | j d | ƒ t j	 j
 ƒ  } t j j
 ƒ  } t j
 ƒ  } x‹ t j | | | g | | | g ƒ D]e \ } }	 t j | g |	 g g ƒ }
 t |
 j d t  j ƒ s9t ‚ t |
 j d t  j ƒ só t ‚ qó Wd  S(   Ns   2013-04-01 9:00s   2013-04-02 9:00s   2013-04-03 9:00i   R]   s
   Asia/Tokyos
   2010/01/01R\   i   RZ   R	  s
   US/Easterni    i   (   R^   t   DatetimeIndexR_   R   R`   R@   Re   R   Rd   R#  t   todayR   RF  R   t   from_productRr   Rs   (   RI   Ri   Rj   R  t	   expected1t   date1t   date2t   date3t   d1t   d2R+   (    (    s;   lib/python2.7/site-packages/pandas/tests/test_multilevel.pyt   test_datetimeindex³  s$    		(c         C   sØ   t  j d d g d d d d ƒ} t  j d d g d d	 d d
 ƒ} t j | | g ƒ } t j | j d | ƒ t j | j d | ƒ t j t | ƒ t | ƒ g ƒ } t j | j d | ƒ t j | j d | ƒ d  S(   Ns   2013/01/01 09:00s   2013/01/02 09:00R0   t   dt1R]   s
   US/Pacifics   2014/01/01 09:00s   2014/01/02 09:00t   dt2s
   Asia/Tokyoi    i   (   R^   Rý  R   R`   R@   Re   R   R   (   RI   R+   R,   RX   (    (    s;   lib/python2.7/site-packages/pandas/tests/test_multilevel.pyt   test_constructor_with_tzÍ  s    !c         C   s  t  i d d d d d d g d 6d d d d d d g d 6t d ƒ d	 6ƒ } t j | j d ƒ d
 t ƒ| _ | j j d ƒ | _ t j d d d g d d ƒ} | j	 d ƒ j d ƒ } | j
 d d t ƒ} t j | j j d | ƒ t j | j j d t d d g d d ƒƒ | j d d ƒ } t j | j j d t d d g d d ƒƒ t j | j j d | ƒ t  t j j d ƒ ƒ } t j d d d d d d g d d ƒ} t j d d d d d d g d d ƒ} t j d d d d d ƒ} | j
 | ƒ } | j
 | d t ƒ} | j
 | d t ƒ} t j d d d g d d ƒ} t j d d g d d ƒ} t j | j j d | ƒ t j | j j d | ƒ t j | j j d | ƒ t j | j j d ƒ | ƒ t j | j j d ƒ | ƒ t j | j j d ƒ | ƒ d  S(   NRV   RW   t   labels   2011-07-19 07:00:00s   2011-07-19 08:00:00s   2011-07-19 09:00:00Rd   i   RŸ   t   utcs
   US/PacificR0   t   UTCRS   i    i   R]   s
   US/Easterns   2012-04-01 09:00s   2012-04-02 09:00s   2011-01-01 09:00R\   s
   Asia/Tokyoi   (   R   R   R^   R  R¾  RG   R+   t
   tz_convertRý  t   tz_localizeRî   R@   Re   R   R   Rß   R9   R:   R_   R2  (   RI   R¢   Ro   Ri   Rj   Rk   R   t	   expected2(    (    s;   lib/python2.7/site-packages/pandas/tests/test_multilevel.pyt   test_set_index_datetimeÜ  sX    !					c            sº  x³d d d g D]¢‰  t  j d d d d d d	 ˆ  d
 d ƒ} t t d ƒ d
 d d d ƒ} t j | | g ƒ } t i t j d d d ƒd 6d d d d d g d 6d | ƒ} t i t	 j	 d d d ƒ t	 j	 d d d ƒ t	 j	 d d d ƒ t	 j	 d d d ƒ t	 j	 d d d ƒ g d 6t j d d d ƒd 6t j d d d ƒd 6d d d d d g d 6d d d d d g ƒ} | d j
 ‡  f d †  ƒ | d <t j | j ƒ  | ƒ t  j d d d d d d	 d d
 d  ƒ} t j | | | g ƒ } t i t j d d d ƒd 6d d d d d g d 6d | ƒ} t i t	 j	 d d d ƒ t	 j	 d d d ƒ t	 j	 d d d ƒ t	 j	 d d d ƒ t	 j	 d d d ƒ g d 6t j d d d ƒd 6t	 j	 d! d d ƒ t	 j	 d! d d ƒ t	 j	 d! d d ƒ t	 j	 d! d d ƒ t	 j	 d! d d ƒ g d  6t j d d d ƒd 6d d d d d g d 6d d d d  d d g ƒ} | d j
 ‡  f d" †  ƒ | d <| d  j
 d# „  ƒ | d  <t j | j ƒ  | ƒ t j d d g t  j d$ d d d	 ˆ  ƒg ƒ } t t j d% d d ƒj d% d ƒ d d g d | ƒ} t i d& j ƒ  d' 6t	 j	 d( d d ƒ t	 j	 d( d d ƒ t	 j	 d( d d ƒ g d d) 6t j d% d d ƒd 6d d' d) d g ƒ} | d) j
 ‡  f d* †  ƒ | d) <t j | j ƒ  | ƒ q Wd  S(+   NR  s
   Asia/Tokyos
   US/Easterns   1/1/2011R\   i   RZ   R[   R]   R0   Ri   Rj   Rò   RÄ   RV   R-   R.   R/   R8  RW   R+   iÛ  i   i   i   i   R,   c            s   t  |  d ˆ  ƒS(   NR]   (   R   (   R/  (   R]   (    s;   lib/python2.7/site-packages/pandas/tests/test_multilevel.pyR4   )  s    s   1/1/2012t   MSs   Europe/ParisRk   iÜ  c            s   t  |  d ˆ  ƒS(   NR]   (   R   (   R/  (   R]   (    s;   lib/python2.7/site-packages/pandas/tests/test_multilevel.pyR4   C  s    c         S   s   t  |  d d ƒS(   NR]   s   Europe/Paris(   R   (   R/  (    (    s;   lib/python2.7/site-packages/pandas/tests/test_multilevel.pyR4   E  s    t   20130101i   s   a a a b b bt   level_0iÝ  t   level_1c            s   t  |  d d d ˆ  ƒS(   NRZ   R[   R]   (   R   (   R/  (   R]   (    s;   lib/python2.7/site-packages/pandas/tests/test_multilevel.pyR4   W  s    (   R^   R_   R   R   R   R`   R   R9   Rà   Rd   Rþ   R@   RT   R©   Rÿ  Rá   R    (   RI   Ri   Rj   R  R¢   Ro   Rk   (    (   R]   s;   lib/python2.7/site-packages/pandas/tests/test_multilevel.pyt   test_reset_index_datetime  sv    	"
"


c         C   s"  t  j t j d d d d d ƒt d ƒ g d d d	 g ƒ} t t j d
 d d ƒj d d ƒ d | d d g ƒ} t i t j	 d d d ƒg d t j	 d d d ƒg d t j	 d d d ƒg d d 6d d d g d d	 6t j d
 d d ƒd 6d d d	 d g ƒ} t
 j | j ƒ  | ƒ d  S(   NR  R\   i   RZ   R	  t   abcR(   R5   t   featurei	   Rò   RÄ   iÿÿÿÿi   R+   R,   RV   s   2013-01s   2013-02s   2013-03RW   Rž   (   R   Rÿ  R^   t   period_rangeR¾   R   R9   Rà   Rá   t   PeriodR@   RT   R©   (   RI   R  R¢   Ro   (    (    s;   lib/python2.7/site-packages/pandas/tests/test_multilevel.pyt   test_reset_index_periodZ  s    '$3c      	   C   s¥  d d g d d g g } t  d d g d d g g d	 t j | ƒ ƒ} | d g j d ƒ j ƒ  } t j | | ƒ t j t	 d
 d ƒ | j d ƒ j ƒ  Wd  QX| j
 d g ƒ j ƒ  } t j | | ƒ t  d g d g g d	 t j d g ƒ ƒ} t j | | d d g g d d ƒ} | j
 d g d t ƒj ƒ  } t j | | ƒ t j t	 d
 d ƒ | j d g ƒ j ƒ  Wd  QXd d d g d d d g g } t  d d g d d g g d	 t j | ƒ ƒ} t  d g d g g d	 t j d g ƒ ƒ} t j | | g d d ƒ} | j d g ƒ j d d ƒ } t j | | ƒ t j t	 d
 d ƒ! | j d  g ƒ j d d  ƒ Wd  QX| j d! g ƒ j d d d d ƒ } t j | | ƒ d  S("   NR-   R•  R.   RW   i    i   i   i   R,   R¶   s)   cannot insert \('A', ''\), already existsR  Ry   RS   s0   Item must have length equal to number of levels.R/   Rž   R´   RV   t   iit   col_fillsF   col_fill=None is incompatible with incomplete column name \('C', 'c'\)t	   col_level(   R-   R•  (   R  R•  (   R.   RW   (   R-   R•  (   R.   RW   (   R/   Rž   R´   (   R/   Rž   R  (   R/   Rž   (   R/   Rž   (   Rž   R  (   R   R   R=   t   rename_axisR©   R@   RT   R»   R¼   R  Rî   R^   t   concatRG   Rh   (   RI   R   R¢   RX   t   idx_colRo   R¿  (    (    s;   lib/python2.7/site-packages/pandas/tests/test_multilevel.pyt#   test_reset_index_multiindex_columnsk  s@    
%

"	c         C   s¥  t  t j j d ƒ ƒ } t j d d d d d ƒ} | j | ƒ } t j d d d d d	 ƒ} | j | ƒ j | ƒ } t j d
 d d d d ƒ} | j | ƒ } | j | d t ƒ} | j | d t ƒ} t j d d d d d ƒ} t j d d d d d	 ƒ} t j	 | j
 j d | ƒ t j	 | j
 j d | ƒ t j	 | j
 j d | ƒ t j	 | j
 j d ƒ | ƒ t j	 | j
 j d ƒ | ƒ t j	 | j
 j d ƒ | ƒ d  S(   Ni   s
   2011-01-01R\   i   RZ   R	  s   2013-01-01 09:00i   t   Ht   2005R-   RS   i    i   (   R   R9   R:   R^   R  RS   Rî   RG   R@   Re   R+   R   R2  (   RI   R¢   Ri   Rj   Rk   R   R  (    (    s;   lib/python2.7/site-packages/pandas/tests/test_multilevel.pyt   test_set_index_periodž  s"    c         C   sn   t  j d d d d g ƒ } d	 d
 d d g } t | d | ƒ} | j d ƒ j d t | ƒ f k sj t ‚ d  S(   Ni   i   i   i   i   i   i   i   RV   RW   Rž   R/  R+   (   i   i   (   i   i   (   i   i   (   i   i   (   R   R=   R   Rã   Rœ  R®   Rs   (   RI   t   m_idxRï   t   m_df(    (    s;   lib/python2.7/site-packages/pandas/tests/test_multilevel.pyt   test_repeat¶  s    (e   RP   RQ   RY   Rp   Ru   Rv   R   R‰   R   R•   R™   R   R¤   R¬   R¯   R¿   RÃ   RÅ   RÈ   RÍ   RÑ   Rê   Rñ   Rô   R   R  R  R  R  R  R  R  R  R)  R.  R1  R6  R<  R=  R»   t   markt   slowR>  RK  RN  RV  R]  Rh  Rp  Rr  Rs  Rx  R{  t   parametrizet   AGG_FUNCTIONSRG   R|   R  R…  R‡  RŠ  RŽ  R  R’  R“  R—  R˜  R›  R  R§  R©  R­  Rµ  R½  RÀ  RÁ  RÂ  RÌ  R   R   RÔ  RÕ  RÖ  RØ  RÙ  RÜ  Rá  Rä  Rå  Rï  Ró  Rù  Rü  R  R	  R  R  R  R!  R$  R'  (    (    (    s;   lib/python2.7/site-packages/pandas/tests/test_multilevel.pyRR   =   sÂ   			'					
	
												
	[						
					2	$																	-0"										
	 	 		-						$	
				
											8	F		3	t
   TestSortedc           B   sƒ   e  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(   s-    everything you wanted to test about sorting c         C   s4   |  j  j ƒ  } | j j |  j  j j k s0 t ‚ d  S(   N(   R;   RÞ   R+   R(   Rs   (   RI   RX   (    (    s;   lib/python2.7/site-packages/pandas/tests/test_multilevel.pyt   test_sort_index_preserve_levelsÂ  s    c   
      C   s=  t  j j d ƒ t  j j d d ƒ } xd d d d g d f d	 d d
 d g d f t d ƒ t d ƒ t d ƒ t d ƒ g t d ƒ f d d d d g d f g D]—\ } } t j g  | D] } d | f ^ q· ƒ } t | d t d ƒ d | ƒ} t	 j
 | t d d t d ƒ d t j d | f g ƒ ƒg d d	 ƒ} t | ƒ j ƒ  d j ƒ  d g k s`t ‚ | j ƒ  j d d	 ƒ } | j d  d  … d d
 d	 d g f }	 t j | |	 ƒ | j d d	 ƒ } | j d  d  … d d
 d	 d d g f }	 t j | |	 ƒ | j ƒ  } d | d | f <| j d d	 ƒ } t j | |	 ƒ qž Wd  S(   Ni    i   i   g      ð?g      @g       @g      @g      @i   i   i   R  t   20130103t   20130102t   20130105t   20130104t   1onet   3onet   2onet   5onet   4onet   redR+   t   defR,   t   worldRy   (   R9   R:   t   seedR   R   R   R=   R   R¾   R^   R  R  t
   splitlinesR    Rs   RY  RÞ   R   R@   RT   (
   RI   Rï   t   genRý   R´   R,   R¢   R¿  RX   Ro   (    (    s;   lib/python2.7/site-packages/pandas/tests/test_multilevel.pyt   test_sorting_repr_8017Æ  s0    -%(	!+%(c         C   s©   |  j  j ƒ  } t j t | ƒ ƒ | _ |  j  d j d d ƒ } | j j |  j  j j k sa t ‚ |  j  j ƒ  } | j d d d t	 ƒ t
 j | |  j  j d d ƒ ƒ d  S(   NR-   Rw   i    R8   (   R;   RY  R9   Rà   R®   R+   RÞ   R(   Rs   RG   R@   RT   (   RI   R¢   t   a_sortedR'  (    (    s;   lib/python2.7/site-packages/pandas/tests/test_multilevel.pyt   test_sort_index_levelï  s    !c         C   s  t  j t j d ƒ g d ƒ } t t j j d ƒ d | d t j ƒ} | j d d ƒ } | j	 j
 d k sp t ‚ t  j t j d ƒ g d ƒ } t t j j d ƒ d | d t j ƒ} | j d d ƒ } | j j | j j k j ƒ  sì t ‚ | j	 j
 d k st ‚ d  S(   Ni   i   R+   Rò   Rw   i    (   R   R`   R9   Rà   R   R:   R   RÄ   RÞ   R+   t   lexsort_depthRs   RË   t   dtypesRZ  RÏ   (   RI   R+   R¢   RX   (    (    s;   lib/python2.7/site-packages/pandas/tests/test_multilevel.pyt'   test_sort_index_level_large_cardinality   s    ''$c         C   sS   d d g |  j  j _ |  j  j d d ƒ } |  j  j d d ƒ } t j | | ƒ d  S(   NR)   R*   Rw   i   (   R;   R+   R(   RÞ   R@   RT   (   RI   RX   Ro   (    (    s;   lib/python2.7/site-packages/pandas/tests/test_multilevel.pyt   test_sort_index_level_by_name  s    c         C   sà   |  j  j d d ƒ } |  j  j ƒ  } d | d <| j d d ƒ } t j | | j d g d d ƒƒ |  j  j } | j d d d d ƒ } d | d <| j d d d d ƒ } t j | j d g d d ƒ| j d	 g d d ƒƒ d  S(
   NRw   i   R!   R    Ry   R&   (   R    R&   (   R    R&   (   R    R&   (   R;   RÞ   RY  R@   RT   R­   R}   (   RI   t   sorted_beforeR¢   t   sorted_aftert   dft(    (    s;   lib/python2.7/site-packages/pandas/tests/test_multilevel.pyt   test_sort_index_level_mixed  s    
	
c         C   s)  d d g d d d g g } t  d | d d d d d d d g d d d d d d g g ƒ } | j ƒ  sl t ‚ t  d | d d d d d d d g d d d d d d g g ƒ } | j ƒ  s¾ t ‚ t  d | d d d d d d d g d d d d d d g g ƒ } | j ƒ  st ‚ | j d k s%t ‚ d  S(   Ni    i   i   R   R'   (   R   t   is_lexsortedRs   R@  (   RI   R   R+   (    (    s;   lib/python2.7/site-packages/pandas/tests/test_multilevel.pyt   test_is_lexsorted*  s    333c         C   s;  t  d d g d d g g d t d ƒ ƒ} t  d d g d d g d d g d d g g d t j d d d d g ƒ ƒ} | j j ƒ  sŠ t ‚ t  d d g d d g d d g d d g g d t j d d g t d ƒ g ƒ ƒ} | j ƒ  } | j j ƒ  sü t ‚ | j j	 st ‚ t
 j | | ƒ t  d d g d d g d d g d d g g d t d	 d d g d d g g d
 d d d d g d d d d g g ƒ ƒ} | j ƒ  } | j j ƒ  s´t ‚ t
 j | | ƒ t j | | g d d d g ƒ} | j ƒ  } | j j ƒ  st ‚ | j j	 st ‚ t
 j | | ƒ t  d d g d d g g d t j d d g d d d g ƒƒ} | j j t j | j j d ƒ d d d t ƒ| j j ƒ  s¬t ‚ | j j	 s¿t ‚ | j d d ƒ } | j j ƒ  sæt ‚ | j j	 søt ‚ | j d d d d ƒ } | j j ƒ  s%t ‚ | j j	 s7t ‚ d  S(   Ni   i   R+   RÈ  g      à?RV   RW   gš™™™™™é?R   R'   i    R¤  i   i   R,   s   20160811 12:00:00s   20160809 12:00:00R(   t   l1t   DateRw   R8   Ry   (   g      à?RV   (   g      à?RW   (   gš™™™™™é?RV   (   gš™™™™™é?RW   (   i    s   20160811 12:00:00(   i    s   20160809 12:00:00(   R   R¾   R   R=   R+   RH  Rs   Rÿ  RÞ   t   is_monotonicR@   RT   R^   R  R,   RE   R  R   RG   (   RI   R¢   Ro   RX   t	   concatted(    (    s;   lib/python2.7/site-packages/pandas/tests/test_multilevel.pyt"   test_sort_index_and_reconstruction:  sT    *-	*$**!	"c         C   s’  t  i d d d d g d 6d t d d d	 g d
 d g g d d d d d g d d d d g g ƒ ƒ} | j j ƒ  sy t ‚ | j j sŒ t ‚ t  i d d d d g d 6d t d d d	 g d d
 g g d d d d d g d d d d g g ƒ ƒ} | j ƒ  } | j j ƒ  st ‚ | j j s#t ‚ t j | | ƒ | j ƒ  j	 ƒ  } | j j
 ƒ  | _ | j j ƒ  slt ‚ | j j s~t ‚ t j | | ƒ d  S(   Ni   i   i   i   RŸ   R+   R   RV   RW   t   bbt   aaR'   i    (   R   R   R+   RH  Rs   RL  RÞ   R@   RT   RY  t   _sort_levels_monotonic(   RI   R¢   Ro   RX   (    (    s;   lib/python2.7/site-packages/pandas/tests/test_multilevel.pyt.   test_sort_index_and_reconstruction_doc_exampleu  s&    **c      	   C   sì   t  t j j d d ƒ d t j d d g d d g d d	 g g d
 d d d g ƒd d d g ƒ} | j ƒ  } d „  } | j d d d g ƒ j | ƒ j ƒ  } t j d d g d d g d d g g d
 d d d  g ƒ} t
 j | j | ƒ d  S(   Ni   i   R+   RV   RW   t   bigt   smallR7  t   bluR(   t   letterR7  t   colorR,   t   neart   farc         S   s   d d g |  _  |  S(   Nt   newzt   newa(   R+   (   t   group(    (    s;   lib/python2.7/site-packages/pandas/tests/test_multilevel.pyt   my_func›  s    Rw   R[  RZ  (   R   R9   R:   R   R   Rÿ  RÞ   RC   Rþ   Rh   R@   Re   R+   (   RI   R¢   R]  RX   Ro   (    (    s;   lib/python2.7/site-packages/pandas/tests/test_multilevel.pyt   test_sort_index_reorder_on_ops‘  s    !	!c      	   C   st  t  d d d g d d d g g d d d	 d d d	 g d d	 d d d d	 g g ƒ } t i t t | ƒ ƒ d
 6d | d d ƒ} | j j ƒ  t k s— t ‚ | j j t k s¯ t ‚ | j	 ƒ  } | j j ƒ  t
 k sÖ t ‚ | j j t
 k sî t ‚ t i d d d d	 g d
 6d t  j d d d d g ƒ d d ƒ} | j t j d d … d d … f d  d  … f } t j | | ƒ d  S(   NR-   R.   R/   Rž   RW   RV   i    i   i   RA  R+   Rò   RÄ   i   i   (   R.   RV   (   R.   Rž   (   R/   RV   (   R/   RW   (   R   R   R   R®   R+   RH  R|   Rs   RL  RÞ   RG   R=   R‘   R^   t
   IndexSliceR@   RT   (   RI   R  R¢   R´  Ro   RX   (    (    s;   lib/python2.7/site-packages/pandas/tests/test_multilevel.pyt   test_sort_non_lexsorted§  s&    		2c         C   s  d d g t  j t  j g t  j d g d d g g } t j | ƒ } t t  j d ƒ j d d ƒ d | d	 t d
 ƒ ƒ} t t  j d ƒ d | ƒ} t i t	 j
 d d d d d d d d d d d d g ƒ d 6d d d d d d d d d d d d g d 6d t  j d d t  j d d d t  j d d d g d 6d d d d  d! d d" t  j d# d$ d d g d% 6ƒ j d d g ƒ } | j ƒ  } | j d d" d d g d  d  … f } t j | | ƒ | j d& d' ƒ } | j d d" d d g d  d  … f } t j | | ƒ | j d& d( ƒ } | j d d d d" g d  d  … f } t j | | ƒ | j ƒ  j ƒ  } | j ƒ  j ƒ  } t j | | ƒ | j ƒ  } | j d d" d d g } t j | | ƒ | j d& d' ƒ } | j d d" d d g } t j | | ƒ | j d& d( ƒ } | j d d d d" g } t j | | ƒ d  S()   Ni   i   i   i   i   i   i   R+   R,   Rò  t   20121002t   20121007t   20130130t   20130202t   20130305t   20121207R#  i   t   user_idiþ  i  i  io  iZ   i8  i-  ig  i!  t
   whole_costi   i
   i   i'   i    i-   i"   t   costt   na_positionRõ  R)   (   R9   Rº   R   R=   R   Rà   Rá   R¾   R   R^   R  Rî   RÞ   R   R@   RT   RÐ   RU   (   RI   RL   Rè   R¢   RM   R¿  RX   Ro   (    (    s;   lib/python2.7/site-packages/pandas/tests/test_multilevel.pyt   test_sort_index_nanÂ  sH    3+4%%%c      
   C   sI  d d d d d d d d g d d d d d d d d g d d d	 d
 d d d	 d
 g g } t  | Œ  } t j | d d d d g ƒ} t t d ƒ d | ƒ} | j d d d g d t ƒ } | j d d d d
 d d	 d d g } t j	 | | ƒ | j d d d g d t t
 g ƒ } | j d d d
 d d	 d d d g } t j	 | | ƒ d  S(   NR!   R"   R    R#   R$   R%   i   i   i   i   R(   R)   R*   t   thirdi   R+   Rw   RÒ   i    i   i   i   (   R   R   R=   R   R   RÞ   R|   R   R@   RU   RG   (   RI   RK   RL   Rè   RM   RX   Ro   (    (    s;   lib/python2.7/site-packages/pandas/tests/test_multilevel.pyt   test_sort_ascending_listû  s    !%%(   RP   RQ   t   __doc__R-  R=  R?  RB  RC  RG  RI  RN  RR  R^  R`  Rk  Rm  (    (    (    s;   lib/python2.7/site-packages/pandas/tests/test_multilevel.pyR,  ¿  s   		)						;				9(*   Rd   RF  t   warningsR    R   Rß  R9   t   numpy.randomR   R»   Ra   t   pandas.compatR   R   R   R   R¨   R   R   R	   t   pandas.core.dtypes.commonR
   R   t   pandasR^   R   R   R   R   R   t   pandas.core.indexR   R   t   pandas.util.testingt   utilt   testingR@   R+  t   objectR   RR   R,  (    (    (    s;   lib/python2.7/site-packages/pandas/tests/test_multilevel.pyt   <module>   s.   4(#ÿ ÿ ÿ ÿ ÿ ÿ ˆ