ó
‡ˆ\c           @   s   d  Z  d d l Z d d l j 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 d	 „  Z d
 „  Z d S(   s5   Test the 20news downloader, if the data is available.iÿÿÿÿN(   t   assert_equal(   t   SkipTest(   t   check_return_X_y(   t   partial(   t   datasetsc          C   sU  y" t  j d d d t d t ƒ }  Wn t k
 rA t d ƒ ‚ n Xt  j d d d |  j d d d … d t ƒ } t | j |  j d	 ƒ t t j | j	 ƒ j
 ƒ  d
 d g ƒ t t | j ƒ t | j	 ƒ ƒ t t | j ƒ t | j ƒ ƒ | j d
 } | j | j	 d
 } |  j j | ƒ } |  j t j |  j	 | k ƒ d
 d
 } t | | ƒ d  S(   Nt   subsett   allt   download_if_missingt   shuffles'   Download 20 newsgroups to run this testt
   categoriesiÿÿÿÿiýÿÿÿiþÿÿÿi    i   (   R   t   fetch_20newsgroupst   Falset   IOErrorR   t   target_namesR    t   npt   uniquet   targett   tolistt   lent	   filenamest   datat   indext   where(   R   t	   data2catst   entry1t   categoryt   labelt   entry2(    (    sA   lib/python2.7/site-packages/sklearn/datasets/tests/test_20news.pyt   test_20news   s"    		%	%'c          C   s¸   y" t  j d d d t d t ƒ }  Wn t k
 rA t d ƒ ‚ n Xt  j d d ƒ }  t t |  d ƒ t |  j ƒ ƒ t t |  d ƒ t |  j ƒ ƒ t t |  d ƒ t |  j	 ƒ ƒ d	 S(
   su   Checks the length consistencies within the bunch

    This is a non-regression test for a bug present in 0.16.1.
    R   R   R   R   s'   Download 20 newsgroups to run this testR   R   R   N(
   R   R
   R   R   R   R    R   R   R   R   (   R   (    (    sA   lib/python2.7/site-packages/sklearn/datasets/tests/test_20news.pyt   test_20news_length_consistency+   s    	  c          C   sž  y t  j d d d t ƒ Wn t k
 r9 t d ƒ ‚ n Xt  j d d ƒ }  t j |  j ƒ sd t	 ‚ t
 |  j j d ƒ t
 |  j j d d ƒ t
 |  j j t j ƒ t  j d d	 ƒ }  t j |  j ƒ sÎ t	 ‚ t
 |  j j d ƒ t
 |  j j d d
 ƒ t
 |  j j t j ƒ t t  j d d	 ƒ} t |  | ƒ t  j d d ƒ }  t j |  j ƒ sZt	 ‚ t
 |  j j d ƒ t
 |  j j d d ƒ t
 |  j j t j ƒ d  S(   NR   R   R   s'   Download 20 newsgroups to run this testt   traini2,  i;ü i    t   testil  (   i2,  i;ü (   il  i;ü ižI  (   ižI  i;ü ižI  (   R   R
   R   R   R   t   fetch_20newsgroups_vectorizedt   spt   isspmatrix_csrR   t   AssertionErrorR    t   shapeR   t   dtypeR   t   float64R   R   (   t   buncht
   fetch_func(    (    sA   lib/python2.7/site-packages/sklearn/datasets/tests/test_20news.pyt   test_20news_vectorized<   s,    (   t   __doc__t   numpyR   t   scipy.sparset   sparseR!   t   sklearn.utils.testingR    R   t"   sklearn.datasets.tests.test_commonR   t	   functoolsR   t   sklearnR   R   R   R)   (    (    (    sA   lib/python2.7/site-packages/sklearn/datasets/tests/test_20news.pyt   <module>   s   		