ó
‡ˆ\c           @   sÎ  d  Z  d d l m Z d d l m Z d d l Z d d l 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 d l m Z m Z d d l m Z m Z m Z m Z d d l  m! Z! d d l" m# Z# m$ Z$ d d l" m% Z% d d l& m' Z' d d l( m) Z) m* Z* d d l+ m, Z, d d l- m. Z. m/ Z/ d d l0 m1 Z1 d d l2 m3 Z3 d d l4 m5 Z5 d d l6 m7 Z7 d d l6 m8 Z9 d` Z: d$ e; f d% „  ƒ  YZ< d& e< f d' „  ƒ  YZ= d( e= f d) „  ƒ  YZ> d* e> f d+ „  ƒ  YZ? d, e? f d- „  ƒ  YZ@ d. e f d/ „  ƒ  YZA d0 e f d1 „  ƒ  YZB d2 e? f d3 „  ƒ  YZC d4 e f d5 „  ƒ  YZD d6 „  ZE d7 „  ZF e jG jH d8 ƒ e jG jH d9 ƒ d: „  ƒ ƒ ZI d; „  ZJ d< „  ZK d= „  ZL d> „  ZM d? „  ZN d@ „  ZO dA „  ZP dB „  ZQ dC „  ZR dD „  ZS dE „  ZT dF „  ZU dG „  ZV dH „  ZW dI „  ZX dJ „  ZY dK „  ZZ dL „  Z[ dM „  Z\ dN „  Z] dO „  Z^ dP „  Z_ dQ „  Z` e jG jH d8 ƒ e jG jH d9 ƒ dR „  ƒ ƒ Za dS „  Zb e jG jc dT dT d g ƒ dU „  ƒ Ze dV „  Zf e jG jH d8 ƒ e jG jH d9 ƒ dW „  ƒ ƒ Zg dX „  Zh dY e; f dZ „  ƒ  YZi d[ e; f d\ „  ƒ  YZj d] „  Zk d^ „  Zl d_ „  Zm d S(a   s   
Test the pipeline module.
iÿÿÿÿ(   t   LooseVersion(   t   mkdtempN(   t   sparse(   t   zip(   t   assert_raises(   t   assert_raises_regex(   t   assert_raise_message(   t   assert_equal(   t   assert_false(   t   assert_array_equal(   t   assert_array_almost_equal(   t   assert_dict_equal(   t   assert_no_warnings(   t   clonet   BaseEstimator(   t   Pipelinet   FeatureUniont   make_pipelinet
   make_union(   t   SVC(   t   LogisticRegressiont   Lasso(   t   LinearRegression(   t   KMeans(   t   SelectKBestt	   f_classif(   t   DummyRegressor(   t   PCAt   TruncatedSVD(   t	   load_iris(   t   StandardScaler(   t   CountVectorizer(   t   Memory(   t   __version__s   the pizza pizza beer copyrights   the pizza burger beer copyrights!   the the pizza beer beer copyrights   the burger beer beer copyrights   the coke burger coke copyrights   the coke burger burgert   NoFitc           B   s   e  Z d  Z d d d „ Z RS(   s/   Small class to test parameter dispatching.
    c         C   s   | |  _  | |  _ d  S(   N(   t   at   b(   t   selfR#   R$   (    (    s:   lib/python2.7/site-packages/sklearn/tests/test_pipeline.pyt   __init__6   s    	N(   t   __name__t
   __module__t   __doc__t   NoneR&   (    (    (    s:   lib/python2.7/site-packages/sklearn/tests/test_pipeline.pyR"   2   s   t   NoTransc           B   s&   e  Z d  „  Z e d „ Z d „  Z RS(   c         C   s   |  S(   N(    (   R%   t   Xt   y(    (    s:   lib/python2.7/site-packages/sklearn/tests/test_pipeline.pyt   fit=   s    c         C   s   i |  j  d 6|  j d 6S(   NR#   R$   (   R#   R$   (   R%   t   deep(    (    s:   lib/python2.7/site-packages/sklearn/tests/test_pipeline.pyt
   get_params@   s    c         K   s   | d |  _  |  S(   NR#   (   R#   (   R%   t   params(    (    s:   lib/python2.7/site-packages/sklearn/tests/test_pipeline.pyt
   set_paramsC   s    (   R'   R(   R.   t   FalseR0   R2   (    (    (    s:   lib/python2.7/site-packages/sklearn/tests/test_pipeline.pyR+   ;   s   	t   NoInvTransfc           B   s   e  Z d  „  Z RS(   c         C   s   | S(   N(    (   R%   R,   (    (    s:   lib/python2.7/site-packages/sklearn/tests/test_pipeline.pyt	   transformI   s    (   R'   R(   R5   (    (    (    s:   lib/python2.7/site-packages/sklearn/tests/test_pipeline.pyR4   H   s   t   Transfc           B   s   e  Z d  „  Z d „  Z RS(   c         C   s   | S(   N(    (   R%   R,   (    (    s:   lib/python2.7/site-packages/sklearn/tests/test_pipeline.pyR5   N   s    c         C   s   | S(   N(    (   R%   R,   (    (    s:   lib/python2.7/site-packages/sklearn/tests/test_pipeline.pyt   inverse_transformQ   s    (   R'   R(   R5   R7   (    (    (    s:   lib/python2.7/site-packages/sklearn/tests/test_pipeline.pyR6   M   s   	t   TransfFitParamsc           B   s   e  Z d  „  Z RS(   c         K   s   | |  _  |  S(   N(   t
   fit_params(   R%   R,   R-   R9   (    (    s:   lib/python2.7/site-packages/sklearn/tests/test_pipeline.pyR.   W   s    	(   R'   R(   R.   (    (    (    s:   lib/python2.7/site-packages/sklearn/tests/test_pipeline.pyR8   U   s   t   Multc           B   sR   e  Z d  d „ Z d „  Z d „  Z d „  Z d „  Z e Z Z Z	 d d „ Z RS(   i   c         C   s   | |  _  d  S(   N(   t   mult(   R%   R;   (    (    s:   lib/python2.7/site-packages/sklearn/tests/test_pipeline.pyR&   ]   s    c         C   s   |  S(   N(    (   R%   R,   R-   (    (    s:   lib/python2.7/site-packages/sklearn/tests/test_pipeline.pyR.   `   s    c         C   s   t  j | ƒ |  j S(   N(   t   npt   asarrayR;   (   R%   R,   (    (    s:   lib/python2.7/site-packages/sklearn/tests/test_pipeline.pyR5   c   s    c         C   s   t  j | ƒ |  j S(   N(   R<   R=   R;   (   R%   R,   (    (    s:   lib/python2.7/site-packages/sklearn/tests/test_pipeline.pyR7   f   s    c         C   s    t  j | ƒ |  j j d d ƒ S(   Nt   axisi   (   R<   R=   R;   t   sum(   R%   R,   (    (    s:   lib/python2.7/site-packages/sklearn/tests/test_pipeline.pyt   predicti   s    c         C   s   t  j | ƒ S(   N(   R<   R?   (   R%   R,   R-   (    (    s:   lib/python2.7/site-packages/sklearn/tests/test_pipeline.pyt   scoren   s    N(   R'   R(   R&   R.   R5   R7   R@   t   predict_probat   predict_log_probat   decision_functionR*   RA   (    (    (    s:   lib/python2.7/site-packages/sklearn/tests/test_pipeline.pyR:   \   s   				t	   FitParamTc           B   sG   e  Z d  Z d „  Z e d „ Z d „  Z e d „ Z d d d „ Z	 RS(   s   Mock classifier
    c         C   s   t  |  _ d  S(   N(   R3   t
   successful(   R%   (    (    s:   lib/python2.7/site-packages/sklearn/tests/test_pipeline.pyR&   v   s    c         C   s   | |  _  d  S(   N(   RF   (   R%   R,   R-   t   should_succeed(    (    s:   lib/python2.7/site-packages/sklearn/tests/test_pipeline.pyR.   y   s    c         C   s   |  j  S(   N(   RF   (   R%   R,   (    (    s:   lib/python2.7/site-packages/sklearn/tests/test_pipeline.pyR@   |   s    c         C   s#   |  j  | | d | ƒ|  j | ƒ S(   NRG   (   R.   R@   (   R%   R,   R-   RG   (    (    s:   lib/python2.7/site-packages/sklearn/tests/test_pipeline.pyt   fit_predict   s    c         C   s&   | d  k	 r | | } n  t j | ƒ S(   N(   R*   R<   R?   (   R%   R,   R-   t   sample_weight(    (    s:   lib/python2.7/site-packages/sklearn/tests/test_pipeline.pyRA   ƒ   s    N(
   R'   R(   R)   R&   R3   R.   R@   RH   R*   RA   (    (    (    s:   lib/python2.7/site-packages/sklearn/tests/test_pipeline.pyRE   r   s   		t   DummyTransfc           B   s   e  Z d  Z d „  Z RS(   s(   Transformer which store the column meansc         C   s+   t  j | d d ƒ|  _ t j ƒ  |  _ |  S(   NR>   i    (   R<   t   meant   means_t   timet
   timestamp_(   R%   R,   R-   (    (    s:   lib/python2.7/site-packages/sklearn/tests/test_pipeline.pyR.   Œ   s    (   R'   R(   R)   R.   (    (    (    s:   lib/python2.7/site-packages/sklearn/tests/test_pipeline.pyRJ   ‰   s   t   DummyEstimatorParamsc           B   s#   e  Z d  Z d „  Z e d „ Z RS(   s,   Mock classifier that takes params on predictc         C   s   |  S(   N(    (   R%   R,   R-   (    (    s:   lib/python2.7/site-packages/sklearn/tests/test_pipeline.pyR.   —   s    c         C   s   | |  _  |  S(   N(   t   got_attribute(   R%   R,   RP   (    (    s:   lib/python2.7/site-packages/sklearn/tests/test_pipeline.pyR@   š   s    	(   R'   R(   R)   R.   R3   R@   (    (    (    s:   lib/python2.7/site-packages/sklearn/tests/test_pipeline.pyRO   ”   s   	c          C   sF  t  t t ƒ t t d t d t ƒ  f g ƒ t ƒ  }  t d |  f g ƒ } t | j d t ƒ t	 d d  d d  d |  | j d t ƒ  ƒ | j d d ƒ t |  j d ƒ t |  j d  ƒ t | ƒ t ƒ  }  t t ƒ } t d | f d |  f g ƒ } t t d	 t d
 t ƒ  f d |  f g ƒ | j d d ƒ t |  j d ƒ t | ƒ t  t | j d d ƒt t | ƒ } t | j d | j d k ƒ | j d t ƒ } | j d t ƒ } x' | j d t ƒ D] } | j | ƒ qÀWx' | j d t ƒ D] } | j | ƒ qêW| j d ƒ | j d ƒ | j d ƒ | j d ƒ t | | ƒ d  S(   Ns5   Last step of Pipeline should implement fit. .*NoFit.*t   clft   svcR/   t   svc__at   svc__bgš™™™™™¹?t   anovas<   All intermediate steps should be transformers.*\bNoTrans\b.*t   tt   svc__Ct   anova__C(   R   t	   TypeErrorR   R   R"   R+   R   R0   t   Truet   dictR*   R3   R2   R#   R$   t   reprR   R   R   t   Ct
   ValueErrorR   R   R   t   named_stepst   pop(   RQ   t   pipet   filter1t   pipe2R1   t   params2t   x(    (    s:   lib/python2.7/site-packages/sklearn/tests/test_pipeline.pyt   test_pipeline_initŸ   sH    	
	
c          C   s   t  j d d g g ƒ }  t d t ƒ  f d t ƒ  f f ƒ } | j |  d d  ƒ| j |  ƒ | j d d  ƒ | j |  d d  ƒ| j |  ƒ d  S(   Ni   i   t   transfRQ   R-   (	   R<   t   arrayR   R6   RE   R.   R*   RA   R2   (   R,   Ra   (    (    s:   lib/python2.7/site-packages/sklearn/tests/test_pipeline.pyt   test_pipeline_init_tupleá   s    $s&   ignore: Default solver will be changeds    ignore: Default multi_class willc          C   sŸ   t  ƒ  }  |  j } |  j } t ƒ  } t t d d ƒ} t d | f d | f g ƒ } | j | | ƒ | j | ƒ | j	 | ƒ | j
 | ƒ | j | | ƒ d  S(   Nt   ki   RU   t   logistic(   R   t   datat   targetR   R   R   R   R.   R@   RB   RC   RA   (   t   irisR,   R-   RQ   Rb   Ra   (    (    s:   lib/python2.7/site-packages/sklearn/tests/test_pipeline.pyt   test_pipeline_methods_anovaí   s    				c          C   s°   t  d t ƒ  f d t ƒ  f g ƒ }  |  j d d  d d  d t ƒ |  j d  ƒ sU t ‚ |  j d j	 d  k sq t ‚ |  j d j
 d  k s t ‚ t t d |  j d  d  d t ƒd  S(   NRg   RQ   R,   R-   t   clf__should_succeeds.   fit() got an unexpected keyword argument 'bad't   clf__bad(   R   R6   RE   R.   R*   RZ   R@   t   AssertionErrorR_   R#   R$   R   RY   (   Ra   (    (    s:   lib/python2.7/site-packages/sklearn/tests/test_pipeline.pyt   test_pipeline_fit_paramsÿ   s    $c          C   sÒ   t  j d d g g ƒ }  t d t ƒ  f d t ƒ  f g ƒ } | j |  d d  ƒt | j |  ƒ d ƒ t | j |  d d  ƒd ƒ t | j |  d d  d d  ƒd ƒ t | j |  d t  j d d g ƒ ƒd ƒ d  S(	   Ni   i   Rg   RQ   R-   i   RI   i   (	   R<   Rh   R   R6   RE   R.   R*   R   RA   (   R,   Ra   (    (    s:   lib/python2.7/site-packages/sklearn/tests/test_pipeline.pyt%   test_pipeline_sample_weight_supported  s    $"c       	   C   s°   t  j d d g g ƒ }  t d t ƒ  f d t ƒ  f g ƒ } | j |  d d  ƒt | j |  ƒ d ƒ t | j |  d d  ƒd ƒ t	 t
 d | j |  d t  j d d g ƒ ƒd  S(	   Ni   i   Rg   RQ   R-   i   RI   s:   score() got an unexpected keyword argument 'sample_weight'(   R<   Rh   R   R6   R:   R.   R*   R   RA   R   RY   (   R,   Ra   (    (    s:   lib/python2.7/site-packages/sklearn/tests/test_pipeline.pyt'   test_pipeline_sample_weight_unsupported  s    $c          C   sh   t  d t ƒ  f g ƒ }  d } t t | d |  f |  j d d ƒt t | d |  f |  j d d ƒd  S(   Nt   clsss   Invalid parameter %s for estimator %s. Check the list of available parameters with `estimator.get_params().keys()`.t   faket   nopet   fake__estimator(   R   R   R   R^   R2   (   Ra   t	   error_msg(    (    s:   lib/python2.7/site-packages/sklearn/tests/test_pipeline.pyt$   test_pipeline_raise_set_params_error)  s    		c          C   sº   t  ƒ  }  |  j } |  j } t d d d t d d ƒ } t d d d d	 d
 t ƒ } t d | f d | f g ƒ } | j | | ƒ | j | ƒ | j	 | ƒ | j
 | ƒ | j | | ƒ d  S(   Nt   gammat   scalet   probabilityt   random_statei    t
   svd_solvert   fullt   n_componentst   mlet   whitent   pcaRR   (   R   Rl   Rm   R   RZ   R   R   R.   R@   RB   RC   RA   (   Rn   R,   R-   RQ   R…   Ra   (    (    s:   lib/python2.7/site-packages/sklearn/tests/test_pipeline.pyt   test_pipeline_methods_pca_svm>  s    			c       	   C   sl  t  ƒ  }  |  j } |  j } | j d } t t j | ƒ ƒ } t ƒ  } t d d d d d t	 ƒ } t
 d d d	 t	 d
 d d d ƒ } xã | | g D]Õ } t d | f d | f g ƒ }	 |	 j | | ƒ |	 j | ƒ }
 t |
 j | f ƒ |	 j | ƒ } t | j | | f ƒ |	 j | ƒ } t | j | | f ƒ |	 j | ƒ } t | j | | f ƒ |	 j | | ƒ q Wd  S(   Ni    R‚   i   R€   t
   randomizedR„   R|   R}   R~   R   t   decision_function_shapet   ovrt
   preprocessRR   (   R   Rl   Rm   t   shapet   lenR<   t   uniqueR   R   RZ   R   R   R.   R@   R   RB   RC   RD   RA   (   Rn   R,   R-   t	   n_samplest	   n_classest   scalerR…   RQ   t   preprocessingRa   R@   t   probat	   log_probaRD   (    (    s:   lib/python2.7/site-packages/sklearn/tests/test_pipeline.pyt'   test_pipeline_methods_preprocessing_svmN  s*    					c    	      C   s›   t  ƒ  }  t ƒ  } t d d ƒ } t ƒ  } t d d ƒ } | j |  j ƒ } | j | ƒ } t d | f d | f g ƒ } | j |  j ƒ } t | | ƒ d  S(   NR   i    R   t   Kmeans(   R   R   R   t   fit_transformRl   RH   R   R
   (	   Rn   R   t   kmt   scaler_for_pipelinet   km_for_pipelinet   scaledt   separate_predRa   t   pipeline_pred(    (    s:   lib/python2.7/site-packages/sklearn/tests/test_pipeline.pyt   test_fit_predict_on_pipelinen  s    				c          C   sP   t  ƒ  }  t d d ƒ } t d |  f d | f g ƒ } t t d t | d ƒ d  S(   NR€   R   R   R…   s+   'PCA' object has no attribute 'fit_predict'RH   (   R   R   R   R   t   AttributeErrort   getattr(   R   R…   Ra   (    (    s:   lib/python2.7/site-packages/sklearn/tests/test_pipeline.pyt0   test_fit_predict_on_pipeline_without_fit_predictˆ  s    	c       	   C   s”   t  d t ƒ  f d t ƒ  f g ƒ }  |  j d d  d d  d t d t ƒ |  j d j d s` t ‚ |  j d j	 sv t ‚ t
 d |  j d j k ƒ d  S(	   NRg   RQ   R,   R-   t   transf__should_get_thisRp   t   should_get_thisRG   (   R   R8   RE   RH   R*   RZ   R_   R9   Rr   RF   R   (   Ra   (    (    s:   lib/python2.7/site-packages/sklearn/tests/test_pipeline.pyt-   test_fit_predict_with_intermediate_fit_params“  s    $c          C   sd   t  d t ƒ  f d t ƒ  f g ƒ }  |  j d  d  ƒ |  j d d  d t ƒ |  j d j s` t	 ‚ d  S(   NRg   RQ   R,   RP   (
   R   R6   RO   R.   R*   R@   RZ   R_   RP   Rr   (   Ra   (    (    s:   lib/python2.7/site-packages/sklearn/tests/test_pipeline.pyt    test_predict_with_predict_params   s    $c    
      C   s€  t  ƒ  }  |  j } | | j d d ƒ 8} |  j } t d d d d ƒ } t d d ƒ } t d | f d	 | f g ƒ } | j | | ƒ | j | ƒ } t	 | j
 | j
 d d
 f ƒ t | d  d  … d  d … f | j | ƒ ƒ t | d  d  … d f | j | | ƒ j ƒ  ƒ t d | f d	 | f g ƒ } t j | ƒ } | j | | ƒ } t | | j ƒ  ƒ t t | ƒ }	 t | j d d |	 j d d k ƒ | j d d ƒ t	 | j | | ƒ j
 | j
 d d f ƒ t d t ƒ  f d | f d	 | f g ƒ } | j | | ƒ } t	 | j
 | j
 d d f ƒ t t d t d t ƒ  f d t ƒ  f g ƒ t d | f d	 | f f ƒ } | j | | ƒ d  S(   NR>   i    R‚   i   R   Rj   i   t   svdt   selecti   iÿÿÿÿt	   select__ki   t   mocki   s>   All estimators should implement fit and transform.*\bNoTrans\bR5   t   no_transform(   R   Rl   RK   Rm   R   R   R   R.   R5   R   R‹   R
   R–   R	   t   ravelR   t
   csr_matrixt   toarrayR   R   R   t   transformer_listR2   R6   R   RY   R+   (
   Rn   R,   R-   R¥   R¦   t   fst   X_transformedt   X_spt   X_sp_transformedt   fs2(    (    s:   lib/python2.7/site-packages/sklearn/tests/test_pipeline.pyt   test_feature_unionª  s<    			,&)*c          C   s`   t  d d ƒ }  t ƒ  } t |  | ƒ } t | j Œ  \ } } t | d ƒ t | |  | f ƒ d  S(   NR€   R   R…   Rg   (   R…   Rg   (   R   R6   R   R   R­   R   (   R…   R¨   t   fut   namest   transformers(    (    s:   lib/python2.7/site-packages/sklearn/tests/test_pipeline.pyt   test_make_unionÜ  s    	c       
   C   s‡   t  d d ƒ }  t ƒ  } t |  | d d ƒ} t | j t |  | ƒ j ƒ t d | j ƒ t t d t |  | d i d d 6d	 d
 6ƒd  S(   NR€   R   t   n_jobsi   s0   Unknown keyword arguments: "transformer_weights"t   transformer_weightsi
   R…   i   R6   (   R   R6   R   R   R­   R¸   R   RY   (   R…   R¨   R´   (    (    s:   lib/python2.7/site-packages/sklearn/tests/test_pipeline.pyt   test_make_union_kwargså  s    	c    	      C   s»   t  ƒ  }  |  j } t d d d d ƒ } t d | f g ƒ } | j | ƒ j | ƒ } | j | ƒ } | j | ƒ } t | | ƒ t | | ƒ | j | ƒ } | j | ƒ } t | | ƒ d  S(   NR‚   i   R€   R   R…   (	   R   Rl   R   R   R.   R5   R–   R
   R7   (	   Rn   R,   R…   t   pipelinet   X_transt   X_trans2t   X_trans3t   X_backt   X_back2(    (    s:   lib/python2.7/site-packages/sklearn/tests/test_pipeline.pyt   test_pipeline_transformó  s    		c          C   sw   t  ƒ  }  |  j } |  j } t ƒ  } t d | f g ƒ } | j | | ƒ } | j | | ƒ j | ƒ } t | | ƒ d  S(   NR¨   (	   R   Rl   Rm   R6   R   R–   R.   R5   R
   (   Rn   R,   R-   Rg   R»   R¼   R½   (    (    s:   lib/python2.7/site-packages/sklearn/tests/test_pipeline.pyt   test_pipeline_fit_transform  s    				c          C   sO  t  ƒ  }  t  ƒ  } t d |  f g ƒ } | j d |  k s@ t ‚ d | f g | _ d | j k sg t ‚ | j d | k s€ t ‚ t d | f g | j ƒ | j d d |  f g ƒ t d |  f g | j ƒ | j d | ƒ t d | f g | j ƒ | j d d d f g ƒ t t | j	 d g g d g ƒ t t | j
 d g g d g ƒ d  S(   NR¨   t   mock2t   stepst   junki   (    (   R6   R   R_   Rr   RÄ   R   R2   R   RY   R.   R–   (   t   transf1t   transf2R»   (    (    s:   lib/python2.7/site-packages/sklearn/tests/test_pipeline.pyt   test_set_pipeline_steps  s    		c          C   sâ   t  ƒ  }  t d d ƒ } t d |  f d | f g ƒ } d | j k sK t ‚ d | j k s` t ‚ | j j |  k sx t ‚ | j j | k s t ‚ t d |  f d | f g ƒ } | j j |  k	 sÆ t ‚ | j j | k sÞ t ‚ d  S(   NR;   i   R¨   RÃ   t   values(   R6   R:   R   R_   Rr   R¨   R;   RÉ   (   Rg   t   mult2R»   (    (    s:   lib/python2.7/site-packages/sklearn/tests/test_pipeline.pyt   test_pipeline_named_steps/  s    	c             sÔ  t  j d g g ƒ }  t  j d g ƒ } t d d ƒ ‰  t d d ƒ ‰ t d d ƒ ‰ ‡  ‡ ‡ f d †  } | ƒ  } d } t | g g | j |  | ƒ ƒ t | g | j |  ƒ j |  ƒ ƒ t |  | j | g g ƒ ƒ | j d d  ƒ d } t | g g | j |  | ƒ ƒ t | g | j |  ƒ j |  ƒ ƒ t |  | j | g g ƒ ƒ t
 | j d t ƒ i | j d	 6ˆ  d
 6d  d 6ˆ d 6d  d 6d d 6d d 6ƒ | j d
 d  ƒ d } t | g g | j |  | ƒ ƒ t | g | j |  ƒ j |  ƒ ƒ t |  | j | g g ƒ ƒ d d d d d g } x! | D] } t | | ƒ |  ƒ q$W| j d
 ˆ  ƒ d } t | g g | j |  | ƒ ƒ t | g | j |  ƒ j |  ƒ ƒ t |  | j | g g ƒ ƒ | ƒ  } | j d d  ƒ d } t | g g | j |  | ƒ j |  ƒ ƒ t | g g | j |  | ƒ ƒ t |  | j | g g ƒ ƒ t t d t | d ƒ d } t d
 ˆ  f d d ˆ f g ƒ } t | g g | j |  | ƒ ƒ t | g | j |  ƒ j |  ƒ ƒ t |  | j | g g ƒ ƒ d  S(   Ni   R;   i   i   i   c              s%   t  d ˆ  f d ˆ f d ˆ f g ƒ S(   Nt   m2t   m3t   last(   R   (    (   RÊ   t   mult3t   mult5(    s:   lib/python2.7/site-packages/sklearn/tests/test_pipeline.pyt   makeH  s    RÍ   R/   RÄ   RÌ   RÎ   t   memoryt   m2__multt
   last__multRB   RC   RD   R5   RA   i   s,   'NoneType' object has no attribute 'predict'R@   i   i   i
   i
   i
   (   RÍ   N(   R<   Rh   R:   R	   R–   R.   R@   R7   R2   R*   R   R0   RZ   RÄ   RŸ   R5   R   Rž   R   (   R,   R-   RÑ   R»   t   expt   other_methodst   method(    (   RÊ   RÏ   RÐ   s:   lib/python2.7/site-packages/sklearn/tests/test_pipeline.pyt   test_set_pipeline_step_none@  sh    	""""	(!"c          C   s  t  t d ƒ ƒ }  |  j |  j |  j t  t ƒ  ƒ }  t t |  d ƒ ƒ |  j |  j t  d  ƒ }  t t |  d ƒ ƒ |  j |  j t  t ƒ  t	 ƒ  ƒ }  t t |  d ƒ ƒ |  j t t |  d ƒ ƒ t  t	 ƒ  t ƒ  ƒ }  t t |  d ƒ ƒ |  j t t |  d ƒ ƒ d  S(   Ni   R@   R7   (
   R   R:   R@   R5   R7   R6   R   t   hasattrR*   R4   (   R»   (    (    s:   lib/python2.7/site-packages/sklearn/tests/test_pipeline.pyt   test_pipeline_ducktyping†  s(    c          C   sø   t  ƒ  }  t  ƒ  } t |  | ƒ } t | t ƒ s6 t ‚ t | j d d d ƒ t | j d d d ƒ t |  | t ƒ  ƒ } t | t ƒ s t ‚ t | j d d d ƒ t | j d d d ƒ t | j d d d ƒ t t	 d t |  | d d	 ƒd  S(
   Ni    s   transf-1i   s   transf-2i   t	   fitparamts-   Unknown keyword arguments: "random_parameter"t   random_parametert   rnd(
   R6   R   t
   isinstanceR   Rr   R   RÄ   RE   R   RY   (   t   t1t   t2Ra   (    (    s:   lib/python2.7/site-packages/sklearn/tests/test_pipeline.pyt   test_make_pipeline¡  s    		c    	      C   sô  t  ƒ  }  |  j } |  j } t d d d d d d ƒ } t d d ƒ } t d	 | f d
 | f g d i d d	 6ƒ} | j | | ƒ | j | ƒ } t d	 | f d
 | f g d i d d	 6ƒ} | j | | ƒ } t d t	 ƒ  f d	 | f d
 | f g d i d d 6ƒ} | j | | ƒ } t
 | d  d  … d  d … f d | j | ƒ ƒ t | d  d  … d f | j | | ƒ j ƒ  ƒ t
 | d  d  … d  d … f d | j | ƒ ƒ t | d  d  … d f | j | | ƒ j ƒ  ƒ t | j | j d d f ƒ d  S(   NR‚   i   R€   R‡   R   i    Rj   i   R…   R¦   R¹   i
   R¨   iÿÿÿÿi   (   R   Rl   Rm   R   R   R   R.   R5   R–   R6   R
   R	   Rª   R   R‹   (	   Rn   R,   R-   R…   R¦   R®   R¯   t   X_fit_transformedt   X_fit_transformed_wo_method(    (    s:   lib/python2.7/site-packages/sklearn/tests/test_pipeline.pyt   test_feature_union_weights¶  s.    			'0c          C   st  t  }  t d t d d ƒ f d t d d ƒ f g ƒ } t d t d d ƒ f d t d d ƒ f g d d ƒ} t d t d d ƒ f d t d d ƒ f g d d ƒ} | j |  ƒ | j |  ƒ } t | j d t |  ƒ ƒ | j |  ƒ | j |  ƒ } t | j | j ƒ t | j	 ƒ  | j	 ƒ  ƒ | j
 |  ƒ } t | j	 ƒ  | j	 ƒ  ƒ | j |  ƒ } t | j	 ƒ  | j	 ƒ  ƒ d  S(	   Nt   wordst   analyzert   wordt   charst   charR¸   i   i    (   t   JUNK_FOOD_DOCSR   R   R.   R5   R   R‹   RŒ   R	   R¬   R–   (   R,   R®   t   fs_parallelt   fs_parallel2R¯   t   X_transformed_parallelt   X_transformed_parallel2(    (    s:   lib/python2.7/site-packages/sklearn/tests/test_pipeline.pyt   test_feature_union_parallel×  s:    					c          C   sÛ   t  d d ƒ }  t  d d d d ƒ } t d | f d |  f g ƒ } | j t ƒ | j ƒ  } x, | D]$ } d | k sb d	 | k sb t ‚ qb Wt t | ƒ d
 ƒ t d t ƒ  f g ƒ j d g g ƒ } t	 t
 d | j ƒ d  S(   NRæ   Rç   t   char_wbt   ngram_rangei   Rè   Rå   t   chars__t   words__i#   t   tr1i   s@   Transformer tr1 (type Transf) does not provide get_feature_names(   i   i   (   R   R   R.   Rê   t   get_feature_namesRr   R   RŒ   R6   R   Rž   (   t	   word_vectt	   char_vectt   ftt   feature_namest   feat(    (    s:   lib/python2.7/site-packages/sklearn/tests/test_pipeline.pyt    test_feature_union_feature_names  s    "'c          C   sº   t  ƒ  }  |  j } |  j } t t d d ƒ t ƒ  ƒ } | j | | ƒ t t t	 | d ƒ t t d d ƒ t
 d d ƒ ƒ } t t t	 | d ƒ | j | | ƒ t | j t j | ƒ ƒ d  S(   NRj   i   t   classes_R   i    (   R   Rl   Rm   R   R   R   R.   R   Rž   RŸ   R   R	   Rü   R<   R   (   Rn   R,   R-   t   regRQ   (    (    s:   lib/python2.7/site-packages/sklearn/tests/test_pipeline.pyt   test_classes_property  s    			!c          C   s¯  t  d ƒ }  d „  |  _ t  d ƒ } d „  | _ t  d ƒ } d „  | _ t d |  f d | f g ƒ } t d d g g | j t j d	 g g ƒ ƒ ƒ t d
 d g | j ƒ  ƒ d | f g | _ t d g g | j t j d	 g g ƒ ƒ ƒ t d g | j ƒ  ƒ | j	 d d | f g ƒ t d g g | j t j d	 g g ƒ ƒ ƒ t d g | j ƒ  ƒ | j	 d | ƒ t d g g | j t j d	 g g ƒ ƒ ƒ t d g | j ƒ  ƒ d  S(   Ni   c           S   s   d g S(   Nt   x2(    (    (    (    s:   lib/python2.7/site-packages/sklearn/tests/test_pipeline.pyt   <lambda>(  s    i   c           S   s   d g S(   Nt   x3(    (    (    (    s:   lib/python2.7/site-packages/sklearn/tests/test_pipeline.pyR   *  s    i   c           S   s   d g S(   Nt   x5(    (    (    (    s:   lib/python2.7/site-packages/sklearn/tests/test_pipeline.pyR   ,  s    RÌ   RÍ   i   t   m2__x2t   m3__x3t   m5t   m5__x5R­   R¨   t   mock__x3t   mock__x5(
   R:   Rõ   R   R	   R5   R<   R=   R   R­   R2   (   RÊ   RÏ   RÐ   Rø   (    (    s:   lib/python2.7/site-packages/sklearn/tests/test_pipeline.pyt   test_set_feature_union_steps&  s$    .+++t   dropc         C   s6  t  d ƒ } d „  | _ t  d ƒ } d „  | _ t j d g g ƒ } t d | f d | f g ƒ } t d d g g | j | ƒ j | ƒ ƒ t d d g g | j | ƒ ƒ t	 d d	 g | j ƒ  ƒ | j
 d |  ƒ t d g g | j | ƒ j | ƒ ƒ t d g g | j | ƒ ƒ t	 d	 g | j ƒ  ƒ | j
 d |  ƒ t g  g | j | ƒ j | ƒ ƒ t g  g | j | ƒ ƒ t	 g  | j ƒ  ƒ | j
 d | ƒ t d g g | j | ƒ j | ƒ ƒ t d |  f d | f g ƒ } t d g g | j | ƒ j | ƒ ƒ t d g g | j | ƒ ƒ t	 d	 g | j ƒ  ƒ d  S(
   Ni   c           S   s   d g S(   NRÿ   (    (    (    (    s:   lib/python2.7/site-packages/sklearn/tests/test_pipeline.pyR   E  s    i   c           S   s   d g S(   NR  (    (    (    (    s:   lib/python2.7/site-packages/sklearn/tests/test_pipeline.pyR   G  s    i   RÌ   RÍ   R  R  (   R:   Rõ   R<   R=   R   R	   R.   R5   R–   R   R2   (   R
  RÊ   RÏ   R,   Rø   (    (    s:   lib/python2.7/site-packages/sklearn/tests/test_pipeline.pyt    test_set_feature_union_step_dropB  s.    (%"%%c       	   C   sÙ  d t  d ƒ f d t  d ƒ f g }  d t  d ƒ f d t  d ƒ f g } xŠt d f t d f g D]p\ } } d t  d ƒ f | t  d ƒ f g } x=|  d f | d	 f | d
 | f g D]\ } } t t | | i | | 6 | i d t  d ƒ f g | 6  } t | | | ƒ t t | | j d g g d g ƒ t t | | j d g g d g ƒ | i d t  d ƒ f g | 6  } | j i | | 6  t t | | j d g g d g ƒ t t | | j d g g d g ƒ q· Wqa Wd  S(   Nt   a__qi   R$   i   R#   RÄ   R­   s1   Estimator names must not contain __: got ['a__q']s)   Names provided are not unique: ['a', 'a']s;   Estimator names conflict with constructor arguments: ['%s']i   (	   R:   R   R   R   R^   t   setattrR.   R–   R2   (   t
   bad_steps1t
   bad_steps2Rv   t   paramt
   bad_steps3t	   bad_stepst   messaget   est(    (    s:   lib/python2.7/site-packages/sklearn/tests/test_pipeline.pyt   test_step_name_validationd  s,    $$$		""""c          C   sf   t  d t  d t ƒ  f g ƒ f g ƒ }  |  j d d d t ƒ  ƒ |  j d d t ƒ  f g d d ƒ d  S(	   NR#   R$   t   a__b__alphagü©ñÒMbP?t   a__bt   a__stepst   a__b__Ci   (   R   R   R2   R   R   (   t	   estimator(    (    s:   lib/python2.7/site-packages/sklearn/tests/test_pipeline.pyt   test_set_params_nested_pipeline…  s
    c          C   sh   t  ƒ  }  |  j } |  j } d } t d t ƒ  f d t ƒ  f g d | ƒ} t t d | j | | ƒ d  S(   Ni   Rg   RR   RÒ   sf   'memory' should be None, a string or have the same interface as joblib.Memory. Got memory='1' instead.(	   R   Rl   Rm   R   RJ   R   R   R^   R.   (   Rn   R,   R-   RÒ   t   cached_pipe(    (    s:   lib/python2.7/site-packages/sklearn/tests/test_pipeline.pyt   test_pipeline_wrong_memory‘  s    				t   DummyMemoryc           B   s   e  Z d  „  Z RS(   c         C   s   | S(   N(    (   R%   t   func(    (    s:   lib/python2.7/site-packages/sklearn/tests/test_pipeline.pyt   cache¡  s    (   R'   R(   R   (    (    (    s:   lib/python2.7/site-packages/sklearn/tests/test_pipeline.pyR     s   t   WrongDummyMemoryc           B   s   e  Z RS(    (   R'   R(   (    (    (    s:   lib/python2.7/site-packages/sklearn/tests/test_pipeline.pyR!  ¥  s   c          C   s®   t  j d d g g ƒ }  t d t ƒ  f d t ƒ  f g d t ƒ  ƒ} | j |  d d  ƒt ƒ  } t d t ƒ  f d t ƒ  f g d | ƒ} t	 t
 d j | ƒ | j |  ƒ d  S(   Ni   i   Rg   RQ   RÒ   R-   sg   'memory' should be None, a string or have the same interface as joblib.Memory. Got memory='{}' instead.(   R<   Rh   R   R6   R:   R  R.   R*   R!  R   R^   t   format(   R,   Ra   t   dummy(    (    s:   lib/python2.7/site-packages/sklearn/tests/test_pipeline.pyt"   test_pipeline_with_cache_attribute©  s    !	!	c          C   s°  t  ƒ  }  |  j } |  j } t ƒ  } zwt t ƒ t d ƒ k  rW t d | d d ƒ } n t d | d d ƒ } t d d d t d	 d
 ƒ } t	 ƒ  } t
 d t | ƒ f d | f g ƒ } t
 d | f d | f g d | ƒ} | j | | ƒ | j | | ƒ | j d j }	 t | j | ƒ | j | ƒ ƒ t | j | ƒ | j | ƒ ƒ t | j | ƒ | j | ƒ ƒ t | j | | ƒ | j | | ƒ ƒ t | j d j | j d j ƒ t t | d ƒ ƒ | j | | ƒ t | j | ƒ | j | ƒ ƒ t | j | ƒ | j | ƒ ƒ t | j | ƒ | j | ƒ ƒ t | j | | ƒ | j | | ƒ ƒ t | j d j | j d j ƒ t |	 | j d j ƒ t d d d t d	 d
 ƒ }
 t	 ƒ  } t
 d | f d |
 f g d | ƒ} | j | | ƒ t | j | ƒ | j | ƒ ƒ t | j | ƒ | j | ƒ ƒ t | j | ƒ | j | ƒ ƒ t | j | | ƒ | j | | ƒ ƒ t | j d j | j d j ƒ t |	 | j d j ƒ Wd  t j | ƒ Xd  S(   Ns   0.12t   cachedirt   verbosei
   t   locationR|   R}   R~   R   i    Rg   RR   RÒ   RL   t   transf_2(   R   Rl   Rm   R   R    t   joblib_versionR    R   RZ   RJ   R   R   R.   R_   RN   R	   R@   RB   RC   RA   RL   R   RÙ   R   t   shutilt   rmtree(   Rn   R,   R-   R%  RÒ   RQ   Rg   Ra   R  t   tst   clf_2R(  t   cached_pipe_2(    (    s:   lib/python2.7/site-packages/sklearn/tests/test_pipeline.pyt   test_pipeline_memory¶  s`    					$	%%		%c          C   s¹   t  ƒ  }  t t ƒ t d ƒ k  r9 t d |  d d ƒ } n t d |  d d ƒ } t t ƒ  t ƒ  d | ƒ} | j | k s~ t ‚ t t ƒ  t ƒ  ƒ } | j d  k s¨ t ‚ t
 j |  ƒ d  S(   Ns   0.12R%  R&  i
   R'  RÒ   (   R   R    R)  R    R   RJ   R   RÒ   Rr   R*   R*  R+  (   R%  RÒ   R»   (    (    s:   lib/python2.7/site-packages/sklearn/tests/test_pipeline.pyt   test_make_pipeline_memoryø  s    	(   s   the pizza pizza beer copyrights   the pizza burger beer copyrights!   the the pizza beer beer copyrights   the burger beer beer copyrights   the coke burger coke copyrights   the coke burger burger(n   R)   t   distutils.versionR    t   tempfileR   R*  RM   t   pytestt   numpyR<   t   scipyR   t   sklearn.externals.six.movesR   t   sklearn.utils.testingR   R   R   R   R   R	   R
   R   R   t   sklearn.baseR   R   t   sklearn.pipelineR   R   R   R   t   sklearn.svmR   t   sklearn.linear_modelR   R   R   t   sklearn.clusterR   t   sklearn.feature_selectionR   R   t   sklearn.dummyR   t   sklearn.decompositionR   R   t   sklearn.datasetsR   t   sklearn.preprocessingR   t   sklearn.feature_extraction.textR   t   sklearn.utils._joblibR    R!   R)  Rê   t   objectR"   R+   R4   R6   R8   R:   RE   RJ   RO   Rf   Ri   t   markt   filterwarningsRo   Rs   Rt   Ru   R{   R†   R”   R   R    R£   R¤   R³   R·   Rº   RÁ   RÂ   RÈ   RË   RØ   RÚ   Rá   Rä   Rï   Rû   Rþ   R	  t   parametrizeR*   R  R  R  R  R  R!  R$  R/  R0  (    (    (    s:   lib/python2.7/site-packages/sklearn/tests/test_pipeline.pyt   <module>   s¬   "     		B							 				
	2								F			!	.		$"	!			B