a
    Pf8                     @   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   a/var/www/ai-form-bot/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sJ 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sJ |jj
|jj
ksJ 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sJ 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=   gvhXL?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
   