a
    oÝEbâ—  ã                   @   sN  d dl Z d dlmZ d dlZd dlZd dlmZ d dlZ	d dlm
Z
mZmZmZmZmZ d dlmZ d dlm  mZ d dlmZ ejejejejejddgg d¢d	�d
d„ ƒZdd„ Zej  !de"e#e$g¡ej  !ddddgg¡dd„ ƒƒZ%G dd„ dƒZ&G dd„ dƒZ'dd„ Z(dd„ Z)dd„ Z*ej  !dg d¢¡ej  !d d!d"d#d#d$œd%d&d$œgifd'd"d#d%d$œd%d(d$œgifd)d"d#d#d$œd%d&d$œgifd*d"d#d%d$œd%d(d$œgifd+d#d%d$œd%d(d$œgd#gd,œfd-d#d%d$œd%d%d$œgd.d/œfg¡d0d1„ ƒƒZ+ej  !d2ed3ƒed4ƒfd5g¡d6d7„ ƒZ,ej  !d8d9d d%gd#d&gd#d%gd:œfd;d#d&gd d%gd d&gd:œfg¡ej  -d<¡d=d>„ ƒƒZ.d?d@„ Z/dAdB„ Z0dCdD„ Z1ej  !dEdFej2fdGej3fdHej4fdIej5fdJej$fdKej6fd)ej#fd*ej"fd!dLdM„ fd'dNdM„ fd-ej7fej8dOe1ej9dP�g¡dQdR„ ƒZ:dSdT„ Z;dUdV„ Z<dWdX„ Z=dYdZ„ Z>ej  !d[g d\¢g d]¢fd gd gfg¡ej  !d^d_d`g¡dadb„ ƒƒZ?ej  !dcdddeg¡dfdg„ ƒZ@dhdi„ ZAej  !d^djdkg¡ej  !dg dl¢¡dmdn„ ƒƒZBdodp„ ZCej  !d^djdkg¡ej  !dg dq¢¡ej  !drg ds¢g dt¢fg du¢g dv¢fg dw¢g dt¢fg¡dxdy„ ƒƒƒZDej  !d^djdkg¡dzd{„ ƒZEejFej  !d^djdkg¡ej  !d|d}e Gd~¡j"fdg¡d€d�„ ƒƒƒZHej  !d‚g dƒ¢g d„¢fd#d…ejId&d%ejIejI d†d‡d#ejI gg dˆ¢fd#d%ejJd&d%ejJejJd†ejI d#ejJgg d‰¢fg¡dŠd‹„ ƒZKej  !d‚g dŒ¢g d„¢fejId#ejI ejId%d�ejI d†d�ejI ejI gg dŽ¢fd#d%ejJd&d%ejJejJd†ejI d#ejJgg d‰¢fg¡d�d�„ ƒZLd‘d’„ ZMd“d”„ ZNd•d–„ ZOd—d˜„ ZPd™dš„ ZQd›dœ„ ZRd�dž„ ZSej  -dŸ¡ej  !d d¡d¢g¡d£d¤„ ƒƒZTd¥d¦„ ZUej  !d§g d¨¢d#e	jVd%d#e	jVd%d#e	jVd%g	d$œg d©¢g dª¢d$œg¡ej  !d«g d¬¢¡d­d®„ ƒƒZWd¯d°„ ZXd±d²„ ZYd³d´„ ZZdS )µé    N)ÚStringIO)ÚUnsupportedFunctionCall)Ú	DataFrameÚIndexÚ
MultiIndexÚSeriesÚ	TimestampÚ
date_range)Ú_test_decoratorsÚInt64ÚFloat64)znp.int32znp.int64z
np.float32z
np.float64r   r   )ÚparamsÚidsc                 C   s‚   | j }|}|dkrtj}n|dkr(tj}t |¡jdkrDt |¡jn
t |¡j}t |¡jdkrlt |¡j	n
t |¡j	}|||fS )zZ
    Fixture of dtypes with min and max values used for testing
    cummin and cummax
    r   r   Úi)
ÚparamÚnpÚint64Úfloat64ÚdtypeÚkindÚiinfoÚminZfinfoÚmax)Úrequestr   Znp_typeÚmin_valÚmax_val© r   úb/home/ja/django-apps/lartica_env/lib/python3.9/site-packages/pandas/tests/groupby/test_function.pyÚdtypes_for_minmax   s    	ÿ
ýÿ
ýr   c                  C   s\   t ddtjdgƒ} |  g d¢¡}| tj¡}| tj¡}| ¡ }t 	||¡ t 	||¡ d S )Nç      ð?ç       @ç      @)r   é   é   r#   )
r   r   ÚnanÚgroupbyÚaggÚbuiltinsÚsumÚapplyÚtmÚassert_series_equal)ÚsÚgroupedÚresultZresult2Úexpectedr   r   r   Útest_intercept_builtin_sum6   s    r0   ÚfÚkeysÚjimÚjoec                    sŒ  t tj ddd¡ddgd�}tj d¡|d< | | ¡}|j}| |¡}t|j	| d	�ƒ}d
|j
› d|› d�}|j
|dfks€J |ƒ‚tt|ƒ‰ |ttfv rœt}nd }d}	tj||	dd�� | ˆ ¡}
W d   ƒ n1 sÔ0    Y  t ||
¡ t d ¡�" | ‡ fdd„¡}W d   ƒ n1 �s0    Y  t ||¡ |tk�rl| |¡ ¡ }
|
j| ddd� tj||
dd� t t||ƒƒ t||ƒƒ ¡ d S )Nr"   é2   )éè  r#   r3   r4   ©Úcolumnsr6   Zjolie)Zsubsetzinvalid frame shape: z (expected (z, 3))é   z*scalar (max|min) over the entire DataFrameF)ÚmatchZcheck_stacklevelc                    s   ˆ | dd�S )Nr   ©Zaxisr   ©Úx©Znpfuncr   r   Ú<lambda>^   ó    z%test_builtins_apply.<locals>.<lambda>T)ÚinplaceÚdrop)Zcheck_dtype)r   r   ÚrandomÚrandintÚrandnr%   Ú__name__r)   ÚlenZdrop_duplicatesÚshapeÚgetattrr   r   ÚFutureWarningr*   Úassert_produces_warningÚassert_frame_equalr(   r&   Úreset_indexÚ	set_indexr+   )r2   r1   ÚdfÚgbÚfnamer.   ZngroupsZ
assert_msgÚwarnÚmsgr/   Z	expected2r   r>   r   Útest_builtins_applyA   s0    


(2
rT   c                   @   s¾   e Zd Zejdd„ ƒZej dddg¡dd„ ƒZej ddd	g¡d
d„ ƒZ	ej dddg¡dd„ ƒZ
ej dddg¡dd„ ƒZej dddg¡dd„ ƒZej dddg¡dd„ ƒZdd„ ZdS )ÚTestNumericOnlyc                 C   sh   t g d¢g d¢g d¢tdƒttdƒƒ d¡g d¢tddd	�tddd
d�tjdddd�dœ	g d¢d�}|S )N)r"   r"   r#   ©r"   r#   r9   )ç      @ç      @ç      @ÚabcÚcategory)é   é   é	   Z20130101r9   ©Úperiodsú
US/Eastern)r`   Útzz1 sr,   )r`   Úfreq)	ÚgroupÚintÚfloatÚstringÚcategory_stringÚcategory_intÚdatetimeÚ
datetimetzÚ	timedeltar7   )r   Úlistr   Úastyper	   ÚpdZtimedelta_range©ÚselfrO   r   r   r   rO   l   s    
÷ôzTestNumericOnly.dfÚmethodÚmeanÚmedianc                 C   sè   t g d¢ƒ}| d¡}tddgddgt d¡t d¡gd	d
gtdƒtdƒgtddd�tddd�gdœt ddgdd�g d¢d�}tjtdd��  t	||ƒdd�}W d   ƒ n1 s²0    Y  t 
| |¡|¡ |j}|  ||||¡ d S )N©re   rf   ri   rd   g      @r^   ç      @rY   z1.5sZ3sç      ø?r9   z2013-01-01 12:00:00z2013-01-03 00:00:00ra   ©rb   )ri   rf   rl   re   rj   rk   r"   r#   ©Úname©re   rf   ri   rj   rk   rl   ©Úindexr8   zDropping invalid©r:   F©Znumeric_only)r   r%   r   ro   Ú	Timedeltar   r*   rK   rJ   rI   rL   Zreindex_liker8   Ú_check)rq   rO   rr   Úexpected_columns_numericrP   r/   r.   Úexpected_columnsr   r   r   Útest_averagesŠ   s,    
þ

þ÷ð.zTestNumericOnly.test_averagesr   r   c                 C   s$   t g d¢ƒ}|}|  ||||¡ d S )N)re   rf   rg   ri   rj   rk   rl   ©r   r�   ©rq   rO   rr   rƒ   r‚   r   r   r   Útest_extrema²   s
    ÿzTestNumericOnly.test_extremaÚfirstÚlastc                 C   s$   t g d¢ƒ}|}|  ||||¡ d S )N)re   rf   rg   rh   ri   rj   rk   rl   r…   r†   r   r   r   Útest_first_lastÆ   s
    ÿzTestNumericOnly.test_first_lastr(   Úcumsumc                 C   s@   t g d¢ƒ}t g d¢ƒ}|dkr,t g d¢ƒ}|  ||||¡ d S )Nru   )re   rf   rg   ri   rl   r‹   )re   rf   ri   rl   r…   )rq   rO   rr   r‚   rƒ   r   r   r   Útest_sum_cumsumÙ   s    ÿzTestNumericOnly.test_sum_cumsumÚprodÚcumprodc                 C   s$   t g d¢ƒ}|}|  ||||¡ d S )Nru   r…   r†   r   r   r   Útest_prod_cumprodæ   s    z!TestNumericOnly.test_prod_cumprodÚcumminÚcummaxc                 C   s$   t g d¢ƒ}|}|  ||||¡ d S )Nr{   r…   r†   r   r   r   Útest_cummin_cummaxî   s
    ÿz"TestNumericOnly.test_cummin_cummaxc                 C   sÜ   |  d¡}d }|dv rt}n|dv r(t}tj|dd�� t||ƒƒ }W d   ƒ n1 sX0    Y  t |j|¡ d }t|ƒt|jjƒk rŒt}tj|dd��  t||ƒdd�}W d   ƒ n1 sÀ0    Y  t |j|¡ d S )Nrd   )r�   r‘   )r   r   zDropping invalid columnsr~   Fr   )	r%   rJ   r*   rK   rI   Zassert_index_equalr8   rG   Z_obj_with_exclusions)rq   rO   rr   rƒ   r‚   rP   rR   r.   r   r   r   r�   ú   s    
*.zTestNumericOnly._checkN)rF   Ú
__module__Ú__qualname__ÚpytestÚfixturerO   ÚmarkÚparametrizer„   r‡   rŠ   rŒ   r�   r’   r�   r   r   r   r   rU   i   s   

'




rU   c                   @   sn   e Zd Zejdd„ ƒZejdd„ ƒZejdd„ ƒZej 	d¡dd	„ ƒZ
ej 	d¡d
d„ ƒZdd„ Zdd„ ZdS )ÚTestGroupByNonCythonPathsc                 C   s.   t g d¢dtjdgdtjdggg d¢d�}|S )N)r"   r#   Úfoor"   Úbarr9   Zbaz©ÚAÚBÚCr7   )r   r   r$   rp   r   r   r   rO     s
    þzTestGroupByNonCythonPaths.dfc                 C   s   |  d¡}|S )Nr�   ©r%   )rq   rO   rP   r   r   r   rP   !  s    
zTestGroupByNonCythonPaths.gbc                 C   s   |j ddd�}|S )Nr�   F©Úas_indexr    )rq   rO   Úgnir   r   r   r£   &  s    zTestGroupByNonCythonPaths.gniú(ignore:.*Select only valid:FutureWarningc                 C   s>   t dgtjggdgddgd�}d|j_| ¡ }t ||¡ d S ©Nç        rž   r"   r9   ©r8   r}   r�   )r   r   r$   r}   rz   Úidxmaxr*   rL   ©rq   rP   r/   r.   r   r   r   Útest_idxmax,  s    z%TestGroupByNonCythonPaths.test_idxmaxc                 C   s>   t dgtjggdgddgd�}d|j_| ¡ }t ||¡ d S r¥   )r   r   r$   r}   rz   Úidxminr*   rL   r©   r   r   r   Útest_idxmin6  s    z%TestGroupByNonCythonPaths.test_idxminc                 C   sv   t dgtjggdgddgd�}d|j_| ¡ }t ||¡ t ddgdtjggddgddgd�}| ¡ }t ||¡ d S )Nr   rž   r"   r9   r§   r�   r¦   )r   r   r$   r}   rz   Zmadr*   rL   )rq   rP   r£   r/   r.   r   r   r   Útest_mad@  s    $z"TestGroupByNonCythonPaths.test_madc              
   C   sò   t ddgdd�}tdgg d¢gdgd ttdƒƒgd	�}td
dtjdddddgdtjtjtjtjtjtjtjgg||d�}| ¡ }t 	||¡ t
 ||jdk  ¡  ¡  ¡ j||jdk  ¡  ¡  ¡ jg¡}t ddgƒ|_| ¡ }t 	||¡ d S )Nr"   r9   r�   ry   rž   ©Úcountrs   Ústdr   ú25%ú50%ú75%r   r   r]   ©ZlevelsÚcodesr   r    r¦   r|   )r   r   rm   Úranger   r   r$   Údescriber*   rL   ro   Úconcatr�   ZunstackÚto_frameÚTr}   )rq   rO   rP   r£   Zexpected_indexZexpected_colr/   r.   r   r   r   Útest_describeK  s,    þ þúþÿz'TestGroupByNonCythonPaths.test_describeN)rF   r“   r”   r•   r–   rO   rP   r£   r—   Úfilterwarningsrª   r¬   r­   r»   r   r   r   r   r™     s   




	

	r™   c                  C   sà   t ddtjgdtjdgg d¢gg d¢d�} t dtjgtjdgddggdd	gd�}|  d
¡ ¡ }t ||¡ | jd
dd� ¡ }t ||¡ |  d
¡jdd�}| jdd�}t ||¡ |  d
¡jdd�}| jdd�}t ||¡ d S )Nr"   r#   r^   )r9   é   r^   rœ   r7   r½   rž   rŸ   r�   Fr¡   r;   )r   r   r$   r%   r‹   r*   rL   rŽ   )rO   r/   r.   r   r   r   Útest_cython_api2h  s    *&r¾   c                  C   s¸   t tj d¡ƒ} tj| jd d d…< tjjdddd� t¡}tj|d d d…< |  	|¡ 
¡ }|  	|¡ tj¡}t ||¡ t tj dd¡ƒ} |  	|¡ tj
¡}|  	|¡ 
¡ }t ||¡ d S )Nr6   r#   r   r5   ©Úsizeé   é   )r   r   rC   rE   r$   ÚvaluesrD   rn   rf   r%   rt   r&   ÚnanopsZ	nanmedianr*   rL   )rO   Úlabelsr.   ÚexpÚrsZxpr   r   r   Útest_cython_median  s    rÈ   c                 C   sj   t tj ddd¡ƒ}tdddƒ}t |d |¡}|j|| d� ¡ }|j|| d� 	dd„ ¡}t
 ||¡ d S )	Nr   é,   éô  é7   rÂ   )Úobservedc                 S   s   |   ¡ S ©N)rt   r<   r   r   r   r?   —  r@   z(test_median_empty_bins.<locals>.<lambda>)r   r   rC   rD   r¶   ro   Úcutr%   rt   r&   r*   rL   )rÌ   rO   ZgrpsZbinsr.   r/   r   r   r   Útest_median_empty_bins�  s    rÏ   r   )Zint8Zint16Úint32r   Úfloat32r   Úuint64zmethod,datarˆ   rO   r"   ©ÚaÚbr#   r9   r‰   r½   r   r   Únth)rO   Úargsr¯   r   )rO   Úout_typec           	      C   s¸   t dddœdddœdddœdddœgƒ}|j | ¡|d< d|vrHg |d< d|v rZ|d }n| }|d	 }t |ƒ}|j |¡|d< |jd
dd� | d
¡}t||ƒ|d Ž }t ||¡ d S )Nr"   rÓ   r#   r9   r½   rÕ   r×   rØ   rO   rÔ   T)rA   )r   rÕ   rn   rN   r%   rI   r*   rL   )	r   rr   ÚdatarO   rØ   rÆ   Zdf_outZgrpdÚtr   r   r   Ú%test_groupby_non_arithmetic_agg_types›  s     "ÿ

rÛ   r   z2011-01-15 12:50:28.502376z2011-01-20 12:50:28.593448)l    m;-L¼l    m;-L¼c                 C   s¼   t d| d dœd| d dœgƒ}d| d id| d id| d id| d i| d dgdœddidœ}| ¡ D ]L\}}d|vr‚g |d< | d	¡}t||ƒ|d Ž }|jd j|d ksjJ ‚qjd S )
Nr"   r   rÓ   r/   )r/   r×   r#   )rˆ   r‰   r   r   rÖ   r¯   r×   rÔ   )r   Úitemsr%   rI   ÚilocrÕ   )r   rO   Zgrp_exprr   rÙ   r-   Úresr   r   r   Ú2test_groupby_non_arithmetic_agg_int_like_precisionÄ  s     



ú	
rß   zfunc, valuesr«   )Úc_intÚc_floatÚc_dater¨   r¤   c                 C   s  t g d¢g d¢g d¢g d¢dœƒ}t |d ¡|d< |d j d¡|d< |d |d jd	  |d
< |d j d¡|d< |d  d¡|d< |d  d¡|d< t| 	d¡| ƒƒ }t |t
ddgdd�d�}|d |d< |d |d
< |d |d< |d |d< |d |d< t ||¡ d S )N)r�   r�   rž   rž   )r"   r#   r9   r½   )g®Gáz@g=
×£p=@gR¸…ëQ @gÍÌÌÌÌÌð?)Z2019Z2018Z2016Z2017)rz   rà   rá   râ   râ   z
US/PacificZ	c_date_tzr   Zc_timedeltaÚWZc_periodrà   r   Z	c_Integerrá   r   Z
c_Floatingrz   r�   rž   ry   ©r}   )r   ro   Úto_datetimeÚdtZtz_localizerÝ   Z	to_periodrn   rI   r%   r   r*   rL   )ÚfuncrÃ   rO   r.   r/   r   r   r   Ú$test_idxmin_idxmax_returns_int_typeså  s*    
üÿrè   c                  C   sØ   t tj dd¡g d¢d�} g d¢| d< |  d¡}|jdd�}| jd d …dd …f jdd�}|j d¡}t	 
|| | d¡¡ td	dd
�| d< |  d¡}d}tjt|d�� |jdd� W d   ƒ n1 sÊ0    Y  d S )Né
   r½   ©r�   rž   rŸ   ÚDr7   )
r"   r#   r9   r"   r#   r9   r"   r#   r9   r½   r�   r"   r;   z
2016-01-01r_   ÚEz7reduction operation 'argmax' not allowed for this dtyper~   )r   r   rC   rE   r%   r¨   rÝ   r}   Zget_level_valuesr*   r+   Z	droplevelr	   r•   ÚraisesÚ	TypeError)rO   rP   rÞ   ZaltZindexerZgb2rS   r   r   r   Útest_idxmin_idxmax_axis1
  s    

rï   c                  C   s¶   t dgd ddœƒ} |  d¡d  ¡ }|  d¡d  dd„ ¡}d|_t ||¡ t dgd	 ddœƒ} |  d¡d  ¡ }| d  t¡| d< |  d¡d  d
d„ ¡}d|_t ||¡ d S )NrÕ   ré   r#   )ÚkeyÚvaluerð   rñ   c                 S   s   |   ¡ S rÍ   ©rŽ   r<   r   r   r   r?   $  r@   z&test_groupby_cumprod.<locals>.<lambda>éd   c                 S   s   |   ¡ S rÍ   rò   r<   r   r   r   r?   -  r@   )	r   r%   rŽ   r)   rz   r*   r+   rn   rf   )rO   Úactualr/   r   r   r   Útest_groupby_cumprod  s    rõ   c                  O   s   ddl m} || ddi|¤ŽS )Nr   )ÚsemZddofr"   )Zscipy.statsrö   )r×   Úkwargsrö   r   r   r   Ú	scipy_sem2  s    rø   z	op,targoprs   rt   r°   Úvarr(   r�   c                 C   s
   | j d S )Nr   ©rÝ   r<   r   r   r   r?   C  r@   r?   c                 C   s
   | j d S )Néÿÿÿÿrú   r<   r   r   r   r?   D  r@   rö   )Zmarksc                 C   sZ   t tj d¡ƒ}tjjdddd� t¡}t| |¡| ƒƒ }| |¡ 	|¡}t
 ||¡ d S )Nr6   r   r5   r¿   )r   r   rC   rE   rD   rn   rf   rI   r%   r&   r*   rL   )ÚopZtargoprO   rÅ   r.   r/   r   r   r   Útest_ops_general8  s
    rý   c                  C   sd   d} t jt| ƒdgd�}| d¡}|dg  ¡ }|d  ¡  ¡ }t ||¡ |d  ¡  	¡ r`J ‚d S )Nz,Date,app,File
-04-23,2013-04-23 00:00:00,,log080001.log
-05-06,2013-05-06 00:00:00,,log.log
-05-07,2013-05-07 00:00:00,OE,xlsxr   )Zparse_datesÚDateÚFile)
ro   Zread_csvr   r%   r   r¹   r*   rL   ZisnaÚany)ÚrawrO   rP   ÚrÚer   r   r   Útest_max_nan_bugR  s    
r  c                  C   s¬   t g d¢ƒ} t tdƒƒ}|  |¡}| d¡}t g d¢t tdƒg d¢g¡d�}t ||¡ t g d¢ƒ} |  |¡}t g d	¢t tdƒg d
¢g¡d�}t |jddd�|¡ d S )N©
r"   r9   rÂ   r\   r#   r^   r   r½   é   ré   Ú
aaaaabbbbbr9   )r\   rÂ   r9   ré   r^   r  Úaaabbb)r9   r#   r"   r^   rÂ   r]   rä   ©
r"   r"   r9   r#   r   r9   r9   r#   r"   r   )r9   r#   r"   r9   r9   r#   )r#   r9   r"   r  rÂ   r\   r‰   ©Zkeep)r   rm   r%   Únlargestr   Úfrom_arraysr*   r+   ©rÔ   rÕ   rP   r  r  r   r   r   Útest_nlargest`  s     

þ
þr  c            	      C   s4  t j d¡} tddd�}|ddgg}tj|ddgd	�}t|  d
¡|d�}| d¡ 	d¡}tj
|d |d df|d |d df|d |d df|d |d df|d |d df|d |d df|d |d df|d |d df|d |d df|d |d dfg
g d¢d	�}g d¢}t||d�}tj||ddd� d S )NiÍ[Z20180101ré   r_   ÚoneÚtworˆ   Úsecond)Únamesé   rä   r"   r   r#   r9   r½   rÂ   r  r\   r]   r^   )rˆ   rˆ   r  )
g-rö´@g-µ`¦wý?g@Ñf¡|ë?gé‡p—¿ö?g=±J-î?g©],l;óà?g]£f˜$žê?gM8r‰ ë¿gÅ«­4YØ?g¯
F;±é¿Fgü©ñÒMbP?)Úcheck_exactZrtol)r   rC   ZRandomStater	   r   Zfrom_productr   rE   r%   r  Úfrom_tuplesr*   r+   )	ZnprÚdtsÚ	iterablesÚidxr,   r.   Zexp_idxZ
exp_valuesr/   r   r   r   Útest_nlargest_mi_groupert  s.    öór  c                  C   s¬   t g d¢ƒ} t tdƒƒ}|  |¡}| d¡}t g d¢t tdƒg d¢g¡d�}t ||¡ t g d¢ƒ} |  |¡}t g d	¢t tdƒg d
¢g¡d�}t |jddd�|¡ d S )Nr  r  r9   )r"   r#   r9   r   r½   r  r  )r   r½   r"   r  r\   r]   rä   r	  )r   r"   r"   r   r"   r#   )r½   r"   r   r^   r]   r\   r‰   r
  )r   rm   r%   Ú	nsmallestr   r  r*   r+   r  r   r   r   Útest_nsmallest¡  s     

þ
þr  zdata, groups)r   r"   r#   r9   )r   r   r"   r"   rr   r  r  c                 C   s`   |dkrt t| ƒƒ} t| dd�}t| |¡|ƒdd�}t| t ||jg¡dd�}t 	||¡ d S )Nr  rÔ   ry   r#   )Ún©r}   rz   )
rm   Úreversedr   rI   r%   r   r  r}   r*   r+   )rÙ   Úgroupsrr   Zserr.   r/   r   r   r   Útest_nlargest_and_smallest_noopµ  s    	r   rç   rŽ   r‹   c                 C   s¦   t g d¢g d¢dœƒ}| d¡}d}tjt|d��" t|| ƒddd	ƒ W d   ƒ n1 sZ0    Y  tjt|d��  t|| ƒdd
� W d   ƒ n1 s˜0    Y  d S )N©r"   r#   r"   rV   ©r�   rž   r�   z+numpy operations are not valid with groupbyr~   r"   r#   r9   )rš   )r   r%   r•   rí   r   rI   )rç   rO   ÚgrS   r   r   r   Útest_numpy_compatÆ  s    
0r$  c              
   C   s,  | d }| d }t g d¢g d¢dœƒ}g d¢}| |¡}t d|iƒ |¡}| d¡ ¡ }t ||¡ | d¡j d	d
„ ¡ ¡ }t ||¡ ||j	ddgdf< |d |j	ddgdf< ||j	g d¢df< |d |j	ddgdf< | d¡ ¡ }tj||dd� | d¡j dd
„ ¡ ¡ }tj||dd� t
j|j	g d¢df< t dt
jdt
jdt
jdt
jdgiƒ}| d¡ ¡ }t ||¡ | d¡j dd
„ ¡ ¡ }t ||¡ t dgt dg¡dœƒ}tt d¡dgdd�}| d¡d  ¡ }t ||¡ t g d¢g d¢dœƒ}| d¡j ¡ }tg d¢dd�}t ||¡ d S )Nr   r"   ©r"   r"   r"   r"   r#   r#   r#   r#   ©r9   r½   r9   r#   r#   r9   r#   r"   r"  )r9   r9   r9   r#   r#   r#   r#   r"   rž   r�   c                 S   s   |   ¡ S rÍ   ©r�   r<   r   r   r   r?   á  r@   ztest_cummin.<locals>.<lambda>r#   r  rÂ   ©r#   r9   r  r\   T)r  c                 S   s   |   ¡ S rÍ   r'  r<   r   r   r   r?   ë  r@   ©r   r#   r½   r  r½   r9   c                 S   s   |   ¡ S rÍ   r'  r<   r   r   r   r?   ó  r@   Ú2001rÓ   rÕ   r  rÔ   r!  )r"   r#   r#   ry   )r   rn   r%   r�   r*   rL   rž   r)   r¹   Úlocr   r$   ro   rå   r   r+   rÕ   )r   r   r   Úbase_dfZexpected_minsrO   r/   r.   r   r   r   Útest_cumminÔ  s@    
$r-  r�   r‘   )ÚUInt64r   r   rf   Úbooleanc                 C   sŠ   t g d¢tjgd dœƒ}|d  |¡|d< | d¡}t dtjgd i|d�}t|| ƒƒ }t ||¡ t|d | ƒƒ  ¡ }t ||¡ d S )Nr%  r]   r"  rž   r�   ©r   )	r   r   r$   rn   r%   rI   r*   rL   r¹   )rr   r   r,  r-   r/   r.   r   r   r   Útest_cummin_max_all_nan_column  s    
r1  c              
   C   sø  | d }| d }t g d¢g d¢dœƒ}g d¢}| |¡}t d|iƒ |¡}| d¡ ¡ }t ||¡ | d¡j d	d
„ ¡ ¡ }t ||¡ ||j	ddgdf< ||j	g d¢df< | d¡ ¡ }t ||¡ | d¡j dd
„ ¡ ¡ }t ||¡ t
j|j	g d¢df< t dt
jdt
jdt
jdt
jdgiƒ}| d¡ ¡ }t ||¡ | d¡j dd
„ ¡ ¡ }t ||¡ t dgt dg¡dœƒ}tt d¡dgdd�}| d¡d  ¡ }t ||¡ t g d¢g d¢dœƒ}| d¡j ¡ }tg d¢dd�}t ||¡ d S )Nr   r#   r%  r&  r"  )r9   r½   r½   r½   r#   r9   r9   r9   rž   r�   c                 S   s   |   ¡ S rÍ   ©r‘   r<   r   r   r   r?      r@   ztest_cummax.<locals>.<lambda>r  r(  c                 S   s   |   ¡ S rÍ   r2  r<   r   r   r   r?   (  r@   r)  r½   r9   c                 S   s   |   ¡ S rÍ   r2  r<   r   r   r   r?   0  r@   r"   r*  rÓ   rÕ   r  rÔ   r!  )r#   r"   r"   )r#   r"   r#   ry   )r   rn   r%   r‘   r*   rL   rž   r)   r¹   r+  r   r$   ro   rå   r   r+   rÕ   )r   r   r   r,  Zexpected_maxsrO   r/   r.   r   r   r   Útest_cummax  s<    
$r3  )rf   r   r   zgroups,expected_data©r"   r"   r"   )r"   NNrV   ©r"   Nr#   )r"   r9   r9   c                 C   sT   t dtg d¢|d�iƒ}| |¡d }t|| ƒdd�}t||dd�}t ||¡ d S )NrÔ   r5  r0  F©Zskipna)r   rz   )r   r   r%   rI   r*   r+   )rr   r   r  Zexpected_datarO   rP   r.   r/   r   r   r   Útest_cummin_max_skipnaA  s
    r7  c                 C   sn   t tjddgg d¢dœƒ}| g d¢¡ddg }t|| ƒdd�}t tjtjtjgg d¢dœƒ}t ||¡ d S )	Nr    )r    r    r    rÓ   r4  rÔ   rÕ   Fr6  )r   r   r$   r%   rI   r*   rL   )rr   rO   rP   r.   r/   r   r   r   Ú$test_cummin_max_skipna_multiple_colsV  s
    r8  z	dtype,valr.  rÒ   )r   l         c                 C   sT   |t jg}tddg|dœ|d�}| d¡}| | ¡}td|i|d�}t ||¡ d S )Nr"   )ÚgrprÕ   r0  r9  rÕ   )ro   ÚNAr   r%   Z	transformr*   rL   )rr   r   ÚvalrÙ   rO   r-   r.   r/   r   r   r   Ú#test_nullable_int_not_cast_as_floatb  s    


r<  zin_vals, out_vals)r"   r#   rÂ   r9   r#   r   r½   rÂ   iúÿÿÿr"   r"   )TFFTgÍÌÌÌÌÌ @rÂ   é   )TFTF)FFFFc                 C   s|   g d¢g d¢| dœ}t |ƒ}| d¡jj}ttdƒdd�}t||dd�}t ||¡ | dg¡j 	d	d
„ ¡}t ||¡ d S )N©Ú1Ú2Ú3Ú4Ú5Ú6Ú7Ú8Ú9Ú10Z11©rÔ   rÔ   rÔ   rÕ   rÕ   rÕ   ÚcrJ  rJ  ÚdrK  rœ   rž   Úabcdry   rŸ   ©r}   rÙ   rz   c                 S   s   | j S rÍ   )Úis_monotonic_increasingr<   r   r   r   r?   ’  r@   z.test_is_monotonic_increasing.<locals>.<lambda>)
r   r%   rŸ   rN  r   rm   r   r*   r+   r)   ©Zin_valsZout_valsZsource_dictrO   r.   r}   r/   r   r   r   Útest_is_monotonic_increasingr  s    ýrP  )ré   r^   r\   r9   r½   rÂ   éýÿÿÿr#   r   r"   r"   rQ  )TTFTc                 C   sX   g d¢g d¢| dœ}t |ƒ}| d¡jj}ttdƒdd�}t||dd�}t ||¡ d S )	Nr>  rI  rœ   rž   rL  ry   rŸ   rM  )	r   r%   rŸ   Zis_monotonic_decreasingr   rm   r   r*   r+   rO  r   r   r   Útest_is_monotonic_decreasing–  s    ýrR  c                 C   s   | j dd�}| ¡  d S )Nrˆ   )Úlevel)r%   r·   )Zmframer-   r   r   r   Útest_apply_describe_bug»  s    rT  c                  C   sr   t  ¡ } |  dd„ dd„ g¡}| ¡ }t j|d | ¡ dd� t j|d | ¡ dd� t j|d | ¡ dd� d S )	Nc                 S   s   | j S rÍ   ©Úyearr<   r   r   r   r?   Â  r@   z/test_series_describe_multikey.<locals>.<lambda>c                 S   s   | j S rÍ   ©Úmonthr<   r   r   r   r?   Â  r@   rs   F)Zcheck_namesr°   r   )r*   ÚmakeTimeSeriesr%   r·   r+   rs   r°   r   )Útsr-   r.   r   r   r   Útest_series_describe_multikeyÀ  s    r[  c                  C   s@   t  ¡ } |  dd„ ¡}| dd„ ¡}| ¡  ¡ }t  ||¡ d S )Nc                 S   s   | j S rÍ   rW  r<   r   r   r   r?   Ë  r@   z-test_series_describe_single.<locals>.<lambda>c                 S   s   |   ¡ S rÍ   )r·   r<   r   r   r   r?   Ì  r@   )r*   rY  r%   r)   r·   Ústackr+   )rZ  r-   r.   r/   r   r   r   Útest_series_describe_singleÉ  s
    r]  c                 C   s@   | j d d …dgf  | d ¡}| dd„ ¡}|jjdks<J ‚d S )NrŸ   r�   c                 S   s   |   ¡ S rÍ   )rs   r<   r   r   r   r?   Ó  r@   z(test_series_index_name.<locals>.<lambda>)r+  r%   r&   r}   rz   )rO   r-   r.   r   r   r   Útest_series_index_nameÑ  s    r^  c           	      C   sÖ   |   dd„ dd„ g¡}| ¡ }g }| D ]Z}||  ¡ }t|g|jgdgt|jƒ tt|jƒƒgd�}t|j||jd�}| 	|¡ q&t
j|dd�}t ||¡ | j ddddd	œdd�}| ¡ }|  ¡ j}t ||¡ d S )
Nc                 S   s   | j S rÍ   rU  r<   r   r   r   r?   Ø  r@   z.test_frame_describe_multikey.<locals>.<lambda>c                 S   s   | j S rÍ   rW  r<   r   r   r   r?   Ø  r@   r   r´   r§   r"   r;   rê   )r%   r·   r   r8   rG   r¶   r   rÃ   r}   Úappendro   r¸   r*   rL   rº   )	Ztsframer-   r.   Zdesc_groupsÚcolrd   Z	group_colr/   ZgroupedTr   r   r   Útest_frame_describe_multikey×  s"    
þ
ra  c                  C   sÈ   t g d¢d g d¢d g d¢d dœƒ} g d¢d | d< | jdd	id
�}d}tjt|d�� |  d¡ ¡  W d   ƒ n1 s~0    Y  tjt|d�� | d	¡ ¡  W d   ƒ n1 sº0    Y  d S )N)r"   r#   r9   r½   rÂ   r9   )ré   r  é   é(   r5   )ró   éÈ   i,  i�  rÊ   )r=   ÚyÚz))r   r   r"   )r   r"   r   )r"   r   r   rÂ   Úkrð   r7   z*Names should be list-like for a MultiIndexr~   )r   Úrenamer•   rí   Ú
ValueErrorr%   r·   )Zdf1Zdf2rS   r   r   r   Útest_frame_describe_tupleindexí  s    


ýÿ,rj  c                  C   sÐ   t dd d�dt dd d�dt dd d�di} t dd d�dt dd d�dt dd d�d	i}t| |d
œƒ}| d¡j ¡ }||jdk j ¡ j ¡ ||jdk j ¡ j ¡ g}t|tddgdd�g d¢d�}t	 
||¡ d S )Nz2011-01-06 10:59:05rx   iža  z2011-01-06 12:43:33i›c  z2011-01-06 12:54:09i /hYl    rT i áõ)ÚPRICEÚVOLUMErk  ry   r®   r|   )r   r   r%   rl  r·   rk  rÃ   Útolistr   r*   rL   )ZpricesZvolumesrO   r.   rÙ   r/   r   r   r   Ú$test_frame_describe_unstacked_format   s&    ýýþýrn  zZignore:indexing past lexsort depth may impact performance:pandas.errors.PerformanceWarningr¢   TFc                 C   s¢   t g d¢g d¢g d¢dœg d¢dd�}t  g d¢¡ d	d
g¡j}d d g|j_tddgdd�|_| rt|jdgd	d�}n|j	dd�}|j
d| d� ¡ }t ||¡ d S )N)éc   ro  ro  éX   rp  rp  )r"   r#   r9   r½   rÂ   r  )ré   r  rb  rc  r5   é<   ©rÔ   rÕ   rJ  )rÔ   rÕ   rÕ   F)r8   Úcopy))rÔ   r¯   r!   r!   )rÔ   rs   ç      V@ç     ÀX@)rÔ   r°   r¦   r¦   )rÔ   r   rt  ru  )rÔ   r±   rt  ru  )rÔ   r²   rt  ru  )rÔ   r³   rt  ru  )rÔ   r   rt  ru  ©rÕ   r¯   r!   r!   ©rÕ   rs   rX   r    ©rÕ   r°   r   r   ©rÕ   r   rW   r   ©rÕ   r±   rv   rw   ©rÕ   r²   rX   r    ©rÕ   r³   g      @g      @©rÕ   r   rY   r!   rv  rw  rx  ry  rz  r{  r|  r}  r   r"   rp  ro  rÔ   ry   )r8   rS  T)rB   r¡   )r   Zfrom_recordsrN   rº   r8   r  r   r}   rB   rM   r%   r·   r*   rL   )r¢   rO   r/   r.   r   r   r   Ú0test_describe_with_duplicate_output_column_names  s*    ýùÿäÿ r~  c                  C   s8   t g d¢g d¢dœƒ} |  d¡d  ¡ d dks4J ‚d S )N)r�   r�   r�   r�   r�   )ij  i�  io  i`  l    @Ü~ÿÿ )ÚuserÚconnectionsr  r€  r�   l    ,fÌL™ )r   r%   rs   )rO   r   r   r   Útest_groupby_mean_no_overflowY  s    þÿr�  rÃ   )	r"   r"   r"   r#   r#   r#   r9   r9   r9   )r"   r"   r#   r#   r9   r9   )r"   r#   r"   r#   r"   r#   Úfunction)rs   rt   rù   c                 C   sº   |dkrdnd}t j|gd td�}tg d¢ddd	�}td
|i|d� d¡}t| dd� d¡}t||ƒƒ }t 	||¡ | 
|¡}t 	||¡ | 
|g¡}t d
|fg¡|_t 	||¡ d S )Nrù   g      à?rw   r9   r0  rV   rÔ   r   ©rz   r   rÕ   rä   r   )r   Úarrayrf   r   r   rn   r%   rI   r*   rL   r&   r   r  r8   )rÃ   r‚  ÚoutputZarrr  r/   r  r.   r   r   r   Ú,test_apply_to_nullable_integer_returns_floatd  s    
r†  c                  C   s°   t g d¢g d¢g d¢dœdd�} |  d¡}tg d¢ddd�}|d jdd	�}ttjgd
 d|dd�}t ||¡ |jdd	�}t tjgd
 tjgd
 dœd|d�}t 	||¡ d S )N)r   r"   r#   rr  r   r0  rÔ   rƒ  rÕ   r#   ©Z	min_countr9   )r   r}   rz   )rÕ   rJ  )r   r}   )
r   r%   r   r(   r   ro   r:  r*   r+   rL   )rO   r-   r  r.   r/   r   r   r   Ú0test_groupby_sum_below_mincount_nullable_integerƒ  s     
$rˆ  c                  C   sf   t t tdƒ¡ddgd dœƒ} |  d¡d  ¡ }tt ddg¡dtddgdd	�d
�}t 	||¡ d S )Nré   r�   rž   rÂ   )ÚtimeÚcatrŠ  r‰  r½   ry   )rz   r}   )
r   ro   Zto_timedeltar¶   r%   rs   r   r   r*   r+   )rO   r.   r/   r   r   r   Útest_mean_on_timedelta’  s     ÿr‹  c                  C   sÌ   t g d¢t d¡t d¡t d¡tjgdœƒ} tjdd�}|  d¡}| ¡ }t d	||gitd
dgdd�d�}t ||¡ |d	  ¡ }t 	||d	 ¡ |d	 jdd�}t
|tjgdd	|jd�}t 	||¡ d S )N)r"   r"   r#   r#   Z1dZ2dZ3drÓ   r9   )ÚdaysrÔ   rÕ   r"   r#   ry   rä   r‡  zm8[ns])r   rz   r}   )r   ro   r€   ZNaTr%   r(   r   r*   rL   r+   r   r}   )rO   Ztd3rP   rÞ   r/   r   r   r   Ú#test_groupby_sum_timedelta_with_natœ  s    þÿ
 r�  )[r'   Úior   Únumpyr   r•   Zpandas.errorsr   Zpandasro   r   r   r   r   r   r	   Zpandas._testingZ_testingr*   Zpandas.core.nanopsÚcorerÄ   Zpandas.utilr
   Útdr–   rÐ   r   rÑ   r   r   r0   r—   r˜   r   r   r(   rT   rU   r™   r¾   rÈ   rÏ   rÛ   rß   r¼   rè   rï   rõ   rø   rs   rt   r°   rù   r�   rÀ   r   Zskip_if_no_scipyrý   r  r  r  r  r   r$  r-  r1  r3  r7  r8  Zskip_if_32bitr   r<  Úinfr$   rP  rR  rT  r[  r]  r^  ra  rj  rn  r~  r�  r:  r†  rˆ  r‹  r�  r   r   r   r   Ú<module>   s@   þ
& -Sÿúþþûþ

þþ


ôþ
	-þ
0.ýþ
ÿ$þ$þöþ
,þ$þöþ
	ÿ9þûþ

