o
    թZh8                     @   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   _/var/www/html/lang_env/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&   )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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  r2   ).0ir2   r2   r3   
<listcomp>`   s    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srJ   rK   )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/   rF   Z
cat_labelsrJ   r0   rK   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 s-J t|jd s7J 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)rI   namer   r5   r   NXr>   )rQ   rW   rX   )rH   rI   r[   r   r   r   r   r   r   )rW   rX   r   )r    rQ   )rN   ZCategoricalIndexr   r*   rW   r   rX   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siJ |jj
|jj
kssJ d S )N)
2011-01-01
2011-02-01z
2011-03-01ZMSz
US/EasternrZ   )r)   tzr[   r   r\   )r   r>   r$   r`   ra   r   r   r   r   r   r   r   r>   )r   r>   r   r   )rN   ZDatetimeIndexr   rQ   r*   r;   r   r+   r,   r)   rb   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.   rg   rh   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>   rb   s1s2)r   r$   r   r>   r$   r%   r=   gvhXL?r%   r$   r   r   r   r   r   r   r   r   r   allr"   )r   rM   r   r   r   Ztz_localizer9   r:   r*   r+   r,   )
r.   Ztz_naive_fixturerb   rn   startendro   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%   )re   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>   rp   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   rk   r>   rl   rm   rp   rn   ro   )axiskeysF)copyrq   r"   )r   rM   r   r   r   r*   rN   concatZreindexr+   r,   )r.   rb   rn   rr   rs   ro   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  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   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   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.
        r>   r$   r%   )r   r   r   z*exclude must be None when include is 'all')matchrq   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)rQ   r7   r   r>   )r{   rz   )r   r*   r;   rN   r}   rQ   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>   rv   r6   r   r   g           r   ZFloat64rT   )r   rN   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pyarrowru   r6   rG   r   r   )r%   r$   r>   r>   rw   r$   rx   r%   r   rT   )r   Zimportorskipr   r   rN   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?   rS   rV   r_   rc   rj   rt   ry   r   r   r   r   markZparametrizer   r   r   r   r2   r2   r2   r3   r      s&    & 0	
	r   )numpyr9   r   ZpandasrN   r   r   r   r   r   Zpandas._testingZ_testingr+   r   r2   r2   r2   r3   <module>   s    