ó
šxŠ\c           @   sŒ   d  Z  d d l m Z d d l Z d d l Z d d l Z d d l m Z m	 Z	 m
 Z
 m Z m Z d d l m Z d e f d „  ƒ  YZ d S(   sw   
test setting *parts* of objects both positionally and label based

TOD: these should be split among the indexer tests
iÿÿÿÿ(   t   catch_warningsN(   t	   DataFramet   Indext   Panelt   Seriest
   date_range(   t   testingt   TestPartialSettingc           B   s¡   e  Z e j j d  ƒ e j j d ƒ d „  ƒ ƒ Z d „  Z d „  Z d „  Z e j j d ƒ d „  ƒ Z	 d „  Z
 d	 „  Z d
 „  Z d „  Z d „  Z d „  Z RS(   s   ignore:\nPanel:FutureWarnings   ignore:\n.ix:DeprecationWarningc   
      C   s	  t  d d d g ƒ } | j ƒ  } d | d <t  d d d d g d d d d d g ƒ} t j | | ƒ | j ƒ  } d | j d <t  d d d d g d d d d d g ƒ} t j | | ƒ | j ƒ  } d | d <t  d d d d g d d d d d g ƒ} t j | | ƒ | j ƒ  } d | j d <t  d d d d g d d d d d g ƒ} t j | | ƒ | j ƒ  } t j t ƒ  d | j d <Wd  QXt j t ƒ  d | j	 d <Wd  QXt
 t j d ƒ j d d ƒ d	 d
 d g d d ƒ} | j ƒ  } t j t ƒ  d | j d$ <Wd  QXt j t ƒ  d | j	 d% <Wd  QXt
 t i d d d g d
 6d d d g d 6ƒ ƒ } | j ƒ  } | j d | j d <t j | | ƒ t
 t i d d d g d
 6d d d g d 6ƒ ƒ } | j ƒ  } | j d | j d <t j | | ƒ t
 t i d d d d g d
 6d d d d g d 6ƒ ƒ } | j ƒ  } | j d | j d <t j | | ƒ t
 t i d d d g d
 6d d d g d 6ƒ ƒ } | j ƒ  } t d t ƒ 1 | j d  d  … d
 f | j d  d  … d f <Wd  QXt j | | ƒ t
 t i d d d g d
 6t  d d d g ƒ d 6ƒ ƒ } | j ƒ  } | d j t j ƒ | d <t d t ƒ 1 | j d  d  … d
 f | j d  d  … d f <Wd  QXt j | | ƒ | j ƒ  } | d
 | d <| j ƒ  } t d t ƒ 1 | j d  d  … d
 f | j d  d  … d f <Wd  QXt j | | ƒ | j ƒ  } | d
 | d <| j ƒ  } t d t ƒ 1 | j d  d  … d
 f | j d  d  … d f <Wd  QXt j | | ƒ t d t ƒ Ât t j d ƒ j d d d ƒ d d d g d t j d d d ƒd d
 d g d d ƒ} t t j d ƒ j d d d ƒ d d d g d t j d d d ƒd d
 d g d d ƒ} | j ƒ  } | d | d <| j ƒ  } | d | j d <t j | | ƒ | j ƒ  } | j d d d ƒ } t
 i d d d d g d 6d d d d g d 6d | j ƒ| d <| j d d d ƒ } | j ƒ  } t  d d g d | j ƒ| j d  d  … d  d  … d f <t j | | ƒ Wd  QXt d d d ƒ} t
 t j j d d ƒ d | d	 d
 d d d g ƒ} t j | t
 i d  d
 6d | d! | j g ƒg d" t ƒ} | j ƒ  } d  | j | d! | j d
 f <t j | | ƒ | j ƒ  } d  | j  | d! | j d
 f <t j | | ƒ t
 i d  d 6d | d! | j g ƒ}	 t j | |	 g d# d ƒ} | j ƒ  } d  | j | d! | j d f <t j | | ƒ | j ƒ  } d  | j  | d! | j d f <t j | | ƒ d  S(&   Ni   i   i   i   t   indexi    g      @i   t   columnst   At   Bt   dtypet   int64i   t   recordt   Ci   t   itemst   Item1t   Item2t
   major_axiss	   2001/1/12t   periodst
   minor_axist   float64t   Item3i   i    s   1/1/2000i   t   Di   iÿÿÿÿt   sortt   axis(   i   i   (   i   i   (!   R   t   copyt   tmt   assert_series_equalt   loct   pytestt   raisest
   IndexErrort   iloct   iatR   t   npt   aranget   reshapet   dictt   assert_frame_equalR    t   Truet   ixt   astypeR   R   t   pdR   t   assert_panel_equalt	   transposeR   R   t   randomt   randnt   concatt   freqt   at(
   t   selft   s_origt   st   expectedt   df_origt   dft   p_origt   pt   datest	   exp_other(    (    sA   lib/python2.7/site-packages/pandas/tests/indexing/test_partial.pyt   test_partial_setting   sØ    
**
**0228228222!!7		'c      	   C   sö  t  t d g t d g g d d d g ƒ} | j d j ƒ  } d | _ | j | ƒ } | j d | j d <t j | | ƒ t  d d d g ƒ } t	 d d t
 d	 ƒ ƒ| j d
 <t j | t  d d d g d d
 g ƒ ƒ t  d d d g ƒ } t	 d d d g ƒ| j d
 <t  t j d g g d d d g d d
 g d d ƒ} t j | | ƒ t  d d d g ƒ } t j t ƒ  d d d g | j d
 <Wd  QXt  d d d g ƒ } d d g | j d <t  d d g g d d g d d d g d d ƒ} t j | | ƒ d  S(   Ni   i   R	   t   femalet   fitnessR
   R   R   i   i    R   R   i   i   i   t   object(   R   R)   t   FalseR   R   t   namet   appendR   R(   R   t   rangeR$   t   nanR   R    t
   ValueError(   R4   R9   R6   R7   t   exp(    (    sA   lib/python2.7/site-packages/pandas/tests/indexing/test_partial.pyt    test_partial_setting_mixed_dtype®   s,    *	(!'	c            s_  t  d d g d d d g ƒ‰  t  t j d t j g d d d d g ƒ} t j t d t ƒ ˆ  j d d d g } Wd  QXt j | | d t	 ƒˆ  j
 d d d g ƒ } t j | | d t	 ƒt  t j d t j t j g d d d d d	 g ƒ} t j t d t ƒ ˆ  j d d d d	 g } Wd  QXt j | | d t	 ƒˆ  j
 d d d d	 g ƒ } t j | | d t	 ƒt  d d d g d d d d g ƒ} ˆ  j d d d g } t j | | d t	 ƒt  d d t j d g d d d d	 d g ƒ} t j t d t ƒ ˆ  j d d d	 d g } Wd  QXt j | | d t	 ƒˆ  j
 d d d	 d g ƒ } t j | | d t	 ƒt j t ‡  f d
 †  ƒ t  d d t j g d d d d g ƒ} t j t d t ƒ ˆ  j d d d g } Wd  QXt j | | d t	 ƒˆ  j
 d d d g ƒ } t j | | d t	 ƒt  d d d g d d d d g ƒ} t  d t j t j g d d d d g ƒ} t j t d t ƒ | j d d d g } Wd  QXt j | | d t	 ƒ| j
 d d d g ƒ } t j | | d t	 ƒt  d d d d g d d d d d g ƒ} t  t j d d g d d d d g ƒ} t j t d t ƒ | j d d d g } Wd  QXt j | | d t	 ƒ| j
 d d d g ƒ } t j | | d t	 ƒt  d d d d g d d d d d g ƒ} t  t j d d g d d d d g ƒ} t j t d t ƒ | j d d d g } Wd  QXt j | | d t	 ƒ| j
 d d d g ƒ } t j | | d t	 ƒt  d d d d g d d d d d g ƒ} t  d t j t j g d d d d g ƒ} t j t d t ƒ | j d d d g } Wd  QXt j | | d t	 ƒ| j
 d d d g ƒ } t j | | d t	 ƒt  d d d d g d d d d d g ƒ} t  d t j t j g d d d d g ƒ} t j t d t ƒ | j d d d g } Wd  QXt j | | d t	 ƒ| j
 d d d g ƒ } t j | | d t	 ƒt  d d d d g d d d d d g ƒ} ˆ  j d d d d g } t j | | d t	 ƒd  S(   Ngš™™™™™¹?gš™™™™™É?R   i   i   i   t   check_stacklevelt   check_index_typet   xc              s   ˆ  j  d d d g S(   Ni   (   R   (    (   t   ser(    sA   lib/python2.7/site-packages/pandas/tests/indexing/test_partial.pyt   <lambda>ù   s    g333333Ó?i   gš™™™™™Ù?i   i   i   i    (   R   R$   RF   R   t   assert_produces_warningt   FutureWarningRB   R   R   R)   t   reindexR   R    t   KeyErrorR"   (   R4   R7   t   resultR6   (    (   RM   sA   lib/python2.7/site-packages/pandas/tests/indexing/test_partial.pyt   test_series_partial_setÖ   sŽ    *3$-'$*''***c            s›  t  d d g d d d d ƒ} t d d g d	 | d d
 ƒ‰  t  d d d g d d d d ƒ} t t j d t j g d	 | d d
 ƒ} t j t d t ƒ ˆ  j d d d g } Wd  QXt j	 | | d t
 ƒt  d d d d g d d d d ƒ} t t j d t j t j g d	 | d d
 ƒ} t j t d t ƒ ˆ  j d d d d g } Wd  QXt j	 | | d t
 ƒt  d d d g d d d d ƒ} t d d d g d	 | d d
 ƒ} ˆ  j d d d g } t j	 | | d t
 ƒt  d d d d g d d d d ƒ} t d d t j d g d	 | d d
 ƒ} t j t d t ƒ ˆ  j d d d d g } Wd  QXt j	 | | d t
 ƒt j t ‡  f d †  ƒ t  d d d g d d d d ƒ} t d d t j g d	 | d d
 ƒ} t j t d t ƒ ˆ  j d d d g } Wd  QXt j	 | | d t
 ƒt  d d d g d d d d ƒ} t d t j t j g d	 | d d
 ƒ} t  d d d g d d d d ƒ} t j t d t ƒ6 t d d d g d	 | d d
 ƒj d d d g } Wd  QXt j	 | | d t
 ƒt  d d d g d d d d ƒ} t t j d d g d	 | d d
 ƒ} t  d d d d g d d d d ƒ} t j t d t ƒ9 t d d d d g d	 | d d
 ƒj d d d g } Wd  QXt j	 | | d t
 ƒt  d d d g d d d d ƒ} t t j d d g d	 | d d
 ƒ} t  d d d d g d d d d ƒ} t j t d t ƒ9 t d d d d g d	 | d d
 ƒj d d d g } Wd  QXt j	 | | d t
 ƒt  d d d g d d d d ƒ} t d t j t j g d	 | d d
 ƒ} t  d d d d g d d d d ƒ} t j t d t ƒ9 t d d d d g d	 | d d
 ƒj d d d g } Wd  QXt j	 | | d t
 ƒt  d d d g d d d d ƒ} t d t j t j g d	 | d d
 ƒ} t  d d d d g d d d d ƒ} t j t d t ƒ9 t d d d d g d	 | d d
 ƒj d d d g } Wd  QXt j	 | | d t
 ƒt  d d d d g d d d d ƒ} t d d d d g d	 | d d
 ƒ} ˆ  j d d d d g } t j	 | | d t
 ƒd  S(   Ni   i   R   R   RC   t   idxgš™™™™™¹?gš™™™™™É?R   R6   i   RJ   RK   RL   RA   c              s   ˆ  j  d d d g S(   Ni   (   R   (    (   RM   (    sA   lib/python2.7/site-packages/pandas/tests/indexing/test_partial.pyRN   Y  s    i   g333333Ó?i   gš™™™™™Ù?i   i   i    (   R   R   R$   RF   R   RO   RP   RB   R   R   R)   R   R    RR   R"   (   R4   RU   t   exp_idxR7   RS   (    (   RM   sA   lib/python2.7/site-packages/pandas/tests/indexing/test_partial.pyt!   test_series_partial_set_with_name9  sˆ    !'$$	!!$'!$!'!!$$!$$!'$!'$$$s   ignore:\n.ixc         C   s  t  j ƒ  } | j ƒ  } t j t ƒ ; t d t ƒ % | j d | j	 d d  d  … f <Wd  QXWd  QXt j t ƒ ; t d t ƒ % | j d | j	 d d  d  … f <Wd  QXWd  QXt j t ƒ ; t d t ƒ % | j d | j d d  d  … f <Wd  QXWd  QXt j t
 ƒ ; t d t ƒ % | j d | j d d  d  … f <Wd  QXWd  QX| j ƒ  } t d t ƒ G | j d | j	 d d  d  … f <| j t | j d d d ƒƒ } Wd  QXt  j | | ƒ t  j | j t | j j ƒ  d g ƒ ƒ | j j d k sýt ‚ d  S(   NR   i    g      Y@id   t   aRC   RA   (   R   t   makeTimeDataFrameR   R   R    t	   TypeErrorR    R)   R*   R   RG   RD   R   R(   t   assert_index_equalR   R   t   tolistR   t   AssertionError(   R4   t   origR9   RH   (    (    sA   lib/python2.7/site-packages/pandas/tests/indexing/test_partial.pyt   test_partial_set_invalid  s*    ,,,, ()c         C   s†  t  ƒ  } d | j d <t j | t  d g d d g ƒƒ d | j d <t j | t  d d g d d d g ƒƒ t  ƒ  } d | j d <t j | t  d g d d g ƒƒ d | j d <t j | t  d d g d d d g ƒƒ t  ƒ  } d | j d <t j | t  d g d d g ƒƒ d | j d <t j | t  d d g d d d g ƒƒ d | j d <t j | t  d d d g d d d d g ƒƒ d  S(	   Ni   R   i   g      ð?g      @t   foot   bari   (   R   R   R   R   (   R4   R6   (    (    sA   lib/python2.7/site-packages/pandas/tests/indexing/test_partial.pyt   test_partial_set_empty_series³  s"    	"(	"(	"(c         C   ss  t  ƒ  } t j t ƒ  d | j d <Wd  QXt j t ƒ $ t d g d d g ƒ| j d <Wd  QXt j t ƒ  d | j d  d  … d f <Wd  QXt  d d g d t g  d d ƒƒ } d „  } t j | ƒ  | ƒ d „  } t j | ƒ  | ƒ d	 „  } t j | ƒ  | ƒ t  d d g d t g  d d ƒƒ } | d j	 d
 ƒ | d <d „  } t j | ƒ  | ƒ d „  } t j | ƒ  | ƒ d „  } t  d d g d t g  d d ƒƒ } | d j	 d
 ƒ | d <t j | ƒ  | ƒ t  ƒ  } t j
 | j t g  d t ƒƒ t  ƒ  } t d g d d g ƒ| d <t d g d d g ƒ| j d  d  … d f <t j | t  d g g d d g d d g ƒƒ t j | | ƒ t  i t d d t d ƒ ƒd 6d d d d g ƒ} t  d d d g ƒ } t d d t d ƒ ƒ| d <| j t | ƒ t j | | ƒ t  d d d g ƒ } t d d t d ƒ ƒ| j d  d  … d f <| j t | ƒ t j | | ƒ d  S(   Ni   R   R`   R	   R   R   c          S   s#   t  ƒ  }  t g  d d ƒ|  d <|  S(   NR   RA   R`   (   R   R   (   R9   (    (    sA   lib/python2.7/site-packages/pandas/tests/indexing/test_partial.pyt   fà  s    	c          S   s    t  ƒ  }  t |  j ƒ |  d <|  S(   NR`   (   R   R   R   (   R9   (    (    sA   lib/python2.7/site-packages/pandas/tests/indexing/test_partial.pyRc   ç  s    	c          S   s   t  ƒ  }  |  j |  d <|  S(   NR`   (   R   R   (   R9   (    (    sA   lib/python2.7/site-packages/pandas/tests/indexing/test_partial.pyRc   î  s    	R   c          S   s   t  ƒ  }  g  |  d <|  S(   NR`   (   R   (   R9   (    (    sA   lib/python2.7/site-packages/pandas/tests/indexing/test_partial.pyRc   ø  s    	
c          S   s2   t  ƒ  }  t t j t |  ƒ ƒ d d ƒ|  d <|  S(   NR   R   R`   (   R   R   R$   R%   t   len(   R9   (    (    sA   lib/python2.7/site-packages/pandas/tests/indexing/test_partial.pyRc   ÿ  s    	%c          S   sB   t  ƒ  }  t j |  j t g  d d ƒƒ t t |  ƒ ƒ |  d <|  S(   NR   RA   R`   (   R   R   R[   R   R   RE   Rd   (   R9   (    (    sA   lib/python2.7/site-packages/pandas/tests/indexing/test_partial.pyRc     s    	i   i    R
   R   (   R   R   R    RG   R   R   R   R   R(   R+   R[   R	   RA   RE   t   dtypest   str(   R4   R9   R7   Rc   t   df2(    (    sA   lib/python2.7/site-packages/pandas/tests/indexing/test_partial.pyt   test_partial_set_empty_frameÌ  sV    	%$			$			$		+."
+
c         C   s/  t  d d d d g d t g  d d ƒƒ } | d j d ƒ | d <| d j d ƒ | d <| d j d ƒ | d <t  i d	 d
 d g d 6d d d g d 6ƒ } | | j d k } t j | d <t j | | ƒ t  d d d d d g ƒ } | d j d ƒ | d <t  d d d d g ƒ } d | d <t j | | ƒ t j | d t	 d d d t
 ƒ ƒ t  i d	 d
 d g d 6d d d g d 6ƒ } | | j d k } | j d d d d g ƒ } t  d d d d g d t g  d d ƒƒ } | d j d ƒ | d <| d j d ƒ | d <| d j d ƒ | d <t j | | ƒ d  S(   NR	   R
   R   t   NewR   R   R   R   i   i   i   g333333ó?gÍÌÌÌÌÌ@gÍÌÌÌÌÌ@i   RX   t   bs   c ct   dRC   R   (   R   R   R+   R
   R$   RF   R   R(   R   R   RA   RQ   (   R4   R7   R9   t   yRS   (    (    sA   lib/python2.7/site-packages/pandas/tests/indexing/test_partial.pyt    test_partial_set_empty_frame_row(  s0    ,
#,c         C   sh   t  t ƒ  ƒ } t j | t  i t ƒ  d 6ƒ ƒ t  t d d ƒ ƒ } t j | t  i t ƒ  d 6ƒ ƒ d  S(   Ni    RC   R`   (   R   R   R   R(   (   R4   R9   (    (    sA   lib/python2.7/site-packages/pandas/tests/indexing/test_partial.pyt'   test_partial_set_empty_frame_set_seriesI  s     c         C   sZ   t  d d g ƒ } | j ƒ  } d | d <t  d d d g d d g ƒ} t j | | ƒ d  S(   NR   i    RX   R	   (   R   R   R   R(   (   R4   R9   R7   (    (    sA   lib/python2.7/site-packages/pandas/tests/indexing/test_partial.pyt2   test_partial_set_empty_frame_empty_copy_assignmentR  s
    
c         C   s0  t  d d d g ƒ } d d g | d <t  t d d d g d t j t j g ƒ ƒ } t j | | d t ƒt  d d d g ƒ } d d g | d <t  t d d d g d t j t j g ƒ d	 t ƒ} t j | | ƒ t  d d d g ƒ } d | j d <t  t d d g d t j g ƒ ƒ } t j | | d t ƒd  S(   NR	   RL   Rl   i   i   t   check_dtypet   1t   2R   i    (   i    RL   (	   R   R'   R$   RF   R   R(   RB   RA   R   (   R4   R9   R7   (    (    sA   lib/python2.7/site-packages/pandas/tests/indexing/test_partial.pyt0   test_partial_set_empty_frame_empty_consistencies[  s    -0$(   t   __name__t
   __module__R   t   markt   filterwarningsR>   RI   RT   RW   R_   Rb   Rh   Rm   Rn   Ro   Rs   (    (    (    sA   lib/python2.7/site-packages/pandas/tests/indexing/test_partial.pyR      s   š	(	c	W#		\	!				(   t   __doc__t   warningsR    t   numpyR$   R   t   pandasR,   R   R   R   R   R   t   pandas.utilR   R   RA   R   (    (    (    sA   lib/python2.7/site-packages/pandas/tests/indexing/test_partial.pyt   <module>   s   (