ó
šxŠ\c           @   s=  d  d l  m  Z  d  d l Z d  d l Z d  d l Z d  d l m Z d  d l m Z d  d l	 j
 j Z d  d l j j Z e j d e e g ƒ d „  ƒ Z e j d e j e f e j e f e j e f e j e f e j e f e j e f e j e f e j e f e j e f e j e f e j e f e j  e f g ƒ d „  ƒ Z! e j d e j e j d ƒ e j f e j e j d	 ƒ e j f e j d
 e j f e j d e j f e j d d e j" f e j e e j f e j d e j f e j d
 e j f e j d e j f e j d d e j" f e j e e j f e j d e j f e j" d
 e j" f e j" d e j" f e j" d d e j" f e j" e e j f e j" d e j f e j# d
 e j f e j# d e j f e j# d d e j f e j# e e j# f e j# d e j f g ƒ d „  ƒ Z$ d e% f d „  ƒ  YZ& d e% f d „  ƒ  YZ' d S(   iÿÿÿÿ(   t   datetimeN(   t   iNaT(   t   longt   paramsc         C   s   |  j  S(   N(   t   param(   t   request(    (    s5   lib/python2.7/site-packages/pandas/tests/test_take.pyt	   writeable   s    c         C   s   |  j  S(   N(   R   (   R   (    (    s5   lib/python2.7/site-packages/pandas/tests/test_take.pyt   dtype_can_hold_na   s    i   i€   i   g       @g      @y              @t    c         C   s   |  j  S(   N(   R   (   R   (    (    s5   lib/python2.7/site-packages/pandas/tests/test_take.pyt   dtype_fill_out_dtype)   s    t   TestTakec           B   s•   e  Z e j 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 RS(   s    Incompatible type for fill_valuec   	   	   C   sS  | \ } } t  j j d d d ƒ j | ƒ } | | j _ d d d d g } t  j d d | ƒ} t j | | d | ƒ| j	 | ƒ } t
 j | | ƒ d d d d g } t  j d d | ƒ} | rt j | | d | ƒ| j	 | ƒ } t  j | d <t
 j | | ƒ nH t j t d	 |  j ƒ t j | | d | ƒWd  QX| j	 | d | ƒd  S(
   Ni    i   i   i   t   dtypet   outiÿÿÿÿi   t   match(   t   npt   randomt   randintt   astypet   flagsR   t   emptyt   algost   take_1dt   taket   tmt   assert_almost_equalt   nant   pytestt   raisest	   TypeErrort
   fill_error(	   t   selfR   R   R   t   can_hold_nat   datat   indexerR   t   expected(    (    s5   lib/python2.7/site-packages/pandas/tests/test_take.pyt   test_1d_with_outI   s$    !c         C   s&  | \ } } } t  j j d d d ƒ j | ƒ } d d d d g } t j | | d | ƒ} | d d d g | d d d g k j ƒ  sŒ t ‚ | d | k s¢ t ‚ | j | k s· t ‚ d d d d g } t j | | d | ƒ} | d d d d g | | k j ƒ  st ‚ | j | k s"t ‚ d  S(   Ni    i   i   i   iÿÿÿÿt
   fill_valuei   (	   R   R   R   R   R   R   t   allt   AssertionErrorR   (   R   R	   R   R$   t	   out_dtypeR    R!   t   result(    (    s5   lib/python2.7/site-packages/pandas/tests/test_take.pyt   test_1d_fill_nonnae   s    !2,c         C   sk  | \ } } t  j j d d d ƒ j | ƒ } | | j _ d d d d g } t  j d d | ƒ} t  j d d | ƒ} t j | | d | d	 d ƒt j | | d | d	 d ƒ| j	 | d	 d ƒ}	 | j	 | d	 d ƒ}
 t
 j | |	 ƒ t
 j | |
 ƒ d d d d
 g } t  j d d | ƒ} t  j d d | ƒ} | rðt j | | d | d	 d ƒt j | | d | d	 d ƒ| j	 | d	 d ƒ}	 | j	 | d	 d ƒ}
 t  j |	 d d  d  … f <t  j |
 d  d  … d f <t
 j | |	 ƒ t
 j | |
 ƒ nw xt t | | g ƒ D]` \ } } t j t d |  j ƒ! t j | | d | d	 | ƒWd  QX| j	 | d | d	 | ƒqWd  S(   Ni    i   i   i   i   i   R   R   t   axisiÿÿÿÿR   (   i   i   (   i   i   (   i   i   (   i   i   (   i   i   (   R   R   R   R   R   R   R   R   t   take_ndR   R   R   R   t	   enumerateR   R   R   R   (   R   R   R   R   R   R    R!   t   out0t   out1t	   expected0t	   expected1t   iR   (    (    s5   lib/python2.7/site-packages/pandas/tests/test_take.pyt   test_2d_with_outu   s8    !"c         C   s  | \ } } } t  j j d d d	 ƒ j | ƒ } d d d d g } t j | | d d d | ƒ} | d d d g d  d  … f | d d d g d  d  … f k j ƒ  sª t ‚ | d d  d  … f | k j ƒ  sÒ t ‚ | j | k sç t ‚ t j | | d d d | ƒ} | d  d  … d d d g f | d  d  … d d d g f k j ƒ  sOt ‚ | d  d  … d f | k j ƒ  swt ‚ | j | k sŒt ‚ d d d d g } t j | | d d d | ƒ} | d d d d g d  d  … f | | d  d  … f k j ƒ  s t ‚ | j | k st ‚ t j | | d d d | ƒ} | d  d  … d d d d g f | d  d  … | f k j ƒ  swt ‚ | j | k sŒt ‚ d  S(
   Ni    i   i   i   i   iÿÿÿÿR*   R$   (   i   i   (	   R   R   R   R   R   R+   R%   R&   R   (   R   R	   R   R$   R'   R    R!   R(   (    (    s5   lib/python2.7/site-packages/pandas/tests/test_take.pyt   test_2d_fill_nonna   s,    !	J(	J(	D	Dc         C   sB  | \ } } t  j j d d d ƒ j | ƒ } d d d d g } t  j d d | ƒ} t  j d d | ƒ} t  j d d | ƒ} t j | | d | d	 d ƒt j | | d | d	 d ƒt j | | d | d	 d ƒ| j | d	 d ƒ}	 | j | d	 d ƒ}
 | j | d	 d ƒ} t j	 | |	 ƒ t j	 | |
 ƒ t j	 | | ƒ d d d d
 g } t  j d d | ƒ} t  j d d | ƒ} t  j d d | ƒ} | rÄt j | | d | d	 d ƒt j | | d | d	 d ƒt j | | d | d	 d ƒ| j | d	 d ƒ}	 | j | d	 d ƒ}
 | j | d	 d ƒ} t  j
 |	 d d  d  … d  d  … f <t  j
 |
 d  d  … d d  d  … f <t  j
 | d  d  … d  d  … d f <t j	 | |	 ƒ t j	 | |
 ƒ t j	 | | ƒ nz xw t | | | g ƒ D]` \ } } t j t d |  j ƒ! t j | | d | d	 | ƒWd  QX| j | d | d	 | ƒqÚWd  S(   Ni    i   i   i   i   i   R   R   R*   iÿÿÿÿR   (   i   i   i   (   i   i   i   (   i   i   i   (   i   i   i   (   i   i   i   (   i   i   i   (   i   i   i   (   R   R   R   R   R   R   R+   R   R   R   R   R,   R   R   R   R   (   R   R   R   R   R    R!   R-   R.   t   out2R/   R0   t	   expected2R1   R   (    (    s5   lib/python2.7/site-packages/pandas/tests/test_take.pyt   test_3d_with_out¹   sH    !"""""c         C   s3  | \ } } } t  j j d d d
 ƒ j | ƒ } d d d d g } t j | | d d d	 | ƒ} | d d d g d  d  … d  d  … f | d d d g d  d  … d  d  … f k j ƒ  s¼ t ‚ | d d  d  … d  d  … f | k j ƒ  sí t ‚ | j | k st ‚ t j | | d d d	 | ƒ} | d  d  … d d d g d  d  … f | d  d  … d d d g d  d  … f k j ƒ  s|t ‚ | d  d  … d d  d  … f | k j ƒ  s­t ‚ | j | k sÂt ‚ t j | | d d d	 | ƒ} | d  d  … d  d  … d d d g f | d  d  … d  d  … d d d g f k j ƒ  s<t ‚ | d  d  … d  d  … d f | k j ƒ  smt ‚ | j | k s‚t ‚ d d d d g } t j | | d d d	 | ƒ} | d d d d g d  d  … d  d  … f | | d  d  … d  d  … f k j ƒ  st ‚ | j | k st ‚ t j | | d d d	 | ƒ} | d  d  … d d d d g d  d  … f | d  d  … | d  d  … f k j ƒ  s‘t ‚ | j | k s¦t ‚ t j | | d d d	 | ƒ} | d  d  … d  d  … d d d d g f | d  d  … d  d  … | f k j ƒ  st ‚ | j | k s/t ‚ d  S(   Ni    i   i   i   i   i   iÿÿÿÿR*   R$   (   i   i   i   (	   R   R   R   R   R   R+   R%   R&   R   (   R   R	   R   R$   R'   R    R!   R(   (    (    s5   lib/python2.7/site-packages/pandas/tests/test_take.pyt   test_3d_fill_nonnaì   s>    !	\1	\1	\1	V	V	Vc         C   sr   t  j j d ƒ j t  j ƒ } d d d d g } t j | | ƒ } | j | ƒ } t  j | d <t	 j
 | | ƒ d  S(   Ni
   i   i   i   iÿÿÿÿ(   R   R   t   randnR   t   float32R   R   R   R   R   R   (   R   t   arrR!   R(   R"   (    (    s5   lib/python2.7/site-packages/pandas/tests/test_take.pyt   test_1d_other_dtypes  s    c         C   s×   t  j j d d ƒ j t  j ƒ } d d d d g } t j | | d d ƒ} | j | d d ƒ} t  j | d <t	 j
 | | ƒ t j | | d d ƒ} | j | d d ƒ} t  j | d  d  … d f <t	 j
 | | ƒ d  S(	   Ni
   i   i   i   i   iÿÿÿÿR*   i    (   R   R   R8   R   R9   R   R+   R   R   R   R   (   R   R:   R!   R(   R"   (    (    s5   lib/python2.7/site-packages/pandas/tests/test_take.pyt   test_2d_other_dtypes  s    !c         C   sž   t  j d d d g d t ƒ} t j | d d d d g ƒ } | j d d d d g ƒ } t j | | ƒ t j | d d d g ƒ } | j t  j	 k sš t
 ‚ d  S(   Ni    i   R   i   iÿÿÿÿ(   R   t   arrayt   boolR   R   R   R   t   assert_numpy_array_equalR   t   object_R&   (   R   R:   R(   R"   (    (    s5   lib/python2.7/site-packages/pandas/tests/test_take.pyt   test_1d_bool.  s    c         C   s  t  j d d d g d d d g d d d g g d t ƒ} t j | d d d d g ƒ } | j d d d d g d d ƒ} t j | | ƒ t j | d d d d g d d ƒ} | j d d d d g d d ƒ} t j | | ƒ t j | d d d g ƒ } | j t  j	 k st
 ‚ d  S(   Ni    i   R   i   R*   iÿÿÿÿ(   R   R=   R>   R   R+   R   R   R?   R   R@   R&   (   R   R:   R(   R"   (    (    s5   lib/python2.7/site-packages/pandas/tests/test_take.pyt   test_2d_bool8  s    9!$!c         C   s¦  t  j j d d ƒ j t  j ƒ } d d d d d g } t j | | d d ƒ} t  j | ƒ } t j | | d d d | ƒt j	 | | ƒ | j
 | d d ƒ} t  j | d d g d  d  … f <t j	 | | ƒ t  j t | ƒ | j d f d	 d
 ƒ} t j | | d | ƒt j | | d d ƒ} t  j | ƒ } t j | | d d d | ƒt j	 | | ƒ | j
 | d d ƒ} t  j | d  d  … d d g f <t j	 | | ƒ d  S(   Ni   i   i    i   iÿÿÿÿi   R*   R   R   R9   (   R   R   R8   R   R9   R   R+   t
   empty_likeR   R   R   R   R   t   lent   shape(   R   R:   R!   R(   t   result2R"   R   (    (    s5   lib/python2.7/site-packages/pandas/tests/test_take.pyt   test_2d_float32F  s$    !(c         C   s  t  j j t d ƒ t d ƒ d ƒ d } | j d d ƒ } d d	 d
 d d
 g } t j | | d d ƒ} t  j | ƒ } t j | | d d d | ƒt j	 | | ƒ | j
 | d d ƒ} t | j t  j ƒ d	 d g d  d  … f <t j	 | | ƒ t j | | d d d t d d d ƒ ƒ} t  j | ƒ } t j | | d | d d d t d d d ƒ ƒt j	 | | ƒ | j
 | d d ƒ} t d d d ƒ | d	 d g d  d  … f <t j	 | | ƒ t j | | d d ƒ} t  j | ƒ } t j | | d d d | ƒt j	 | | ƒ | j
 | d d ƒ} t | j t  j ƒ d  d  … d	 d g f <t j	 | | ƒ t j | | d d d t d d d ƒ ƒ} t  j | ƒ } t j | | d | d d d t d d d ƒ ƒt j	 | | ƒ | j
 | d d ƒ} t d d d ƒ | d  d  … d	 d g f <t j	 | | ƒ d  S(   Ni Š¨ iàY­ i   i   I èvH   R   s   datetime64[ns]i    i   iÿÿÿÿi   R*   R   i   R$   i×  (   i   i   (   R   R   R   R   t   viewR   R+   RC   R   R   R   R   t   int64R    (   R   R:   R!   R(   RF   R"   (    (    s5   lib/python2.7/site-packages/pandas/tests/test_take.pyt   test_2d_datetime64b  sH    	((((c         C   sÉ   t  j d ƒ j d d ƒ } t j | d d g ƒ } t  j d d d g d d	 d
 g g ƒ } t j | | ƒ t j | d d g d t d d ƒ} t  j d d d g d d d g g ƒ } t j | | ƒ d  S(   Ni   i   i   i    iÿÿÿÿi   i   i	   i
   i   t
   allow_fillR$   (	   R   t   aranget   reshapeR   R   R=   R   R?   t   True(   R   R:   R(   R"   (    (    s5   lib/python2.7/site-packages/pandas/tests/test_take.pyt   test_take_axis_0“  s    '$'c      	   C   sí   t  j d ƒ j d d ƒ } t j | d d g d d ƒ} t  j d d g d d	 g d
 d g d d g g ƒ } t j | | ƒ t j | d d g d d d t d d ƒ} t  j d d g d d g d
 d g d d g g ƒ } t j | | ƒ d  S(   Ni   i   i   i    iÿÿÿÿR*   i   i   i   i   i   i	   i   RK   R$   (	   R   RL   RM   R   R   R=   R   R?   RN   (   R   R:   R(   R"   (    (    s5   lib/python2.7/site-packages/pandas/tests/test_take.pyt   test_take_axis_1ž  s    3!	3(   t   __name__t
   __module__t   ret   compileR   R#   R)   R2   R3   R6   R7   R;   R<   RA   RB   RG   RJ   RO   RP   (    (    (    s5   lib/python2.7/site-packages/pandas/tests/test_take.pyR
   E   s   			(		3	(				
			1	t   TestExtensionTakec           B   sP   e  Z d  „  Z d „  Z e j j d e e g ƒ d „  ƒ Z	 d „  Z
 d „  Z RS(   c      
   C   s}   t  j d d g ƒ } t j t ƒ ! t j | d d g d t ƒWd  QXt j t ƒ ! t j | d d g d t ƒWd  QXd  S(   Ni   i   i   RK   (	   R   R=   R   R   t
   IndexErrorR   R   RN   t   False(   R   R:   (    (    s5   lib/python2.7/site-packages/pandas/tests/test_take.pyt   test_bounds_check_large®  s
    "c      	   C   s£   t  j d d d g d t  j ƒ} d d d g } t j t ƒ  t j | | d t ƒWd  QXt j | | ƒ } t  j d d d g d t  j ƒ} t	 j
 | | ƒ d  S(	   Ni   i   i   R   i    iÿÿÿÿiþÿÿÿRK   (   R   R=   RI   R   R   t
   ValueErrorR   R   RN   R   R?   (   R   R:   R!   R(   R"   (    (    s5   lib/python2.7/site-packages/pandas/tests/test_take.pyt   test_bounds_check_small¶  s    !!RK   c      	   C   ss   t  j g  d t  j ƒ} t j | g  d | ƒ} t j | | ƒ t j t	 ƒ  t j | d g d | ƒWd  QXd  S(   NR   RK   i    (
   R   R=   RI   R   R   R   R?   R   R   RV   (   R   RK   R:   R(   (    (    s5   lib/python2.7/site-packages/pandas/tests/test_take.pyt   test_take_emptyÀ  s
    c         C   sV   t  j t j g  ƒ d d g d t d d ƒ} t j d d g ƒ } t j | | ƒ d  S(   NiÿÿÿÿRK   R$   g        (   R   R   R   R=   RN   R   R?   (   R   R(   R"   (    (    s5   lib/python2.7/site-packages/pandas/tests/test_take.pyt   test_take_na_emptyÊ  s    $	c         C   sP   d d d g } t  j | d d g ƒ } t j d d g ƒ } t j | | ƒ d  S(   Ni   i   i   i    (   R   R   R   R=   R   R?   (   R   R:   R(   R"   (    (    s5   lib/python2.7/site-packages/pandas/tests/test_take.pyt   test_take_coerces_listÐ  s    (   RQ   RR   RX   RZ   R   t   markt   parametrizeRN   RW   R[   R\   R]   (    (    (    s5   lib/python2.7/site-packages/pandas/tests/test_take.pyRU   «  s
   		
$
	((   R    RS   t   numpyR   R   t   pandas._libs.tslibR   t   pandas.compatR   t   pandas.core.algorithmst   coret
   algorithmsR   t   pandas.util.testingt   utilt   testingR   t   fixtureRN   RW   R   t   float64R9   t   uint64t   uint32t   uint16t   uint8RI   t   int32t   int16t   int8R@   R>   R   t
   complex128t   bool_R	   t   objectR
   RU   (    (    (    s5   lib/python2.7/site-packages/pandas/tests/test_take.pyt   <module>   s^   !		$ÿ g