ó
‡ˆ\c           @   s“  d  Z  d d l Z d d l Z d d l m Z d d l m Z d d l m Z d d l m	 Z	 d d l m
 Z
 d d l m Z d d	 l m Z d d
 l m Z d d l m Z d d l m Z d d l m Z d Z e j d d g d d g d d g g ƒ d Z e d d d d d e d d d e d d ƒ \ Z Z d „  Z d „  Z d „  Z d „  Z d „  Z d  „  Z d! „  Z d" „  Z  d# „  Z! d$ „  Z" d S(%   s,   
Testing for mean shift clustering methods

iÿÿÿÿN(   t   sparse(   t   assert_equal(   t   assert_false(   t   assert_array_equal(   t   assert_array_almost_equal(   t   assert_raise_message(   t	   MeanShift(   t
   mean_shift(   t   estimate_bandwidth(   t   get_bin_seeds(   t
   make_blobsi   i   i
   t	   n_samplesi,  t
   n_featuresi   t   centerst   cluster_stdgš™™™™™Ù?t   shufflet   random_statei   c          C   s8   t  t d d ƒ}  d |  k o) d k n s4 t ‚ d  S(   NR   iÈ   gÍÌÌÌÌÌì?g      ø?(   R   t   Xt   AssertionError(   t	   bandwidth(    (    sD   lib/python2.7/site-packages/sklearn/cluster/tests/test_mean_shift.pyt   test_estimate_bandwidth   s    c          C   s/   t  t d d d d ƒ}  t |  d d d ƒd  S(   NR   i   t   quantileg333333Ó?g        t   decimali   (   R   R   R   (   R   (    (    sD   lib/python2.7/site-packages/sklearn/cluster/tests/test_mean_shift.pyt   test_estimate_bandwidth_1sample$   s    c          C   s“   d }  t  d |  ƒ } | j t ƒ j } t j | ƒ } t | ƒ } t | t ƒ t	 t d |  ƒ\ } } t j | ƒ } t | ƒ } t | t ƒ d  S(   Ng333333ó?R   (
   R   t   fitR   t   labels_t   npt   uniquet   lenR   t
   n_clustersR   (   R   t   mst   labelst   labels_uniquet   n_clusters_t   cluster_centers(    (    sD   lib/python2.7/site-packages/sklearn/cluster/tests/test_mean_shift.pyt   test_mean_shift+   s    c          C   s/   t  j d ƒ }  d } t t | t |  d ƒ d  S(   Niè  s7   A sparse matrix was passed, but dense data is required.iÈ   (   iè  iè  (   R    t
   lil_matrixR   t	   TypeErrorR   (   R   t   msg(    (    sD   lib/python2.7/site-packages/sklearn/cluster/tests/test_mean_shift.pyt*   test_estimate_bandwidth_with_sparse_matrix;   s    c          C   s½   t  j d d g d d g d d g g ƒ d }  t d d d d d |  d	 d
 d t d d ƒ \ } } t d d ƒ } | j | ƒ t ƒ  } | j | ƒ t | j | j ƒ t | j	 | j	 ƒ d  S(   Ni   iÿÿÿÿi
   R   i2   R   i   R   R   gš™™™™™Ù?R   R   i   t   n_jobs(
   R   t   arrayR
   t   TrueR   R   R   t   cluster_centers_R   R   (   R   R   t   _t   ms1t   ms2(    (    sD   lib/python2.7/site-packages/sklearn/cluster/tests/test_mean_shift.pyt   test_parallelB   s    .	c          C   s>   t  d d ƒ }  |  j t ƒ } |  j t ƒ } t | | ƒ d  S(   NR   g333333ó?(   R   t   fit_predictR   t   predictR   (   R   R   t   labels2(    (    sD   lib/python2.7/site-packages/sklearn/cluster/tests/test_mean_shift.pyt   test_meanshift_predictQ   s    c          C   sG   t  d d d d d g d d g g ƒ }  d } t t | |  j t ƒ d  S(   NR   gš™™™™™¹?t   seedsi÷ÿÿÿiöÿÿÿs!   No point was within bandwidth=0.1(   R   R   t
   ValueErrorR   R   (   R   R&   (    (    sD   lib/python2.7/site-packages/sklearn/cluster/tests/test_mean_shift.pyt   test_meanshift_all_orphansY   s    'c          C   s3   t  ƒ  }  t t |  d ƒ ƒ t t |  d ƒ ƒ d  S(   NR+   R   (   R   R   t   hasattr(   R   (    (    sD   lib/python2.7/site-packages/sklearn/cluster/tests/test_mean_shift.pyt   test_unfitted`   s    	c          C   s  t  j d d g d d g d d g d d g d d g d d g g ƒ }  t d	 d ƒ j |  ƒ } t  j d d g d d g d d g d d g d d g d d g g ƒ }  t d	 d ƒ j |  ƒ } t | j d d d d d d g ƒ t | j d d d d d d g ƒ d  S(
   Ni   i   i    i   i   i   i   i   R   (   R   R)   R   R   R   R   (   R   t   c1t   c2(    (    sD   lib/python2.7/site-packages/sklearn/cluster/tests/test_mean_shift.pyt   test_cluster_intensity_tieg   s    !$!$"c          C   sÅ  t  j d d g d d g d d g d d g d d g d d g g ƒ }  t d d d g ƒ } t |  d	 d	 ƒ } t g  | D] } t | ƒ ^ qv ƒ } t | j | ƒ ƒ d
 k s² t ‚ t d d g ƒ } t |  d	 d ƒ } t g  | D] } t | ƒ ^ qà ƒ } t | j | ƒ ƒ d
 k st ‚ t j	 d t
 ƒ  t |  d d	 ƒ } Wd  QXt | |  ƒ t d d d d d d
 d
 g d	 d	 g g d d d d
 ƒ \ }  } t |  d	 ƒ } t | d
 d
 g d	 d	 g g ƒ d  S(   Ng      ð?gffffffö?gÍÌÌÌÌÌü?g333333ó?g       @gÍÌÌÌÌÌ @gš™™™™™ñ?g        i   i    i   t   recordg{®Gáz„?R   id   R   R   R   gš™™™™™¹?R   (   g      ð?g      ð?(   g       @g      ð?(   g        g        (   g      ð?g      ð?(   g       @g      ð?(   R   R)   t   setR	   t   tupleR   t   symmetric_differenceR   t   warningst   catch_warningsR*   R   R
   R   (   R   t   ground_trutht	   test_binst   pt   test_resultR,   (    (    sD   lib/python2.7/site-packages/sklearn/cluster/tests/test_mean_shift.pyt   test_bin_seedss   s"    !$%!%!*(#   t   __doc__t   numpyR   R@   t   scipyR    t   sklearn.utils.testingR   R   R   R   R   t   sklearn.clusterR   R   R   R	   t"   sklearn.datasets.samples_generatorR
   R   R)   R   R*   R   R,   R   R   R#   R'   R/   R3   R6   R8   R;   RF   (    (    (    sD   lib/python2.7/site-packages/sklearn/cluster/tests/test_mean_shift.pyt   <module>   s6   .									