
    MhT                     $   S SK rS SKrS SKJrJrJr  S SKJr	  S SK
Jr  S SKJr  S rS r\R                   R#                  S\R$                  /S/4\R&                  \R$                  /S	S/4\R(                  " \R$                  /5      S/4\R(                  " \R&                  \R$                  /5      S	S/4/5      S
 5       r\R                   R#                  S/ \R(                  " / 5      /5      S 5       rS r\R                   R#                  S\\/5      S 5       rS r\R                   R#                  S0 S/ 0/ SS.S/ S./ S/S.S// S./5      S 5       r\R                   R#                  SSS/5      S 5       r/ SQr\ V s/ s H  o \;  d  M
  U PM     sn r\R                   R#                  S/ \QS P5      S 5       r\R                   R#                  S\5      S 5       r S r!\R                   R#                  SSS/5      S 5       r"S  r#gs  sn f )!    N)	DataFrame
MultiIndexSeries)frame_transform_kernels)
zip_framesc                 `    U[         La$  U S   n US:w  a  [        R                  " SU 35        U $ )za
Helper to ensure we have the right type of object for a test parametrized
over frame_or_series.
Ar   z%Test is only for DataFrame with axis=)r   pytestskip)objklassaxiss      Y/var/www/html/env/lib/python3.13/site-packages/pandas/tests/apply/test_frame_transform.py
unpack_objr      s5    
 I#h19KK?vFGJ    c                    [        XU 5      n[        R                  " SS9   [        R                  " U5      nS S S 5        UR	                  [        R                  U S9nWn[
        R                  " XV5        g ! , (       d  f       NE= f)Nignoreallr   )r   nperrstatesqrt	transformtmassert_equal)r   float_frameframe_or_seriesr   f_sqrtresultexpecteds          r   test_transform_ufuncr"      s^    
[4
8C		" 
# ]]277].FHOOF% 
#	"s   A77
Bz
ops, namesr   absolutec           	         U S;   a  SOSn[         R                  " SS9   [        U Vs/ s H
  oU" U5      PM     snUS9nS S S 5        U S;   a(  [        R                  " UR
                  U/5      Wl        O'[        R                  " UR                  U/5      Wl        UR                  X S9n[        R                  " Xv5        g s  snf ! , (       d  f       N= f)N>   indexr      r   r   r   r   )
r   r   r   r   from_productcolumnsr%   r   r   assert_frame_equal)r   r   opsnames
other_axisopr!   r    s           r   test_transform_listliker.   '   s     l*J		"=2r+=JO 
#|%22K4G4G3OP#00+2C2CU1KL""3"2F&+ > 
#	"s   
CC
CC
Cr*   c                     [        XS5      n[        R                  " [        SS9   UR	                  U5        S S S 5        g ! , (       d  f       g = fNr   z$No transform functions were providedmatchr   r
   raises
ValueErrorr   r   r*   r   r   s       r   test_transform_empty_listliker7   =   s6    
[1
5C	z)O	Pc 
Q	P	P   A
Ac            	      l   [        S/ SQ05      n SS jnSS jnSn[        R                  " [        US9   U R	                  X/SSSS	S
9  S S S 5        U R	                  X/SSS	S9n[        SS/SS/SS//[
        R                  " SS/5      S9n[        R                  " XE5        g ! , (       d  f       Na= f)Nxr&         r   c                     X-   U-   $ N )r:   acs      r   foo14test_transform_listlike_func_with_args.<locals>.foo1I       uqyr   c                     X-   U-   $ r?   r@   )r:   brB   s      r   foo24test_transform_listlike_func_with_args.<locals>.foo2L   rE   r   z/foo1\(\) got an unexpected keyword argument 'b'r1   r=      rG   rB   )rB      	   
   )r:   rC   )r:   rH   r(   )r&   r   )r<   r   )	r   r
   r4   	TypeErrorr   r   from_tuplesr   r)   )dfrC   rH   msgr    r!   s         r   &test_transform_listlike_func_with_argsrT   E   s    	C#	$B =C	y	,
d\1a12 
- \\4,1\2F
Q!Q"b"&&}'EFH &+ 
-	,s   B%%
B3boxc                 d   U S;   a2  UR                   S   nX/   R                  [        R                  5      nO<UR                  S   nUR
                  S/   R                  [        R                  5      nUR                  U" U[        R                  05      U S9n[        R                  " XT5        g )N)r   r%   r   r   )r(   r   r   absr%   ilocr   r)   )r   r   rU   er!   r    s         r   test_transform_dictlikerZ   [   s     |"s#--bff5a ##QC(22266:""3266{#3$"?F&+r   c                      [        SS/SS/SS/S.5      n U R                  SS/SS.5      n[        / SQ/ S	Q/[        SS
/SS/5      S9n[        R                  " X5        g )Nr&   r<   rJ   )rA   rG   rB   r   rW   rK   )      ?r&   r\   )       @rJ   r]   )r   rW   )r   r   r&   )r   r&   r   rO   )r   r   r   r   r)   )rR   r    r!   s      r   test_transform_dictlike_mixedr^   h   sl    	!Qq!fAq6:	;B\\f=>F	&J89i:PQH &+r   r	   cumsumr	   Bc                     [        XS5      n[        R                  " [        SS9   UR	                  U5        S S S 5        g ! , (       d  f       g = fr0   r3   r6   s       r   test_transform_empty_dictlikerc   s   s8     [1
5C	z)O	Pc 
Q	P	Pr8   	use_applyTFc                    ^^ [        UTU 5      nUU4S jnUR                  XPS9nUS-   n[        R                  " Xg5        g )Nc                 :   > T[        U T5      :X  a  [        eU S-   $ Nr&   
isinstancer5   )r:   r   rd   s    r   func test_transform_udf.<locals>.func   s!    
1o661ur   r   r&   )r   r   r   r   )r   r   rd   r   r   rj   r    r!   s     ``    r   test_transform_udfrl      s?     [/4
8C ]]4]+FQwHOOF%r   )ffillbfillfillnapadbackfillshiftr-   c                     U S-   $ rg   r@   r:   s    r   <lambda>ru      s    Ar   c                    U S:X  a1  UR                  [        R                  R                  [        SS95        [        SS[        /-  05      n[        R                  " X15      n[        nSR                  SS/5      n[        R                  " XES	9   UR                  U 5        S S S 5        [        R                  " XES	9   UR                  U /5        S S S 5        [        R                  " XES	9   UR                  SU 05        S S S 5        [        R                  " XES	9   UR                  SU /05        S S S 5        g ! , (       d  f       N= f! , (       d  f       N= f! , (       d  f       Nb= f! , (       d  f       g = f)
Nngroupngroup not valid for NDFramer4   reasonr	   r=   |4not supported between instances of 'type' and 'type'unsupported operand typer1   )applymarkerr
   markxfailr5   r   objectr   get_objrP   joinr4   r   )r-   r   requestr   errorrS   s         r   test_transform_bad_dtyper      s    
X~KKZ8VW	
 S!vh,'
(C
**S
*CE
((B&	
C 
u	(b 
)	u	(rd 
)	u	(sBi  
)	u	(sRDk" 
)	( 
)	(	(	(	(	(	(	(s0   D;>E-EE.;
E	
E
E+.
E<c                    US:X  a1  U R                  [        R                  R                  [        SS95        [        S[        /-  / SQS.5      n[        nSR                  SS	/5      n[        R                  " X4S
9   UR                  U/5        S S S 5        [        R                  " X4S
9   UR                  XS.5        S S S 5        [        R                  " X4S
9   UR                  U/U/S.5        S S S 5        [        R                  " X4S
9   UR                  US/U/S.5        S S S 5        g ! , (       d  f       N= f! , (       d  f       N= f! , (       d  f       Ne= f! , (       d  f       g = f)Nrw   rx   ry   r=   r;   r`   r{   r|   r}   r1   rr   )r~   r
   r   r   r5   r   r   rP   r   r4   r   )r   r-   rR   r   rS   s        r    test_transform_failure_typeerrorr      s"    
X~KKZ8VW	

 
fXI6	7BE
((B&	
C 
u	(
bT 
) 
u	(
2'( 
) 
u	(
B4rd+, 
) 
u	(
B=t45 
)	( 
)	( 
)	( 
)	( 
)	(s0   =D0,EEE#0
D>
E
E #
E1c                  n   S n [        / SQ/ SQS.5      nSn[        R                  " [        US9   UR	                  U /5        S S S 5        [        R                  " [        US9   UR	                  X S.5        S S S 5        [        R                  " [        US9   UR	                  U /U /S.5        S S S 5        [        R                  " [        US9   UR	                  U S/U /S.5        S S S 5        g ! , (       d  f       N= f! , (       d  f       N= f! , (       d  f       Nj= f! , (       d  f       g = f)Nc                 n    [         R                  " [         R                  " U 5      5      S:  a  [        eU $ NrN   )r   sumr5   rt   s    r   r-   -test_transform_failure_valueerror.<locals>.op   s&    66"&&)r!r   r;   )i  i  iX  r`   zTransform function failedr1   rr   )r   r
   r4   r5   r   )r-   rR   rS   s      r   !test_transform_failure_valueerrorr      s    
 
9	:B
%C	z	-
bT 
. 
z	-
2'( 
. 
z	-
B4rd+, 
. 
z	-
B=t45 
.	- 
.	- 
.	- 
.	- 
.	-s/   C3%DDD&3
D
D
D#&
D4c                 j   ^ ^^^ SS/mSS0mUUUU 4S jnT" S/5      R                   " US/TQ70 TD6  g )Nr&   r<   rB   r=   c                 \   > T[        U T5      :X  a  [        eX/T:X  d   eUTS   :X  d   eU $ )NrB   rh   )r:   rA   rG   rB   expected_argsexpected_kwargsr   rd   s       r   f%test_transform_passes_args.<locals>.f   s@    
1o66v&&&OC((((r   r   )r   )rd   r   r   r   r   s   `` @@r   test_transform_passes_argsr      sD     FMAhO  QC""1aK-K?Kr   c                      [        / SS/S9n U R                  S 5      n[        R                  " X5        U S   R                  S 5      n[        R                  " XS   5        g )Ncol1col2rO   c                     U S-   $ r   r@   rt   s    r   ru   0test_transform_empty_dataframe.<locals>.<lambda>  s    AFr   c                     U S-   $ r   r@   rt   s    r   ru   r     s    AFr   )r   r   r   r)   assert_series_equal)rR   r    s     r   test_transform_empty_dataframer     sW    	2/	0B\\*+F&%Z!!"23F6f:.r   )$numpyr   r
   pandasr   r   r   pandas._testing_testingr   pandas.tests.apply.commonr   pandas.tests.frame.commonr   r   r"   r   parametrizer   rW   arrayr.   r7   rT   dictrZ   r^   rc   rl   	wont_failframe_kernels_raiser   r   r   r   r   rt   s   0r   <module>r      sZ     
  = 0	
& 
''VH
&&"''	Z01	277)	vh'	266277#	$z6&:;	
,
, RXXb\ 23 4,, v/	, 0	,, 	
	b	x R z"jr"

 tUm4& 5&" E	"9P"9Qi=Oq"9P  F!4FoFG# H#6 236 46>6. tUm4L 5L$/S Qs   	HH