o
    Û­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   )Ú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© r3   úe/var/www/html/CropPilot/venv/lib/python3.10/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'   )r8   r!   )r   Úobjectr+   ÚnpÚnanr,   r-   Úilocr.   r3   r3   r4   Ú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)Úbool_data_1Úbool_data_2)é   r%   Fr%   )r@   r%   Tr&   r'   r    )FFTTF)r   é   r%   r&   r@   )r   r   r   r   r%   r   rA   r&   r@   r   )r   r	   r
   r   )r   Ústr_data)r@   r&   r   r%   )r   r+   r,   r-   r   r   r.   r3   r3   r4   Ú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sFJ ‚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ó  r3   )Ú.0Úir3   r3   r4   Ú
<listcomp>`   s    zCTestDataFrameDescribe.test_describe_categorical.<locals>.<listcomp>iô  T)ÚbyÚ	ascendingi)  F)ÚrightÚlabelsÚvalue_grouprA   )r   r	   r	   r	   ©r   r	   r
   )Ú
categoriesÚordered)r@   r%   r	   r&   r'   r    )r   r	   r
   r
   )ÚcatÚsrQ   rR   )r   r:   ÚrandomÚdefault_rngÚintegersÚranger   Úsort_valuesÚpdÚcutrD   r+   ÚlenÚcolumnsr   r,   Úassert_series_equalÚassert_numpy_array_equalÚvalues)	r/   r0   rL   Ú
cat_labelsrQ   r1   rR   r2   Údf3r3   r3   r4   Ú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 ¡s-J ‚t |jd ¡s7J ‚d S )NÚ	empty_colr   r'   r9   ©r!   r8   )r%   r   )r&   r   )	r   r   r+   r:   r;   r,   r-   Úisnanr<   r.   r3   r3   r4   Ú&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)rP   Únamer   ©r6   r   NÚXrA   )r[   rf   rg   )rO   rP   rj   r   r   r   r   r   r   )rf   rg   r   )r!   r[   )rX   ÚCategoricalIndexr   r+   rf   r   rg   r,   r-   Úassert_categorical_equalr[   r^   ©r/   r[   r0   r1   Úexp_columnsr2   r3   r3   r4   Ú!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siJ ‚|jj
|jj
kssJ ‚d S )N)ú
2011-01-01ú
2011-02-01z
2011-03-01ÚMSz
US/Easternri   )r*   Útzrj   r   rk   )r   rA   r%   rr   rs   r   r   r   r   r   r   r   rA   )r   rA   r   r    )rX   ÚDatetimeIndexr   r[   r+   r<   r   r,   r-   r*   ru   ro   r3   r3   r4   Ú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 hoursrA   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)
rX   Útimedelta_ranger   Ú	Timedeltar<   r   r+   r,   r-   Úrepr)r/   r{   r|   r0   r2   r1   Úexp_reprr3   r3   r4   Ú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   éâ  rA   ©ru   ©Ús1Ús2)r   r%   r   rA   r%   r&   r@   gßávhXLù?r&   r%   ©r   r   r   r   r   r   r   r   r    Úallr#   )r   rV   r   r   r   Útz_localizer:   r;   r+   r,   r-   )
r/   Útz_naive_fixtureru   r…   ÚstartÚendr†   r0   r2   r1   r3   r3   r4   Ú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 )NÚ2012r&   )ry   ©rA   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%   rA   ç      ø?r%   ç      @r&   rA   r‡   r    )r   r   r+   r   r:   r;   r,   r-   r.   r3   r3   r4   Ú*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 )NÚCETr   r‚   rA   rƒ   r„   r‡   r…   r†   )ÚaxisÚkeysF)Úcopyrˆ   r#   )r   rV   r   r   r   r+   rX   ÚconcatÚreindexr,   r-   )r/   ru   r…   r‹   rŒ   r†   r0   Ús1_Ús2_Úidxr2   r1   r3   r3   r4   Ú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ÚxrA   r   é   )Úpercentilesç      ð?c                 s   s   � | ]}d V  qdS )r¡   Nr3   )rF   Ú_r3   r3   r4   Ú	<genexpr>O  s   € 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   r:   Úlinspacer+   r;   r,   r-   )r/   r0   Úpctr1   r2   r3   r3   r4   Ú%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%   rA   r'   r    )r   r+   r,   r-   )r/   r0   r2   r1   r3   r3   r4   Ú8test_describe_does_not_raise_error_for_dictlike_elementse  s   ÿzNTestDataFrameDescribe.test_describe_does_not_raise_error_for_dictlike_elementsÚexcluderž   ÚyÚzc                 C   s\   t dgdgdgdœƒ}d}tjt|d�� |jd|d� W d	  ƒ d	S 1 s'w   Y  d	S )
zU
        When include is 'all', then setting exclude != None is not allowed.
        rA   r%   r&   )rž   r¬   r­   z*exclude must be None when include is 'all')Úmatchrˆ   ©r$   r«   N)r   ÚpytestÚraisesÚ
ValueErrorr+   )r/   r«   r0   Úmsgr3   r3   r4   Ú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)rA   rA   rA   )r%   r%   r%   )r&   r&   r&   )Úbarr   r   Úfloat64)r[   r8   r   rA   )r–   r•   )r   r+   r<   rX   r˜   r[   r,   r-   )r/   r0   r1   Úserr2   r3   r3   r4   Ú$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 )NrA   r�   r7   r¡   r   g        é   r   ÚFloat64rc   )r   rX   ÚNAr+   r,   r-   )r/   Úany_numeric_ea_dtyper0   r1   r2   r3   r3   r4   Ú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 )
NÚpyarrowr�   r7   rN   r¯   r   )r&   r%   rA   rA   r‘   r%   r’   r&   r   rc   )r°   Úimportorskipr   r   rX   Ú
ArrowDtypeÚint8Úint16Úint32r+   r¶   r,   r-   )r/   Úpar0   r1   r2   r3   r3   r4   Útest_describe_exclude_pa_dtype�  s    
ýÿÿ
ýz4TestDataFrameDescribe.test_describe_exclude_pa_dtypeN)Ú__name__Ú
__module__Ú__qualname__r5   r=   rC   ra   re   rq   rw   r�   r�   r“   r�   r¦   rª   r°   ÚmarkÚparametrizer´   r¸   r½   rÅ   r3   r3   r3   r4   r      s&    & 0	
	r   )Únumpyr:   r°   ÚpandasrX   r   r   r   r   r   Úpandas._testingÚ_testingr,   r   r3   r3   r3   r4   Ú<module>   s    