
    o[we\*                        d dl mZ d dlZd dlZd dlZd dlmZ d dlm	Z	m
Z
mZmZ d dlmZ ej                            dddg          d             Zd	 Zd
 Zd Zej                            dddg          d             Zej                            dg d          ej                            ddddiidddgiig          d                         Zej                            ddddgiddgddgdg          d             Zd Zej                            dddg          d              Zej                            dg d          ej                            dddiddgig          d!                         Zd" Zej                            d#d$d%dd&d'gffd(g          d)             Zd* Zd+ Zej                            d, ej          e	d&d'gd'd&gg          d-e!gg                    d.             Z"ej                            d/ e ej          e
d0#                                          de!fd1e!fd2e!fd3e!fd4e!fd-e!fg                              d5             Z$d6 Z%d7 Z&ej                            dd8 d9 d: g          d;             Z'd< Z(ej        )                    d=          ej                            d>d?dgd@fej*        dddAfg          dB                         Z+ej                            dddgdd?gg          dC             Z,ej                            dddgd?dgg          dD             Z-ej                            dEdF dG dH dI g          dJ             Z.dS )K    )chainN)SpecificationError)	DataFrameSeries
date_rangenotnaresult_typefoo   c                     |}d}t          j        t          |          5  |                    d d|            d d d            d S # 1 swxY w Y   d S )NzUinvalid value for result_type, must be one of {None, 'reduce', 'broadcast', 'expand'}matchc                 
    g dS )Nr          xs    Clib/python3.11/site-packages/pandas/tests/apply/test_invalid_arg.py<lambda>z(test_result_type_error.<locals>.<lambda>$   s
    999     r   axisr	   pytestraises
ValueErrorapply)r	   int_frame_const_coldfmsgs       r   test_result_type_errorr#      s     
B	2  
z	-	-	- G G
$$1+FFFG G G G G G G G G G G G G G G G G Gs   AAAc                      t          g dg dg dgg d          } d}t          j        t          |          5  |                     d d	           d d d            d S # 1 swxY w Y   d S )
Nr   )         )      	   )ar+   c)indexz)No axis named 2 for object type DataFramer   c                     | S Nr   r   s    r   r   z/test_apply_invalid_axis_value.<locals>.<lambda>+   s    1 r   r   r   r   r   r   r   r!   r"   s     r   test_apply_invalid_axis_valuer2   '   s    	IIIyyy)))4OOO	L	L	LB
5C	z	-	-	- ! !
a   ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! !s   AA#&A#c                      t          ddgddgd          } d}t          j        t          |          5  |                                  d d d            d S # 1 swxY w Y   d S )Nr   r   r   ABzMust provider   )r   r   r   	TypeErroraggr1   s     r   test_agg_raisesr9   .   s    	!Qq!f--	.	.B
C	y	,	,	,  
                 s   AAAc                      t          g d          } d}t          j        t          |          5  |                     d d           d d d            d S # 1 swxY w Y   d S )Nr   z)na_action must either be 'ignore' or Noner   c                     | S r/   r   r   s    r   r   z8test_map_with_invalid_na_action_raises.<locals>.<lambda><   s     r   ____	na_actionr   r   r   r   map)sr"   s     r   &test_map_with_invalid_na_action_raisesrB   7   s    yyyA
5C	z	-	-	- - -	kkV,,,- - - - - - - - - - - - - - - - - -s   AAAinput_na_actionr<   Tc                     t          g d          }d|  d}t          j        t          |          5  |                    ddi|            d d d            d S # 1 swxY w Y   d S )Nr   z+na_action must either be 'ignore' or None, z was passedr   r   r   r=   r?   )rC   rA   r"   s      r   2test_map_arg_is_dict_with_invalid_na_action_raisesrE   ?   s     	yyyA
T
T
T
TC	z	-	-	- 1 1	q!f0001 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1s   AA!Amethod)r   r8   	transformfuncr5   r6   sumc                      | ddgi          }d}t          j        t          |          5   t          ||          |           d d d            d S # 1 swxY w Y   d S )Nr5   r   nested renamer is not supportedr   )r   r   r   getattr)frame_or_seriesrF   rH   objr   s        r   test_nested_renamerrO   H   s     /3*
%
%C-E	)	7	7	7 # #VT"""# # # # # # # # # # # # # # # # # #s   AAArenamerminmaxmean)r
   barc                     t          t          d          dd          }d}t          j        t          |          5  |                    |            d d d            d S # 1 swxY w Y   d S )Nr'   int64series)dtypenamerK   r   )r   ranger   r   r   r8   )rP   rA   r"   s      r   test_series_nested_renamerr[   R   s    
 	uQxxwX666A
+C	)	5	5	5  	g                 s   A  A$'A$c                  T   t          t          j                            d                              d          g dt          dd                    } d}t          j        t          |	          5  | j	        
                    d
ddgi           d d d            d S # 1 swxY w Y   d S )Nr   )
   r   )r5   r6   Cz1/1/2000r]   )periods)columnsr-   rK   r   r
   rI   rS   )r   nprandomdefault_rngstandard_normalr   r   r   r   r5   r8   )tsdfr"   s     r   test_apply_dict_deprrf   ]   s    
	a  0099R000  D
 ,C	)	5	5	5 - -

EE6?+,,,- - - - - - - - - - - - - - - - - -s   1BB!$B!r8   rG   c                     t          t          d          dd          }d}t          j        t          |          5   t          ||           ddiddid           d d d            d S # 1 swxY w Y   d S )	Nr&   r4   rK   r   r
   rQ   rT   rR   )r   rZ   r   r   r   rL   )rF   r!   r"   s      r   test_dict_nested_renaming_deprrh   h   s    	q**	+	+B -C	)	5	5	5 H HF5%.u~FFGGGH H H H H H H H H H H H H H H H H Hs   !A++A/2A/c                     t          ddgi          }t          j        d          }t          j        t
          |          5   t          ||           |           d d d            d S # 1 swxY w Y   d S )Nr5   r   zColumn(s) ['B'] do not existr   )r   reescaper   r   KeyErrorrL   )rF   rH   rN   r   s       r   test_missing_columnrm   r   s     S1#J

CI455E	xu	-	-	- # #VT"""# # # # # # # # # # # # # # # # # #s   A))A-0A-c                      t          ddgi          } d}t          j        t          |          5  |                     t
          t          t
          d           d d d            d S # 1 swxY w Y   d S )Nr+   1z#Column\(s\) \[1, 'b'\] do not existr   )r+   r   b)r   r   r   rl   rG   intstrr1   s     r   'test_transform_mixed_column_name_dtypesrs   |   s    	C#<	 	 B
0C	xs	+	+	+ 3 3
33S112223 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3s   )A&&A*-A*z	how, args)
pct_changer   	nsmallestr+   rp   )tailr   c                     t          ddgddgd          }d|  d}t          j        t          |          5  |                    | d|	           d d d            d S # 1 swxY w Y   d S )
Nr   r   r   r%   )r+   rp   z
Operation z does not support axis=1r   )r   argsr0   )howrx   r!   r"   s       r   test_apply_str_axis_1_raisesrz      s    
 
!Qq!f--	.	.B
4s
4
4
4C	z	-	-	- ) )
14((() ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) )s   AA"%A"c                      d} t          j        t          |           5  t          dg                              dd           d d d            d S # 1 swxY w Y   d S )Nz&No axis named 1 for object type Seriesr   r   rI   r   )r   r   r   r   rG   )r"   s    r   test_transform_axis_1_raisesr}      s    
2C	z	-	-	- - -se!,,,- - - - - - - - - - - - - - - - - -s   &AAAc            
      ,   t          g dg dg dt          j                            d                              d          t          j                            d                              d          t          j                            d                              d          d          } t          j        | j        d<   d }d	 }d
}t          j        t          |          5  | 
                    |d           d d d            d S # 1 swxY w Y   d S )N)r
   r
   r
   r
   rT   rT   rT   rT   r
   r
   r
   )oner   r   twor   r   r   r   r   r   r   )dullr   shinyr   r   r   r   r   r   r   r   r      )r5   r6   r^   DEF)r%   r^   c                 ^    | d                              d          r| d         dk    rd| d<   | S Nr^   shinr5   r
   r(   r   )
startswithrows    r   rG   z.test_apply_modify_traceback.<locals>.transform   s8    s8v&& 	3s8u+<+<CH
r   c                     t          | d                   r,| d                             d          r| d         dk    rd| d<   | S r   )r   r   r   s    r   
transform2z/test_apply_modify_traceback.<locals>.transform2   sI    S?? 	s3x226:: 	s3x5?P?PCH
r   z,'float' object has no attribute 'startswith'r   r   r|   )r   ra   rb   rc   rd   nanlocr   r   AttributeErrorr   )datarG   r   r"   s       r   test_apply_modify_tracebackr      ss          &&q))99"==&&q))99"==&&q))99"==U+	
 +	
- -D^ vDHV  
  
 9C	~S	1	1	1 & &

91
%%%& & & & & & & & & & & & & & & & & &s   $D		DDzdf, func, expectedcumprodc                 .   d}t          |t                    rd nt          }t          j        ||          5  t          j        |d          5  |                     ||           d d d            n# 1 swxY w Y   d d d            d S # 1 swxY w Y   d S )Nz0can't multiply sequence by non-int of type 'str'r   zusing DataFrame.cumprodr|   )
isinstancerr   FutureWarningr   r   tmassert_produces_warningr8   )r!   rH   expectedr   r"   warns         r   "test_agg_cython_table_raises_framer      s    =CdC((;44mD	xs	+	+	+ $ $'4MNNN 	$ 	$FF4dF###	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$$ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $s5   B
A2&B
2A6	6B
9A6	:B

BBzseries, func, expectedza b cprodstdvarmedianc                 r   d}|dk    s|t           j        u s|t           j        u rd}t          |t                    rd nt
          }t          j        ||          5  t          j	        |d          5  | 
                    |           d d d            n# 1 swxY w Y   d d d            d S # 1 swxY w Y   d S )Nz?[Cc]ould not convert|can't multiply sequence by non-int of typer   z)Cannot convert \['a' 'b' 'c'\] to numericr   zis currently using Series.*)ra   	nanmedianr   r   rr   r   r   r   r   r   r8   )rW   rH   r   r"   r   s        r   #test_agg_cython_table_raises_seriesr      sA   $ MCx42<//4293D3D:dC((;44mD	xs	+	+	+  '4QRRR 	 	JJt	 	 	 	 	 	 	 	 	 	 	 	 	 	 	                 s6   B,2BB,B	B,B	B,,B03B0c                      t          dd gi          } t          j        d          }t          j        t
          |          5  |                     dd i           d d d            d S # 1 swxY w Y   d S )Nr+   zint() argument must be a stringr   c                 6    t          | j        d                   S Nr   rq   ilocr   s    r   r   z'test_agg_none_to_type.<locals>.<lambda>  s    s16!9~~ r   )r   rj   rk   r   r   r7   r8   r1   s     r   test_agg_none_to_typer     s    	C$=	!	!B
)5
6
6C	y	,	,	, 0 0
--.///0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0s   A((A,/A,c                      t          dd gi          } d}t          j        t          |          5  |                     dd i           d d d            d S # 1 swxY w Y   d S )Nr+   zargument must be ar   c                 6    t          | j        d                   S r   r   r   s    r   r   z-test_transform_none_to_type.<locals>.<lambda>  s    S^^ r   )r   r   r   r7   rG   r1   s     r   test_transform_none_to_typer     s    	C$=	!	!B
C	y	,	,	, 6 6
c3345556 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6s   AAAc                 V    t          j        ddg                              dd          S )Nr   r   )ra   arrayreshaper   s    r   r   r     s$    "(Aq6""**2q11 r   c                 
    ddgS Nr   r   r   r   s    r   r   r     s
    1a& r   c                 $    t          ddg          S r   )r   r   s    r   r   r     s    &!Q.. r   c                     | }d}t          j        t          |          5  |                    |dd           d d d            d S # 1 swxY w Y   d S )Nz2too many dims to broadcast|cannot broadcast resultr   r   	broadcastr   r   )r    rH   r!   r"   s       r   test_apply_broadcast_errorr     s     
B ?C	z	-	-	- 8 8
A;7778 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8s   AA
A
c                     d}t          j        t          |          5  t          j        d          5  |                    ddg|            d d d            n# 1 swxY w Y   d d d            d S # 1 swxY w Y   d S )Nz3cannot combine transform and aggregation operationsr   ignoreallrR   sqrtr|   r   r   r   ra   errstater8   )r   float_framer"   s      r   test_transform_and_agg_err_aggr   $  s   
?C	z	-	-	- 8 8[X&&& 	8 	8OOUFO$O777	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	88 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8s4   A2AA2A	A2!A	"A22A69A6zignore::FutureWarningz	func, msgr   z(cannot combine transform and aggregationz2cannot perform both aggregation and transformationc                     t          j        t          |          5  t          j        d          5  |                     |           d d d            n# 1 swxY w Y   d d d            d S # 1 swxY w Y   d S )Nr   r   r   r   )string_seriesrH   r"   s      r   !test_transform_and_agg_err_seriesr   ,  s     
z	-	-	- $ $[X&&& 	$ 	$d###	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$$ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $s4   A,AA,A	A,A	A,,A03A0c                     d}t          j        t          |          5  |                    ||            d d d            d S # 1 swxY w Y   d S )NFunction did not transformr   r|   )r   r   r   rG   )r   r   rH   r"   s       r   test_transform_wont_agg_framer   >  s     'C	z	-	-	- / /d.../ / / / / / / / / / / / / / / / / /s   AA
Ac                 (   d}|d         dk    rt           nd }d}t          j        t          |          5  t	          j        ||d          5  |                     |           d d d            n# 1 swxY w Y   d d d            d S # 1 swxY w Y   d S )Nr   r   r   z!invalid value encountered in sqrtr   F)r   check_stacklevel)RuntimeWarningr   r   r   r   r   rG   )r   rH   r"   r   warn_msgs        r   test_transform_wont_agg_seriesr   G  s    'C!!W..>>DD2H	z	-	-	- * *'HuUUU 	* 	*##D)))	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	** * * * * * * * * * * * * * * * * *s5   BA/#B/A3	3B6A3	7BBB
op_wrapperc                     | S r/   r   r   s    r   r   r   U  s    Q r   c                     | gS r/   r   r   s    r   r   r   U  s    1# r   c                 
    d| iS Nr5   r   r   s    r   r   r   U  s
    #q r   c                     d| giS r   r   r   s    r   r   r   U  s    cTUSVZ r   c                     ||           }t          dg di          }t          j        ||          }d}t          j        t
          |          5  |                    |           d d d            d S # 1 swxY w Y   d S )Nr5   r   r   r   )r   r   get_objr   r   r   rG   )all_reductionsrM   r   oprN   r"   s         r   test_transform_reducer_raisesr   T  s    
 
N	#	#B
S)))$
%
%C
*S/
*
*C
&C	z	-	-	-  b                 s   A44A8;A8)/	itertoolsr   rj   numpyra   r   pandas.errorsr   pandasr   r   r   r   pandas._testing_testingr   markparametrizer#   r2   r9   rB   rE   rO   r[   rf   rh   rm   rs   rz   r}   r   get_cython_table_paramsr7   r   splitr   r   r   r   r   filterwarningsr   r   r   r   r   r   r   r   <module>r      s         				      , , , , , ,                  
33	G 	G 43	G! ! !  - - - *VTN;;1 1 <;1 #@#@#@AA3e"5cE7^7L!MNN# # ON BA# eU^ueneV_MMN  	 - - - E;#788H H 98H #@#@#@AA3,ug!?@@# # A@ BA#3 3 3 ${Qc
O&DkR ) ) )- - ->& >& >&B B	C:Sz*++y).D-E  $ $ $ 	E""F7==??####	"	"9%I&
	
 
	
   
 
!  
0 0 06 6 6 
11   8 8 88 8 8 344
%DEGE**@	
	 	$ $	 	 54$ 5%.5&/!BCC/ / DC/ 5%.65/!BCC	* 	* DC	* ;;/A/ACWCWX 	 	 	 	 	r   