
    d;                     	   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        gZddgZddgZej        d             Zej                            d	ej        ej        ej        g          ej                            dee
          d                         Zej                            d	e          ej                            dee
          ej                            dddgddg
          d                                     Zej                            d	e          ej                            dee
          ej                            dddgddg
          d                                     Z ej                            d	e          ej                            dee
          ej                            dddgddg
          ej                            dddgddg
          d                                                 Z!ej                            d	e          ej                            dee
          ej                            dddg          d                                     Z"ej                            d	ej#        g          ej                            dee
          ej                            dddg          ej        $                    d          d                                                 Z%ej                            dee
          d             Z&ej                            dee
          ej                            d	e          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j0        d d&           ej0        d'd(           ej0        d&d'          g          g	d) *          d+             Z1 G d, d-          Z2ej                            d.e3ee4g          d/             Z5d0 Z6d1 Z7d2 Z8d3 Z9e
j:        d4             Z;dS )5    )dequeN)SparseArrayTFsparsedensec                      t           j                            dddd          } t           j                            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randint)a1a2s     Z/var/www/html/t/fyr/venv311/lib/python3.11/site-packages/pandas/tests/series/test_ufunc.pyarrays_for_binary_ufuncr      sg    
 
		1b#W		5	5B			1b#W		5	5BBsssGBsssGr6M    ufunc)idsc                    t           j                            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      nameindexr   )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_ufuncr*      s     )

Ar2W

5
5CC!H A#R^GQ%?%?@@@%crc*++EDYs%d333FU6]]Fys5t<<<H68,,,,,r   flipflippedstraightc                    |\  }}|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%   r+   r   r   r   r   r   r   r'   other
array_argsseries_argsr)   r(   s                r   test_binary_ufunc_with_arrayr6   1   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 r/   )	r   r   r   r#   Indexastyper1   r$   r%   r2   s                r   test_binary_ufunc_with_indexr:   K   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                            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   r0   r   )r   r   r   r#   r   r   permutationlentakealignr   tupler1   r$   r%   )r+   r;   r   r   r   r   r   r   r'   r3   idxr   r4   r5   r)   r(   s                   r   test_binary_ufunc_with_seriesrE   h   s{    %FB ?2>'1#=#=>>>2>'1#=#=>>>DYr%%%FIbt$$$E
)

B
(
(C 

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   r0   )r   r   r#   rC   r1   r$   r%   )r   r   r+   r   r&   _r3   r'   r5   r4   r)   r(   s               r   test_binary_ufunc_scalarrH      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
isinstancerC   r$   r%   )
r   r   r;   r   r   r   s1s2r)   r(   s
             r   "test_multiple_output_binary_ufuncsrP      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   r0   r   rJ   )	r   r   r#   r   modfrM   rC   r$   r%   )r   r   r&   rG   r'   r(   r)   s          r   test_multiple_output_ufuncrS      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ar0   b)r   r#   r   )r   r   r   r   r   rN   rO   r(   s           r   #test_binary_ufunc_drops_series_namerW      sX     %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 Nvalueselfr_   s     r   __init__z-test_object_series_ok.<locals>.Dummy.__init__       DJJJr   c                      | j         |j         z   S r]   r^   ra   r3   s     r   __add__z,test_object_series_ok.<locals>.Dummy.__add__   s    :++r   r[   N)__name__
__module____qualname__rb   rf    r   r   DummyrZ      s7        	 	 	 		, 	, 	, 	, 	,r   rl   r   rJ   )r   arrayr   r#   r$   r%   add)rl   r&   sers      r   test_object_series_okrp      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   )rJ   r   r   r   Int64Float32)rJ   r   r   zSparse[int])200020102001CETD)freq)z1 Dayz3 Daysz2 DaysrJ   r   r   c                 *    t          | j                  S r]   )strr   )xs    r   <lambda>r|     s    #ag,, r   )paramsr   c                     | j         S r]   )param)requests    r   values_for_np_reducer      s      =r   c                   &    e Zd Zd Zd Zd Zd ZdS )TestNumpyReductionsc                 z   |}|}t          j        d           5   ||          }d d d            n# 1 swxY w Y   t          |t          j        j        j                  r:t          j        	                    d          }|j
                            |           |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        t0          |
          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_warningrM   r   corearraysr   pytestmarkxfailnode
add_markerr   kindr   multiplyreduce	DataFrameprodr%   r8   _valuesjoinraises	TypeError)ra   r   box_with_arrayr   boxvaluesobjr   r(   r)   msgs              r   test_multiplyz!TestNumpyReductions.test_multiply  s3   %'-- 	 	#f++C	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 fbgn899 	*;$$,G$HHDL##D)))<%%['',,Fbl""88877&vx88888;++--))))))88::))))))((   C y444 ( (""3'''( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( (s   155 F00F47F4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   rn   r   r   r   sumr%   r8   r   r   r   r   r   )	ra   r   r   r   r   r   r(   r)   r   s	            r   test_addzTestNumpyReductions.test_add4  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   rJ   )r   r8   r   r   r$   r   r   maximumr   r   maxr%   type	ra   r   r   r   r   	same_typer   r(   r)   s	            r   test_maxzTestNumpyReductions.test_maxR  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   r8   r   r   r$   r   r   minimumr   r   minr%   r   r   s	            r   test_minzTestNumpyReductions.test_minj  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)rh   ri   rj   r   r   r   r   rk   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rJ   r   r   r   r0   )r   r      )r   r#   r   rn   to_numpyr$   r%   )r   rU   rV   r(   r)   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>.Thingr[   Nc                     || _         d S r]   r^   r`   s     r   rb   z,test_object_dtype_ok.<locals>.Thing.__init__  rc   r   c                 d    t          |d|          } t          |           | j        |z             S )Nr_   )getattrr   r_   re   s     r   rf   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   r_   )ra   r3   Things     r   __eq__z*test_object_dtype_ok.<locals>.Thing.__eq__  s"    ;;%'EDJ%+,EEr   c                     d| j          dS )NzThing()r^   )ra   s    r   __repr__z,test_object_dtype_ok.<locals>.Thing.__repr__  s    )DJ))))r   rg   )	rh   ri   rj   rb   rf   boolr   rz   r   )r   s   r   r   r     s        	 	 	 		2 	2 	2	F4 	F 	F 	F 	F 	F 	F	*c 	* 	* 	* 	* 	* 	*r   r   rJ   r   r   )r   r#   r   rn   r$   r%   )sr(   r)   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          t          j                  5  t          j	        
                    | |           d d d            d S # 1 swxY w Y   d S )Nr   r   )r   r#   r   rm   r   r   NotImplementedErrorr$   EMPTY_STRING_PATTERNsubtractouter)ro   r   s     r   
test_outerr     s    
)III

C
(999

C	*"2I	J	J	J $ $
#s###$ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $s   !B  BBc                      t          j        g dg          } t          j        g d          }t          j        dg          }t          j        | |          }t	          j        ||           d S )N)rJ   r   )dataf   )r   r   r   matmulr$   assert_frame_equal)df1df2r)   r(   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]   rk   )r{   yzs      r   add3z2test_array_ufuncs_for_many_arguments.<locals>.add3  s    1uqyr   r   rJ   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   ro   r(   r)   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%   )ro   r(   r)   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   rn   	logaddexpBINARY_UFUNCSSPARSE
SPARSE_IDSfixturer   r   parametrizepositivefloorexpr*   r6   r:   rE   rH   divmodfilterwarningsrP   rS   rW   rp   rm   r
   to_datetimetz_localize	to_periodto_timedeltaIntervalIndexIntervalr   r   r    rC   r   r   r   r   r   &skip_copy_on_write_not_yet_implementedr   rk   r   r   <module>r     s         				       ) ) ) ) ) ) ) ) )           % % % % % %&
 
    2;"&"ABB6z::- - ;: CB-  -006z::$Y
4KLL- - ML ;: 10-. -006z::$Y
4KLL- - ML ;: 10-4 -006z::T5MY7OPP$Y
4KLL#- #- ML QP ;: 10#-L -006z::$//- - 0/ ;: 10-. 29+..6z::T5M22BCC> > DC 32 ;: /.>< 6z::K K ;:K& 6z::-00  10 ;: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   