o
    õ­d—<  ã                   @   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%dS )fé    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|j 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rw|	jjd jdkrw|	 |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ÚnodeÚ
add_markerÚ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© rF   úg/var/www/html/visualizacion-main/env/lib/python3.10/site-packages/pandas/tests/groupby/test_quantile.pyÚtest_quantile   s0   ÿþý
üÿÿ&ÿrH   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
   ©r5   r   r   r
   ç      @©r'   )r   r
   r   r   )r   r   é   é   ©rI   ÚBr   )r   r   r
   r
   )r   r   g      @g      @)g      @g      @g      @g      @©r   ÚnpÚarrayÚint64r:   r3   r0   Ú
MultiIndexÚfrom_productr;   r<   )rC   r"   rE   r'   rD   rF   rF   rG   Útest_quantile_arrayI   s   ÿrX   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   )Úsizer5   ÚABC©r&   rI   g333333Ó?çffffffæ?)
gÍÌÌÌÌÌì?gÍÌÌÌÌÌ @gš™™™™™@g333333@çš™™™™™ù?g333333@gffffff@gš™™™™™@ç        r_   )
g333333ó?gffffff@gÍÌÌÌÌÌü?r   r_   r_   gffffffþ?gÍÌÌÌÌÌ@r   r   )rQ   ÚCrJ   ©ÚnamesrM   )rS   ÚrandomÚRandomStateÚrandintrU   r   r*   r:   r3   r0   rV   rW   r;   r<   )ÚarrrC   rE   rD   rF   rF   rG   Ú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   rP   )r
   r   r
   rK   F)Úsort)r   r   r   )r   r   ç      ø?r   r   r   )ç      @r   ç      @r   r   r   r
   r   rM   r   r   )rk   r   r   r   )rm   rl   r   r   rR   )rC   r"   rE   rD   rF   rF   rG   Ú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    )rI   rQ   Ú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   rP   rM   )r   r:   r3   r0   rV   Úfrom_tuplesr;   r<   )rC   rE   r'   rD   rF   rF   rG   Ú#test_quantile_array_multiple_levels   s   ÿþÿrr   Ú
frame_size)r   r   )éd   rY   r:   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   rF   )Ú.0Ú_)ÚncolrF   rG   Ú
<listcomp>–   ó    zJtest_groupby_quantile_with_arraylike_q_and_int_columns.<locals>.<listcomp>r\   r   c                    s   g | ]	}ˆ D ]}|‘qqS rF   rF   ©ru   Úxrv   ©r   rF   rG   rx   ™   ry   )ÚlevelsÚcodesrb   c                    s,   g | ]}ˆD ]}t |ƒgˆtˆ ƒ  ‘qqS rF   )Úfloatr4   rz   ©r:   rw   r   rF   rG   rx   Ÿ   s
    ÿÿc                    s   g | ]}|ˆ vr|‘qS rF   rF   )ru   r{   )r:   rF   rG   rx   ¢   s    ©r'   r&   )r   rS   rT   ÚrangeÚarangeÚminr4   r*   r0   rV   r:   r3   r;   r<   )rs   r:   r   ÚnrowrC   Ú
idx_levelsÚ	idx_codesÚexpected_indexÚexpected_valuesÚexpected_columnsrD   rE   rF   r€   rG   Ú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Ú	TypeErrorr:   r3   ©rC   rF   rF   rG   Ú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
   rN   ©r   r    zGot '50.0' insteadr   é2   zGot '-1.0' insteadr   )r   r‚   r:   r-   r   Ú
ValueErrorr3   )rC   ÚgrF   rF   rG   Ú$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   )rS   rT   Únanr   r‚   r:   r3   )ÚdatarC   Úgrprv   rF   rF   rG   Ú/test_quantile_missing_group_values_no_segfaults½   s   

ÿr›   z$key, val, expected_key, expected_valr   r_   rL   r   r    rk   é*   g      E@Úfloat64rK   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   r:   r3   r;   r<   )r"   r#   Úexpected_keyÚexpected_valrC   rD   rš   rE   rF   rF   rG   Ú2test_quantile_missing_group_values_correct_resultsÈ   s   ÿ

r    r8   )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%   r5   )r   r:   r3   r)   r*   r0   rV   rW   r   r2   r;   Úassert_series_equal)r8   r   rC   rE   ÚidxÚtrue_quantilesrD   rF   rF   rG   Ú$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   r:   r3   r;   r<   r-   r   r   )r   r«   rC   rE   rD   rF   rF   rG   Ú-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¤   rK   r{   r¤   r   r   )r5   r%   )ÚFloat32r¥   ©r5   r'   r%   r   r   ra   r¦   )r   rS   r˜   r:   r3   r   r0   r2   r;   r§   rV   rW   )Úany_float_dtyperC   rE   Ú	exp_indexÚexpected_dtyperD   rF   rF   rG   Ú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®   rK   r{   r¤   r   rl   r¥   )r%   r5   r°   ©r5   r'   )	r   r:   r3   r0   r2   r   r;   r§   r<   )Úany_int_ea_dtyperC   rE   rD   rF   rF   rG   Ú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“   rK   r   r   r]   ©r   r   r    ©r
   r
   r   r   )r   r]   r   r]   ra   rµ   ©
r   r0   ÚNAr:   r3   rV   Úfrom_arraysr2   r;   r<   )r   Úval1Úval2Úany_numeric_ea_dtyperC   rE   rD   rF   rF   rG   Ú)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“   rK   r   r   r   r¹   r¯   r¥   r    r   rL   rº   )r   r   r   r   ra   rµ   r»   )r   rÀ   rC   rE   r³   rD   rF   rF   rG   Ú0test_groupby_quantile_all_na_group_masked_interpM  s$   ÿþûýrÂ   r5   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®   rK   r{   r¤   r   r   r°   )r   r0   r¼   r:   r3   r2   rS   r˜   r   r'   r%   r;   r§   )r5   rC   rE   rD   rF   rF   rG   Ú"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Æ   g®Gáz®ï?rÅ   z0 days 00:00:00.990000z0 days 00:00:02.990000r
   r   r$   rM   )r   r0   Úto_timedeltarS   rƒ   r:   r3   Ú	Timedeltar   r;   r<   ©rC   rE   rD   rF   rF   rG   Útest_groupby_timedelta_quantilev  s   ÿþÿù	rÊ   c                  C   s   t t d¡ dd¡tdƒtjtdƒddd} | jdd	d
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   r
   )Úaxisçš™™™™™é?r­   r|   )r^   gš™™™™™Ù?gÍÌÌÌÌÌ@gffffffö?)gffffff@gš™™™™™@gffffff@gš™™™™™@)g333333#@gÍÌÌÌÌÌ @g333333%@gÍÌÌÌÌÌ"@))rI   rÐ   )rI   r­   )rQ   rÐ   )rQ   r­   ra   )r   rS   rƒ   Úreshaper*   r0   r2   r:   r3   rV   rq   r;   r<   rÉ   rF   rF   rG   Útest_columns_groupby_quantileˆ  s"   ýýÿùrÒ   c               	   C   sÄ   t tjddddd d¡ttddƒƒttdd	ƒƒd
œƒ} |  d¡ ddg¡}t dddœdddœdddœdddœgtjj	t 
d¡dft 
d¡dft 
d¡dft 
d¡dfgddd}t ||¡ d S )Nz2020-04-19 00:00:00Ú1Trt   ÚUTC)Ústartr   r   ÚtzÚ1Hr
   ée   éÉ   )Ú	timestampÚcategoryrÅ   rÚ   r­   rÐ   gš™™™™™)@g333333\@)rÛ   rÅ   gš™™™™H@gfffff†b@g333333Q@gš™™™™e@gÍÌÌÌÌW@gfffffh@z2020-04-19 00:00:00+00:00z2020-04-19 01:00:00+00:00)rÚ   Nra   rM   )r   r0   Ú
date_rangeÚfloorr*   r‚   r:   r3   rV   rq   Ú	Timestampr;   r<   rÉ   rF   rF   rG   Útest_timestamp_groupby_quantileŸ  s4   ÿûÿ
üüùù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j¡|_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   )Úilocr3   )ru   Úir‘   rF   rG   Ú
<dictcomp>Ò  s   $ z7test_groupby_quantile_dt64tz_period.<locals>.<dictcomp>)r0   rÜ   r2   Úto_frameÚtz_localizeÚ	to_periodÚNaTrá   rS   Útilerƒ   r:   r3   r‚   r   ÚTr'   r9   Úint_r;   r<   )ÚdtiÚserÚbyÚgbrE   ÚexprD   rF   r‘   rG   Ú#test_groupby_quantile_dt64tz_periodÂ  s   



rð   )&ÚnumpyrS   r-   Úpandasr0   r   r   Úpandas._testingÚ_testingr;   r.   Úparametrizer˜   rÜ   Úas_unitrH   rX   rg   rn   rr   r‹   r’   r—   r›   r‚   rT   r    rª   r¬   r´   r·   rÁ   rÂ   rÃ   rÊ   rÒ   rß   rð   rF   rF   rF   rG   Ú<module>   s’    ÿ"&þþìþ "  ûþ

þþÿ


#