ó
šxŠ\c           @   s<  d  d l  Z  d  d l Z d  d l Z d  d l m Z m Z d  d l m Z d  d l	 Z
 d  d l	 m Z m Z m Z d  d l j j 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 S(   iÿÿÿÿN(   t   lranget   range(   t'   construct_1d_object_array_from_listlike(   t   IntervalIndext
   MultiIndext
   RangeIndexc          C   s^  t  j d d g ƒ }  |  j d j d k s1 t ‚ |  j d j d k sM t ‚ t  j d g t d ƒ g ƒ }  |  j d j d k s‡ t ‚ t  j d g t d ƒ g ƒ }  |  j d j d	 k sÁ t ‚ t  j d g t d
 ƒ g ƒ }  |  j d j d k sû t ‚ t j  j d g t d ƒ g ƒ }  |  j d d k j ƒ  s;t ‚ |  j d d k j ƒ  sZt ‚ d  S(   Nt   Ai   i   i    t   int8t   ai(   i  t   int16i@œ  t   int32iè  (   R   i   (   R   i   (	   R   t   from_tuplest   codest   dtypet   AssertionErrort   from_productR   t   pdt   all(   t   i(    (    sH   lib/python2.7/site-packages/pandas/tests/indexes/multi/test_integrity.pyt   test_labels_dtypes   s    !c          C   s¿   d t  j d ƒ f d t  j f d t  j d ƒ f d t  j d ƒ f d t  j d ƒ f d t  j d ƒ f g }  t  j j |  ƒ } t |  ƒ } t j | j | ƒ t j | j d  | d  j ƒ d  S(	   Ni   s
   2000-01-01i   i   s
   2000-01-03s
   2000-01-04s
   2000-01-02i   (	   R   t	   Timestampt   NaTR   R   R   t   tmt   assert_numpy_array_equalt   values(   t   tuplest   resultt   expected(    (    sH   lib/python2.7/site-packages/pandas/tests/indexes/multi/test_integrity.pyt   test_values_boxed$   s    c          C   sd  t  j d
 d ƒ }  t j |  ƒ } t j t d t ƒ t j |  d d ƒ} Wd  QXt j j	 | | g ƒ } | j
 } t j g  | D] } | d ^ q€ ƒ } t j | | ƒ t j g  | D] } | d ^ q¶ ƒ } t j | | ƒ | d	  j
 } t j g  | D] } | d ^ qù ƒ } t j | | d	  ƒ t j g  | D] } | d ^ q3ƒ } t j | | d	  ƒ d  S(   Ni
   i   i   t   check_stacklevelt   tzs
   US/Centrali    i   i   I  d§³¶àI  d§³¶àI d§³¶à(   t   npt   arangeR   t   DatetimeIndexR   t   assert_produces_warningt   FutureWarningt   FalseR   t   from_arraysR   t   assert_index_equal(   t   intst   naivet   awaret   idxR   t   xt   outert   inner(    (    sH   lib/python2.7/site-packages/pandas/tests/indexes/multi/test_integrity.pyt$   test_values_multiindex_datetimeindex1   s    	&&&&c          C   sK  t  j d d ƒ }  t j |  d d ƒ} t j j |  | g ƒ } | j } t j g  | D] } | d ^ qU ƒ } t j	 | t j |  ƒ ƒ t j g  | D] } | d ^ q” ƒ } t j	 | | ƒ | d  j } t j g  | D] } | d ^ q× ƒ } t j	 | t j |  d  ƒ ƒ t j g  | D] } | d ^ qƒ } t j	 | | d  ƒ d  S(   Ni×  iÜ  t   freqt   Di    i   i   (
   R   R    R   t   PeriodIndexR   R%   R   t
   Int64IndexR   R&   (   R'   t   pidxR*   R   R+   R,   R-   (    (    sH   lib/python2.7/site-packages/pandas/tests/indexes/multi/test_integrity.pyt"   test_values_multiindex_periodindexL   s    	&&&&c       
   C   sî   t  d ƒ }  t  d ƒ } t j d ƒ } t j t  d ƒ d ƒ } t d |  | g d | | g ƒ } t j d d d d d d d d	 d	 g	 ƒ } t j d d d d d d d d d g	 ƒ } t d |  | g d | | g ƒ } | j t k sê t ‚ d  S(
   Nip i
   iX  t   levelsR   i    i   i   i   (	   R    R   R    t   repeatR   t   arrayt	   is_uniqueR$   R   (   t
   major_axist
   minor_axist   major_codest   minor_codest   index(    (    sH   lib/python2.7/site-packages/pandas/tests/indexes/multi/test_integrity.pyt   test_consistencyd   s    **c          C   sÄ   t  j t j d ƒ t j d ƒ g d d d g ƒ}  |  j |  j ƒ } t j | t j t |  ƒ d d ƒƒ xS d d t |  ƒ d	 t |  ƒ d g D]+ } |  j	 |  | ƒ } | | k s‘ t
 ‚ q‘ Wd  S(
   Niè  t   namest   onet   twoR   t   intpi    i   i   (   R   R   R   R    t   get_indexerR   R   R   t   lent   get_locR   (   R=   R   R   (    (    sH   lib/python2.7/site-packages/pandas/tests/indexes/multi/test_integrity.pyt   test_hash_collisionsy   s    $-c           C   s   d  S(   N(    (    (    (    sH   lib/python2.7/site-packages/pandas/tests/indexes/multi/test_integrity.pyt	   test_dims‡   s    c       
   C   s÷   d d g t  j d ƒ t  j d ƒ g g }  t  j j |  d d d g ƒ} d d	 g } d
 } t j t d | ƒ | j | d d	 ƒWd  QXd } t j t d | ƒ | j | d | ƒWd  QXd } t j t d | ƒ | j | d d ƒWd  QXd  S(   NR   t   Bs
   2011-01-01s
   2011-01-02R?   t   strt   dti   i   s1   take\(\) got an unexpected keyword argument 'foo't   matcht   foos$   the 'out' parameter is not supportedt   outs%   the 'mode' parameter is not supportedt   modet   clip(	   R   R   R   R   t   pytestt   raisest	   TypeErrort   taket
   ValueError(   t   valsR*   t   indicest   msg(    (    sH   lib/python2.7/site-packages/pandas/tests/indexes/multi/test_integrity.pyt   take_invalid_kwargs‹   s    	!c         C   s'   t  j t ƒ  t j |  ƒ Wd  QXd  S(   N(   RP   RQ   t   NotImplementedErrorR   t   isna(   R*   (    (    sH   lib/python2.7/site-packages/pandas/tests/indexes/multi/test_integrity.pyt   test_isna_behaviorž   s    c       
   C   s   t  j d d t  j j d d g t d ƒ g ƒ d d g ƒ}  t j t ƒ  |  j d Wd  QXt j t ƒ  |  j d Wd  QXt  j d d t  j j d d g t d
 ƒ g ƒ d d g ƒ} t j t ƒ  | j d Wd  QXt j t ƒ  | j d Wd  QXd  S(   Ni   R=   i   i¡ t   columnst   destiÿÿÿÿi    i   i!¡ (   iÿÿÿÿi    (   (   iÿÿÿÿi    R]   (   i   i    (   (   i   i    R]   (   iÿÿÿÿi    (   (   iÿÿÿÿi    R]   (   i   i    (   (   i   i    R]   (	   R   t	   DataFrameR   R   R   RP   RQ   t   KeyErrort   loc(   t   df_below_1000000t   df_above_1000000(    (    sH   lib/python2.7/site-packages/pandas/tests/indexes/multi/test_integrity.pyt   test_large_multiindex_error¦   s    **c          C   sŽ   t  t d ƒ ƒ }  t j i |  d 6|  d 6d t j j g  |  D] } | | f ^ q< ƒ ƒ} d } t j t d | ƒ | d j	 ƒ  Wd  QXd  S(   Ni@B R   t   bR=   s&   'Series' object has no attribute 'foo'RK   (
   t   listR   R   R^   R   R   RP   RQ   t   AttributeErrorRL   (   t   rR+   t   dfRW   (    (    sH   lib/python2.7/site-packages/pandas/tests/indexes/multi/test_integrity.pyt#   test_million_record_attribute_error¸   s    .c         C   s)   |  d } |  j  | ƒ t k s% t ‚ d  S(   Ni    (   t$   _can_hold_identifiers_and_holds_namet   TrueR   (   R*   t   key(    (    sH   lib/python2.7/site-packages/pandas/tests/indexes/multi/test_integrity.pyt   test_can_hold_identifiersÃ   s    
c         C   s  |  j  |  j } } t j d ƒ } t j t d | ƒ | d | d <Wd  QXt j t d | ƒ | d d | d d <Wd  QXt j t d | ƒ | d | d <Wd  QXt j t d | ƒ | d d | d d <Wd  QX|  j } t j t d | ƒ | d | d <Wd  QXd  S(   Ns#   does not support mutable operationsRK   i    (   R5   R   t   ret   compileRP   RQ   RR   R?   (   R*   R5   R   t   mutable_regexR?   (    (    sH   lib/python2.7/site-packages/pandas/tests/indexes/multi/test_integrity.pyt   test_metadata_immutableÈ   s    	c          C   s   t  j j d d d d d g d d d d d g g ƒ }  |  j sE t ‚ |  j d d g d d d g g d t ƒ|  j s} t ‚ d  S(   NR   RH   i   i   i   t   inplace(   R   R   R%   t   is_monotonicR   t
   set_levelsRk   (   t   ind(    (    sH   lib/python2.7/site-packages/pandas/tests/indexes/multi/test_integrity.pyt$   test_level_setting_resets_attributesÛ   s
    	-(c          C   s›  t  j t j d ƒ j d ƒ ƒ }  t  j t j d ƒ j d ƒ ƒ } t  j i |  j ƒ  d 6| j ƒ  d 6d d ƒ} d d g | j _ t	 | ƒ t  j i t j d ƒ d 6t j d ƒ d 6d	 t  j
 j t d ƒ t d ƒ g d
 d d g ƒƒ} t j | | d t ƒ| j j d ƒ } t  j t j d ƒ d d ƒj d ƒ } t j | | ƒ | j j d ƒ } t  j t j t j d ƒ d ƒ d d ƒ} t j | | ƒ d  S(   Nid   i
   RL   t   bart   axisi   t   fizzt   buzzR=   R?   t
   check_liket   name(   i
   i
   (   i
   i
   (   R   R^   R   R    t   reshapet   concatt   stackR=   R?   RI   R   R   R   R   t   assert_frame_equalRk   t   get_level_valuesR2   R6   R&   t   tile(   RL   Rw   Rh   R   R   (    (    sH   lib/python2.7/site-packages/pandas/tests/indexes/multi/test_integrity.pyt%   test_rangeindex_fallback_coercion_bugå   s"    !!/
	'*c         C   s=   |  } t  j t d d t | ƒ j ƒ t |  ƒ Wd  QXd  S(   NRK   s   unhashable type: %r(   RP   RQ   RR   t   typet   __name__t   hash(   RV   R=   (    (    sH   lib/python2.7/site-packages/pandas/tests/indexes/multi/test_integrity.pyt   test_hash_errorý   s    c         C   s1   t  |  ƒ s d  St j t |  j d |  d ƒ d  S(   Ni    (   RD   RP   RQ   RR   t   __setitem__(   RV   (    (    sH   lib/python2.7/site-packages/pandas/tests/indexes/multi/test_integrity.pyt   test_mutability  s    c         C   s2   t  j t d d ƒ d d d g |  _ Wd  QXd  S(   NRK   s   ^Lengtht   applet   bananat   carrot(   RP   RQ   RT   R?   (   RV   (    (    sH   lib/python2.7/site-packages/pandas/tests/indexes/multi/test_integrity.pyt   test_wrong_number_names
  s    c         C   s®   |  j  ƒ  } t |  ƒ r˜ |  j |  d ƒ |  j  ƒ  } |  j  d t ƒ } t |  t t f ƒ sq | | k sq t ‚ n  |  j d k rª | | k s• t ‚ qª n | d k sª t ‚ d  S(   Ni    t   deept   object(	   t   memory_usageRD   RE   Rk   t
   isinstanceR   R   R   t   inferred_type(   R*   R   t   result2t   result3(    (    sH   lib/python2.7/site-packages/pandas/tests/indexes/multi/test_integrity.pyt   test_memory_usage  s    c         C   s   |  j  d k s t ‚ d  S(   Ni   (   t   nlevelsR   (   R*   (    (    sH   lib/python2.7/site-packages/pandas/tests/indexes/multi/test_integrity.pyt   test_nlevels$  s    (&   Rn   t   numpyR   RP   t   pandas.compatR    R   t   pandas.core.dtypes.castR   t   pandasR   R   R   R   t   pandas.util.testingt   utilt   testingR   R   R   R.   R4   R>   RF   RG   RX   R[   Rc   Ri   Rm   Rq   Rv   Rƒ   R‡   R‰   R   R•   R—   (    (    (    sH   lib/python2.7/site-packages/pandas/tests/indexes/multi/test_integrity.pyt   <module>   s6   														
					