ó
‡ˆ\c           @   s%  d  d l  m Z m Z d  d l Z d  d l 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 m Z m Z m Z m Z m Z m Z m Z m Z 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  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 „  Z/ e d „  ƒ Z0 e d „  ƒ Z1 e d „  ƒ Z2 e d „  ƒ Z3 d „  Z4 d „  Z5 d „  Z6 d „  Z7 d  „  Z8 d! „  Z9 d" „  Z: e j; j< d: d; d< d= d> d? d@ dB dE g ƒ d1 „  ƒ Z> e j; j< d2 e? d3 ƒ e@ f e jA e@ f e j? d3 ƒ e@ f e jB d3 ƒ e@ f e jC d3 ƒ e@ f d4 eD f d5 eD f d eD f d6 eD f d3 eD f e jA g eD f g ƒ d7 „  ƒ ZE d8 „  ZF d9 „  ZG d S(F   iÿÿÿÿ(   t   chaint   productN(   t   pinv2(   t	   laplacian(
   t   assert_equalt   assert_raisest   assert_almost_equalt   assert_array_equalt   SkipTestt   assert_raises_regext   assert_greater_equalt   ignore_warningst   assert_warns_messaget   assert_no_warnings(   t   check_random_state(   t
   deprecated(   t   resample(   t	   safe_mask(   t   column_or_1d(   t   safe_indexing(   t   shuffle(   t   gen_even_slices(   t   get_chunk_n_rows(   t   is_scalar_nan(   t   pinvh(   t   eigsh(   t   MockDataFrame(   t   config_contextc          C   sû   t  d  ƒ t j j j k s! t ‚ t  t j ƒ t j j j k sE t ‚ t j j d ƒ }  t  d ƒ j d ƒ |  j d ƒ k s t ‚ t j j d ƒ }  t  |  ƒ |  k s« t ‚ t j j d ƒ }  t  d ƒ j d ƒ |  j d ƒ k sç t ‚ t	 t
 t  d ƒ d  S(   Ni*   id   i+   s   some invalid seed(   R   t   Nonet   npt   randomt   mtrandt   _randt   AssertionErrort   RandomStatet   randintR   t
   ValueError(   t   rng_42(    (    s=   lib/python2.7/site-packages/sklearn/utils/tests/test_utils.pyt   test_make_rng   s    !$**c       	   C   sd  t  j d t ƒ  }  t  j d ƒ t ƒ  d „  ƒ } | ƒ  } t | d ƒ t t |  ƒ d ƒ t |  d j t	 ƒ sy t
 ‚ d t |  d j ƒ j ƒ  k sž t
 ‚ Wd  QXt  j d t ƒ ¨ }  t  j d ƒ t d ƒ d	 t f d
 „  ƒ  Yƒ } | ƒ  } t | d ƒ st
 ‚ t t |  ƒ d ƒ t |  d j t	 ƒ s5t
 ‚ d t |  d j ƒ j ƒ  k sZt
 ‚ Wd  QXd  S(   Nt   recordt   alwaysc           S   s   d S(   Nt   spam(    (    (    (    s=   lib/python2.7/site-packages/sklearn/utils/tests/test_utils.pyt   ham8   s    R)   i   i    R   s   don't use thist   Hamc           B   s   e  Z d  Z RS(   i   (   t   __name__t
   __module__t   SPAM(    (    (    s=   lib/python2.7/site-packages/sklearn/utils/tests/test_utils.pyR+   H   s   R.   (   t   warningst   catch_warningst   Truet   simplefilterR   R   t   lent
   issubclasst   categoryt   DeprecationWarningR!   t   strt   messaget   lowert   objectt   hasattr(   t   wR*   R)   R+   (    (    s=   lib/python2.7/site-packages/sklearn/utils/tests/test_utils.pyt   test_deprecated0   s"    	+	c        	   C   sª   t  ƒ  d  k s t ‚ t t t  d g d d g ƒ t t t  d d g d d g d t d d ƒt t t  d d g d d g d d ƒt t t  d d g d d	 ƒƒ d	 ƒ d  S(
   Ni    i   t   replacet	   n_samplesi   t   meaning_of_lifei*   i   i   (   R   R   R!   R   R$   t   FalseR   R3   (    (    (    s=   lib/python2.7/site-packages/sklearn/utils/tests/test_utils.pyt   test_resampleU   s    %c          C   s”   t  d ƒ }  |  j d d ƒ } t j | ƒ } t t t t t g } t | | ƒ } t | | j d d ƒ t | | ƒ } t | | j d d ƒ d  S(   Ni    i   i   i   (	   R   t   randt   spt
   csr_matrixRA   R1   R   R   t   shape(   t   random_statet   Xt   X_csrt   mask(    (    s=   lib/python2.7/site-packages/sklearn/utils/tests/test_utils.pyt   test_safe_maskb   s    c          C   sƒ   t  j d d d g d d d g d d d	 g g d
 t  j ƒ}  t  j |  |  j ƒ }  t |  ƒ } t t  j |  | ƒ t  j d ƒ ƒ d  S(   Ni   i   i   i   i   i   i   i   i
   t   dtype(   R   t   arrayt   float64t   dott   TR   R   t   eye(   t   at   a_pinv(    (    s=   lib/python2.7/site-packages/sklearn/utils/tests/test_utils.pyt   test_pinvh_simple_realo   s    <c          C   s»   t  j d d d g d d d g d d d	 g g d
 t  j ƒ}  t  j |  |  j ƒ }  t  j j |  ƒ \ } } } | d c d 9<t  j | | | ƒ }  t |  ƒ } t |  ƒ } t	 | | ƒ d  S(   Ni   i   i   i   i   i   i   i   i	   RL   i    iÿÿÿÿ(
   R   RM   RN   RO   RP   t   linalgt   svdR   R   R   (   RR   t   ut   st   vtRS   t   a_pinvh(    (    s=   lib/python2.7/site-packages/sklearn/utils/tests/test_utils.pyt   test_pinvh_nonpositivew   s    <c          C   sµ   t  j d d d g d d d g d d d	 g g ƒ d
 t  j d	 d d g d d d g d d d g g ƒ }  t  j |  |  j ƒ  j ƒ }  t |  ƒ } t t  j |  | ƒ t  j d ƒ ƒ d  S(   Ni   i   i   i   i   i   i   i   i
   y              ð?(   R   RM   RO   t   conjRP   R   R   RQ   (   RR   RS   (    (    s=   lib/python2.7/site-packages/sklearn/utils/tests/test_utils.pyt   test_pinvh_simple_complexƒ   s
    08c          C   s²   t  d ƒ }  |  j d d ƒ } t j | j | ƒ } t | ƒ d t j | j d ƒ } d } |  j d d | j d ƒ } t	 | d | d	 d
 d | ƒ\ } } t
 | d d ƒ d  S(   Ni*   i2   gH¯¼šò×z>i    i   iÿÿÿÿi   t   kt   sigmag        t   v0(   R   RC   R   RO   RP   R   t   identityRF   t   uniformR   R
   (   RG   t   AR^   R`   R<   t   _(    (    s=   lib/python2.7/site-packages/sklearn/utils/tests/test_utils.pyt    test_arpack_eigsh_initializationŒ   s    $$c          C   sŒ  d d d d g f d d d d d g f d t  j d ƒ d f d	 d d
 d g f d	 d d d
 d
 d g f d	 d g d
 g d g g f d d d d g d d d g g f d d d
 d g g f d d d g d
 d
 g d d g g f d d d g d d
 g d d g g f d d d
 d g g f d t  j d ƒ j d ƒ f g }  xO |  D]G \ } } | d k rtt t | ƒ t  j | ƒ ƒ q=t t t | ƒ q=Wd  S(   Nt   binaryR)   t   eggi    i   t
   continuousi
   g      4@t
   multiclassi   i   s   multilabel-indicators   multiclass-multioutputi   i   s   continuous-multioutputi   iÿÿÿÿ(   iÿÿÿÿi   (   Rf   Ri   Rh   (   R   t   aranget   reshapeR   R   t   ravelR   R$   (   t   EXAMPLESt   y_typet   y(    (    s=   lib/python2.7/site-packages/sklearn/utils/tests/test_utils.pyt   test_column_or_1d¡   s     !$$!c          C   s£   d d d g d d d g d d d	 g g }  t  j d d g ƒ } t |  | ƒ } t t  j |  ƒ | ƒ } t t  j | ƒ | ƒ t t  j | ƒ t  j |  ƒ | ƒ d  S(
   Ni   i   i   i   i   i   i   i   i	   (   R   RM   R   R   (   RH   t   indst   X_indst   X_arrays(    (    s=   lib/python2.7/site-packages/sklearn/utils/tests/test_utils.pyt   test_safe_indexing¸   s    *c    
      C   sd  y d d  l  }  Wn t k
 r/ t d ƒ ‚ n Xt j d d d g d d d g d	 d
 d g g ƒ } |  j | ƒ } t j d d g ƒ } t | | ƒ } t | | ƒ } t t j | ƒ | ƒ | j d t	 ƒ |  j | ƒ } | j
 ƒ  } | j d t	 ƒ xg t | | g | | g ƒ D]J \ } }	 t j d t ƒ  t | |	 ƒ } Wd  QXt t j | ƒ | ƒ qWd  S(   Niÿÿÿÿs   Pandas not foundi   i   i   i   i   i   i   i   i	   t   writeR'   (   t   pandast   ImportErrorR   R   RM   t	   DataFrameR   R   t   setflagsRA   t   copyR   R/   R0   R1   (
   t   pdRH   t   X_dfRq   t   X_df_indexedt	   X_indexedt   X_df_readonlyt   inds_readonlyt   this_dft	   this_inds(    (    s=   lib/python2.7/site-packages/sklearn/utils/tests/test_utils.pyt   test_safe_indexing_pandasÁ   s&    3c          C   sŒ   t  j d d d g d d d g d d d	 g g ƒ }  t |  ƒ } t  j d d g ƒ } t | | ƒ } t | | ƒ } t t  j | ƒ | ƒ d  S(
   Ni   i   i   i   i   i   i   i   i	   (   R   RM   R   R   R   (   RH   R|   Rq   R}   R~   (    (    s=   lib/python2.7/site-packages/sklearn/utils/tests/test_utils.pyt   test_safe_indexing_mock_pandasÛ   s    3c          C   s{   d „  }  t  j d d g d d g g d d g d d	 g g g ƒ } t |  | ƒ ƒ } t | ƒ t t |  | ƒ ƒ | ƒ d  S(
   Nc         S   s   t  d „  |  Dƒ ƒ S(   Nc         s   s%   |  ] } t  d  „  | Dƒ ƒ Vq d S(   c         s   s   |  ] } t  | ƒ Vq d  S(   N(   t   tuple(   t   .0t   C(    (    s=   lib/python2.7/site-packages/sklearn/utils/tests/test_utils.pys	   <genexpr>æ   s    N(   R…   (   R†   t   B(    (    s=   lib/python2.7/site-packages/sklearn/utils/tests/test_utils.pys	   <genexpr>æ   s    (   R…   (   Rc   (    (    s=   lib/python2.7/site-packages/sklearn/utils/tests/test_utils.pyt   to_tupleå   s    i   i   i   i   i   i   i   i   (   R   RM   t   setR   R   (   R‰   Rc   t   S(    (    s=   lib/python2.7/site-packages/sklearn/utils/tests/test_utils.pyt!   test_shuffle_on_ndim_equals_threeä   s
    	9
c    
      C   sÀ  d d d g }  t  j d d d g d t ƒ} d d d g } t t  j d d g d d g d d g g d t ƒƒ } t j t  j d	 ƒ j d d ƒ ƒ } t |  | | | | d
 d ƒ\ } } } } }	 t	 | d d d g ƒ t	 t
 | ƒ t ƒ t | d d d g ƒ t	 | j t ƒ t	 | d d d g ƒ t	 t
 | ƒ t ƒ t | t  j d d g d d g d d g g d t ƒƒ t	 t
 | ƒ t ƒ t |	 j ƒ  t  j d d g d d g d d g g ƒ ƒ d  S(   NRR   t   bt   cRL   i   i   i   i    i   RG   i   i   (   R   RM   R:   R   RD   t
   csc_matrixRj   Rk   R   R   t   typet   listR   RL   t   toarray(
   RR   R   RŽ   t   dt   et   a_st   b_st   c_st   d_st   e_s(    (    s=   lib/python2.7/site-packages/sklearn/utils/tests/test_utils.pyt"   test_shuffle_dont_convert_to_arrayî   s.    	$-	
	c          C   sq   t  d ƒ }  t t g  t d d ƒ D] } |  | ^ q" Œ  ƒ } t |  | ƒ t d d ƒ } t t d t | ƒ d  S(   Ni
   i   iÿÿÿÿs+   gen_even_slices got n_packs=-1, must be >=1(   t   rangeR‘   R    R   R   R	   R$   t   next(   t
   some_ranget   slicet   joined_ranget   slices(    (    s=   lib/python2.7/site-packages/sklearn/utils/tests/test_utils.pyt   test_gen_even_slices  s    	)	t	   row_bytest
   max_n_rowst   working_memoryt   expectedt   warningi   i   gGœ¡úÿÿï?iÿ  i  i   i   i   sI   Could not adhere to working_memory config. Currently 1MiB, 2MiB required.c      
      sÔ   ˆ  d  k	 r ‡  f d †  } n t } | t d |  d | d | ƒ} | | k sT t ‚ t | ƒ t | ƒ k sr t ‚ t d | ƒ M | t d |  d | ƒ} | | k s¬ t ‚ t | ƒ t | ƒ k sÊ t ‚ Wd  QXd  S(   Nc             s   t  t ˆ  |  | Ž S(   N(   R   t   UserWarning(   t   argst   kw(   R¦   (    s=   lib/python2.7/site-packages/sklearn/utils/tests/test_utils.pyt   check_warning,  s    R¢   R£   R¤   (   R   R   R   R!   R   R   (   R¢   R£   R¤   R¥   R¦   Rª   t   actual(    (   R¦   s=   lib/python2.7/site-packages/sklearn/utils/tests/test_utils.pyt   test_get_chunk_n_rows  s    				s   value, resultt   nani    g        t    c         C   s   t  |  ƒ | k s t ‚ d  S(   N(   R   R!   (   t   valuet   result(    (    s=   lib/python2.7/site-packages/sklearn/utils/tests/test_utils.pyt   test_is_scalar_nan@  s    c           C   s   d  S(   N(    (    (    (    s=   lib/python2.7/site-packages/sklearn/utils/tests/test_utils.pyt
   dummy_funcO  s    c         C   s¬  d „  } d d l  m } m } m } d d l  m } m } m } | | t |  ƒ ƒ | | d ƒ | | ƒ | | ƒ | | d ƒ | | t ƒ d d l  m	 } m
 }	 t | d d  ƒ t |	 d d  ƒ d d l m } m } m } d d l m } m } m } d d	 l m	 } d d
 l m
 }	 t | t |  ƒ ƒ t | d ƒ t | ƒ t | ƒ t | d ƒ t | t ƒ t | d d  ƒ t |	 d d  ƒ d d l m }
 |
 j j d =d  S(   Nc          _   s   t  t d |  | Ž S(   Ns   deprecated in version 0.20.1(   R   R6   (   R¨   R©   (    (    s=   lib/python2.7/site-packages/sklearn/utils/tests/test_utils.pyRª   T  s    iÿÿÿÿ(   t   Parallelt   Memoryt   delayed(   t	   cpu_countt   hasht   effective_n_jobsi   (   t   parallel_backendt   register_parallel_backendt   lokyt   failing(   R¹   (   Rº   (   t   joblib(   t   sklearn.utilsR³   R´   Rµ   R¶   R·   R¸   R7   R²   R¹   Rº   R   R   t   sklearn.utils._joblibR½   t   parallelt   BACKENDS(   t   tmpdirRª   R³   R´   Rµ   R¶   R·   R¸   R¹   Rº   R½   (    (    s=   lib/python2.7/site-packages/sklearn/utils/tests/test_utils.pyt   test_deprecation_joblib_apiS  s4    	



(   R¢   R£   R¤   R¥   R¦   (   i   Ni   i   N(   i   NgGœ¡úÿÿï?iÿ  N(   iÿ  Ni   i  N(   i  Ni   iÿ  N(   i   Ni   i   N(   i   i   i   i   Ni   (   i   Ni   i   Ni   i  (   i  Ni   i   sI   Could not adhere to working_memory config. Currently 1MiB, 2MiB required.(H   t	   itertoolsR    R   R/   t   pytestt   numpyR   t   scipy.sparset   sparseRD   t   scipy.linalgR   t   scipy.sparse.csgraphR   t   sklearn.utils.testingR   R   R   R   R   R	   R
   R   R   R   R¾   R   R   R   R   R   R   R   R   R   R   t   sklearn.utils.extmathR   t   sklearn.utils.arpackR   t   sklearn.utils.mockingR   t   sklearnR   R&   R=   RB   RK   RT   R[   R]   Re   Rp   Rt   Rƒ   R„   RŒ   Rš   R¡   t   markt   parametrizeR   R¬   t   floatR1   R­   t   float32RN   RA   R±   R²   RÃ   (    (    (    s=   lib/python2.7/site-packages/sklearn/utils/tests/test_utils.pyt   <module>   sx   F		%										
	!		 					!	