U
    3d	                     @   s`   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S )    Nmurmurhash3_32)assert_array_almost_equal)assert_array_equalc                   C   s   t ddkstt ddddks$tt ddddks8tt ddddksLtt dddd	dksbtt dddd	dksxtt dd
ddkstt ddd
d	dkstt ddd
d	dkstd S )N   iq	2r   seed*   i#UFpositive)r   r   Tl   #z& r   AssertionError r   r   G/tmp/pip-unpacked-wheel-zrfo1fqw/sklearn/utils/tests/test_murmurhash.pytest_mmhash3_int   s    r   c                     s   t jd} | jddddt j}|d}dD ]: t  fdd	|jD }||j	}t
t| | q2dD ]> t  fd
d	|jD }||j	}t
t| dd| qrd S )Nr	   iziE    )size)r         )r   r	   c                    s   g | ]}t t| qS r   )r   int.0kr   r   r   
<listcomp>   s     z*test_mmhash3_int_array.<locals>.<listcomp>c                    s   g | ]}t | d dqS )Tr
   r   r   r   r   r   r   $   s     Tr
   )nprandomZRandomStaterandintZastypeZint32ZreshapearrayZflatshaper   r   )rngkeysexpectedr   r   r   test_mmhash3_int_array   s    
r"   c                   C   sT   t dddkstt dddks$tt dddddks:tt ddddd	ksPtd S )
Ns   foor    ĥr	   H/Tr
       DKm    H^b r   r   r   r   r   test_mmhash3_bytes)   s    r'   c                   C   sT   t dddkstt dddks$tt dddddks:tt ddddd	ksPtd S )
NZfoor   r#   r	   r$   Tr
   r%   r&   r   r   r   r   r   test_mmhash3_unicode1   s    r(   c                  C   s6   t  } tdD ]"}td| d}|| kstdqd S )Nd    r   z'Found collision on growing empty string)setranger   r   )Zprevious_hashesihr   r   r   test_no_collision_on_byte_range9   s    r/   c                  C   st   d\} }t j| t jd}t|D ] }|t|dd|    d7  < q || }t | d|  }t|| t | d d S )N)
   i )ZdtypeTr
   r   g      ?r   )r   zerosZfloat64r,   r   fullr   Zones)Zn_binsZ	n_samplesZbinsr-   Zmeansr!   r   r   r   test_uniform_distribution@   s    r3   )Znumpyr   Zsklearn.utils.murmurhashr   Znumpy.testingr   r   r   r"   r'   r(   r/   r3   r   r   r   r   <module>   s   