3
Udq,                 @   sX   d dl m Z mZ d dlZd dlZd dljjZd dl	m
Z
mZ d dljZG dd dZdS )    )datetime	timedeltaN)	DataFrameSeriesc               @   sT  e Zd Zeddddejdddejdg
Zeeed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
ejdddddgddd Zejdd Zdd Zdd Zdd Zejd d! Zd"d# Zejd$d% Zejjd&d'd(d)gd*d+ Zejjd,d-dgejjd&d.egd/d0 Zejjd1dd2d2d2gd2d3d:gd2d3d;ggfdd<d2d2gd=d>d?gd@dAdBggfdd2d2d2gd2dCdDgd2dEdFggfddGd2d2gdHd3dIgdJd3dKggfddLd2d2gdMdNdOgdPdQdRggfgd6d7 Zejjejjd8d9 Zd.S )STestRank               )ABg      ?g      @g      @g      @g       @         )averageminmaxfirstdenser   r   r   r   r   )paramsc             C   s   |j S )z5
        Fixture for trying all rank methods
        )param)selfrequest r   X/var/www/html/virt/lib64/python3.6/site-packages/pandas/tests/frame/methods/test_rank.pymethod   s    zTestRank.methodc             C   sD  dd l }ddl m} tj|d d d d< tj|d d d d< tj|d d d d< tj|d	 d d d
< |j }|jd}tj|j}|jtjj}tj	|d|}tj||< tj	|d|}	tj|	|< t
j|j| t
j|j|	 ttjjdd
ddjd}
|
j }|
jtj }t
j|| |
jd}|
jtjd}t
j|| d S )Nr   )rankdatar   r
   r   r   Cr	   Dr   r   (   )size
   )r"   r	   )scipy.statsr   npnanrankisnanvaluesfillnainfapply_along_axistmassert_almost_equalr   randomrandintZreshapeastypefloatassert_frame_equal)r   float_framescipyr   ranks0ranks1maskfvalsexp0exp1dfresultexpr   r   r   	test_rank   s.    



zTestRank.test_rankc          	   C   s  t dddgdddgg}t dddgdddggd }|jddd}tj|| t dddgdddgg}|jd	d }|jd	dd}tj|| t d
ddgddd
gg}t dddgdddgg}|jddd}tj|| t dddgdddgg}|jd	dd}tj|| t d
tjdgddd
gg}t dtjdgdddgg}|jddd}tj|| t dtjdgdddgg}|jd	dd}tj|| tdddtjtdddgtdddtdddtdddgg}t |}t dtjdgdddgg}|jdddd}tj|| t dtjdgdddgg}|jdddd}tj|| t ddddddddgi}t ddddddddgi}tj|j | d S ) Nr   r   r
   g      ?g      @g       @T)pctr   bcaF)numeric_onlyg      ?i  r   i  )rC   	ascendingg#B;gWw'&l7r"   gDcLg_QPgKH9g      @g      @g      @g      @g#B;)r   r&   r,   r2   r$   r%   r   )r   r;   expectedr<   datar=   r   r   r   
test_rank2C   sD    $zTestRank.test_rank2c             C   s:   t tjjdddd}|j }|j  |}tj|| d S )Nr"   r   float64)dtype)r   r$   r.   Zrandncopyr&   r,   r2   )r   r;   rF   r<   r   r   r   test_rank_does_not_mutatet   s
    z"TestRank.test_rank_does_not_mutatec             C   sD   t j |d< tddd|d< |jd}|jddd}tj|| d S )Nr   r   )dayssecondsr   T)rC   )r   nowr   r&   r,   r2   )r   Zfloat_string_framer<   rF   r   r   r   test_rank_mixed_frame}   s
    
zTestRank.test_rank_mixed_framec             C   s  dd l }ddl m} tj|d d d d< tj|d d d d< tj|d d d d< tj|d	 d d d
< |jdd}|jddd}|jtjj}tj|d|}tj|d|}t	j
|j| t	j
|j| |jdd}|jddd}|j|j d j j}	|j}
|
j|
j d j j}
|
jtjj}
tj|d|	}tj|d|
}t	j
|j| t	j
|j| |jddd}|jdddd}|jtjj}tj|d| }tj|d| }t	j
|j| t	j
|j| |jddd}|jdddd}|j|j d j j}	|j}
|
j|
j d j j}
|
jtjj}
tj|d|	 }tj|d|
 }t	j|j| t	j|j| 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 d S )Nr   )r   r   r
   r   r   r   r	   r   r   Zbottom)	na_optionr   topF)rQ   rD   z3na_option must be one of 'keep', 'top', or 'bottom')matchbadT)r#   r   r$   r%   r&   r)   r*   r(   r+   r,   r-   r   to_dictTZassert_numpy_array_equalpytestZraises
ValueError)r   r3   r4   r   r5   r6   r8   r9   r:   Zfval0Zfval1msgr   r   r   test_rank_na_option   sZ    zTestRank.test_rank_na_optionc             C   sP   t ddgddgg}tj|jdd|jdd tj|jdd|jdd d S )	Nr
   r   r	   r   r   )axisindexcolumns)r   r,   r2   r&   )r   r;   r   r   r   test_rank_axis   s    zTestRank.test_rank_axisc          	   C   s   dd l }ddl m} tjjddd}|d d }dd t|jd	 D }x||d
 |d gD ]}t||d}xndD ]f}x`dD ]X}|j||d}	tj	||||dkr|nd}
|
j
tj}
t|
|dj
d}tj|	| q|W qrW q\W d S )Nr   )r      d      g      $@c             S   s   g | ]}t td | qS )z)chrord).0ir   r   r   
<listcomp>   s    z4TestRank.test_rank_methods_frame.<locals>.<listcomp>r   g    .Agư>)r]   r   r   r   r   r   )r[   r   ZordinalrI   )r`   ra   )r   r   )r   r   r   r   r   )r#   r   r$   r.   r/   rangeshaper   r&   r+   r0   rI   r,   r2   )r   r4   r   xscolsvalsr;   Zaxmr<   ZsprankrF   r   r   r   test_rank_methods_frame   s    

z TestRank.test_rank_methods_framerJ   OZf8i8c             C   s   d|kr| j j }n| j j|}|jdd}|j | j }tj|| |dkr\|dkr\d S |j | j|d}|dkr|j|ddd}tj|| |j|ddd}tj|| d S )	Nrf   F)rD   r   ro   )r   T)r   rD   rC   )r;   Zdropnar0   r&   r   r,   r2   )r   r   rJ   r;   resrF   Zres2Zres3r   r   r   test_rank_descending   s    zTestRank.test_rank_descendingr[   r   Nc             C   sZ   | j }ddd}tdfh}||f|kr*d S |d kr6|n|j|}||| j| ||d d S )Nr   r   c             S   s@   t ||d}|dkr"| j} |j}| j||d}tj|| d S )N)r   r   r   )r   r[   )r   rV   r&   r,   r2   )r;   rF   r   r[   Zexp_dfr<   r   r   r   _check2d  s    z3TestRank.test_rank_2d_tie_methods.<locals>._check2dr   )r   r[   )r   r   )r;   objectr0   results)r   r   r[   rJ   r;   rs   disabledframer   r   r   test_rank_2d_tie_methods  s    


z!TestRank.test_rank_2d_tie_methodsz
method,expg      ?g      ?g       @g      @c             C   sF   t dddgdddgdddgg}|j|dd}t |}tj|| d S )	Ni  B   r   A   r
   r   T)r   r?   )r   r&   r,   r2   )r   r   r=   r;   r<   rF   r   r   r   test_rank_pct_true  s    ! zTestRank.test_rank_pct_truec             C   sB   t tjd	tjdddd}|jddj }|dkj s>td S )Nr
      r   r   )r   r   T)r?   i   i  i   i  )r   r$   Zaranger&   r   allAssertionError)r   r;   r<   r   r   r   test_pct_max_many_rowsC  s    zTestRank.test_pct_max_many_rowsgUUUUUU?gUUUUUU?gUUUUUU?gUUUUUU?gUUUUUU?gUUUUUU?gUUUUUU?gUUUUUU?gUUUUUU?gUUUUUU?gUUUUUU?gUUUUUU?gUUUUUU?gUUUUUU?gUUUUUU?gUUUUUU?gUUUUUU?gUUUUUU?gUUUUUU?gUUUUUU?gUUUUUU?gUUUUUU?g      ?gUUUUUU?gUUUUUU?) __name__
__module____qualname__r   r$   r%   sr   r;   arrayru   rW   Zfixturer   tdZskip_if_no_scipyr>   rH   rL   rP   rZ   r^   rn   markZparametrizerr   rt   rx   r{   ZsingleZhigh_memoryr   r   r   r   r   r      sF        &$1	Nr   )r   r   Znumpyr$   rW   Zpandas.util._test_decoratorsutilZ_test_decoratorsr   Zpandasr   r   Zpandas._testingZ_testingr,   r   r   r   r   r   <module>   s   
