
    d@,                     j   d Z ddlZddlZddlmZmZ ddlZddlm	Z	m
Z
mZmZmZmZmZ ddlmZ ej                            ddddd	d
d ej        dej                            d          g          dddg
          d             Zd Zd Zd Zd Zd Zd Zej                            ddej        fdej        fd	ej         fdej!        fdej"        fdej#        fdej$        fdd fdd fg	          d             Z%ej                            ddej        fdd fd	d  fdej#        fdej$        fg          d!             Z&d" Z'ej                            d#g d$          ej                            d% ed&           ed'          g          d(                         Z(ej                            d)g d*          d+             Z)ej                            dg d,          d-             Z*ej                            d.d/d0g          ej                            d1g d2          ej                            d% ej+        g d3d45           ej+        g d3d65           ej+        g d7d85           ej+        g d7d95           ej+        g d:d;5          g          d<                                     Z,dS )=z
test cython .agg behavior
    N)is_float_dtypeis_integer_dtype)	DataFrameIndexNaTSeries	Timedelta	Timestampbdate_rangeop_namecountsumstdvarsemmeanmedianzignore::RuntimeWarning)marksprodminmaxc                 J   
 ddddddddddt           j        t           j        gddgdz  t           j                            d          d}t	          |          }t           j        |j        d	d
d	df<    fd
|                    dgd                              d          }
fd|D             }t	          d|i          }d|j        _	         
|          }t          j        ||           |                    ddg          }i }|D ]0\  \  }}}	 
|	d                   |                    |i           |<   1t	          |          j                            d          }ddg|j        _        d|_	         
|          d         } dv rt          j        ||           d S d S )Nr      g      ?AB      )r   r   C   
   r   c                 4     t          |                       S N)getattr)xr   s    f/var/www/html/t/fyr/venv311/lib/python3.11/site-packages/pandas/tests/groupby/aggregate/test_cython.py<lambda>z(test_cythonized_aggers.<locals>.<lambda>7   s    &71g&&((     )axisc                 :    i | ]\  }}| |d                    S )r    ).0catgroupops      r%   
<dictcomp>z*test_cythonized_aggers.<locals>.<dictcomp>;   s+    
9
9
9:335:
9
9
9r'   F)dropna)r   r   )npnanrandomrandnr   locdropgroupbyindexnametmassert_frame_equal
setdefaultTstacknamesassert_series_equal)r   datadfgroupedexpresultexpdcat1cat2r-   r.   s   `         @r%   test_cythonized_aggersrI      s   , Aq!Q1abfbf=3Z!^Y__R   D
 
4B&BF1R63;	(	(	(	(B ggse!g$$,,S11G
9
9
9
9
9
9
9C
S#J

CCINR[[F&#&&& jj#s$$GD& 9 9te*,"U3Z..b!!$''
D//

!
!
!
/
/CCjCIOCHR[[F/!!
vs+++++ "!r'   c                     t          t          j                            ddd          t          j                            ddd                              d          d          } |                     d          d                                         }|                     d          d                             t          j                  }t          j	        ||           d S )	Nr      2   r   boolabrO   rP   )
r   r1   r3   randintastyper7   r   aggr:   r@   )framerE   expecteds      r%   test_cython_agg_booleanrV   O   s    ""1a,,""1a,,33F;;	
 	
 E ]]3$))++F}}S!!#&**2733H68,,,,,r'   c                     t          t          j                            ddd          ddgdz  d          } d}t	          j        t          |	          5  |                     d
          d                             d           d d d            n# 1 swxY w Y   t          t          j                            ddd          ddgdz  d          } | dg                             | d
                                       d          }t          g | d
         	                                
                                g           }t          j        ||           d S )Nr   rK   rL   foobar   rN   KCannot use numeric_only=True with SeriesGroupBy.mean and non-numeric dtypesmatchrO   rP   Tnumeric_only)r8   columns)r   r1   r3   rQ   pytestraises	TypeErrorr7   r   sort_valuesdrop_duplicatesr:   r;   )rT   msgrE   rU   s       r%   test_cython_agg_nothing_to_aggrg   \   s   BI--aB77uenr>QRRSSE
WC	y	,	,	, 8 8c3$$$$7778 8 8 8 8 8 8 8 8 8 8 8 8 8 8 BI--aB77uenr>QRRSSEC5\!!%*--222EEF
%*((**::<<b  H &(+++++s   0BBBc            	      f   t          t          j                            ddd          ddgdz  t	          j        ddd	          d
          } d}t          j        t          |          5  | 	                    d          j
                            d           d d d            d S # 1 swxY w Y   d S )Nr   rK   rL   rX   rY   rZ   nowr=   )periodsfreq)rO   rP   datesr[   r\   rP   Tr^   )r   r1   r3   rQ   pd
date_rangera   rb   rc   r7   rl   r   )rT   rf   s     r%   )test_cython_agg_nothing_to_agg_with_datesro   l   s    ""1a,,"$]5"3???	
 	
 E XC	y	,	,	, 9 9c %%4%8889 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9s   */B&&B*-B*c                  z   t          g dg dd          } |                     dd                                           |                     dd                                           |                     dd                                           |                     dd                                           d S )N)r   r      )rq      rK   )r$   yr   r`   )levelr(   )r   r7   r   )rB   s    r%   test_cython_agg_frame_columnsru   y   s    	33	4	4BJJQYJ'',,...JJQYJ'',,...JJQYJ'',,...JJQYJ'',,.....r'   c                     t          g dg dt          j                            d          t          j                            d          d          } |                     d          d                             d           }t          dddd	d
d
dd	gt          ddgd          d          }t          j	        ||           d S )N)rX   rY   rX   rY   rX   rY   rX   rX   )onerw   twothreerx   rx   rw   ry      )r   r   r   Dr   r   c                 N    |                                                                  S r"   )value_countsto_dictr$   s    r%   r&   z-test_cython_agg_return_dict.<locals>.<lambda>   s    ANN,<,<,D,D,F,F r'   r   )rx   rw   ry   r   rY   rX   r9   )r8   r9   )
r   r1   r3   r4   r7   rS   r   r   r:   r@   )rB   tsrU   s      r%   test_cython_agg_return_dictr      s    	IIIMMM####		
 	

 
B 
C		!	!"F"F	G	GB1q	)	)1Q+K+KLUEN---  H
 2x(((((r'   c                     t          dd          } t          g ddz  |           }|                    d           }|                                }|                    t
          j                  }t          j        ||           d S )Nz1/1/2000rL   )rj   )r   r   r   r{   Er    r8   c                     | j         S r"   )monthr   s    r%   r&   z&test_cython_fail_agg.<locals>.<lambda>   s    17 r'   )r   r   r7   r   rS   r1   r:   r@   )drr   rC   summedrU   s        r%   test_cython_fail_aggr      s    	Z	,	,	,B	)))B.b	9	9	9Bjj**++G[[]]F{{26""H68,,,,,r'   z
op, targopfirstc                     | j         d         S Nr   ilocr   s    r%   r&   r&      s    AF1I r'   lastc                     | j         d         S )Nr   r   s    r%   r&   r&      s    16": r'   c                    t          t          j                            d                    }t          j                            ddd                              t                    }|                    |                              | d d          }|                    |          	                    |          }t          j        ||           d S )Ni  r   rL   )sizeTaltr_   )r   r1   r3   r4   rQ   rR   floatr7   _cython_agg_generalrS   r:   r;   )r.   targoprB   labelsrE   rU   s         r%   test__cython_agg_generalr      s     
29??4((	)	)BYq"40077>>FZZ33BDt3TTFzz&!!%%f--H&(+++++r'   c                 h    t          |           dk    rt          j        |           nt          j        S r   )lenr1   r   r2   r   s    r%   r&   r&      s"    SVVaZZRYq\\\RV r'   c                 .    t          j        | d          S )Nr   )ddof)r1   r   r   s    r%   r&   r&      s    "&+++ r'   c                    t          g d          }t          ddd          }|                    t          j        |d         |          |          }|                    | d d          }|                    t          j        |d         |          |          }|                    fd          }t          j        ||           d S )	N   r      r   7   rK   observedTr   c                      |           S r"   r*   )r$   r   s    r%   r&   z/test_cython_agg_empty_buckets.<locals>.<lambda>   s    vvayy r'   )	r   ranger7   rm   cutr   rS   r:   r;   )r.   r   r   rB   grpsgrE   rU   s    `      r%   test_cython_agg_empty_bucketsr      s     
<<<	 	 BB??D 	

26"Q%&&
::A""24d"CCF


26"Q%&&
::Auu(((())H&(+++++r'   c                     t          g ddg          }t          j        dddt          j                  }|                    t          j        |d         |          |                               d	d d
          }t          j        ddd          }t          dg dit          j	        |dd
                    }| r||j
        dk             }t          j        ||           |                    t          j        |d         |          |                               dd d
          }t          dg dit          j	        |dd
                    }| r||j
        dk             }t          j        ||           d S )Nr   rO   )r`   r   rZ   rK   dtyper   r   Tr      )rk   )r   r   $   r   )r9   orderedr   r   )r   r   i  r   r   )r   r1   arangeint_r7   rm   r   r   interval_rangeCategoricalIndexrO   r:   r;   )r   rB   r   rE   	intervalsrU   s         r%   $test_cython_agg_empty_buckets_nanopsr      s    
<<<#	/	/	/B9QARW---DZZr#w--ZAAUU4d V  F !!Ra000I	mmm!)#tDDD  H  -HJ!O,&(+++ ZZr#w--ZAAUUDt V  F 	ooo!)#tDDD  H  -HJ!O,&(+++++r'   r.   )r   r   r   r   rA   z2016-10-14 21:00:44.557z17088 days 21:00:44.557c                    t          ddg|t          gd          }t          ddgd          }t          d|t          gi|          }|                    d                              |           }t          j        ||           d S )Nr   r   rN   rO   r   rP   r   )r   r   r   r7   	aggregater:   r;   )r.   rA   rB   r8   rU   rE   s         r%   "test_cython_with_timestamp_and_natr      s     
!QtSk22	3	3B1a&s###E #c{+5999HZZ__&&r**F(F+++++r'   rS   )r   r   r   r   r   r   r   r   ohlccumprodcumsumshiftanyallquantiler   r   rankcummincummaxc                 d   t          g dg dd          }d|j        j        d         j        _        |                    dg                              d| i          }|                                                    dg                              d| i          }t          j	        ||           d S )N)gffffff@g@g@gffffff@g      @)setosar   r   r   r   )sepal_lengthspeciesFr   r   r   )
r   _mgrarraysflags	writeabler7   rS   copyr:   assert_equal)rS   rB   rE   rU   s       r%    test_read_only_buffer_source_aggr     s    6 
555III	
 	

 
B ).BGN1%ZZ$$((.#)>??Fwwyy  )--11>32GHHHOFH%%%%%r'   )
r   r   r   r   r   r   r   r   r   r   c                    t          ddgdz  t          j        ddddddd	d
dt          j        g
d          d          } t	          |                    d          d         |                       }|                    |d                             d                    } t	          |                    d          d         |                       }| dk    r|                    d          }t          j	        ||           d S )Nr   r   rK   r   r   rq   rr   r      rz   	   Int64r   )r   r   float64)r   r   )
r   rm   arrayNAr#   r7   assignrR   r:   r@   )r   rB   rE   df2rU   s        r%   test_cython_agg_nullable_intr   *  s    $ 
sa1aAq!Q1be<GLLL	
 	

 
B 4WRZZ__S)73355F
))bgnnY//)
0
0C6ws{{3'',g6688H' y))68,,,,,r'   with_naTFzop_name, action)	)r   	large_int)r   always_float)r   r   )r   r   )r   r   )r   preserve)r   r   )r   r   )r   r   )r   r   rq   rr   r   r   Int8)g?g?g333333?g?Float32Float64)TTFFbooleanc                 $   |rt           j        | d<   t          g d| d          }|                    d          }|dk    rt          j                    }n|dk    rLt          | j                  r| j        }nst          | j                  r| j        }nWt          j                    }nC|dk    r0t          | j                  r| j        }n!t          j                    }n|dk    r| j        } t          ||                      }|d	         j        |k    sJ |
                    |          }|d	         j        |k    sJ  t          |d	         |                      }|j        |k    sJ |d	         
                    |          }|j        |k    sJ d S )
Nrq   )rO   rO   rP   rP   )keycolr   
always_intr   r   r   r   )rm   r   r   r7   
Int64Dtyper   r   r   Float64Dtyper#   r   )rA   r   actionr   rB   rC   expected_dtyperE   s           r%   test_cython_agg_EA_known_dtypesr   M  s   :  %Q	///==	>	>BjjG	;		$*%% 	-!ZNNdj)) 	-!ZNN]__NN	>	!	!$*%% 	/!ZNN_..NN	:		&WWg&&((F%=.0000w''F%=.0000-WWU^W--//F<>))))U^%%g..F<>))))))r'   )-__doc__numpyr1   ra   pandas.core.dtypes.commonr   r   pandasrm   r   r   r   r   r	   r
   r   pandas._testing_testingr:   markparametrizeparamfilterwarningsrI   rV   rg   ro   ru   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r*   r'   r%   <module>r      s               
                             ;--.FGGH		
 	
 	
 	 (, ,) (,B
- 
- 
-, , , 
9 
9 
9/ / /) ) )(- - - 		29						%%&	%%&
 , , , 		CCD	++,			 	, ,	 	,, , ,B >>>??
YY01199=V3W3WX 	, 	,  @?	, 	   2& &3 2&     - - -( T5M22   " 
W---V,,,%%%Y777%%%Y777+++9===	 	&* &*	 	#  328&* &* &*r'   