
    .i.                        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m	Z
 d dlmc m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y)    )datetimeN)iNaT)array         g       @y      @      @T )paramsc                     | j                   S )N)param)requests    T/var/www/app/trading-bot/venv/lib/python3.12/site-packages/pandas/tests/test_take.pydtype_fill_out_dtyper      s    6 ==    c                   T    e 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y)TestTakec                    |\  }}}t         j                  j                  d      j                  ddd      j	                  |      }g d}t        j                  |||      }|g d   |g d   k(  j                         sJ |d   |k(  sJ |j                  |k(  sJ g d	}t        j                  |||      }|g d
   ||   k(  j                         sJ |j                  |k(  sJ y )N   r      r   r   r   )
fill_valuer   r   r   r   r   r      r   r   r   r   r   r   r   r   	nprandomdefault_rngintegersastypealgostake_ndalldtypeselfr   r'   r   	out_dtypedataindexerresults           r   test_1d_fill_nonnazTestTake.test_1d_fill_nonna,   s    ';$z9yy$$Q'00Aq9@@GtWDy!T)_499;;;ayJ&&&||y(((tWD|$W5::<<<||u$$$r   c                    |\  }}}t         j                  j                  d      j                  ddd      j	                  |      }g d}t        j                  ||d|      }|g dd d f   |g dd d f   k(  j                         sJ |dd d f   |k(  j                         sJ |j                  |k(  sJ t        j                  ||d	|      }|d d g df   |d d g df   k(  j                         sJ |d d df   |k(  j                         sJ |j                  |k(  sJ g d
}t        j                  ||d|      }|g dd d f   ||d d f   k(  j                         sJ |j                  |k(  sJ t        j                  ||d	|      }|d d g df   |d d |f   k(  j                         sJ |j                  |k(  sJ y )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yy$$Q'00Av>EEeLtW1Ly!|$Y\(::??AAAq!t
*//111||y(((tW1Lq)|$Q	\(::??AAAq!t
*//111||y(((tW1L|Q'4
+;;@@BBB||u$$$tW1Lq,'47
+;;@@BBB||u$$$r   c                 `   |\  }}}t         j                  j                  d      j                  ddd      j	                  |      }g d}t        j                  ||d|      }|g dd d d d f   |g dd d d d f   k(  j                         sJ |dd d d d f   |k(  j                         sJ |j                  |k(  sJ t        j                  ||d	|      }|d d g dd d f   |d d g dd d f   k(  j                         sJ |d d dd d f   |k(  j                         sJ |j                  |k(  sJ t        j                  ||d|      }|d d d d g df   |d d d d g df   k(  j                         sJ |d d d d df   |k(  j                         sJ |j                  |k(  sJ g d
}t        j                  ||d|      }|g dd d d d f   ||d d d d f   k(  j                         sJ |j                  |k(  sJ t        j                  ||d	|      }|d d g dd d f   |d d |d d f   k(  j                         sJ |j                  |k(  sJ t        j                  ||d|      }|d d d d g df   |d d d d |f   k(  j                         sJ |j                  |k(  sJ y )Nr   r   )r1   r   r   r   r2   r   r   r   r   r   r   r   r(   s           r   test_3d_fill_nonnazTestTake.test_3d_fill_nonnaT   s   ';$z9yy$$Q'00AyAHHOtW1Ly!Q'4	1a+@@EEGGGq!Qw:-22444||y(((tW1Lq)Q'49a+@@EEGGGq!Qw:-22444||y(((tW1Lq!Y'41i+@@EEGGGq!Qw:-22444||y(((tW1L|Q)*d7Aq=.AAFFHHH||u$$$tW1Lq,)*d1gq=.AAFFHHH||u$$$tW1Lq!\)*d1a=.AAFFHHH||u$$$r   c                 B   t         j                  j                  d      j                  d      j	                  t         j
                        }g d}t        j                  ||      }|j                  |      }t         j                  |d<   t        j                  ||       y )Nr   
   r   r   r   r   r   r   r    r!   standard_normalr#   float32r$   r%   takenantmassert_almost_equalr)   arrr,   r-   expecteds        r   test_1d_other_dtypeszTestTake.test_1d_other_dtypesv   sp    ii##A&66r:AA"**MsG,88G$vv
vx0r   c                    t         j                  j                  d      j                  d      j	                  t         j
                        }g d}t        j                  ||d      }|j                  |d      }t         j                  |d<   t        j                  ||       t        j                  ||d      }|j                  |d      }t         j                  |d d df<   t        j                  ||       y )Nr   )r8   r1   r9   r   r3   r   r   r:   rA   s        r   test_2d_other_dtypeszTestTake.test_2d_other_dtypes   s    ii##A&66w?FFrzzR sG!488G!8,vv
vx0 sG!488G!8,&&B
vx0r   c                 .   t        j                  g dt              }t        j                  |g d      }|j                  g d      }t        j                  ||       t        j                  |g d      }|j                  t         j                  k(  sJ y )Nr   r   r   r'   r   r   r   r   r   r   r   
r   r   boolr$   r%   r=   r?   assert_numpy_array_equalr'   object_r)   rB   r-   rC   s       r   test_1d_boolzTestTake.test_1d_bool   sf    hhy-sL188L)
##FH5sJ/||rzz)))r   c                    t        j                  g dg dg dgt              }t        j                  |g d      }|j                  g dd      }t        j                  ||       t        j                  |g dd      }|j                  g dd      }t        j                  ||       t        j                  |g d	      }|j                  t         j                  k(  sJ y )
NrI   )r   r   r   )r   r   r   rJ   rK   r   rF   r   rL   rM   rQ   s       r   test_2d_boolzTestTake.test_2d_bool   s    hh	9i8EsL188Lq81
##FH5sLq988Lq81
##FH5sJ/||rzz)))r   c                 
   t         j                  j                  d      j                  d      j	                  t         j
                        }g d}t        j                  ||d      }|j                  |d      }t         j                  |ddgd d f<   t        j                  ||       t        j                  ||d      }|j                  |d      }t         j                  |d d ddgf<   t        j                  ||       y )Nr   )r   r   r   r   r   r   r   r   rF   r   r   r:   rA   s        r   test_2d_float32zTestTake.test_2d_float32   s    ii##A&66v>EEbjjQ# sG!488G!8, ff!Q
vx0 sG!488G!8, ffQF
vx0r   c           
         t         j                  j                  d      j                  ddd      dz  }|j	                  d      }g d}t        j                  ||d	
      }|j                  |d	
      }t        |j	                  t         j                        ddgd d f<   t        j                  ||       t        j                  ||d	t        ddd            }|j                  |d	
      }t        ddd      |ddgd d f<   t        j                  ||       t        j                  ||d
      }|j                  |d
      }t        |j	                  t         j                        d d ddgf<   t        j                  ||       t        j                  ||dt        ddd            }|j                  |d
      }t        ddd      |d d ddgf<   t        j                  ||       y )Nr   i  iY r0   l    h] zdatetime64[ns]rJ   rV   r   rF   r   i  r   r2   )r   r    r!   r"   viewr$   r%   r=   r   int64r?   r@   r   rA   s        r   test_2d_datetime64zTestTake.test_2d_datetime64   s    II!!!$--j*fM 	 hh-h.# sG!488G!8,-1bhhA	*
vx0sG!qRS@TU88G!8,&tQ2!Q
vx0 sG!488G!8,-1bhhAq6	*
vx0sG!qRS@TU88G!8,&tQ2QF
vx0r   c                 x   t        j                  d      j                  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                  ||       y )N   r   r   r   r   r   )	   r8      T
allow_fillr   )r   r   r   )r   arangereshaper$   r=   r   r?   rO   rQ   s       r   test_take_axis_0zTestTake.test_take_axis_0   s    iim##Aq)C!R)88Y45
##FH5 C!RTaH88Y	23
##FH5r   c                 .   t        j                  d      j                  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        y # 1 sw Y   y xY w)Nr]   r   r   r   r   r   rF   r   r1         r^   r_   T)r3   ra   r   indices are out-of-boundsmatch)r   rb   rc   r$   r=   r   r?   rO   pytestraises
IndexErrorrQ   s       r   test_take_axis_1zTestTake.test_take_axis_1   s    iim##Aq)C!Rq188aVaVaVaW=>
##FH5 C!RqTaP88aVaVaVaV<=
##FH5 ]]:-HI 	KJJsQFtJ	K 	K 	Ks   %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        t        j                  g dt              }t        j                  ||ddg      }t        j                  d	dggt              }t        j                  ||       y # 1 sw Y   uxY w)
Nr   r   r   r   r   zfill_value must be a scalarri   Tr`   rJ   r   )
r   r   rk   rl   
ValueErrorr$   r=   objectr?   rO   rA   s        r   !test_take_non_hashable_fill_valuez*TestTake.test_take_non_hashable_fill_value   s    hhy!((Ar7#]]:-JK 	FJJsG!E	F hhy/CTqcJ88QHF3
##FH5	F 	Fs   
CC"N)__name__
__module____qualname__r.   r4   r6   rD   rG   rR   rT   rW   r[   rd   rn   rs    r   r   r   r   +   s@    % %0 %D11"**1"1>	6K
6r   r   c                   r    e Zd Zd Zd Zej                  j                  dddg      d        Zd Z	d Z
d	 Zy
)TestExtensionTakec                 b   t        j                  ddg      }d}t        j                  t        |      5  t        j                  |ddgd       d d d        d}t        j                  t        |      5  t        j                  |ddgd	       d d d        y # 1 sw Y   JxY w# 1 sw Y   y xY w)
Nr   r   rh   ri   r   Tra   z2index 2 is out of bounds for( axis 0 with)? size 2F)r   r   rk   rl   rm   r$   r=   r)   rB   msgs      r   test_bounds_check_largez)TestExtensionTake.test_bounds_check_large  s    hh1v)]]:S1 	5JJsQFt4	5 C]]:S1 	6JJsQFu5	6 	6		5 	5	6 	6s   B5B%B"%B.c                    t        j                  g dt         j                        }g d}d}t        j                  t
        |      5  t        j                  ||d       d d d        t        j                  ||      }t        j                  g dt         j                        }t        j                  ||       y # 1 sw Y   ]xY w)	Nrp   rJ   )r   r   z7'indices' contains values less than allowed \(-2 < -1\)ri   Tr{   )r   r   r   )
r   r   rZ   rk   rl   rq   r$   r=   r?   rO   )r)   rB   r,   r}   r-   rC   s         r   test_bounds_check_smallz)TestExtensionTake.test_bounds_check_small  s    hhy1H]]:S1 	6JJsG5	6 C)88IRXX6
##FH5	6 	6s   	B>>Cra   TFc                 b   t        j                  g t         j                        }t        j                  |g |      }t        j                  ||       dj                  ddg      }t        j                  t        |      5  t        j                  |dg|       d d d        y # 1 sw Y   y xY w)NrJ   r{   |z.cannot do a non-empty take from an empty axes.rh   ri   r   )r   r   rZ   r$   r=   r?   rO   joinrk   rl   rm   )r)   ra   rB   r-   r}   s        r   test_take_emptyz!TestExtensionTake.test_take_empty  s    hhr*C
;
##C0hh@+
 ]]:S1 	8JJsQCJ7	8 	8 	8s   B%%B.c                     t        j                  t        j                  g       ddgdd      }t        j                  ddg      }t	        j
                  ||       y )Nr   Tg        r`   )r$   r=   r   r   r?   rO   )r)   r-   rC   s      r   test_take_na_emptyz$TestExtensionTake.test_take_na_empty)  sE    BHHRL2r(tPST88S#J'
##FH5r   c                     g d}d}t        j                  t        |      5  t        j                  |ddg       d d d        y # 1 sw Y   y xY w)Nrp   zopd.api.extensions.take requires a numpy.ndarray, ExtensionArray, Index, Series, or NumpyExtensionArray got listri   r   )rk   rl   	TypeErrorr$   r=   r|   s      r   test_take_coerces_listz(TestExtensionTake.test_take_coerces_list.  sH    = 	 ]]9C0 	$JJsQF#	$ 	$ 	$s   AAc                     t        g d      }t        j                  |dg      dk(  sJ t        g d      }t        j                  |dg      dk(  sJ y )N)y      ?      ?r   r   r   rp   )r   r$   r=   )r)   rB   s     r   test_take_NumpyExtensionArrayz/TestExtensionTake.test_take_NumpyExtensionArray8  sL    N#zz#s#q(((Izz#s#q(((r   N)rt   ru   rv   r~   r   rk   markparametrizer   r   r   r   rw   r   r   ry   ry      sD    	6
6 [[\D%=98 :86
$)r   ry   )r   numpyr   rk   pandas._libsr   pandasr   pandas._testing_testingr?   pandas.core.algorithmscore
algorithmsr$   fixtureint8int16int32float64
complex128rP   bool_r   r   ry   rw   r   r   <module>r      s         & & 	("((3-)	("((3-*	1bhh	3

#	:r}}-	4$	2rzz"	Q

#	S"**%	Z/	T2::&	R$	2==)	R]]+	
BMM2	bjj)	BJJ'	1bjj!	3

#	:rzz*	4"	2rzz"-454Q6 Q6h>) >)r   