
    Egi9                        d dl mZ d dlZd dlZd dlZd dlZd dlmc m	Z
 d dlZd dlmZ d dlmZ  ej        ej        ej        g          d             Z ej        ddgdd	g
          d             Zej        d             Zej                            dej        ej        ej        g          d             Zej                            dddgddg          d             Zej                            dddgddg          d             Zej                            dddgddg          ej                            dddgddg          d                         Z ej                            dddg          d             Z!ej                            dej"        g          ej                            dddg          ej        #                    d          d                                     Z$d Z%d Z&d Z' ej         ej(        g dej)                    ej(        g dd!            ej(        g dd"            ej(        g d#d$            ej*        g d%           ej*        g d%          +                    d&           ej*        g d%          ,                    d'(           ej-        g d)           ej.         ej/        d d*           ej/        d+d,           ej/        d*d+          g          g	d- 
          d.             Z0 G d/ d0          Z1ej                            d1e2ee3g          d2             Z4d3 Z5d4 Z6d5 Z7d6 Z8e
j9        d7             Z:dS )8    )dequeN)SparseArray)paramsc                     | j         S Nparamrequests    S/var/www/sysmax/venv/lib/python3.11/site-packages/pandas/tests/series/test_ufunc.pyufuncr      s     =    TFsparsedense)r   idsc                     | j         S r   r   r
   s    r   r   r      s
    =r   c                     t           j                            d                              dddd          } t           j                            d                              dddd          }d| ddd<   d|ddd	<   | |fS )
zO
    A pair of random, length-100 integer-dtype arrays, that are mostly 0.
       r   
   d   int64dtypeN      )nprandomdefault_rngintegers)a1a2s     r   arrays_for_binary_ufuncr"      s    
 
		q	!	!	*	*1b#W	*	E	EB			q	!	!	*	*1b#W	*	E	EBBsssGBsssGr6Mr   r   c                    t           j                            d                              dddd          }d|d d d<   |r$t	          |t          j        dd                    }t          t          j	        d d                   }d}t          j
        |||          } | |          }t          j
         | |          ||          }t          j        ||           d S )Nr   r   r   r   r   nameindexr$   )r   r   r   r   r   pdSparseDtypeliststringascii_lettersSeriestmassert_series_equal)r   r   arrr&   r$   seriesresultexpecteds           r   test_unary_ufuncr3   &   s     )


"
"
+
+Ar2W
+
E
ECC!H A#R^GQ%?%?@@@%crc*++EDYs%d333FU6]]Fys5t<<<H68,,,,,r   flipflippedstraight)r   c                    |\  }}|rHt          |t          j        dd                    }t          |t          j        dd                    }d}t          j        ||          }|}||f}	||f}
| rt	          |	          }	t	          |
          }
t          j         ||	 |          } ||
 }t          j        ||           d S Nr   r   r   r$   r$   )r   r'   r(   r,   reversedr-   r.   r4   r   r   r"   r    r!   r$   r0   other
array_argsseries_argsr2   r1   s                r   test_binary_ufunc_with_arrayr?   7   s     %FB ?2>'1#=#=>>>2>'1#=#=>>>DYr%%%FEbJ5/K ,j))
{++y
+$777HUK F68,,,,,r   c                    |\  }}|rHt          |t          j        dd                    }t          |t          j        dd                    }d}t          j        ||          }t          j        ||                              d          }||f}	||f}
| rt          |	          }	t          |
          }
t          j         ||	 |          } ||
 }t          j        ||           d S r8   )	r   r'   r(   r,   Indexastyper:   r-   r.   r;   s                r   test_binary_ufunc_with_indexrC   O   s    
 %FB ?2>'1#=#=>>>2>'1#=#=>>>DYr%%%FHRd###**733EbJ5/K ,j))
{++y
+$777HUK F68,,,,,r   shuffle	unalignedalignedc                 .   |\  }}|rHt          |t          j        dd                    }t          |t          j        dd                    }d}t          j        ||          }t          j        ||          }	t          j                            d                              t          |                    }
|rY|		                    |
          }	| r!|	
                    |          d         j        }n(|
                    |	          d         j        }n|j        }||f}||	f}| r8t          t          |                    }t          t          |                    }t          j         || ||          } || }t          j        ||           d S )Nr   r   r   r$   r9   r   r%   )r   r'   r(   r,   r   r   r   permutationlentakealignr&   tupler:   r-   r.   )r4   rD   r   r   r"   r    r!   r$   r0   r<   idxr&   r=   r>   r2   r1   s                   r   test_binary_ufunc_with_seriesrN   j   s    %FB ?2>'1#=#=>>>2>'1#=#=>>>DYr%%%FIbt$$$E
)


"
"
.
.s2ww
7
7C 

3 	1KK''*0EELL''*0EEbJ5/K 38J//00
H[1122y
+5tDDDHUK F68,,,,,r   c                 L   |\  }}|rt          |          }d}t          j        |d          }||f}||f}	|r8t          t	          |                    }t          t	          |	                    }	t          j         | |	 d          }
 | | }t          j        ||
           d S )Nr   r$   r9   )r   r'   r,   rL   r:   r-   r.   )r   r   r4   r"   r/   _r<   r0   r>   r=   r2   r1   s               r   test_binary_ufunc_scalarrQ      s    
 %FC #EYs(((F5/KuJ 1H[11228J//00
y
+&999HUK F68,,,,,r   z$ignore:divide by zero:RuntimeWarningc                    |\  }}d||dk    <   d||dk    <   |rHt          |t          j        dd                    }t          |t          j        dd                    }t          j        |          }t          j        |          }|r|                    d          } | ||          }t          |t                    sJ  | ||          }	t          |	t                    sJ t          j        |	d         t          j        |d                              t          j        |	d         t          j        |d                              d S )N   r   r   r   )frac)	r   r'   r(   r,   sample
isinstancerL   r-   r.   )
r   r   rD   r"   r    r!   s1s2r2   r1   s
             r   "test_multiple_output_binary_ufuncsrY      s:    %FBBrQwKBrQwK ?2>'1#=#=>>>2>'1#=#=>>>	2B	2B YYAYuR}}Hh&&&&&U2r]]Ffe$$$$$6!9bi&<&<===6!9bi&<&<=====r   c                    |\  }}| rt          |          }t          j        |d          }t          j        |          }t          j        |          }t          |t                    sJ t          |t                    sJ t          j        |d         t          j        |d         d                     t          j        |d         t          j        |d         d                     d S )Nr$   r9   r   rS   )	r   r'   r,   r   modfrV   rL   r-   r.   )r   r"   r/   rP   r0   r1   r2   s          r   test_multiple_output_ufuncr\      s     %FC #Ys(((FWV__Fws||Hfe$$$$$h&&&&&6!9bi&&I&I&IJJJ6!9bi&&I&I&IJJJJJr   c                     |\  }}t          j        |d          }t          j        |d          } | ||          }|j        J d S )Nar9   b)r'   r,   r$   )r   r   r"   r    r!   rW   rX   r1   s           r   #test_binary_ufunc_drops_series_namer`      sV    $FB	2C	 	 	 B	2C	 	 	 BU2r]]F;r   c                      G d d          } t          j         | d           | d          g          }t          j        |          }t	          j        t          j        ||          t          j        t          j        ||                               t	          j        t          j        | | d                    t          j        t          j        | | d                                         d S )Nc                       e Zd ZddZd ZdS )$test_object_series_ok.<locals>.DummyreturnNc                     || _         d S r   valueselfrg   s     r   __init__z-test_object_series_ok.<locals>.Dummy.__init__       DJJJr   c                      | j         |j         z   S r   rf   ri   r<   s     r   __add__z,test_object_series_ok.<locals>.Dummy.__add__   s    :++r   rd   N)__name__
__module____qualname__rj   rn    r   r   Dummyrc      s7        	 	 	 		, 	, 	, 	, 	,r   rt   r   rS   )r   arrayr'   r,   r-   r.   add)rt   r/   sers      r   test_object_series_okrx      s    , , , , , , , , (EE!HHeeAhh'
(
(C
)C..C26#s++RYrvc37G7G-H-HIII26#uuQxx00")BF3a<Q<Q2R2RSSSSSr   )rS   r   r   r   Int64Float32)rS   r   r   zSparse[int])200020102001CETD)freq)z1 Dayz3 Daysz2 DaysrS   r   r   c                 *    t          | j                  S r   )strr   )xs    r   <lambda>r     s    #ag,, r   c                     | j         S r   r   r
   s    r   values_for_np_reducer      s      =r   c                   &    e Zd Zd Zd Zd Zd ZdS )TestNumpyReductionsc                 p   |}|}t          j        d           5   ||          }d d d            n# 1 swxY w Y   t          |t          j        j        j                  r5t          j        	                    d          }|
                    |           |j        j        dv rt          j                            |          }|t          j        u r-|                    d          }	t          j        ||	           d S |t          j        u r#|j                                        }	||	k    sJ d S |                                }	||	k    sJ d S d                    g d          }
t          j        t.          |
          5  t          j                            |           d d d            d S # 1 swxY w Y   d S )	NzSparseArray has no 'prod')reasoniufFnumeric_only|)does not support reductionunsupported operand typez$ufunc 'multiply' cannot use operandsmatch)r-   assert_produces_warningrV   r'   corearraysr   pytestmarkxfailapplymarkerr   kindr   multiplyreduce	DataFrameprodr.   rA   _valuesjoinraises	TypeError)ri   r   box_with_arrayr   boxvaluesobjr   r1   r2   msgs              r   test_multiplyz!TestNumpyReductions.test_multiply  s1   %'-- 	 	#f++C	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 fbgn899 	&;$$,G$HHD%%%<%%['',,Fbl""88877&vx88888;++--))))))88::))))))((   C y444 ( (""3'''( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( (s   155> F++F/2F/c                    |}|}t          j        d           5   ||          }d d d            n# 1 swxY w Y   |j        j        dv rt          j                            |          }|t          j        u r-|	                    d          }t          j
        ||           d S |t          j        u r#|j        	                                }||k    sJ d S |	                                }||k    sJ d S d                    g d          }t          j        t           |          5  t          j                            |           d d d            d S # 1 swxY w Y   d S )NmiufFr   r   )r   r   zufunc 'add' cannot use operandsr   )r-   r   r   r   r   rv   r   r'   r   sumr.   rA   r   r   r   r   r   )	ri   r   r   r   r   r   r1   r2   r   s	            r   test_addzTestNumpyReductions.test_add.  s   %'-- 	 	#f++C	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 <&&V]]3''Fbl""77766&vx88888;??,,))))))7799))))))((   C y444 # #c"""# # # # # # # # # # # # # # # # # #s   155% EEEc                    |}|}d}|t           j        u r|j        j        dv rd}t	          j        d           5   ||          }d d d            n# 1 swxY w Y   t          j                            |          }|t           j	        u r-|
                    d          }t	          j        ||           d S |d         }||k    sJ |r"t          |          t          |          k    sJ d S d S )NTifFr   rS   )r'   rA   r   r   r-   r   r   maximumr   r   maxr.   type	ri   r   r   r   r   	same_typer   r1   r2   s	            r   test_maxzTestNumpyReductions.test_maxL  sB   %	"(??v|0J>>I'-- 	 	#f++C	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 ""3''",wwEw22H"6844444ayHX%%%% 6F||tH~~55556 655   AAAc                    |}|}d}|t           j        u r|j        j        dv rd}t	          j        d           5   ||          }d d d            n# 1 swxY w Y   t          j                            |          }|t           j	        u r-|
                    d          }t	          j        ||           d S |d         }||k    sJ |r"t          |          t          |          k    sJ d S d S )NTr   Fr   r   )r'   rA   r   r   r-   r   r   minimumr   r   minr.   r   r   s	            r   test_minzTestNumpyReductions.test_mind  sB   %	"(??v|0J>>I'-- 	 	#f++C	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 ""3''",wwEw22H"6844444ayHX%%%% 6F||tH~~55556 655r   N)rp   rq   rr   r   r   r   r   rs   r   r   r   r   	  sQ         (  (  (D# # #<6 6 606 6 6 6 6r   r   type_c                    t          j        g dd          } | g d          }t          j        ||          }t          j        t          j        |                                |          d          }t          j        ||           d S )NrS   r   r   r$   r9   )r   r      )r'   r,   r   rv   to_numpyr-   r.   )r   r^   r_   r1   r2   s        r   test_binary_ufunc_other_typesr   |  s}    
	)))&)))AiiiAVAq\\Fy

a00v>>>H68,,,,,r   c                  ,    G fdd          t          j         d           d          g          } t          j        |  d                    }t          j         d           d          g          }t	          j        ||           d S )Nc                   :    e Zd ZddZd Zdef fdZdefdZdS )#test_object_dtype_ok.<locals>.Thingrd   Nc                     || _         d S r   rf   rh   s     r   rj   z,test_object_dtype_ok.<locals>.Thing.__init__  rk   r   c                 d    t          |d|          } t          |           | j        |z             S )Nrg   )getattrr   rg   rm   s     r   rn   z+test_object_dtype_ok.<locals>.Thing.__add__  s0    E7E22E4::dj50111r   c                 F    t          |          u o| j        |j        k    S r   )r   rg   )ri   r<   Things     r   __eq__z*test_object_dtype_ok.<locals>.Thing.__eq__  s"    ;;%'EDJ%+,EEr   c                     d| j          dS )NzThing()rf   )ri   s    r   __repr__z,test_object_dtype_ok.<locals>.Thing.__repr__  s    )DJ))))r   ro   )	rp   rq   rr   rj   rn   boolr   r   r   )r   s   r   r   r     s        	 	 	 		2 	2 	2	F4 	F 	F 	F 	F 	F 	F	*c 	* 	* 	* 	* 	* 	*r   r   rS   r   r   )r'   r,   r   rv   r-   r.   )sr1   r2   r   s      @r   test_object_dtype_okr     s    * * * * * * * * * * 		5588UU1XX&''AVAuuQxx  Fy%%((EE!HH-..H68,,,,,r   c                     t          j        g d          } t          j        g d          }t	          j        t          d          5  t          j                            | |           d d d            d S # 1 swxY w Y   d S )Nr    r   )	r'   r,   r   ru   r   r   NotImplementedErrorsubtractouter)rw   r   s     r   
test_outerr     s    
)III

C
(999

C	*"	5	5	5 $ $
#s###$ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $s   !A66A:=A:c                      t          j        g dg          } t          j        g d          }t          j        dg          }t          j        | |          }t	          j        ||           d S )N)rS   r   )dataf   )r'   r   r   matmulr-   assert_frame_equal)df1df2r2   r1   s       r   test_np_matmulr     sn    
,[[[M
*
*
*C
,KKK
(
(
(C|#'''HYsC  F(F+++++r   c                     d } t          j        | dd          }t          j        ddg          } |||d          }t          j        ddgt                    }t          j        ||           t          j        ddgg          }d}t          j	        t          t          j        |                    5   ||||           d d d            d S # 1 swxY w Y   d S )	Nc                     | |z   |z   S r   rs   )r   yzs      r   add3z2test_array_ufuncs_for_many_arguments.<locals>.add3  s    1uqyr   r   rS   r   r   r   zTCannot apply ufunc <ufunc 'add3 (vectorized)'> to mixed DataFrame and Series inputs.r   )r   
frompyfuncr'   r,   objectr-   r.   r   r   r   r   reescape)r   r   rw   r1   r2   dfr   s          r   $test_array_ufuncs_for_many_argumentsr     s.      M$1%%E
)QF

CU3QFy!Qv...H68,,,	1vh		B	0  
*")C..	A	A	A  c3                 s   5CCCc                      t          j        g d          } t          j        |           }t          j        g d          }t	          j        ||           d S )N)g      g      g      ?g      ?)g      g       g        g      ?)r'   r,   r   fixr-   r.   )rw   r1   r2   s      r   test_np_fixr     sV     )***
+
+CVC[[Fy///00H68,,,,,r   );collectionsr   r   r*   numpyr   r   pandas.util._test_decoratorsutil_test_decoratorstdpandasr'   pandas._testing_testingr-   pandas.arraysr   fixturerv   	logaddexpr   r   r"   r   parametrizepositivefloorexpr3   r?   rC   rN   rQ   divmodfilterwarningsrY   r\   r`   rx   ru   r   to_datetimetz_localize	to_periodto_timedeltaIntervalIndexIntervalr   r   r)   rL   r   r   r   r   r   &skip_copy_on_write_not_yet_implementedr   rs   r   r   <module>r     s(         				       ) ) ) ) ) ) ) ) )           % % % % % % -...  /.
 e}8W*=>>>  ?>    2;"&"ABB- - CB-  $Y
4KLL- - ML-. $Y
4KLL- - ML-4 T5MY7OPP$Y
4KLL#- #- ML QP#-L $//- - 0/-. 29+..T5M22BCC> > DC 32 /.><K K K&  T T T "(+++'***),,,=111///00///00<<UCC///00:::DD55566+"+a++[R[A->->Aq@Q@QRSS
 	    
p6 p6 p6 p6 p6 p6 p6 p6f 4"677- - 87-- - -*$ $ $, , ,  . *- - +*- - -r   