U
    3d
                     @   sh   d dl 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S )    N)assert_allclose)approx_weighted_percentilec                  C   sp   t jdt jd} d| d d< d| dd < d| d< d	| d< t jdt jd}d
|d< t| |d}t|d	ksltd S )Nf   Zdtyper   2      ii            )npemptyfloat64onesr   r   AssertionErroryswZscore r   B/tmp/pip-unpacked-wheel-zrfo1fqw/sklearn/utils/tests/test_stats.pytest_weighted_percentile   s    r   c                  C   sN   t jdt jd} | d t jdt jd}d|d< t| |d}|dksJtd S )Nr   r   r   r
   r   r   )r   r   r   fillr   r   r   r   r   r   r   test_weighted_percentile_equal   s    
r   c                  C   sT   t jdt jd} | d t jdt jd}|d t| |d}t|dksPtd S )Nr   r   g      ?r   r   )r   r   r   r   r   r   r   r   r   r   r   r   $test_weighted_percentile_zero_weight   s    

r   c                  C   s   t ddddddg} t ddddddg}t| |d}t|dksHtt| |d}t|dksdtt| |d}t|dkstd S )	Nr   r   r	            r   d   )r   arrayr   r   r   r   r   r   r   4test_weighted_percentile_zero_weight_zero_percentile&   s    r    c                  C   sN   t jd} | jddd}t |j}t |}t||}|t|ksJt	d S )Nr   
      size)
r   randomRandomStaterandintr   shapemedianr   r   r   )rngxweightsr)   w_medianr   r   r   "test_weighted_median_equal_weights3   s    

r.   c                  C   s\   t jd} | jddd}| jddd}t ||}t |}t||}|t|ksXt	d S )Nr      r!   r#   r   )
r   r%   r&   r'   choicerepeatr)   r   r   r   )r*   r+   r,   Zx_manualr)   r-   r   r   r   $test_weighted_median_integer_weights?   s    

r2   c                     s   t jd} | jddd}| jddd | jddd}t ||fjt } fddtj	d D }t
|| | jddd}t  |fjt}fd	dtj	d D }t
|| d S )
Nr   r!   r#   r   r/   c                    s"   g | ]}t d d |f  qS Nr   .0i)w1x_2dr   r   
<listcomp>W   s     z/test_weighted_percentile_2d.<locals>.<listcomp>r   c                    s.   g | ]&}t d d |f  d d |f qS r3   r   r4   )w_2dr8   r   r   r9   _   s    )r   r%   r&   r'   r0   ZvstackTr   ranger(   r   )r*   x1Zx2r-   Zp_axis_0Zw2r   )r7   r:   r8   r   test_weighted_percentile_2dM   s    


r>   )Znumpyr   Znumpy.testingr   Zpytestr   Zsklearn.utils.statsr   r   r   r   r    r.   r2   r>   r   r   r   r   <module>   s   		