U
    ½mœ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sŒt‚t ddd
d	�dks¢t‚t ddd
d	�dks¸t‚d S )Né   iq	…2r   ©Úseedé*   i#úU“F©Úpositive)r   r   Tl   #z«& ©r   ÚAssertionError© r   r   ú\/home/sam/Atlas/atlas_env/lib/python3.8/site-packages/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	   iºz®ÿi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 )Néd   ú 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   ZzerosZfloat64r,   r   Úfullr   Zones)Zn_binsZ	n_samplesZbinsr-   Zmeansr!   r   r   r   Útest_uniform_distribution@   s    r2   )Únumpyr   Zsklearn.utils.murmurhashr   Znumpy.testingr   r   r   r"   r'   r(   r/   r2   r   r   r   r   Ú<module>   s   