
    Wh.                        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
mc mZ  ej        ddg          d             Z ej        ej        dfej        dfej        dfej        dfej        dfej        dfej        dfej        dfej        dfej        dfej        dfej        dfg          d             Z ej        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ej        fej        dej        fej        dej        fej        dej        fej        dej        fej        dej        fej        dej        fej        dej        fej        dej        fej        dej        fej        dej        fej        dej        fej        dej        fej        dej        fej        dej        fej        dej        fej        dej        fej        dej        fg          d             Z G d d          Z G d d          Z dS )    )datetimeN)iNaTTF)paramsc                     | j         S Nparamrequests    \/var/www/html/movieo_spanner_bot/venv/lib/python3.11/site-packages/pandas/tests/test_take.py	writeabler      s
    =    c                     | j         S r   r   r
   s    r   dtype_can_hold_nar      s    " =r            g       @y      @      @ c                     | j         S r   r   r
   s    r   dtype_fill_out_dtyper   )   s    6 =r   c                   v    e Zd 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S )TestTakez Incompatible type for fill_valuec                    |\  }}}t           j                            ddd                              |          }g d}t	          j        |||          }|g d         |g d         k                                    sJ |d         |k    sJ |j        |k    sJ g d	}t	          j        |||          }|g d
         ||         k                                    sJ |j        |k    sJ d S )Nr         r   r   r   )
fill_valuer   r   r   r   r   r      r   r   r   r   r   r   r   r!   nprandomrandintastypealgostake_ndalldtypeselfr   r,   r   	out_dtypedataindexerresults           r   test_1d_fill_nonnazTestTake.test_1d_fill_nonnaK   s   ';$z9y  Aq))0077--tWDDDyyy!T)))_499;;;;;ayJ&&&&|y((((,,tWDDD|||$W5::<<<<<|u$$$$$$r   c                    |\  }}}t           j                            ddd                              |          }g d}t	          j        ||d|          }|g dd d f         |g dd d f         k                                    sJ |dd d f         |k                                    sJ |j        |k    sJ t	          j        ||d	|          }|d d g df         |d d g df         k                                    sJ |d d df         |k                                    sJ |j        |k    sJ g d
}t	          j        ||d|          }|g dd d f         ||d d f         k                                    sJ |j        |k    sJ t	          j        ||d	|          }|d d g df         |d d |f         k                                    sJ |j        |k    sJ d S )Nr   r      r!   r   axisr   r   r    r!   r   r"   r#   r$   r-   s           r   test_2d_fill_nonnazTestTake.test_2d_fill_nonna[   s?   ';$z9y  Av..55e<<--tW1LLLyyy!!!|$YYY\(::??AAAAAq!!!t
*//11111|y((((tW1LLLqqq)))|$QQQ			\(::??AAAAAqqq!t
*//11111|y((((,,tW1LLL|||QQQ'4
+;;@@BBBBB|u$$$$tW1LLLqqq,,,'47
+;;@@BBBBB|u$$$$$$r   c                    |\  }}}t           j                            ddd                              |          }g d}t	          j        ||d|          }|g dd d d d f         |g dd d d d f         k                                    sJ |dd d d d f         |k                                    sJ |j        |k    sJ t	          j        ||d	|          }|d d g dd d f         |d d g dd d f         k                                    sJ |d d dd d f         |k                                    sJ |j        |k    sJ t	          j        ||d|          }|d d d d g df         |d d d d g df         k                                    sJ |d d d d df         |k                                    sJ |j        |k    sJ g d
}t	          j        ||d|          }|g dd d d d f         ||d d d d f         k                                    sJ |j        |k    sJ t	          j        ||d	|          }|d d g dd d f         |d d |d d f         k                                    sJ |j        |k    sJ t	          j        ||d|          }|d d d d g df         |d d d d |f         k                                    sJ |j        |k    sJ d S )Nr   r   )r6   r   r!   r   r7   r   r    r!   r   r"   r#   r$   r-   s           r   test_3d_fill_nonnazTestTake.test_3d_fill_nonnas   s   ';$z9y  Ay1188??--tW1LLLyyy!!!QQQ'4			111aaa+@@EEGGGGGq!!!QQQw:-2244444|y((((tW1LLLqqq)))QQQ'4999aaa+@@EEGGGGGqqq!QQQw:-2244444|y((((tW1LLLqqq!!!YYY'4111iii+@@EEGGGGGqqq!!!Qw:-2244444|y((((,,tW1LLL|||QQQ)*d7AAAqqq=.AAFFHHHHH|u$$$$tW1LLLqqq,,,)*d111gqqq=.AAFFHHHHH|u$$$$tW1LLLqqq!!!\\\)*d111aaa=.AAFFHHHHH|u$$$$$$r   c                 "   t           j                            d                              t           j                  }g d}t          j        ||          }|                    |          }t           j        |d<   t          j
        ||           d S )N
   r   r   r!   r   r   r%   r&   randnr(   float32r)   r*   takenantmassert_almost_equalr.   arrr1   r2   expecteds        r   test_1d_other_dtypeszTestTake.test_1d_other_dtypes   st    ioob!!((44--sG,,88G$$v
vx00000r   c                    t           j                            dd                              t           j                  }g d}t          j        ||d          }|                    |d          }t           j        |d<   t          j
        ||           t          j        ||d          }|                    |d          }t           j        |d d df<   t          j
        ||           d S )Nr=   r6   r>   r   r8   r   r   r?   rF   s        r   test_2d_other_dtypeszTestTake.test_2d_other_dtypes   s    ioob!$$++BJ77-- sG!44488G!8,,v
vx000 sG!44488G!8,,&B
vx00000r   c                 "   t          j        g dt                    }t          j        |g d          }|                    g d          }t          j        ||           t          j        |g d          }|j        t           j	        k    sJ d S )Nr   r   r   r,   r   r   r   r   r   r   r   
r%   arrayboolr)   r*   rB   rD   assert_numpy_array_equalr,   object_r.   rG   r2   rH   s       r   test_1d_boolzTestTake.test_1d_bool   s    hyyy---sLLL1188LLL))
#FH555sJJJ//|rz))))))r   c                    t          j        g dg dg dgt                    }t          j        |g d          }|                    g dd          }t          j        ||           t          j        |g dd          }|                    g dd          }t          j        ||           t          j        |g d	          }|j        t           j	        k    sJ d S )
NrN   )r   r   r   )r   r   r   rO   rP   r   rK   r   rQ   rR   rW   s       r   test_2d_boolzTestTake.test_2d_bool   s    h			999iii8EEEsLLL1188LLLq811
#FH555sLLLq99988LLLq811
#FH555sJJJ//|rz))))))r   c                    t           j                            dd                              t           j                  }g d}t          j        ||d          }|                    |d          }t           j        |ddgd d f<   t          j
        ||           t          j        ||d          }|                    |d          }t           j        |d d ddgf<   t          j
        ||           d S )Nr   r!   r   r   r   r   r   r   rK   r   r   r?   rF   s        r   test_2d_float32zTestTake.test_2d_float32   s    iooa##**2:66### sG!44488G!8,, f!Q
vx000 sG!44488G!8,, fQF
vx00000r   c           
         t           j                            ddd          dz  }|                    d          }g d}t	          j        ||d	          }|                    |d	          }t          |                    t           j                  d
dgd d f<   t          j
        ||           t	          j        ||dt          ddd                    }|                    |d	          }t          ddd          |d
dgd d f<   t          j
        ||           t	          j        ||d	          }|                    |d	          }t          |                    t           j                  d d d
dgf<   t          j
        ||           t	          j        ||dt          ddd                    }|                    |d	          }t          ddd          |d d d
dgf<   t          j
        ||           d S )Ni  iY r5   l    h] zdatetime64[ns]rO   r\   r   rK   r   r   i  r   r7   )r%   r&   r'   viewr)   r*   rB   r   int64rD   rE   r   rF   s        r   test_2d_datetime64zTestTake.test_2d_datetime64   s   i
J??/Qhh-h..### sG!44488G!8,,-1bhA	*
vx000sG!qRS@T@TUUU88G!8,,&tQ22!Q
vx000 sG!44488G!8,,-1bhAq6	*
vx000sG!qRS@T@TUUU88G!8,,&tQ22QF
vx00000r   c                 t   t          j        d                              dd          }t          j        |ddg          }t          j        g dg dg          }t          j        ||           t          j        |ddgdd	          }t          j        g dg d
g          }t          j        ||           d S )N   r   r!   r   r   r   )	   r=      T
allow_fillr   )r   r   r   )r%   arangereshaper)   rB   rS   rD   rU   rW   s       r   test_take_axis_0zTestTake.test_take_axis_0   s    imm##Aq))C!R))8YYY455
#FH555 C!RTaHHH8YYY			233
#FH55555r   c                 0   t          j        d                              dd          }t          j        |ddg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          j        ddgddgd
dgddgg          }t          j        ||           t          j	        t          d          5  t          j        |ddgddd           d d d            d S # 1 swxY w Y   d S )Nrc   r   r!   r   r   r   rK   r   r6         rd   re   T)r8   rg   r   indices are out-of-boundsmatch)r%   rh   ri   r)   rB   rS   rD   rU   pytestraises
IndexErrorrW   s       r   test_take_axis_1zTestTake.test_take_axis_1   s~   imm##Aq))C!Rq1118aVaVaVaW=>>
#FH555 C!RqTaPPP8aVaVaVaV<==
#FH555 ]:-HIII 	K 	KJsQFtJJJJ	K 	K 	K 	K 	K 	K 	K 	K 	K 	K 	K 	K 	K 	K 	K 	K 	K 	Ks   "DDDc                    t          j        g d          }t          j        ddg          }t          j        t          d          5  t          j        ||ddg           d d d            n# 1 swxY w Y   t          j        g dt                    }t          j        ||ddg          }t          j        d	dggt                    }t          j	        ||           d S )
Nr   r   r!   r   r   zfill_value must be a scalarro   Trf   rO   r   )
r%   rS   rq   rr   
ValueErrorr)   rB   objectrD   rU   rF   s        r   !test_take_non_hashable_fill_valuez*TestTake.test_take_non_hashable_fill_value  s&   hyyy!!(Ar7##]:-JKKK 	F 	FJsG!EEEE	F 	F 	F 	F 	F 	F 	F 	F 	F 	F 	F 	F 	F 	F 	F hyyy///CTqcJJJ8QHF333
#FH55555s   A..A25A2N)__name__
__module____qualname__recompile
fill_errorr3   r9   r;   rI   rL   rX   rZ   r]   ra   rj   rt   ry    r   r   r   r   G   s        >??J% % % % % %0 %  %  %D1 1 11 1 1"* * ** * *1 1 1"1 1 18	6 	6 	6K K K
6 
6 
6 
6 
6r   r   c                   r    e Zd Zd Zd Zej                            dddg          d             Zd Z	d Z
d	S )
TestExtensionTakec                 l   t          j        ddg          }d}t          j        t          |          5  t          j        |ddgd           d d d            n# 1 swxY w Y   d}t          j        t          |          5  t          j        |ddgd	           d d d            d S # 1 swxY w Y   d S )
Nr   r   rn   ro   r!   Trg   z2index 2 is out of bounds for( axis 0 with)? size 2F)r%   rS   rq   rr   rs   r)   rB   )r.   rG   msgs      r   test_bounds_check_largez)TestExtensionTake.test_bounds_check_large  s;   h1v)]:S111 	5 	5JsQFt4444	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 C]:S111 	6 	6JsQFu5555	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6s#   AA!AB))B-0B-c                    t          j        g dt           j                  }g d}d}t          j        t
          |          5  t          j        ||d           d d d            n# 1 swxY w Y   t          j        ||          }t          j        g dt           j                  }t          j	        ||           d S )	Nrv   rO   )r   r   z7'indices' contains values less than allowed \(-2 < -1\)ro   Tr   )r   r!   r   )
r%   rS   r`   rq   rr   rw   r)   rB   rD   rU   )r.   rG   r1   r   r2   rH   s         r   test_bounds_check_smallz)TestExtensionTake.test_bounds_check_small)  s    hyyy111++H]:S111 	6 	6JsG5555	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 C))8IIIRX666
#FH55555s   A((A,/A,rg   TFc                 d   t          j        g t           j                  }t          j        |g |          }t          j        ||           d                    ddg          }t          j	        t          |          5  t          j        |dg|           d d d            d S # 1 swxY w Y   d S )NrO   r   |z.cannot do a non-empty take from an empty axes.rn   ro   r   )r%   rS   r`   r)   rB   rD   rU   joinrq   rr   rs   )r.   rg   rG   r2   r   s        r   test_take_emptyz!TestExtensionTake.test_take_empty5  s    hr***C
;;;
#C000hh@+
 
 ]:S111 	8 	8JsQCJ7777	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8s   ?B%%B),B)c                     t          j        t          j        g           ddgdd          }t          j        ddg          }t	          j        ||           d S )Nr   Tg        rf   r)   rB   r%   rS   rD   rU   )r.   r2   rH   s      r   test_take_na_emptyz$TestExtensionTake.test_take_na_emptyE  sS    BHRLL2r(tPSTTT8S#J''
#FH55555r   c                     g d}t          j        |ddg          }t          j        ddg          }t	          j        ||           d S )Nrv   r   r   r   rW   s       r   test_take_coerces_listz(TestExtensionTake.test_take_coerces_listJ  sL    iiC!Q((8QF##
#FH55555r   N)rz   r{   r|   r   r   rq   markparametrizer   r   r   r   r   r   r   r     s        	6 	6 	6
6 
6 
6 [\D%=998 8 :986 6 6
6 6 6 6 6r   r   )!r   r}   numpyr%   rq   pandas._libsr   pandas._testing_testingrD   pandas.core.algorithmscore
algorithmsr)   fixturer   float64rA   uint64uint32uint16uint8r`   int32int16int8rV   bool_r   
complex128r   r   r   r   r   r   <module>r      s2         				                  & & & & & & & & & e}%%%  &% 	T	T	E	E	E	5	5	5	5	%	T	5    !   	("(3--)	("(3--*	1bh	3
#	:r}-	4$	2rz"	Q
#	S"*%	Z/	T2:&	R$	2=)	R]+	
BM2	bj)	BJ'	1bj!	3
#	:rz*	4"	2rz"-  4 5 4Q6 Q6 Q6 Q6 Q6 Q6 Q6 Q6h36 36 36 36 36 36 36 36 36 36r   