ó
\c           @   sĒ   d  d l  Z d  d l m Z m Z d  d l m Z d  d l m Z d  d l m	 Z	 d  d l
 m Z m Z d   Z d   Z d	   Z d
   Z d   Z d   Z d S(   iĸĸĸĸN(   t   bt   u(   t   murmurhash3_32(   t   assert_array_almost_equal(   t   assert_array_equal(   t   assert_equalt   assert_truec           C   sũ   t  t d  d  t  t d d d d  t  t d d d d  t  t d d t d  t  t d d d d t d  t  t d d d d t d  t  t d d t d  t  t d d d d t d  t  t d d d d t d  d  S(	   Ni   iq	2t   seedi    i*   i#úUt   positiveI#úU    (   R   R   t   Falset   True(    (    (    sB   lib/python2.7/site-packages/sklearn/utils/tests/test_murmurhash.pyt   test_mmhash3_int   s    c       	   C   s5  t  j j d  }  |  j d d d d j t  j  } | j d  } xp d d g D]b } t  j g  | j D] } t	 t
 |  |  ^ qh  } | j | j  } t t	 | |  |  qR Wxv d d g D]h } t  j g  | j D] } t	 | | d	 t ^ qÛ  } | j | j  } t t	 | | d	 t |  qÅ Wd  S(   Ni*   išzŪĸiE t   sizei   i   i   i    R   i   i   (   i   i   i   (   t   npt   randomt   RandomStatet   randintt   astypet   int32t   reshapet   arrayt   flatR   t   intt   shapeR   R
   (   t   rngt   keysR   t   kt   expected(    (    sB   lib/python2.7/site-packages/sklearn/utils/tests/test_murmurhash.pyt   test_mmhash3_int_array   s    $	+	+c           C   s   t  t t d  d  d  t  t t d  d  d  t  t t d  d d t d  t  t t d  d d t d  d  S(	   Nt   fooi    i ÄĨöi*   iH/ąR   I ÄĨö    IH/ą    (   R   R   R    R
   (    (    (    sB   lib/python2.7/site-packages/sklearn/utils/tests/test_murmurhash.pyt   test_mmhash3_bytes.   s    "c           C   s   t  t t d  d  d  t  t t d  d  d  t  t t d  d d t d  t  t t d  d d t d  d  S(	   NR   i    i ÄĨöi*   iH/ąR   I ÄĨö    IH/ą    (   R   R   R   R
   (    (    (    sB   lib/python2.7/site-packages/sklearn/utils/tests/test_murmurhash.pyt   test_mmhash3_unicode6   s    "c          C   sJ   t    }  x: t d  D], } t d | d  } t | |  k d  q Wd  S(   Nid   t    i    s'   Found collision on growing empty string(   t   sett   rangeR   R   (   t   previous_hashest   it   h(    (    sB   lib/python2.7/site-packages/sklearn/utils/tests/test_murmurhash.pyt   test_no_collision_on_byte_range>   s
    	c          C   s   d \ }  } t  j |  d t  j } x4 t |  D]& } | t | d t |  c d 7<q1 W| | } t  j |  d |   } t | | t  j |   d  d  S(	   Ni
   i  t   dtypeR   i   g      ð?i   (   i
   i  (	   R   t   zerost   float64R"   R   R
   t   fullR   t   ones(   t   n_binst	   n_samplest   binsR$   t   meansR   (    (    sB   lib/python2.7/site-packages/sklearn/utils/tests/test_murmurhash.pyt   test_uniform_distributionF   s    $
(   t   numpyR   t   sklearn.externals.sixR    R   t   sklearn.utils.murmurhashR   t   numpy.testingR   R   t   sklearn.utils.testingR   R   R   R   R   R   R&   R0   (    (    (    sB   lib/python2.7/site-packages/sklearn/utils/tests/test_murmurhash.pyt   <module>   s   					