o
    _~#g!                  	   @   s  d dl Z 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
mZmZmZmZmZmZmZmZmZ d dlmZ d dlmZ d dlm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g ddd Z&ej$%dg de'e(dgdd Z)ej$%dg deg dd d!fe'e(deg d"d d!fgd#d$ Z*ej$%d%d&d'idfi d(fd&d)id(fd&d*id+fgd,d- Z+ej$%d.g d/ej$%d0d1d2gej$%ddd3gd4d5 Z,ej$j%d6eed7e
d8geed9e
d:ggd;d< d=d>d? Z-ej$%d@de.d d1dAgdBdC Z/ej$%dDedEddFeg dGged7ddFeg dHggdIdJ Z0ej$%d@dKdLgej$%dMeej1fej2ej3fe'ej4fgdNdO Z5ej$%dPg dQdRdS Z6dS )T    N)CategoricalDatetimeIndexIntervalIntervalIndexNaTSeries	TimedeltaTimedeltaIndex	Timestampcut
date_rangeisnaqcuttimedelta_range)CategoricalDtype)Dayc                  C   s   t jdd} t| ddd\}}t | g d}|jjj}t j	||d d dd	s-J |jj
j}t j	||d
d  dd	s@J t| |dd}t|| d S )N        Tretbinsr   g      ?g      ?g      ?g      ?g{Gz?)atol   )include_lowest)nprandomdefault_rngstandard_normalr   quantile
categoriesleftvaluesallcloserightr   tmassert_categorical_equal)arrlabels_ex_binsresult	ex_levels r.   /var/www/static.ux5.de/https/Moving-Object-Detection-with-OpenCV/env/lib/python3.10/site-packages/pandas/tests/reshape/test_qcut.py	test_qcut   s   

r0   c                  C   s:   t jdd} t| ddd}tt |dksJ d S )Nr   r   
   Fr)   )r   r   r   r   r   lenunique)r(   factorr.   r.   r/   test_qcut_bounds/   s   r6   c                  C   s:   t jdd} t| g d}t| d}t|| d S )Nr   d   r   r   )r   r   r   r   r   r&   r'   )r(   r5   expectedr.   r.   r/   test_qcut_specify_quantiles6   s   
r9   c                   C   sB   t jtdd tg dd W d    d S 1 sw   Y  d S )Nzedges.*uniquematch)
r   r   r   r   r   r   r   r   r   r      )pytestraises
ValueErrorr   r.   r.   r.   r/   test_qcut_all_bins_same>   s   "r@   c                  C   sN   t d} t| d}ttddtddtddtddg}t|j| d S )Nr1   r   MbPg      @g      @g      @	   )r   aranger   r   r   r&   assert_index_equalr!   )r#   iir-   r.   r.   r/   test_qcut_include_lowestC   s   

rF   c                  C   sF   t jdd} t j| d d< t| d}t|d d  s!J d S )Nr   r7      r   )r   r   r   r   nanr   r   all)r(   r,   r.   r.   r/   test_qcut_nasR   s   
rJ   c                  C   s>   t ddgd} tddtddg}t|dd}t| | d S )Nr   r   rA   r   Tordered)r   r   r   r&   r'   )r,   	intervalsr8   r.   r.   r/   test_qcut_indexZ   s   rN   c                 C   s   | t jddd}t|}t|d}g }g }t|D ]}|j}|j}||ks+J |	t
| |	t
| qtt|d d |dd  t|d d |dd  D ]\\}	}
\}}|	|
k scJ ||k siJ ||
ksoJ qUd S )Nreshapedatazcut_data.csvrG   r   r   )ospathjoinr   loadtxtr   r4   r"   r%   appendfloatzip)datapathcut_filer(   r,   startsendslevsespsnepenr.   r.   r/   test_qcut_binning_issuesb   s$   

0rc   c                  C   sj   t g d} t| g d}ttddtddtddg}t |g dtdd	}t	|| d S )
N)	r   r   r   r<   r               )r   gZd;O?gZd;O?r   rA   gZd;O@gZd;O@rg   )	r   r   r   r   r   r   r   r   r   TrK   )
r   r   r   arrayr   takeastyper   r&   assert_series_equal)serres
exp_levelsexpr.   r.   r/   test_qcut_return_intervals{   s   rp   r)   )foor   Tc                 C   N   t d}d}tjt|d t|d| d W d    d S 1 s w   Y  d S )Nrd   zJBin labels must either be False, None or passed in as a list-like argumentr:   r   r2   ranger=   r>   r?   r   r)   r#   msgr.   r.   r/   test_qcut_incorrect_labels   
   "rw   )abcr<   c                 C   rr   )Nr1   z9Bin labels must be one fewer than the number of bin edgesr:   r   r2   rs   ru   r.   r.   r/   test_qcut_wrong_length_labels   rx   r|   zlabels, expectedTrK   )r   r   r   c                 C   s&   t d}t|d| d}t|| d S )Nr<   r2   )rt   r   r&   r'   )r)   r8   r#   r,   r.   r.   r/   test_qcut_list_like_labels   s   	r}   z
kwargs,msg
duplicatesdropzBin edges must be uniqueraiserq   z(invalid value for 'duplicates' parameterc                 C   s   g d}|d ur+t jt|d t|dfi |  W d    d S 1 s$w   Y  d S t|dfi | }ttddtddg}t|j| d S )N)r   r   r   r   r   r   r<   r:   r<   rA   r   )	r=   r>   r?   r   r   r   r&   rD   r!   )kwargsrv   r#   r,   r8   r.   r.   r/   test_qcut_duplicates_bin   s   "r   zdata,start,end))      "@gsh|!@r   )        rA   r   )      "gn "r   lengthr   r   Fc           	      C   sv   t | g| }t|d|d}|d u r)tt||g| dd}t |tdd}n
t dg| tjd}t	|| d S )	Nr   r2   r%   )closedTrK   r   dtype)
r   r   r   r   rj   r   r   intpr&   rk   )	rP   startendr   r)   rl   r,   rM   r8   r.   r.   r/   test_single_quantile   s   r   rl   2018010120180103z0 days2 daysc                 C   s
   t | jS )N)strr   )xr.   r.   r/   <lambda>   s   
 r   )idsc                 C   s   | j |} td|d|}t| d | tj| d t  g| jd}t| d t  tj| d g| jd}t	||}tt
|dd}t| d}t|| d S )Nr   )unitr   r   r   TrK   )dtas_unitr   r   r   rH   r   r   r   from_arraysr   r   r&   rk   )rl   r   tdr"   r%   rM   r8   r,   r.   r.   r/   test_qcut_nat   s   
($
r   binsr   c              
   C   s   d}t tdd|d}t|| }t tttd|dtd|dttd|dtd|dttd|dtd	|dgtd
d}t	|| d S )Nz
US/Eastern20130101r<   )periodstzz2012-12-31 23:59:59.999999999)r   z2013-01-01 16:00:00z2013-01-02 08:00:00z2013-01-03 00:00:00TrK   )
r   r   r   r   r   r
   rj   r   r&   rk   )r   r   rl   r,   r8   r.   r.   r/   test_datetime_tz_qcut   s.   






r   zarg,expected_bins1day)r   )z1 daysr   z3 days)z
2018-01-01z
2018-01-02z
2018-01-03c                 C   s*   t | }t|ddd\}}t|| d S )Nr   Tr   )r   r   r&   rD   )argexpected_binsrl   r,   result_binsr.   r.   r/   test_date_like_qcut_bins  s   r   re   rf   zbox, comparec                 C   sJ   |g dd }|g dd }t || dd}t || dd}||| d S )N)r   r   r   r   r   r1   )FTTFTr   )r~   )r   )r   boxcomparedata_expecteddata_resultr8   r,   r.   r.   r/   test_qcut_bool_coercion_to_int  s
   r   q)r   rd   r1   c                 C   sN   t jtd|d}t j|d d d< t|| }t|t| }t	|| d S )Nr7   r   r   )
pdrh   r   rC   NAr   rj   rV   r&   r'   )r   any_numeric_ea_dtyper(   r,   r8   r.   r.   r/   test_qcut_nullable_integer)  s
   
r   )7rQ   numpyr   r=   pandasr   r   r   r   r   r   r   r   r	   r
   r   r   r   r   r   pandas._testing_testingr&   pandas.api.typesr   pandas.tseries.offsetsr   r0   r6   r9   r@   rF   rJ   rN   rc   rp   markparametrizerw   listrt   r|   r}   r   r   r   linspacer   r   rk   rh   r'   assert_equalr   r   r.   r.   r.   r/   <module>   s    @






	







	