o
    _~#g8                     @   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   /var/www/static.ux5.de/https/Moving-Object-Detection-with-OpenCV/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'   )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@   gvhXL?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    