ó
šxŠ\c           @   s»   d  Z  d d l m Z d d l Z d d l Z d d l m Z d d l m	 Z	 d d l
 Z d d l
 m Z m Z m Z d d l m Z d „  Z e j j d	 ƒ d
 e f d „  ƒ  Yƒ Z d S(   s    test indexing with ix iÿÿÿÿ(   t   catch_warningsN(   t   lrange(   t	   is_scalar(   t	   DataFramet   Seriest   option_context(   t   testingc          C   sG   t  i d d d g d 6ƒ }  t j t d t ƒ |  j d Wd  QXd  S(   Ni   i   i   t   At   check_stacklevel(   i   R   (   R   t   tmt   assert_produces_warningt   DeprecationWarningt   Falset   ix(   t   df(    (    s<   lib/python2.7/site-packages/pandas/tests/indexing/test_ix.pyt   test_ix_deprecation   s    
s   ignore:\n.ix:DeprecationWarningt   TestIXc           B   sb   e  Z d  „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z	 d „  Z
 d	 „  Z RS(
   c         C   sO  t  d d d d d g ƒ} | j d d c !d 7+t  d d d g d d d d g ƒ} t j | | ƒ t i d d d g d 6ƒ } | j ƒ  } t d	 t ƒ 8 | j d d d g d f | j d d d g d f <Wd  QXt d	 t ƒ 4 | d j d d d g | d j d d d g <Wd  QXt j	 | | ƒ t i d d d g d 6d d d g d
 6ƒ } t d	 t ƒ A | d j d d d g j
 d ƒ d | d j d d d g <Wd  QXt i d d d g d 6d d d g d
 6ƒ } t j	 | | ƒ t i d d d g d 6d d d g d 6d d d g d 6ƒ } t i d d d g d 6d d d g d 6t j d d d g d d ƒd 6ƒ } | j ƒ  } t j | d d d ƒ| d <t j	 | | ƒ | j ƒ  } t j | d d d ƒ| j d  d  … d f <t j	 | | ƒ | j ƒ  } t d	 t ƒ 1 t j | d d d ƒ| j d  d  … d f <Wd  QXt j	 | | ƒ d  S(   Ni    t   indexi   i   i   i   i   t   at   recordt   bt   float64g      à?g      à¿g      ø¿i–  iˆ  i¡   t   deltaiù  i=$  i¾  t   elapsediP€ETi”†ETiDFDTt	   timestampt   unitt   s(   R   t   locR	   t   assert_series_equalR   t   copyR    t   TrueR   t   assert_frame_equalt   astypet   pdt   to_datetime(   t   selfR   t   expectedR   t   df2(    (    s<   lib/python2.7/site-packages/pandas/tests/indexing/test_ix.pyt   test_ix_loc_setitem_consistency   sF    $95,(,,2c            s¹  d „  } t  t j j d d ƒ d t d ƒ ƒ‰  xá t d d ƒ t t d d	 ƒ t d d	 ƒ g ƒ t t d d	 ƒ ˆ  j d d	 !g ƒ g D]Š ‰ x t j	 t j
 t j t j t j g D][ } | t ˆ  j ƒ ƒ ˆ  _ t d
 t ƒ  ˆ  j ˆ Wd  QXt j t ‡  ‡ f d †  ƒ q± Wq† Wt  t j j d d ƒ d t d ƒ d t j d d d ƒƒ‰  x+d d t d d ƒ t d d ƒ t d d d	 ƒ t d d ƒ t t t t t t g g ƒ g D]Ï ‰ y' t d
 t ƒ  ˆ  j ˆ } Wd  QXWn0 t k
 r
t j t ‡  ‡ f d †  ƒ q«n Xˆ  j ˆ } | | | ƒ ˆ  j ƒ  } ˆ  j ƒ  } t d
 t ƒ  d | j ˆ <Wd  QXd | j ˆ <| | | ƒ q«Wt d d	 d d g d t d ƒ ƒ} | d d !} t d
 t ƒ  | j d d !}	 Wd  QX| j d d !}
 t j | |	 ƒ t j | |
 ƒ t t d ƒ d d d d	 d g ƒ } t d
 t ƒ  | j d d !} Wd  QX| j d d !}	 t j | |	 ƒ t d
 t ƒ  | j d d !} Wd  QX| j d d !}	 t j | |	 ƒ d  S(   Nc         S   s:   t  | ƒ r! |  | k s6 t ‚ n | j |  ƒ s6 t ‚ d  S(   N(   R   t   AssertionErrort   equals(   t   resultR$   (    (    s<   lib/python2.7/site-packages/pandas/tests/indexing/test_ix.pyt   compareW   s    i   i   t   columnst   ABCDi   i   i    i   R   c              s   ˆ  j  ˆ S(   N(   R   (    (   R   t   key(    s<   lib/python2.7/site-packages/pandas/tests/indexing/test_ix.pyt   <lambda>i   s    R   s
   2012-01-01t   periodss
   2012-01-03s
   2012-01-31s
   2012-01-04s
   2012-01-06c              s   ˆ  j  ˆ S(   N(   R   (    (   R   R-   (    s<   lib/python2.7/site-packages/pandas/tests/indexing/test_ix.pyR.   }   s    i
   t   abdeR   t   ciþÿÿÿiÿÿÿÿiöÿÿÿ(   R   t   npt   randomt   randnt   listt   slicet   tupleR+   R	   t   makeStringIndext   makeUnicodeIndext   makeDateIndext   makePeriodIndext   makeTimedeltaIndext   lenR   R    R   R   t   pytestt   raisest	   TypeErrorR!   t
   date_rangeR   t   KeyErrorR   R   R   R   t   range(   R#   R*   R   R$   R)   t   df1R%   R   t   result1t   result2t   result3(    (   R   R-   s<   lib/python2.7/site-packages/pandas/tests/indexing/test_ix.pyt   test_ix_loc_consistencyQ   sd    	'0,$$%$$c         C   sÚ   t  i d d d t j t j g d 6d d d d d g d 6ƒ } | d | j | d d k d f <t  i i d d	 6d
 d 6d d 6t j d 6t j d 6d 6i d d	 6d d 6d d 6d d 6d d 6d 6ƒ } t j | | ƒ d  S(   Ni   i   i   t   onei   i   t   twog      ð?i    g       @g      @iþÿÿÿiýÿÿÿ(   R   R2   t   nanR   R	   R   (   R#   R   R$   (    (    s<   lib/python2.7/site-packages/pandas/tests/indexing/test_ix.pyt   test_ix_weird_slicing£   s    ""

c         C   sî  t  t j ƒ  ƒ } d | d <| j d  d  … d f j ƒ  } | j d  d  … d f d | j d  d  … d f <t j | j | d ƒ t  i t d ƒ d 6t d d ƒ d 6d d	 6ƒ } | j ƒ  } x^ t d
 ƒ D]P } | d } d | d } | | j | d f <| j | d f | k sË t	 ‚ qË W| j | j
 d d k d f d | j | j
 d d k d f <t j | | ƒ t  i d d d g d 6d d d g d 6ƒ } d d g | j d d g d f <t  i d d d g d 6d d d g d 6ƒ } t j | | ƒ t  i t d ƒ d 6ƒ } t j | d <d d g | j d d g d f <t  i d d d d g d 6t j d t j d g d 6ƒ } t j | | ƒ t d d  ƒ X t  i t d ƒ d 6ƒ } t j | d <d d g | d j d d g <t j | | ƒ Wd  QXd  S(   Nt   bart   foot   Bi   i
   t   xi   t   yt   zi   i   iè  iÈ   i    id   i   R   R   iœÿÿÿi   t   chained_assignment(   R   R	   t   getSeriesDataR   R   R   RO   R   RC   R'   RP   R   R2   RK   R   t   None(   R#   R   t   origR$   t   it   indexert   v(    (    s<   lib/python2.7/site-packages/pandas/tests/indexing/test_ix.pyt   test_ix_assign_column_mixedµ   s:    
00
#>,,c      	   C   s8  t  t j d ƒ j d ƒ d d d d d g d d	 d
 d d g ƒ} t d t ƒ  | j d d k sk t ‚ Wd  QX| j d d k sŠ t ‚ t d t ƒ + d | j d <| j d d k sÀ t ‚ Wd  QX| j d d k sß t ‚ d | j d <t d t ƒ  | j d d k st ‚ Wd  QX| j d d k s4t ‚ d  S(   Ni   i   R+   R   R   i   R1   R   t   ei   t   ft   gR   i   i*   i-   (   i   i   (   R[   i   (   R[   i   (   R[   i   (   R[   i   (   R[   i   (   R[   i   (   R[   i   (   R[   i   (	   R   R2   t   aranget   reshapeR    R   R   R'   R   (   R#   R   (    (    s<   lib/python2.7/site-packages/pandas/tests/indexing/test_ix.pyt   test_ix_get_set_consistencyà   s    c         C   sB  i d d d d d g d 6d d d	 d
 d g d 6d d d d d g d 6} t  | ƒ } | | j j d d d g ƒ } t d t ƒ  | d | j | j d f <Wd  QXt  i i d d 6d d 6d d 6d d	 6d d
 6d 6i d d 6d d 6d	 d 6d
 d	 6d d
 6d 6i d d 6d d 6d d 6d d	 6d d
 6d 6ƒ } t j | | ƒ d  S(   Ns   SA EQUITY CFDt   bbbs	   SA EQUITYs   SA SSFt   aaat   Classificationi   i   i   i   i   t   Randomt   correctt   wrongt   XR   i    (	   R   Rc   t   isinR    R   R   R   R	   R   (   R#   t   dataR   RP   R$   (    (    s<   lib/python2.7/site-packages/pandas/tests/indexing/test_ix.pyt   test_ix_slicing_strings÷   s0      

c      	   C   s—   t  t j j d d ƒ d g  t d ƒ D] } d | ^ q% d g  t d ƒ D] } d | ^ qH ƒ} t d t ƒ ! t j t	 | j
 j d
 d	 ƒ Wd  QXd  S(   Ni   i   R   s   row%sR+   s   col%sR   i    id   (   i   i    (   R   R2   R3   R4   RC   R    R   R>   R?   t
   ValueErrorR   t   __setitem__(   R#   RW   R   (    (    s<   lib/python2.7/site-packages/pandas/tests/indexing/test_ix.pyt$   test_ix_setitem_out_of_bounds_axis_0  s
    8&c      	   C   s—   t  t j j d d ƒ d g  t d ƒ D] } d | ^ q% d g  t d ƒ D] } d | ^ qH ƒ} t d t ƒ ! t j t	 | j
 j d
 d	 ƒ Wd  QXd  S(   Ni   i   R   s   row%sR+   s   col%sR   i    id   (   i    i   (   R   R2   R3   R4   RC   R    R   R>   R?   Rk   R   Rl   (   R#   RW   R   (    (    s<   lib/python2.7/site-packages/pandas/tests/indexing/test_ix.pyt$   test_ix_setitem_out_of_bounds_axis_1  s
    8&c         C   s  t  d t ƒ ð d d l m } | d d ƒ } t j | j d  d  … g  f | j d  d  … d  d … f d t d t ƒt j | j g  d  d  … f | j d  d … d  d  … f d t d t ƒt j | j g  | j d  d … d  d  … f d t d t ƒWd  QXd  S(	   NR   iÿÿÿÿ(   t   makeCustomDataframei   i   i    t   check_index_typet   check_column_type(   R    R   t   pandas.util.testingRo   R	   R   R   t   iloc(   R#   t   mkdfR   (    (    s<   lib/python2.7/site-packages/pandas/tests/indexing/test_ix.pyt    test_ix_empty_list_indexer_is_ok#  s    ;;/c         C   sz   t  t j j d d ƒ d d d d g d t d ƒ ƒ} t d t ƒ  | j d	 } Wd  QX| j d
 } t	 j
 | | ƒ d  S(   Ni   R   gš™™™™™¹?gš™™™™™É?R+   t   abcR   R   (   gš™™™™™É?R   (   gš™™™™™É?R   (   R   R2   R3   R4   R5   R    R   R   R   R	   R   (   R#   R   t   rR[   (    (    s<   lib/python2.7/site-packages/pandas/tests/indexing/test_ix.pyt    test_ix_duplicate_returns_series4  s    '(   t   __name__t
   __module__R&   RH   RL   RZ   R`   Rj   Rm   Rn   Ru   Rx   (    (    (    s<   lib/python2.7/site-packages/pandas/tests/indexing/test_ix.pyR      s   	4	R		+					(   t   __doc__t   warningsR    t   numpyR2   R>   t   pandas.compatR   t   pandas.core.dtypes.commonR   t   pandasR!   R   R   R   t   pandas.utilR   R	   R   t   markt   filterwarningst   objectR   (    (    (    s<   lib/python2.7/site-packages/pandas/tests/indexing/test_ix.pyt   <module>   s   		