U
    `»{j„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 dddddgdddddgdd	d
ddgdœƒ}| ¡ }t ddd
|j ¡ dd	d
ddgiddddddddgd�}t ||¡ |jdgd�}t dddddgidddd gd�}t ||¡ d S )!NÚaÚbÚcÚdÚeTFé
   é   é   é(   é2   )Zstring_dataÚ	bool_dataÚint_datar   é   ÚcountÚmeanÚstdÚminú25%ú50%ú75%Úmax©ÚindexÚbool©Úincluder   é   é   ÚuniqueÚtopÚfreq)r   Údescriber   r   ÚtmÚassert_frame_equal©ÚselfÚdfÚresultÚexpected© r/   úg/var/www/html/bwave/python/venv/lib/python3.8/site-packages/pandas/tests/frame/methods/test_describe.pyÚ!test_describe_bool_in_mixed_frame   s$    ýÿ
þ 
ÿz7TestDataFrameDescribe.test_describe_bool_in_mixed_framec                 C   sp   t dd d gitd�}| ¡ }t dddtjtjgitddddgd�}t ||¡ |jd d…  ¡ }t ||¡ d S )	NÚA)Údtyper   r   r$   r%   r&   )r3   r   )r   Úobjectr'   ÚnpÚnanr(   r)   Úilocr*   r/   r/   r0   Útest_describe_empty_object*   s    
ýz0TestDataFrameDescribe.test_describe_empty_objectc              
   C   s(  t ddddgddddgdœƒ}| ¡ }t ddddgddddgdœddd	d
gd�}t ||¡ t dddddgdddddgdœƒ}| ¡ }t ddd|j ¡ dddddgiddddddddgd�}t ||¡ t ddddgddddgdœƒ}| ¡ }t ddddgddddgdœddd	d
gd�}t ||¡ d S )NFT)Zbool_data_1Zbool_data_2é   r"   r#   r   r$   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/   r0   Ú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†t‚tddddgdddgdd�}t|ƒ}| 
¡ }tddddgddddgd�}t ||¡ ttddddgƒƒ}t |ddddgdœƒ}| 
¡ }t |d j|d j¡ d S )NÚvaluer   i'  éd   c                 S   s   g | ]}|› d |d › �‘qS )z - ió  r/   )Ú.0Úir/   r/   r0   Ú
<listcomp>`   s     zCTestDataFrameDescribe.test_describe_categorical.<locals>.<listcomp>iô  T)ZbyZ	ascendingi)  F)ÚrightÚlabelsZvalue_groupr:   r   r	   r
   )Ú
categoriesÚorderedr9   r"   r#   r   r$   r%   r&   r   )ÚcatÚsrE   rF   )r   r5   ÚrandomÚrandintÚranger   Zsort_valuesÚpdÚcutr<   r'   ÚlenÚcolumnsÚAssertionErrorr   r(   Zassert_series_equalZassert_numpy_array_equalÚvalues)	r+   r,   rB   Z
cat_labelsrE   r-   rF   r.   Zdf3r/   r/   r0   Útest_describe_categorical^   s4    
 
  ÿ

  ÿz/TestDataFrameDescribe.test_describe_categoricalc                 C   sv   t dtg ƒiƒ}| ¡ }t dddtjtjgiddddgdd�}t ||¡ t |jd	 ¡s^t	‚t |jd
 ¡srt	‚d S )NZ	empty_colr   r   r$   r%   r&   r4   )r   r3   )r"   r   )r#   r   )
r   r   r'   r5   r6   r(   r)   Úisnanr7   rN   r*   r/   r/   r0   Ú&test_describe_empty_categorical_column}   s    
ýz<TestDataFrameDescribe.test_describe_empty_categorical_columnc              
   C   sà   t jdddgddd�}tddd	d
dgddd	d
dgddd ddgdœ|d�}| ¡ }t jddgdddgddd�}tdd	|j ¡ ddd	d
dgdd	|j ¡ ddd	d
dgdœddddddddg|d�}t ||¡ t 	|j
j|j
j¡ d S )NÚint1Úint2ÚobjTÚXXX)rD   Únamer   r   r   r   r   r2   r   ÚXr:   )rS   rT   rU   )rM   )rC   rD   rW   r   )rS   rT   r   r   r   r   r   r   r   r   )r   rM   )rJ   ZCategoricalIndexr   r'   rS   r   rT   r(   r)   Zassert_categorical_equalrM   rO   ©r+   rM   r,   r-   Zexp_columnsr.   r/   r/   r0   Ú!test_describe_categorical_columns�   s0    ýúüþú	z7TestDataFrameDescribe.test_describe_categorical_columnsc              
   C   s  t jdddgdddd�}tdd	d
ddgdd	d
ddgddd ddg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œddddddddgd�}||_t ||¡ |jj	dksòt
‚|jj|jjk�st
‚d S )Nz
2011-01-01z
2011-02-01z
2011-03-01ZMSz
US/EasternrV   )r&   ÚtzrW   r   r   r   r   r   r2   r   rX   r:   )r   r:   r"   r   )r   r:   r   r   r   r   r   r   r   r   r   )rJ   ZDatetimeIndexr   rM   r'   r7   r   r(   r)   r&   rN   r[   rY   r/   r/   r0   Útest_describe_datetime_columns¬   s<    üýÿ   ÿ$$þû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œddddddddgd�}| ¡ }t ||¡ d}t	|ƒ|k�st
‚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   r   r   r   r   r   r   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)rJ   Ztimedelta_ranger   Z	Timedeltar7   r   r'   r(   r)   ÚreprrN   )r+   r`   ra   r,   r.   r-   Zexp_reprr/   r/   r0   Ú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ddddddd	d
gdtdddƒ |¡| |¡|d |d |d | |¡tjgdœddddddddgd�}|jddd�}	t	 
|	|¡ d S )Nr   éâ  r:   ©r[   ©Ús1Ús2r"   r   r#   r9   gßávhXLù?r   r   r   r   r   r   r   r   r   ÚallT)r!   Údatetime_is_numeric)r   rI   r   r   r   Útz_localizer5   r6   r'   r(   r)   )
r+   Ztz_naive_fixturer[   rg   ÚstartÚendrh   r,   r.   r-   r/   r/   r0   Útest_describe_tz_valuesü   s,    øþòz-TestDataFrameDescribe.test_describe_tz_valuesc              
   C   s”   t tddd�dddgdœƒ}|jdd�}t dtd	ƒtd
ƒtdƒtd	ƒtdƒtdƒtjgddddddddgdœddddddddgd�}t ||¡ d S )NZ2012r#   )r^   r:   r"   )r   r	   T)rj   z
2012-01-02z
2012-01-01z2012-01-01T12:00:00z2012-01-02T12:00:00z
2012-01-03g      ø?g      @r   r   r   r   r   r   r   r   r   )r   r   r'   r   r5   r6   r(   r)   r*   r/   r/   r0   Ú*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dd	d
dddgd�}dd	d
ddddddddddg}	t	j
||gdddgd�j|	 }
t t¡� |jdd�}W 5 Q R X t ||
¡ d S )NZCETr   rd   r:   re   rf   r   r   r$   r%   r&   ÚfirstÚlastr   r   r   r   r   r   r   r   rg   rh   )ÚaxisÚkeysri   r    )r   rI   r   r   r   r'   Zvalue_countsr   rk   rJ   ÚconcatÚlocr(   Zassert_produces_warningÚFutureWarningr)   )r+   r[   rg   rl   rm   rh   r,   Zs1_Zs2_Úidxr.   r-   r/   r/   r0   Útest_describe_tz_values2-  sF    ú÷óz.TestDataFrameDescribe.test_describe_tz_values2c                 C   s‚   t ddgiƒ}t ddd¡}|j|d�}t dddtjdfdd„ |D ƒd•id	d
ddddddddddddddgd�}t ||¡ d S )NÚxr:   r   é   )Zpercentilesç      ð?c                 s   s   | ]
}d V  qdS )r{   Nr/   )r>   Ú_r/   r/   r0   Ú	<genexpr>]  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   r5   Zlinspacer'   ÚNaNr(   r)   )r+   r,   Zpctr-   r.   r/   r/   r0   Ú%test_describe_percentiles_integer_idxV  s0     ðþz;TestDataFrameDescribe.test_describe_percentiles_integer_idxc                 C   sX   t dddiidddiigƒ}t dddddidgiddd	d
gd�}| ¡ }t ||¡ d S )NÚtestr   Ú1Ú2r"   r:   r   r$   r%   r&   r   )r   r'   r(   r)   )r+   r,   r.   r-   r/   r/   r0   Ú8test_describe_does_not_raise_error_for_dictlike_elementss  s     
ÿzNTestDataFrameDescribe.test_describe_does_not_raise_error_for_dictlike_elementsÚexcludery   ÚyÚzc              	   C   sF   t dgdgdgdœƒ}d}tjt|d�� |jd|d� W 5 Q R X d	S )
zU
        When include is 'all', then setting exclude != None is not allowed.
        r:   r"   r#   )ry   r…   r†   z*exclude must be None when include is 'all')Úmatchri   )r!   r„   N)r   ÚpytestZraisesÚ
ValueErrorr'   )r+   r„   r,   Úmsgr/   r/   r0   Ú2test_describe_when_include_all_exclude_not_allowed|  s    zHTestDataFrameDescribe.test_describe_when_include_all_exclude_not_allowedc                 C   sr   t dddgdddgdddggdddgdd�}| ¡ }|jd d …df  ¡ }tj|||g|jdd	�}t ||¡ d S )
Nr:   r"   r#   Úbarr   Zfloat64)rM   r3   r   )rs   rr   )r   r'   r7   rJ   rt   rM   r(   r)   )r+   r,   r-   Zserr.   r/   r/   r0   Ú$test_describe_with_duplicate_columns†  s    ýz:TestDataFrameDescribe.test_describe_with_duplicate_columnsN)Ú__name__Ú
__module__Ú__qualname__r1   r8   r;   rP   rR   rZ   r\   rc   rn   ro   rx   r   rƒ   rˆ   ÚmarkZparametrizer‹   r�   r/   r/   r/   r0   r      s    & 0)	
	r   )Únumpyr5   rˆ   ZpandasrJ   r   r   r   r   r   Zpandas._testingZ_testingr(   r   r/   r/   r/   r0   Ú<module>   s
   