o
    _~#g?                     @   s  d dl Zd dlZd dlZd dlmZmZ d dlmZ	 ej
dg dej
dg dg dfg dg d	fg dg d	fg d
g dfdejdejdgdejdejdgfejdejdejgejdejdejgfejddddejddddddd fejdddddejddddddd dfejgd ejgd fg	ej
dg ddd Zdd Zdd Zdd  Zd!d" Zej
d#d$d%gej
d&d gd d'ggej
dd(d)ggd*d+ Zd,d- Zd.d/ Zd0d1 Zej
d2dejdejged3ddgd4dgfdejddged3ddgd4d5gfd6d7d7ejged3d6d7gd d8gfd gd9gd gd:gfg g ejg d;d<ejg d;d<fgd=d> Zej
d?ejg d@dA dBd<ejg dCdA dDd<gej
dd(g dEgdFdG Zej
dd(g dEgej
dHdIdJgdKdL ZdMdN ZdOdP Zej
dQg dRdSdT Zej
ddUdVgdWdX Z ej
dYdZd[gd\d] Z!d^d_ Z"d`da Z#dbdc Z$ddde Z%dfdg Z&dS )h    N)	DataFrameIndexinterpolation)linearlowerhighernearestmidpointza_vals,b_vals)               )r   r   r   r   r
   )r
   r   r   r   r   r   r   r
   )      ?       @      @      @      @)r   r   r   r   r   r   r   r   r   r   z1/1/18Dr   )freqperiodssq)r         ?      ?      ?r
   c                 C   s  | dkr|dkrt |tr|g dkr|tjjdd tt|t|g}t|j	|| d}t|j	|| d}t
dgt| dgt|  |d	}t
||gd
gtddgddd}	|jjdkrv|	jjd jdkrv|	|j}	|dj	|| d}
t|
|	 d S )Nr   r   r   zBUnclear numpy expectation for nearest result with equidistant data)reason)r   abkeyvalr#   r"   name)columnsindexMr   )
isinstancelistapplymarkerpytestmarkxfailpdconcatSeriesquantiler   lenr   dtypekinddtypesvaluesastypegroupbytmassert_frame_equal)r   a_valsb_valsr   requestall_vals
a_expected
b_expecteddfexpectedresult rE   /var/www/static.ux5.de/https/Moving-Object-Detection-with-OpenCV/env/lib/python3.10/site-packages/pandas/tests/groupby/methods/test_quantile.pytest_quantile   s*   &rG   c                  C   s   t dg di} tjg dtjd}| |dg}tjddgdgg}t dddgi|d	}t	
|| t g d
g dd} tjddgddgg}tjg dtjd}| |ddg}t g dg dd|d	}t	
|| d S )NAr   r
   r   r   r   )r   r   r
   r
   r
   r4   r   r   r
         @r'   )r   r
   r   r   )r   r         rH   Br   )r   r   r
   r
   )r   r   g      @g      @)g      @g      @g      @g      @r   nparrayint64r9   r2   r/   
MultiIndexfrom_productr:   r;   )rB   r"   rD   r'   rC   rE   rE   rF   test_quantile_arrayI   s   rW   c                  C   s   t jdjdddt jd} t| tdd}|dd	d
g}tg dg ddt	j
jg dd	d
ggdd gdd}t|| d S )Nr   r   r   )
   r   )sizer4   ABCr&   rH   333333?ffffff?)
r   r   gffffff@g@r\   r]   g	@r   r\   r]   )
r   r   gffffff?g@r\   r]   @r   333333?gffffff@)rP   CrI   namesrL   )rR   randomdefault_rngintegersrT   r   r*   r9   r2   r/   rU   rV   r:   r;   )arrrB   rD   rC   rE   rE   rF   test_quantile_array2^   s   	rg   c                  C   s   t g dg dd} tjg dtjd}| j|ddg d}t g d	g d
dtjddgg dgd}t	
|| | j|ddddg}t g dg ddtjddgddggd}t	
|| d S )Nr   r
   r   r   r   r   rO   )r
   r   r
   rJ   F)sort)r   r   r   )r   r         ?r   r   r   )      @r         @r   r   r   r
   r   rL   r   r   )rk   r   r   r   )rm   rl   r   r   rQ   )rB   r"   rD   rC   rE   rE   rF   test_quantile_array_no_sorto   s   rn   c                  C   s|   t g dg dg dg dd} | ddgdd	g}tjjg d
g dd}t g dg dd|d}t|| d S )Nrh   ri   )r   r   r   )r   r   r    )rH   rP   cdro   rp   r   r   ))r   r   r   )r   r   r   )r   r    r   )r   r    r   )ro   rp   Nra   )r   r   r   r   )g      
@g      @r   r   rO   rL   )r   r9   r2   r/   rU   from_tuplesr:   r;   )rB   rD   r'   rC   rE   rE   rF   #test_quantile_array_multiple_levels   s   rr   
frame_size)r   r   )d   rX   r9   r
   r   g333333?c                    s  | \}t tfddt|D td}tt|dgt  g }fddtt|dD gt  tttt|d g }tj	|| d g d} fddtt|dD } fddtD }	t |||	d	}
|
 }t||
 d S )
Nc                    s   g | ]	} |d  g qS )r   rE   ).0_)ncolrE   rF   
<listcomp>       zJtest_groupby_quantile_with_arraylike_q_and_int_columns.<locals>.<listcomp>r[   r   c                    s   g | ]	} D ]}|qqS rE   rE   ru   xrv   r   rE   rF   rx      ry   )levelscodesrb   c                    s,   g | ]}D ]}t |gt   qqS rE   )floatr3   rz   r9   rw   r   rE   rF   rx      s
    c                    s   g | ]}| vr|qS rE   rE   )ru   r{   )r9   rE   rF   rx      s    r'   r&   )r   rR   rS   rangearangeminr3   r*   r/   rU   r9   r2   r:   r;   )rs   r9   r   nrowrB   
idx_levels	idx_codesexpected_indexexpected_valuesexpected_columnsrC   rD   rE   r   rF   6test_groupby_quantile_with_arraylike_q_and_int_columns   s$   ( $r   c                  C   sd   t ddgddgddggddgd} tjtdd	 | d  W d    d S 1 s+w   Y  d S )
Nfoor   r    ro   r"   r#   r[   z+cannot be performed against 'object' dtypesmatch)r   r,   raises	TypeErrorr9   r2   rB   rE   rE   rF   test_quantile_raises   s   ""r   c                  C   s   t g dtdd} | g d}tjtdd |d W d    n1 s)w   Y  tjtdd |d W d    d S 1 sFw   Y  d S )	N)r   r   r   r
   r
   r
   rM   r   r    zGot '50.0' insteadr   2   zGot '-1.0' insteadr   )r   r   r9   r,   r   
ValueErrorr2   )rB   grE   rE   rF   $test_quantile_out_of_bounds_q_raises   s   "r   c                  C   sH   t dt jdg} t| tdd}|d}tdD ]}|  qd S )Nr   r   r!   r"   rt   )rR   rS   nanr   r   r9   r2   )datarB   grprv   rE   rE   rF   /test_quantile_missing_group_values_no_segfaults   s   

r   z$key, val, expected_key, expected_valr           rK   r   r    rk   *   g      E@float64rJ   c                 C   s^   t | |d}t |t|dddgd}|d}|d}t|| | }t|| d S )Nr!   r"   r$   r#   r   r   )r   r   r9   r2   r:   r;   )r"   r#   expected_keyexpected_valrB   rC   r   rD   rE   rE   rF   2test_quantile_missing_group_values_correct_results   s   

r   r7   )r
   r   Nr   Int64)TFNbooleanr   r   r   c                 C   s   t dgd dgd  | d}|dd |}t|tr1tjjddg|fdd gd}g d}ntddgdd	}d
g}tj	|d |ddd}t
|| d S )Nr{   r   yr   r   r    ra   r   r$   r   r   Float64r'   r%   r4   )r   r9   r2   r)   r*   r/   rU   rV   r   r1   r:   assert_series_equal)r7   r   rB   rD   idxtrue_quantilesrC   rE   rE   rF   $test_groupby_quantile_nullable_array   s   


r   numeric_onlyTFc                 C   s   t dgdgdgd}|r*|dj| |d}|ddg | }t|| d S tjtdd	 |dj| |d W d    d S 1 sGw   Y  d S )
Nr
   r   r{   )r   r    ro   r   )r   r    z7'quantile' cannot be performed against 'object' dtypes!r   )r   r9   r2   r:   r;   r,   r   r   )r   r   rB   rD   rC   rE   rE   rF   -test_groupby_quantile_raises_on_invalid_dtype   s   "r   c                 C   s   t ddgdtjgd| d}|dd d}tdg| dd	}| d
v r'| }nd }tjdg||dd}t	|| |dd ddg}tjdgd tj
j|ddgfdd gdd|d}t	|| d S )Nr
   皙?r{   r   rJ   r{   r   r   r   )r4   r%   )Float32r   r4   r'   r%   r   r   ra   r   )r   rR   r   r9   r2   r   r/   r1   r:   r   rU   rV   )any_float_dtyperB   rD   	exp_indexexpected_dtyperC   rE   rE   rF   test_groupby_quantile_NA_float  s    r   c                 C   s   t ddgddgd| d}|dd d}tjd	gd
tdgd| ddd}t|| |dd}t dd	id
tdgd| dd}t|| d S )Nr
   r   r   r   rJ   r{   r   r   rl   r   )r%   r4   r   r4   r'   )	r   r9   r2   r/   r1   r   r:   r   r;   )any_int_ea_dtyperB   rD   rC   rE   rE   rF   test_groupby_quantile_NA_int$  s   r   zinterpolation, val1, val2))r   r   r   )r   r   r   )r   r   r   c                 C   s   t g ddddtjgd|d}|djdd	g| d
}t d||tjtjgi|tjjtjg d|dg dgdd gdd}t	|| d S )Nr
   r
   r
   r   r
   r   r   r   rJ   r   r   r]   r   r   r    r
   r
   r   r   )r   r]   r   r]   ra   r   
r   r/   NAr9   r2   rU   from_arraysr1   r:   r;   )r   val1val2any_numeric_ea_dtyperB   rD   rC   rE   rE   rF   )test_groupby_quantile_all_na_group_masked7  s   r   r	   r   c                 C   s   t g ddddtjgd|d}|djdd	g| d
}|dkr#|}nd}t dddtjtjgi|tjjtjg d|dg dgdd gdd}t	|| d S )Nr   r
   r   r   r   rJ   r   r   r   r   r   r   r    r   rK   r   )r   r   r   r   ra   r   r   )r   r   rB   rD   r   rC   rE   rE   rF   0test_groupby_quantile_all_na_group_masked_interpM  s$   r   r4   r   r   c                 C   sj   t ddgtjgd d| d}|dd d}tjtjg| tdg| ddd	}d|j	_
t|| d S )
Nr
   r   r   rJ   r{   r   r   r   r   )r   r/   r   r9   r2   r1   rR   r   r   r'   r%   r:   r   )r4   rB   rD   rC   rE   rE   rF   "test_groupby_quantile_allNA_columnj  s   r   c                  C   sn   t tjtdddg dd} | dd}t dtd	td
gitddgddd}t	
|| d S )Nr   r   )unitr   )valuegroupr   gGz?r   z0 days 00:00:00.990000z0 days 00:00:02.990000r
   r   r$   rL   )r   r/   to_timedeltarR   r   r9   r2   	Timedeltar   r:   r;   )rB   rD   rC   rE   rE   rF   test_groupby_timedelta_quantilev  s   	r   c                  C   s   t tdddtdtjtdddd} d	}tjt	|d
 | j
ddd}W d    n1 s2w   Y  |jddgd}t g dg dg dgtdtjjg ddd gdd}t|| d S )N   r   r   XYZABABcolr$   r   z+DataFrame.groupby with axis=1 is deprecatedr   r
   )axis皙?r   r|   )g?g?r^   gffffff?)gffffff@g@gffffff@g@)g333333#@g @g333333%@g"@)rH   r   rH   r   rP   r   rP   r   ra   )r   rR   r   reshaper*   r/   r1   r:   assert_produces_warningFutureWarningr9   r2   rU   rq   r;   )rB   msggbrD   rC   rE   rE   rF   test_columns_groupby_quantile  s*   r   c                 C   s   t jdddd| dd}t|ttddttdd	d
}|dddg}t jj	|d d d ddggdd}tddddddddddddg|d}t
|| d S )Nz2020-04-19 00:00:001minrt   UTC)startr   r   tzr   1hr
   e      )	timestampcategoryr   r   r   r   c   )r   Nra   g)@g333333\@)r   r   gH@gfffffb@g333333Q@ge@gW@gfffffh@rL   )r/   
date_rangefloorr   r*   r   r9   r2   rU   rV   r:   r;   )r   dtirB   rD   mirC   rE   rE   rF   test_timestamp_groupby_quantile  s,   
"
r   c                     s   t jddd} t |    | d d< | d d< | | d   d	< t j jd
< t	
t	dd} |}|d} fddtdD }t|j }|jt|_t|| d S )Nz
2016-01-01i  )r   z
US/Pacificr
   r   r   r   r   r   r      r   c                    s$   i | ]}| j |d d dqS )Nr   r   )ilocr2   )ru   ir   rE   rF   
<dictcomp>  s   $ z7test_groupby_quantile_dt64tz_period.<locals>.<dictcomp>)r/   r   r1   to_framecopytz_localize	to_periodNaTr   rR   tiler   r9   r2   r   r   Tinfer_objectsr'   r8   intr:   r;   )r   byr   rD   exprC   rE   r   rF   #test_groupby_quantile_dt64tz_period  s   

r   c                  C   s   t jjg dg dd} t jtd| d}|jdddd	d
g}t jjg ddd gd}t jg d|d}t|| t j	j
jddgd	d
gg}t|jj| d S )N))r   r   rP   )r   r   rH   )r   r    rP   )r   r    rH   )r
   r   rP   )r
   r   rH   )r
   r    rP   )r
   r    rH   )samplecat0cat1ra      rL   r   F)levelrj   r   r   )r   r   r   r   )r_   g333333@g@g333333@rP   rH   )r/   rU   rq   r1   r   r9   r2   r:   r   coreindexesfrozen
FrozenListassert_equalr'   r}   )indserrD   qindrC   expected_levelsrE   rE   rF   +test_groupby_quantile_nonmulti_levels_order  s   
r  )'numpyrR   r,   pandasr/   r   r   pandas._testing_testingr:   r-   parametrizer   r   as_unitrG   rW   rg   rn   rr   r   r   r   r   r   rS   r   r   r   r   r   r   r   r   r   r   r   r   r  rE   rE   rE   rF   <module>   s    "& "  




