a
    oÝEb„5  ã                   @   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#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   úh/home/ja/django-apps/lartica_env/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&   )r6   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¡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   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ÚsrI   rJ   )r   r8   ÚrandomÚrandintÚranger   Zsort_valuesÚpdÚcutr?   r*   ÚlenÚcolumnsr   r+   Zassert_series_equalZassert_numpy_array_equalÚvalues)	r.   r/   rF   Z
cat_labelsrI   r0   rJ   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&   r7   )r    r6   )r$   r   )r%   r   )	r   r   r*   r8   r9   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)rH   Únamer   ©r5   r   NÚXr=   )rQ   rV   rW   )rG   rH   rZ   r   r   r   r   r   r   )rV   rW   r   )r    rQ   )rN   ZCategoricalIndexr   r*   rV   r   rW   r+   r,   Zassert_categorical_equalrQ   rR   ©r.   rQ   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/EasternrY   )r)   ÚtzrZ   r   r[   )r   r=   r$   r_   r`   r   r   r   r   r   r   r   r=   )r   r=   r   r   )rN   ZDatetimeIndexr   rQ   r*   r:   r   r+   r,   r)   ra   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)
rN   Ztimedelta_ranger   Z	Timedeltar:   r   r*   r+   r,   Úrepr)r.   rf   rg   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d�}	t	 
|	|¡ d S )Nr   éâ  r=   ©ra   ©Ús1Ús2)r   r$   r   r=   r$   r%   r<   gßávhXLù?r%   r$   ©r   r   r   r   r   r   r   r   r   ÚallT)r#   Údatetime_is_numeric)r   rM   r   r   r   Útz_localizer8   r9   r*   r+   r,   )
r.   Ztz_naive_fixturera   rm   ÚstartÚendrn   r/   r1   r0   r2   r2   r3   Útest_describe_tz_valuesü   s,    øþòz-TestDataFrameDescribe.test_describe_tz_valuesc              	   C   sz   t tddd�g d¢dœƒ}|j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%   )rd   )r=   r$   r%   )r   r	   T)rq   z
2012-01-02z
2012-01-01z2012-01-01T12:00:00z2012-01-02T12:00:00z
2012-01-03)r%   r$   r=   g      ø?r$   g      @r%   r=   ro   r   )r   r   r*   r   r8   r9   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œƒ}| ¡ }t dd| ¡ jd d| |¡| |¡gg d¢d	�}g d
¢}	t	j
||gdddgd�j|	 }
t t¡� |jdd�}W d   ƒ n1 sÔ0    Y  t ||
¡ d S )NZCETr   rj   r=   rk   rl   r   )r   r'   r(   r)   ÚfirstÚlastr   )r   r'   r(   r)   rw   rx   r   r   r   r   r   r   r   rm   rn   )ÚaxisÚkeysrp   r"   )r   rM   r   r   r   r*   Zvalue_countsr    rr   rN   ÚconcatÚlocr+   Zassert_produces_warningÚFutureWarningr,   )r.   ra   rm   rs   rt   rn   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   )rA   Ú_r2   r2   r3   Ú	<genexpr>]  rD   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   r8   Zlinspacer*   ÚNaNr+   r,   )r.   r/   Zpctr0   r1   r2   r2   r3   Ú%test_describe_percentiles_integer_idxV  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_elementss  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')Úmatchrp   )r#   r‹   N)r   ÚpytestZraisesÚ
ValueErrorr*   )r.   r‹   r/   Úmsgr2   r2   r3   Ú2test_describe_when_include_all_exclude_not_allowed|  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   Zfloat64)rQ   r6   r   r=   )rz   ry   )r   r*   r:   rN   r{   rQ   r+   r,   )r.   r/   r0   Zserr1   r2   r2   r3   Ú$test_describe_with_duplicate_columns†  s    ýz:TestDataFrameDescribe.test_describe_with_duplicate_columnsN)Ú__name__Ú
__module__Ú__qualname__r4   r;   r>   rS   rU   r^   rb   ri   ru   rv   r   r†   rŠ   r�   ÚmarkZparametrizer’   r”   r2   r2   r2   r3   r      s    & 0)	
	r   )Únumpyr8   r�   ZpandasrN   r   r   r   r   r   Zpandas._testingZ_testingr+   r   r2   r2   r2   r3   Ú<module>   s
   