a
    é´«j¤8  ã                   @   sR   d dl Zd dlZd dlZd dlmZmZmZmZm	Z	 d dl
mZ G dd„ dƒZdS )é    N)ÚCategoricalÚ	DataFrameÚSeriesÚ	TimestampÚ
date_rangec                   @   s²   e Zd Zdd„ Zdd„ Zdd„ Zdd„ Zd	d
„ Zdd„ Zdd„ Z	dd„ Z
dd„ Zdd„ Zdd„ Zdd„ Zdd„ Zej dddddgddgg¡dd „ ƒZd!d"„ Zd#d$„ Zd%d&„ Zd'S )(ÚTestDataFrameDescribec              
   C   s�   t g d¢g d¢g d¢dœƒ}| ¡ }t ddd|j ¡ dd	dd
dgig d¢d�}t ||¡ |jdgd�}t dg d¢ig d¢d�}t ||¡ d S )N)ÚaÚbÚcÚdÚe)TTFFF©é
   é   é   é(   é2   )Zstring_dataÚ	bool_dataÚint_datar   é   r   r   r   r   r   ©ÚcountÚmeanÚstdÚminú25%ú50%ú75%Úmax©ÚindexÚbool©Úincluder   )r   é   Fé   ©r   ÚuniqueÚtopÚfreq)r   Údescriber   r   ÚtmÚassert_frame_equal©ÚselfÚdfÚresultÚexpected© r2   úg/var/www/html/laksyashrimp/venv/lib/python3.9/site-packages/pandas/tests/frame/methods/test_describe.pyÚ!test_describe_bool_in_mixed_frame   s"    ýÿ
þÿz7TestDataFrameDescribe.test_describe_bool_in_mixed_framec                 C   sl   t dd d gitd�}| ¡ }t dddtjtjgitg d¢d�}t ||¡ |jd d…  ¡ }t ||¡ d S )NÚA©Údtyper   r&   )r7   r    )r   Úobjectr*   ÚnpÚnanr+   r,   Úilocr-   r2   r2   r3   Útest_describe_empty_object*   s    ýz0TestDataFrameDescribe.test_describe_empty_objectc              
   C   sè   t g d¢g d¢dœƒ}| ¡ }t g d¢g d¢dœg d¢d�}t ||¡ t g d¢g d	¢d
œƒ}| ¡ }t ddd|j ¡ dddddgig d¢d�}t ||¡ t g d¢g d¢dœƒ}| ¡ }t g d¢g d¢dœg d¢d�}t ||¡ d S )N)FFTT)FTTT)Zbool_data_1Zbool_data_2)é   r$   Fr$   )r=   r$   Tr%   r&   r   )FFTTF)r   é   r$   r%   r=   )r   r   r   r   r$   r   r>   r%   r=   r   )r   r	   r
   r   )r   Zstr_data)r=   r%   r   r$   )r   r*   r+   r,   r   r   r-   r2   r2   r3   Útest_describe_bool_frame8   s>    þÿþþÿþÿþz.TestDataFrameDescribe.test_describe_bool_framec           	      C   s  t dtj d¡ ddd¡iƒ}dd„ tdddƒD ƒ}t||ƒ}|jdgd	d
�}tj	|j
tdddƒd|d�|d< |}| ¡ }t|jƒdksŒJ ‚tg d¢g d¢d	d�}t|ƒ}| ¡ }tg d¢g d¢d�}t ||¡ ttg d¢ƒƒ}t |g d¢dœƒ}| ¡ }t |d j|d j¡ d S )NÚvaluer$   r   i'  éd   c                 S   s   g | ]}|› d |d › �‘qS )z - ió  r2   )Ú.0Úir2   r2   r3   Ú
<listcomp>`   ó    zCTestDataFrameDescribe.test_describe_categorical.<locals>.<listcomp>iô  T)ZbyZ	ascendingi)  F)ÚrightÚlabelsZvalue_groupr>   )r   r	   r	   r	   ©r   r	   r
   )Ú
categoriesÚordered)r=   r$   r	   r%   r&   r   )r   r	   r
   r
   )ÚcatÚsrK   rL   )r   r9   ÚrandomZdefault_rngZintegersÚranger   Zsort_valuesÚpdÚcutr@   r*   ÚlenÚcolumnsr   r+   Zassert_series_equalZassert_numpy_array_equalÚvalues)	r.   r/   rG   Z
cat_labelsrK   r0   rL   r1   Zdf3r2   r2   r3   Útest_describe_categorical^   s*    
ÿ
ÿz/TestDataFrameDescribe.test_describe_categoricalc                 C   sr   t dtg ƒiƒ}| ¡ }t dddtjtjgig d¢dd�}t ||¡ t |jd ¡sZJ ‚t |jd ¡snJ ‚d S )NZ	empty_colr   r&   r8   ©r    r7   )r$   r   )r%   r   )	r   r   r*   r9   r:   r+   r,   Úisnanr;   r-   r2   r2   r3   Ú&test_describe_empty_categorical_column}   s    ýz<TestDataFrameDescribe.test_describe_empty_categorical_columnc              
   C   s¾   t jg d¢ddd�}tg d¢g d¢g d¢dœ|d�}| ¡ }t jdd	gg d¢ddd
�}tdd|j ¡ dddddgdd|j ¡ dddddgdœg d¢|d�}t ||¡ t 	|j
j|j
j¡ d S )N)Úint1Úint2ÚobjTÚXXX)rJ   Únamer   ©r5   r   NÚXr>   )rR   rX   rY   )rI   rJ   r\   r   r   r   r   r   r   )rX   rY   r   )r    rR   )rO   ZCategoricalIndexr   r*   rX   r   rY   r+   r,   Zassert_categorical_equalrR   rS   ©r.   rR   r/   r0   Zexp_columnsr1   r2   r2   r3   Ú!test_describe_categorical_columns�   s0    ýúüþú	z7TestDataFrameDescribe.test_describe_categorical_columnsc              
   C   sê   t jg d¢dddd�}tg d¢g d¢g d¢dœƒ}||_| ¡ }t jd	d
gdddd�}tdd|jd d …df  ¡ dddddgdd|jd d …df  ¡ dddddgdœg d¢d�}||_t ||¡ |jj	dksÒJ ‚|jj
|jj
ksæJ ‚d S )N)ú
2011-01-01ú
2011-02-01z
2011-03-01ZMSz
US/Easternr[   )r)   Útzr\   r   r]   )r   r>   r$   ra   rb   r   r   r   r   r   r   r   r>   )r   r>   r   r   )rO   ZDatetimeIndexr   rR   r*   r;   r   r+   r,   r)   rc   r_   r2   r2   r3   Útest_describe_datetime_columns¬   s6    üýÿÿ$$þûz4TestDataFrameDescribe.test_describe_datetime_columnsc                 C   sü   t jdddd�}t jdddd�}t||dœƒ}tdt  d¡|jd d …d	f  ¡ t  d¡t  d
¡t  d¡t  d¡t  d¡gdt  d¡|jd d …df  ¡ t  d¡t  d¡t  d¡t  d¡t  d¡gdœg d¢d�}| ¡ }t ||¡ d}t	|ƒ|ksøJ ‚d S )Nz1 daysÚDr   )r)   Úperiodsz1 hoursÚh)Út1Út2z3 daysr   z2 daysz4 daysz5 daysz3 hoursr>   z2 hoursz4 hoursz5 hoursr   r   a                                t1                         t2
count                          5                          5
mean             3 days 00:00:00            0 days 03:00:00
std    1 days 13:56:50.394919273  0 days 01:34:52.099788303
min              1 days 00:00:00            0 days 01:00:00
25%              2 days 00:00:00            0 days 02:00:00
50%              3 days 00:00:00            0 days 03:00:00
75%              4 days 00:00:00            0 days 04:00:00
max              5 days 00:00:00            0 days 05:00:00)
rO   Ztimedelta_ranger   Z	Timedeltar;   r   r*   r+   r,   Úrepr)r.   rh   ri   r/   r1   r0   Zexp_reprr2   r2   r3   Útest_describe_timedelta_valuesÌ   s<    øøõéÿz4TestDataFrameDescribe.test_describe_timedelta_valuesc           
      C   s¶   |}t tdƒƒ}tdddƒ}tdddƒ}t t|||d�ƒ}t||dœƒ}tg d¢dtdddƒ |¡| |¡|d |d |d | |¡tjgdœg d	¢d
�}|jdd�}	t	 
|	|¡ d S )Nr   éâ  r>   ©rc   ©Ús1Ús2)r   r$   r   r>   r$   r%   r=   gßávhXLù?r%   r$   ©r   r   r   r   r   r   r   r   r   Úallr"   )r   rN   r   r   r   Ztz_localizer9   r:   r*   r+   r,   )
r.   Ztz_naive_fixturerc   ro   ÚstartÚendrp   r/   r1   r0   r2   r2   r3   Útest_describe_tz_valuesü   s,    øþòz-TestDataFrameDescribe.test_describe_tz_valuesc              	   C   sv   t tddd�g d¢dœƒ}| ¡ }t dtdƒtdƒtdƒtdƒtd	ƒtd
ƒtjgg d¢dœg d¢d�}t ||¡ d S )NZ2012r%   )rf   ©r>   r$   r%   ©r   r	   z
2012-01-02z
2012-01-01z2012-01-01T12:00:00z2012-01-02T12:00:00z
2012-01-03)r%   r$   r>   ç      ø?r$   ç      @r%   r>   rq   r   )r   r   r*   r   r9   r:   r+   r,   r-   r2   r2   r3   Ú*test_datetime_is_numeric_includes_datetime  s"    ø
õòz@TestDataFrameDescribe.test_datetime_is_numeric_includes_datetimec                 C   sž   d}t tdƒƒ}tdddƒ}tdddƒ}t t|||d�ƒ}t||dœƒ}| ¡ }| ¡ }g d¢}	tj||gddd	gd
�j|	dd�}
|jdd�}t	 
||
¡ d S )NZCETr   rl   r>   rm   rn   rq   ro   rp   )ÚaxisÚkeysF)Úcopyrr   r"   )r   rN   r   r   r   r*   rO   ÚconcatZreindexr+   r,   )r.   rc   ro   rs   rt   rp   r/   Zs1_Zs2_Úidxr1   r0   r2   r2   r3   Útest_describe_tz_values2-  s    
ÿz.TestDataFrameDescribe.test_describe_tz_values2c                 C   sh   t ddgiƒ}t ddd¡}|j|d�}t dddtjdgdd„ |D ƒ¢d‘ig d	¢d
�}t ||¡ d S )NÚxr>   r   é   )Zpercentilesç      ð?c                 s   s   | ]
}d V  qdS )rƒ   Nr2   )rB   Ú_r2   r2   r3   Ú	<genexpr>O  rE   zNTestDataFrameDescribe.test_describe_percentiles_integer_idx.<locals>.<genexpr>)r   r   r   r   z0%z10%z20%z30%z40%r   z60%z70%z80%z90%z100%r   r   )r   r9   Zlinspacer*   r:   r+   r,   )r.   r/   Zpctr0   r1   r2   r2   r3   Ú%test_describe_percentiles_integer_idxH  s    "þz;TestDataFrameDescribe.test_describe_percentiles_integer_idxc                 C   sT   t dddiidddiigƒ}t dddddidgig d¢d�}| ¡ }t ||¡ d S )	NÚtestr   Ú1Ú2r$   r>   r&   r   )r   r*   r+   r,   )r.   r/   r1   r0   r2   r2   r3   Ú8test_describe_does_not_raise_error_for_dictlike_elementse  s    ÿzNTestDataFrameDescribe.test_describe_does_not_raise_error_for_dictlike_elementsÚexcluder�   ÚyÚzc                 C   sZ   t dgdgdgdœƒ}d}tjt|d�� |jd|d� W d	  ƒ n1 sL0    Y  d	S )
zU
        When include is 'all', then setting exclude != None is not allowed.
        r>   r$   r%   )r�   rŒ   r�   z*exclude must be None when include is 'all')Úmatchrr   ©r#   r‹   N)r   ÚpytestZraisesÚ
ValueErrorr*   )r.   r‹   r/   Úmsgr2   r2   r3   Ú2test_describe_when_include_all_exclude_not_allowedn  s    zHTestDataFrameDescribe.test_describe_when_include_all_exclude_not_allowedc                 C   sj   t g d¢g d¢g d¢gg d¢dd�}| ¡ }|jd d …df  ¡ }tj|||g|jdd	�}t ||¡ d S )
N)r>   r>   r>   )r$   r$   r$   )r%   r%   r%   )Úbarr   r   Úfloat64)rR   r7   r   r>   )r|   r{   )r   r*   r;   rO   r~   rR   r+   r,   )r.   r/   r0   Zserr1   r2   r2   r3   Ú$test_describe_with_duplicate_columnsx  s    ýz:TestDataFrameDescribe.test_describe_with_duplicate_columnsc                 C   sn   t dtjtjgtjdœ|d�}| ¡ }t ddtjgdgd  dgtjgd  dœg d¢d	d
�}t ||¡ d S )Nr>   rw   r6   rƒ   r   g        é   r   ZFloat64rU   )r   rO   ZNAr*   r+   r,   )r.   Zany_numeric_ea_dtyper/   r0   r1   r2   r2   r3   Útest_ea_with_naƒ  s    (ýz%TestDataFrameDescribe.test_ea_with_nac              	   C   s²   t  d¡}ttg d¢t | ¡ ¡d�tg d¢t | ¡ ¡d�tg d¢t | ¡ ¡d�dœƒ}|j	t | ¡ ¡t | ¡ ¡d�}tdg d¢ig d¢t | 
¡ ¡d	�}t ||¡ d S )
NZpyarrowrv   r6   rH   r�   r   )r%   r$   r>   r>   rx   r$   ry   r%   r   rU   )r�   Zimportorskipr   r   rO   Z
ArrowDtypeZint8Zint16Zint32r*   r•   r+   r,   )r.   Úpar/   r0   r1   r2   r2   r3   Útest_describe_exclude_pa_dtype�  s     
ýÿÿ
ýz4TestDataFrameDescribe.test_describe_exclude_pa_dtypeN)Ú__name__Ú
__module__Ú__qualname__r4   r<   r?   rT   rW   r`   rd   rk   ru   rz   r€   r†   rŠ   r�   ÚmarkZparametrizer“   r–   r˜   rš   r2   r2   r2   r3   r      s$   & 0	
	r   )Únumpyr9   r�   ZpandasrO   r   r   r   r   r   Zpandas._testingZ_testingr+   r   r2   r2   r2   r3   Ú<module>   s
   