o
    g5                     @   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   )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   f/home/ubuntu/cloudmapper/venv/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.   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   r@   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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sCJ 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  r3   ).0ir3   r3   r4   
<listcomp>`   s    zCTestDataFrameDescribe.test_describe_categorical.<locals>.<listcomp>i  T)by	ascendingi)  F)rightlabelsvalue_groupr@   )r   r	   r	   r	   )r   r	   r
   )
categoriesordered)r?   r%   r	   r&   r'   r    )r   r	   r
   r
   )catsrO   rP   )r   r9   randomrandintranger   sort_valuespdcutrC   r+   lencolumnsr   r,   assert_series_equalassert_numpy_array_equalvalues)	r/   r0   rK   
cat_labelsrO   r1   rP   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'   r8   )r!   r7   )r%   r   )r&   r   )	r   r   r+   r9   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)rN   namer   r6   r   NXr@   )rX   rb   rc   )rM   rN   rf   r   r   r   r   r   r   )rb   rc   r   )r!   rX   )rU   CategoricalIndexr   r+   rb   r   rc   r,   r-   assert_categorical_equalrX   r[   r/   rX   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/Easternre   )r*   tzrf   r   rg   )r   r@   r%   rn   ro   r   r   r   r   r   r   r   r@   )r   r@   r   r    )rU   DatetimeIndexr   rX   r+   r;   r   r,   r-   r*   rq   rk   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 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)
rU   timedelta_ranger   	Timedeltar;   r   r+   r,   r-   repr)r/   rw   rx   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d}	t	
|	| d S )Nr     r@   rq   s1s2)r   r%   r   r@   r%   r&   r?   gvhXL?r&   r%   r   r   r   r   r   r   r   r   r    allT)r$   datetime_is_numeric)r   rS   r   r   r   tz_localizer9   r:   r+   r,   r-   )
r/   tz_naive_fixturerq   r   startendr   r0   r2   r1   r3   r3   r4   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 )N2012r&   )ru   )r@   r%   r&   )r   r	   T)r   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@   r   r    )r   r   r+   r   r9   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}| }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 sjw   Y  t||
 d S )NCETr   r~   r@   r   r   r   )r   r(   r)   r*   firstlastr    )r   r(   r)   r*   r   r   r   r   r   r   r   r   r   r   r   )axiskeysr   r#   )r   rS   r   r   r   r+   value_countsr!   r   rU   concatlocr,   assert_produces_warningFutureWarningr-   )r/   rq   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xr@   r      )percentiles      ?c                 S   s   g | ]}d qS )r   r3   )rE   _r3   r3   r4   rG   ]  s    zOTestDataFrameDescribe.test_describe_percentiles_integer_idx.<locals>.<listcomp>)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   linspacer+   NaNr,   r-   )r/   r0   pctr1   r2   r3   r3   r4   %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/   r0   r2   r1   r3   r3   r4   8test_describe_does_not_raise_error_for_dictlike_elementss  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')matchr   )r$   r   N)r   pytestraises
ValueErrorr+   )r/   r   r0   msgr3   r3   r4   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   float64)rX   r7   r   r@   )r   r   )r   r+   r;   rU   r   rX   r,   r-   )r/   r0   r1   serr2   r3   r3   r4   $test_describe_with_duplicate_columns  s   z:TestDataFrameDescribe.test_describe_with_duplicate_columnsN)__name__
__module____qualname__r5   r<   rB   r^   ra   rm   rs   r}   r   r   r   r   r   r   markparametrizer   r   r3   r3   r3   r4   r      s"    & 0)	
	r   )numpyr9   r   pandasrU   r   r   r   r   r   pandas._testing_testingr,   r   r3   r3   r3   r4   <module>   s    