
    bMh:)                        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	Z
 d dlmZ dddddgZej                            de          d             Zej                            de          d	             Zej                            de          d
             Zej                            dej        dg df eej        ddgddgg           ej        ddgddgg          g dfej         ej        ddgddgg          g dfej        dg df eej         ej        ddgddgg                    dg dfg          d             Zej                            de          ej                            de          d                         Zej                            de          d             Zd Zd Zd Zd Zd Zd  Z dS )!    )partialN)is_extension_array_dtypeint64Int64ABdtypec                 z   t          j        ddgddggd          }t          j        |ddgddg	                              |           }t          j        |          }t          j        t          j        |          |j        |j        
                              |           }t          j	        ||           d S N   r   r
   r   r	   abcolumnsindexr   r   )
nparraypd	DataFrameastypepositiver   r   tmassert_frame_equalr
   valuesdfresultexpecteds        ]/var/www/html/test/jupyter/venv/lib/python3.11/site-packages/pandas/tests/frame/test_ufunc.pytest_unary_unaryr$      s     XBx!Q(888F	fsCjc
	C	C	C	J	JQV	J	W	WB[__F|
F28RZ  fUmm  &(+++++    c                    t          |          st          |t                    r3|                     t          j                            d                     t          j        ddgddggd          }t          j
        |ddgd	d
g                              |          }t          j        |          }t          |t                    sJ t          |          dk    sJ t          j        |          }t          ||          D ];\  }}t          j
        ||j        |j                  }t%          j        ||           <d S )Nz8Extension / mixed with multiple outputs not implemented.reasonr   r   r   r   r   r	   r   r   r      r   )r   
isinstancedictapplymarkerpytestmarkxfailr   r   r   r   r   modftuplelenzipr   r   r   r   )	requestr
   r   r    result_pandasexpected_numpyr!   r   r"   s	            r#   test_unary_binaryr7      sM     && 
*UD*A*A 
KQ   	
 	
 	
 XBx!Q(888F	fsCjc
	C	C	C	J	JQV	J	W	WBGBKKMmU+++++}""""WV__N77 0 0	<2:FFF
fh////0 0r%   c                 ~   t          j        ddgddggd          }t          j        |ddgddg	                              |           }t          j        ||          }t          j        t          j        ||          |j        |j        
                              |           }t          j	        ||           d S r   )
r   r   r   r   r   addr   r   r   r   r   s        r#    test_binary_input_dispatch_binopr:   4   s     XBx!Q(888F	fsCjc
	C	C	C	J	JQV	J	W	WBVB^^F|
vvbh
  fUmm  &(+++++r%   zfunc,arg,expectedr   )r)            FT)where)r   r;   r<   r   r)   )r   r)   	      )r   r   r   r)   )r   r   c                    t          j        ddgddgg          }t          j        |          }t          j        |          }| | ||          }n | |||          }t          j        |                              dd          }t          j        ||           t          j        |          }t          j        ||           d S )Nr   r)   r;   r<   )out)	r   r   r   r   
zeros_likereshaper   assert_numpy_array_equalr   )funcargr"   arrr    result_inplacer!   s          r#   test_ufunc_passes_argsrL   @   s    ( (QFQF#
$
$C	c		B]3''N
{bn---b#>222x!!))!Q//H999|H%%H&(+++++r%   dtype_adtype_bc           	      f   t          |          s9t          |t                    s$t          |          st          |t                    r3|                     t          j                            d                     t          j        ddgddgd          	                    |          }t          |t                    rAt          |t                    r,|
                                }|                    d          |d	<   t          j        ddgddgd
          	                    |          }t          j        ||          }t          j        t          j        ddt          j        gddt          j        gg          t          j        dt          j        dgdt          j        dgg                    }t          j        |ddgg d          }t!          j        ||           t          j        ||j                  }t          j        ddgddggddg          }t!          j        ||           d S )N7Extension / mixed with multiple inputs not implemented.r'   r   r)   r;   r<   r   r	   C)r   rQ   r   )r   r	   rQ   r         ?r   r   )r   r*   r+   r,   r-   r.   r/   r   r   r   copypopr   	heavisider   nanr   r   r   )r4   rM   rN   df1df2r!   r"   s          r#    test_binary_input_aligns_columnsrZ   d   s    	!))

gt$$

 $G,,

 gt$$	

 	KP   	
 	
 	
 ,aV1a&11
2
2
9
9'
B
BC'4   (Z%>%> (,,..{{3''
,aV1a&11
2
2
9
9'
B
BC\#s##F|
1a.1a.122
1bfa.1bfa.122 H |HQFOOOLLLH&(+++\#sz**F|c3Z#s4sCjIIIH&(+++++r%   c           	         t          |          st          |t                    r3|                     t          j                            d                     t          j        ddgddgddd	g
          	                    |          }t          j        ddgddgdddg
          	                    |          }t          j        ||          }t          j        t          j        ddgddgt          j        t          j        gg          t          j        ddgt          j        t          j        gddgg                    }t          j        |g dddg          }t          j        ||           t          j        ||j                  }t          j        ddgddggddgdd	g          }t          j        ||           d S )NrP   r'   r   r)   r;   r<   r   r   r   r   cr   r   r]   r   r	   r   rR   r   )r   r*   r+   r,   r-   r.   r/   r   r   r   r   rV   r   rW   r   r   r   )r4   r
   rX   rY   r!   r"   s         r#   test_binary_input_aligns_indexr_      s   && 
*UD*A*A 
KP   	
 	
 	

 ,aV1a&11#s
D
D
D
K
KE
R
RC
,aV1a&11#s
D
D
D
K
KE
R
RC\#s##F|
1a&1a&2626"2344
1a&2626*QF344 H
 |HOOOc3ZPPPH&(+++\#sz**F|
sc3Z 3*S#J  H &(+++++r%   c                  p   t          j        dddgi          } t          j        t          d          5  t          j        | | d                    d d d            n# 1 swxY w Y   t          j        t          d          5  t          j        | d         |            d d d            d S # 1 swxY w Y   d S )Nr   r   r)   	logaddexpmatch)r   r   r-   raisesNotImplementedErrorr   ra   r    s    r#   test_binary_frame_series_raisesrg      s,   	sQFm	$	$B	*+	>	>	> " "
RC!!!" " " " " " " " " " " " " " " 
*+	>	>	> " "
RWb!!!" " " " " " " " " " " " " " " " " "s#   AA #A B++B/2B/c                     t          j        dg di          } t          j                            |           }t          j        dg di          }t          j        ||           t          j        g dg dd          } t          j                            |           }t          j        g dg dd          }t          j        ||           t          j                            | d	          }t          j        ||           t          j                            | d
	          }t          j        g dg dd          }t          j        ||           d S )Nr   )r   r;   r)   r<   )r   r;   r;   r<   )皙?      @      @       @r   r   )rR   rk   rk   rj   )ri   rj   rj   rj   r   )axisr   )rR   rk   rl   rj   )rR   rj   rk   rj   )r   r   r   maximum
accumulater   r   )r    r!   r"   s      r#   test_unary_accumulate_axisrq      sN   	sLLL)	*	*BZ""2&&F|S,,,/00H&(+++	LLL/C/C/CDD	E	EBZ""2&&F|"6"6"6=Q=Q=QRRSSH&(+++Z""2A"..F&(+++Z""2A"..F|"6"6"6=Q=Q=QRRSSH&(+++++r%   c                      t          j        dddgi          } t          j        t          d          5  t
          j                            | |            d d d            d S # 1 swxY w Y   d S )Nr   r   r)    rb   )r   r   r-   rd   re   r   subtractouterrf   s    r#   test_frame_outer_disallowedrv      s    	sQFm	$	$B	*"	5	5	5 " "
"b!!!" " " " " " " " " " " " " " " " " "s   !A""A&)A&c                     t          j        g dg dd          } t          j        g dg dd          }t          j        ddgddg	          }t          j        ddgdd
g	          }t          j        g dg dd          }t          j        d           5  t          j        | |           }d d d            n# 1 swxY w Y   t          j        ||           t          j        | |j                  }t          j        ||           t          j        | |          }t          j        t
          j	        gdz  g dt
          j	        gdz  d          }t          j        ||           t          j        | j        |          }t          j        g dg dd          }t          j        ||           t          j        g dg dd          }t          j        d           5  t          j        | |          }d d d            n# 1 swxY w Y   t          j        ||           t          j        | |j                  }t          j        ||           t          j        t
          j	        gdz  g dt
          j	        gdz  d          }t          j        | |          }t          j        ||           d}t          j        t          |          5  t          j        ||            d d d            d S # 1 swxY w Y   d S )Nr   r)   r;   r<   r=      rm   r   r]   r   r)   r   r   r\   r]   )r)   r<   rz   )   
      r;   )r=      r?   r^   )r)   r;   r<   )rz   r   r|   )g      @      @g      @zFCannot apply ufunc <ufunc 'add'> to mixed DataFrame and Series inputs.rb   )r   r   Seriesr   assert_produces_warningr   r9   r   r   rW   r-   rd   re   )rX   rY   s1s2r"   r!   msgs          r#   #test_alignment_deprecation_enforcedr      s    ,YYYYYY77
8
8C
,YYYYYY77
8
8C	Aq6#s	,	,	,B	Aq6#s	,	,	,B |)))+++>>??H		#D	)	) " "S!!" " " " " " " " " " " " " " " &(+++VC$$F&(+++VCF|26(Q,YYYbfXPQ\RRSSH&(+++VCJ$$F|)))+++>>??H&(+++ |))))))<<==H		#D	)	) ! !R! ! ! ! ! ! ! ! ! ! ! ! ! ! ! &(+++VC##F&(+++|vhlx!|DD H VC__F&(+++
RC	*#	6	6	6  
r3                 s6   B<<C C $HH
H
K55K9<K9c                     t          j        d          } |                     |                     | j        | j        | j                  g          d             }t	          j        g dg dd          }t	          j        g dg dd          }t	          j        g dg dd          } ||||          }t	          j        t          j        dt          j                  g d	
          }t          j
        ||           t          j        d           5   ||||          }d d d            n# 1 swxY w Y   t	          j        ddgddgddggddg
          }t          j
        ||           d}t          j        t          |          5   ||||j                   d d d            n# 1 swxY w Y   t          j        d           5   |||j        |j                  }d d d            n# 1 swxY w Y   t          j
        ||           d}t          j        t          |          5   ||j        ||           d d d            d S # 1 swxY w Y   d S )Nnumbac                     | |z   |z   S N xyzs      r#   my_ufunczAtest_alignment_deprecation_many_inputs_enforced.<locals>.my_ufunc   s    1uqyr%   rx   ry   rm   r{   )r   r]   )r;   r;   r^   rS   rk   g      (@r   g      .@g      "@g      2@r   r   zLoperands could not be broadcast together with shapes \(3,3\) \(3,3\) \(3,2\)rb   zLoperands could not be broadcast together with shapes \(3,2\) \(3,3\) \(3,3\))r-   importorskip	vectorizefloat64r   r   r   fullrW   r   r   r   rd   
ValueErrorr   )r   r   rX   rY   df3r!   r"   r   s           r#   /test_alignment_deprecation_many_inputs_enforcedr      st   
 ((E
__emmEM5=%-PPQRR  SR ,YYYYYY77
8
8C
,YYYYYY77
8
8C
,YYYYYY77
8
8CXc3$$F|BGFBF33___MMMH&(+++ 
	#D	)	) ) )#sC(() ) ) ) ) ) ) ) ) ) ) ) ) ) )|c4[3+T{CcSVZXXXH&(+++ 	X  
z	-	-	- ' 'c3:&&&' ' ' ' ' ' ' ' ' ' ' ' ' ' ' 
	#D	)	) 7 7#sz3:667 7 7 7 7 7 7 7 7 7 7 7 7 7 7&(+++ 	X  
z	-	-	- ' 'S#&&&' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' 'sH   D..D25D2F++F/2F/
G..G25G2+IIIc                     d } t          j        | dd          }t          j        ddgddgg          } |||d          }t          j        ddgddggt          	          }t          j        ||           t          j        dd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   r   r   s      r#   add3z2test_array_ufuncs_for_many_arguments.<locals>.add3'  s    1uqyr%   r;   r   r)   r<   r=   r   r?   r   zTCannot apply ufunc <ufunc 'add3 (vectorized)'> to mixed DataFrame and Series inputs.rb   )r   
frompyfuncr   r   objectr   r   r   r-   rd   re   reescape)r   ufuncr    r!   r"   serr   s          r#   $test_array_ufuncs_for_many_argumentsr   %  s>      M$1%%E	1v1v&	'	'BU2r1F|aVaV,F;;;H&(+++
)QF

C	0  
*")C..	A	A	A  b"c                 s   <CCC)!	functoolsr   r   numpyr   r-   pandasr   pandas._testing_testingr   pandas.api.typesr   dtypesr.   parametrizer$   r7   r:   r9   r   powerrt   negativerL   rZ   r_   rg   rq   rv   r   r   r   r   r%   r#   <module>r      s         				                5 5 5 5 5 5 
  
 &)), , *), &))0 0 *)0* &)), , *), 	LLL!GBFE4=4-"@AAABHq!fq!f%&&LL	

 
828aVaV,--}}}=	a'GBKxrx%u0N'O'OPPPNN	
 $, ,% $,$ F++F++, , ,+ ,+,B &)), , *),2" " ", , ,*" " ". . .b*' *' *'Z    r%   