3
Ud?O                 @   s  d dl mZmZ d dlZd dlZd dlmZ d dlm	Z	m
Z
 d dljjZd dlmZmZmZmZ d dljZd dlmZ G dd dZejjd	d
ddgejjddgdgfddgd+d,gfddgddgfdddgd-d.d/gfdddgd0d1d2gfdddgd3d4d5gfdddddgd6d7d8d9d:gfddddddgd;d<d=d>d?d@gfdAdBdCdDdEgdFdGdHdIdJgfg	dd Zejjd	d
ddgejjddgdgfddgdKdLgfddgdMdNgfdddgdOdPdQgfdddgdRdSdTgfdddgdUdVdWgfdddddgdXdYdZd[d\gfddddddgd]d^d_d`dadbgfdcdddedfdggdhdidjdkdlgfg	dd Zejjd	d
ddgejjddgdgfddgdmdngfddgddgfdddgdodpdqgfdddgdrdsdtgfdddgdudvdwgfdddddgdxdydzd{d|gfddddddgd}d~ddddgfdddddgdddddgfg	dd Zejjd	d
ddgejjddgdgfddgddgfddgddgfdddgdddgfdddgdddgfdddgdddgfdddddgdddddgfddddddgddddddgfdddddgdddddgfg	d%d& Zejjd	ddgejjddgdgfddgddgfddgddgfdddgdddgfdddgdddgfdddgdddgfdddddgdddddgfddddddgddddddgfdddddgdddddgfg	d'd( Z ejj!ejj"d)d* Z#dS )    )chainproductN)iNaT)InfinityNegInfinity)NaTSeries	Timestamp
date_range)CategoricalDtypec               @   sP  e Zd Zeddddejdddejdg
Zejdddd	ejd	dd
ejdg
ejddddejdddejdg
ejddddejdddejdg
ejddddejdddejdg
ejddddejdddejdg
dZdd Z	dd Z
dd Zejjdej dRdSdTdUdVddddddejgdfej dWdXdYdZd[ddddddejgd fejejjddd!ejejjgd"fejejejjd\ddd#d$d%ejejjgd&ejjd'd(d)e d*d+d,d-d.e gd/fgd0d1 Zd2d3 Zejejjd4d5d6gejjd7d8d9d:d;d<gejjd=d>d?d@gdAdB ZdCdD ZdEdF ZdGdH Z dIdJ Z!dKdL Z"dMdN Z#dOdP Z$dQS )]TestSeriesRank               g      ?g      @g      @g      @g       @         )averageminmaxfirstdensec             C   sL  t jd t jd}tj|d d d< d|d d d d d< |j }|jdj }tj|| tj|}|j	tj
}t|||jdd	}tj||< tj|| ttjd
jd}|j }	|jtj }tj|	| ttjd
d }|d }|jdd}	tj|	| ttjdd}ttjdd}|jdd}	tj|	| tj|d< ttjd*d}tj|d< |jdd}	tj|	| ttjd
d }tj|d< |d }|jdd}	tj|	| ttjtjd}|j }|jdd}	tj|	| ttjd
d }tj|d< |d }|jdd}	tj|	| tdd
d}
ttjd
|
d }tj|jd< |d }|jdd}	tj|	| tddddd+dg}tdddd
ddg}|j }	tj|	| tddd tgd!d"}tdddtjg}|j }	tj|	| tjd,d-d.d/d0d%d&dd'dd(gd)d"}tjjt|}t|| }t|d d)d"}|j }	tj|	| d S )1Nzscipy.stats.specialzscipy.stats.rankdatar   g      @
   r   Ots)indexnamer   g      ?g      @T)pctr   d   g)\(?g      I@g     X@r   z1/1/1990)ZperiodsgJz5g0.++g#B;g{Gz?gKH9g?g      @z3 dayz	1 day 10mz-2 dayzm8[ns])dtype2   g}:r   gWw'&l7g|=(   float64g@_)?gIf;ig#Bǻg}gJz)pytestimportorskipnpnanrankastypetmassert_series_equalisnanZfillnainfr   r   arangerepeatfloatcopyr
   Zilocr   arrayrandompermutationlen)selfZdatetime_seriesrankdataranksZoranksmaskZfilledexpiseriesiranksrngvaluesrandom_order rB   Y/var/www/html/virt/lib64/python3.6/site-packages/pandas/tests/series/methods/test_rank.py	test_rank   s    







zTestSeriesRank.test_rankc             C   sV  t ddddddg}t ddddddg}t ddd	d
ddgjtddd	d
ddgdd}tj|j | tj|jdd| t ddd	d
ddgjtddd	d
ddgdd}t ddddddg}|j }tj|| t ddddddgjtddddddgd}t ddddddg}|j }	tj|	| t ddd	d
ddtjgjtddd	d
dddgd}
t dddddddg}t dddddddg}t ddddddtjg}tj|
jdd| tj|
jdd| tj|
jdd| t dddddddg}t dddddddg}t ddddddtjg}tj|
jddd| tj|
jddd| tj|
jddd| d}tj	t
|d |
jd dd W d Q R X tj	t
|d |
jddd W d Q R X t ddd	d
tjgjtddd	d
gd}
t d!d"d#dd$g}t d$d!d"d#dg}t d%d&d'dtjg}tj|
jddd(| tj|
jddd(| tj|
jddd(| d S ))Ng      ?g       @g      @g      @g      @g      @r   secondthirdZfourthZfifthZsixthT)
categoriesorderedF)	ascendingr   r   r   r   r   r   Zseventhg      @top)	na_optionbottomkeep)rK   rI   z3na_option must be one of 'keep', 'top', or 'bottom')matchbadg?g333333?g?g?g      ?g      ?g      ?)rK   r   )r   r+   r   r,   r-   r*   r(   NaNr&   raises
ValueError)r8   r<   Zexp_descrH   	unorderedZexp_unorderedresZ
unordered1Zexp_unordered1Zres1Zna_serZexp_topZexp_botZexp_keepmsgrB   rB   rC   test_rank_categoricalr   sj    

z$TestSeriesRank.test_rank_categoricalc          	   C   sD   t ddg}|jdd d}tjt|d |jd W d Q R X d S )Nr   r   r   )methodz,No axis named average for object type Series)rN   )r   r*   r&   rQ   rR   )r8   srU   rB   rB   rC   test_rank_signature   s
    z"TestSeriesRank.test_rank_signaturezcontents,dtyper"   g#B;g}:gJz5r   gWw'&l7g|=r#   r$   gj7֖6float32r    uint8i'  i g    _Bint64zHiNaT is equivalent to minimum value of dtypeint64 pending issue GH#16674)reason)Zmarks1AZBAZBaCobjectc             C   s   t jt jtd d}t j||d}t jtt|ddd }||kr~|| }t jjtt|d}t j|||}t j||t j}t jj	t|}t
|| }	t
|| dd}
|	j }tj||
 d S )N)r$   rZ   r\   ra   )r!   r$   g      ?r   )r(   r)   r   r4   ranger7   r5   choiceinsertr6   r   r*   r,   r-   )r8   contentsr!   Zdtype_na_mapr@   Z	exp_orderna_valueZnan_indicesrA   r=   r<   r>   rB   rB   rC   test_rank_inf   s     >zTestSeriesRank.test_rank_infc       	      C   sz   | j }ddd}d tg}tdfh}| j}xLt||D ]>\}}||f|krJq4|d krV|n|j|}|||| |d q4W d S )Nr   c             S   s    | j |d}tj|t| d S )N)rW   )r*   r,   r-   r   )rX   expectedrW   resultrB   rB   rC   _check)  s    z4TestSeriesRank.test_rank_tie_methods.<locals>._checkr   )rW   )r   )rX   ra   resultsr   r+   )	r8   rX   rj   dtypesdisabledrk   rW   r!   ZseriesrB   rB   rC   test_rank_tie_methods&  s    

z$TestSeriesRank.test_rank_tie_methodsrI   TFrW   r   r   r   r   r   rK   rJ   rL   rM   c                s   dd t  t fdtjtjtj fg}d dh} fdd}xZ|D ]R\}}}	}
|
g  |g   |	g   }t||d}||f|krq@||||| q@W d S )	Nra   r$   r   r   c       	   	      s6  dddgdddgdddgfdddgdddgdddgfdddgdddgd	d	d	gfdddgdddgddd	gfdddgdddgdddgfd
}|| }|dkr|d |d |d g}n:|dkr|d |d |d g}n|d t jg  |d g}|r|n|d d d }ttj|}| j|||d}tj|t|dd d S )Nr   r   r   r   r   r   r   r   	   )r   r   r   r   r   rJ   r   rL   )rW   rK   rI   r$   )r!   r%   )	r(   r)   listr   from_iterabler*   r,   r-   r   )	rX   rW   rK   rI   Z	exp_ranksr:   orderrh   ri   )chunkrB   rC   rj   C  s     zATestSeriesRank.test_rank_tie_methods_on_infs_nans.<locals>._check)r!   )ra   r   )r   r   r(   r)   r/   r   )r8   rW   rK   rI   rl   rm   rj   r!   rf   Zpos_infZneg_infZin_arrr=   rB   )rs   rC   "test_rank_tie_methods_on_infs_nans7  s    z1TestSeriesRank.test_rank_tie_methods_on_infs_nansc             C   sN   t dtjtjtj dg}|jdd}t dtjdddgdd	}tj|| d S )
Nr      F)rI   r   r   r   r$   )r!   )r   r(   r)   r/   r*   r,   r-   )r8   r=   ri   r<   rB   rB   rC   test_rank_desc_mix_nans_infs^  s    z+TestSeriesRank.test_rank_desc_mix_nans_infsc       	         s   t jd t jd}tjjd tj fddtdddD  tjj  dd tt D }xt  d	  d
 gD ]^}t	||d}xLdD ]D}|j
|d}|||dkr|nd}t	||djd}tj|| qW qvW d S )Nzscipy.stats.specialzscipy.stats.rankdataro   c                s   g | ]} |d  qS )NrB   ).0i)xsrB   rC   
<listcomp>k  s    z;TestSeriesRank.test_rank_methods_series.<locals>.<listcomp>r   r   c             S   s   g | ]}t td | qS )a)chrord)rw   rx   rB   rB   rC   rz   n  s    g    .Agư>)r   r   r   r   r   r   )rW   Zordinalr$   )r   r   r   r   r   )r&   r'   r(   r5   ZrandnZconcatenaterb   shuffler7   r   r*   r+   r,   r-   )	r8   r9   r   valsr   mri   Zsprankrh   rB   )ry   rC   test_rank_methods_seriesf  s    

 
z'TestSeriesRank.test_rank_methods_seriesc       	      C   s   dddg}dgdgfdgdgfdgdgfddgddgfdddgdddgfdddgdddgfddd	d	dgdddddgfdddddgddddd	gfg}xT|D ]L\}}xB|D ]:}t |j|}|jd
d}t |j|j}tj|| qW qW d S )Nr   f8i8r   r   r   r   r   r   r   )rW   r%   )r   r+   r*   r!   r,   r-   )	r8   rl   Zin_outserr<   r!   rX   ri   rh   rB   rB   rC   test_rank_dense_methody  s    




z%TestSeriesRank.test_rank_dense_methodc             C   s   dddg}xt || jD ]\}}d|kr4| jj }n| jj|}|jdd}|j | j }tj|| |dkrz|dkrzq|j | j|d}|j|dd	}tj|| qW d S )
Nr   r   r   rx   F)rI   r   )rW   )rW   rI   )	r   rk   rX   dropnar+   r*   r   r,   r-   )r8   rl   r!   rW   rX   rT   rh   Zres2rB   rB   rC   test_rank_descending  s    
z#TestSeriesRank.test_rank_descendingc             C   sX   | j j jd}xB| jj D ]4\}}|j|d}t|j }|j|_tj	|| qW d S )Nr   )rW   )
rX   r   r+   rk   itemsr*   r   r   r,   r-   )r8   rX   rW   rT   ri   rh   rB   rB   rC   test_rank_int  s    zTestSeriesRank.test_rank_intc             C   s@   t tjgd jtjdd t tjgd jtjdd d S )N    T)rI   F)r   r(   r)   r+   ra   r*   )r8   rB   rB   rC   test_rank_object_bug  s    z#TestSeriesRank.test_rank_object_bugc             C   s4   t tdtg}|j }|j  |}tj|| d S )Nz2017-01-05 10:20:27.569000)r   r	   r   r3   r*   r,   r-   )r8   rX   rh   ri   rB   rB   rC   test_rank_modify_inplace  s
    z'TestSeriesRank.test_rank_modify_inplaceNir%   g#Bǻg}gJzir%   g#Bǻg}gj7֖i)%__name__
__module____qualname__r   r(   r)   rX   r4   rk   rD   rV   rY   r&   markparametrizer/   Ziinfor[   r   r   paramr\   Zxfailr   r   rg   rn   tdZskip_if_no_scipyrt   rv   r   r   r   r   r   r   rB   rB   rB   rC   r      s        &XX$
&"$	r   r!   r   r   r   zser, expr   g      ?r   g       @r   g      @r   r   g      @g      @c             C   s<   t |j| }|jddd}t |j|j}tj|| d S )Nr   T)rW   r   )r   r+   r*   r!   r,   r-   )r!   r   r<   rX   ri   rh   rB   rB   rC   test_rank_dense_pct  s    r   r   c             C   s<   t |j| }|jddd}t |j|j}tj|| d S )Nr   T)rW   r   )r   r+   r*   r!   r,   r-   )r!   r   r<   rX   ri   rh   rB   rB   rC   test_rank_min_pct  s    r   g      @c             C   s<   t |j| }|jddd}t |j|j}tj|| d S )Nr   T)rW   r   )r   r+   r*   r!   r,   r-   )r!   r   r<   rX   ri   rh   rB   rB   rC   test_rank_max_pct  s    r   g      ?g      @g      @g      @g      @c             C   s<   t |j| }|jddd}t |j|j}tj|| d S )Nr   T)rW   r   )r   r+   r*   r!   r,   r-   )r!   r   r<   rX   ri   rh   rB   rB   rC   test_rank_average_pct  s    r   c             C   s<   t |j| }|jddd}t |j|j}tj|| d S )Nr   T)rW   r   )r   r+   r*   r!   r,   r-   )r!   r   r<   rX   ri   rh   rB   rB   rC   test_rank_first_pct  s    r   c              C   s.   t tjd} | jddj }|dks*td S )Nr      r   T)r   i   i  )r   r(   r0   r*   r   AssertionError)rX   ri   rB   rB   rC   test_pct_max_many_rows-  s    r   g      ?g      ?gUUUUUU?gUUUUUU?g      ?g      ?g      ?g      ?g      ?gUUUUUU?gUUUUUU?gUUUUUU?gUUUUUU?g      ?g      ?gUUUUUU?gUUUUUU?gUUUUUU?gUUUUUU?gUUUUUU?g      ?g      ?r   r   r   r   r%   g?g?g333333?g?g      ?g      ?g      ?g      ?g      ?gUUUUUU?gUUUUUU?g      ?gUUUUUU?gUUUUUU?gUUUUUU?g      ?gUUUUUU?gUUUUUU?g?g?g?g?g333333?gUUUUUU?gUUUUUU?g      ?g      ?g?g?r   r   r   r   r%   g?g?g333333?g?g      ?g      ?g      ?gUUUUUU?gUUUUUU?g      ?gUUUUUU?g      ?g      ?g      ?gUUUUUU?gUUUUUU?g?g?g      ?g      ?g333333?gUUUUUU?gUUUUUU?gUUUUUU?gUUUUUU?g      ?g      ?r   r   r   r   r%   g?g?g333333?g?g      ?g      ?g      ?g      ?g      ?gUUUUUU?gUUUUUU?g      ?gUUUUUU?g?g?g      ?gUUUUUU?gUUUUUU?g333333?g333333?g?g?g333333?g      ?g      ?g?g?gUUUUUU?gUUUUUU?r   r   r   r   r%   g?g?g333333?g?g      ?g      ?g      ?g      ?g      ?gUUUUUU?gUUUUUU?g      ?gUUUUUU?gUUUUUU?g      ?g      ?gUUUUUU?gUUUUUU?g?g?g?g      ?g333333?gUUUUUU?gUUUUUU?g      ?gUUUUUU?g?g      ?r   r   r   r   r%   g?g?g333333?g?g      ?)$	itertoolsr   r   Znumpyr(   r&   Zpandas._libsr   Zpandas._libs.algosr   r   Zpandas.util._test_decoratorsutilZ_test_decoratorsr   Zpandasr   r   r	   r
   Zpandas._testingZ_testingr,   Zpandas.api.typesr   r   r   r   r   r   r   r   r   ZsingleZhigh_memoryr   rB   rB   rB   rC   <module>   s   
   3
*

*

*

*

*
