B
    	\,                 @   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l0m1Z1 ddl2m3Z3 ddl4m5Z5 ddl6m7Z7 ddl6m8Z9 dZ:G dd  d e;Z<G d!d" d"e<Z=G d#d$ d$e=Z>G d%d& d&e>Z?G d'd( d(e?Z@G d)d* d*eZAG d+d, d,eZBG d-d. d.e?ZCG d/d0 d0eZDd1d2 ZEd3d4 ZFejGHd5ejGHd6d7d8 ZId9d: ZJd;d< ZKd=d> ZLd?d@ ZMdAdB ZNdCdD ZOdEdF ZPdGdH ZQdIdJ ZRdKdL ZSdMdN ZTdOdP ZUdQdR ZVdSdT ZWdUdV ZXdWdX ZYdYdZ ZZd[d\ Z[d]d^ Z\d_d` Z]dadb Z^dcdd Z_dedf Z`ejGHd5ejGHd6dgdh Zadidj ZbejGcdkdkdgdldm Zddndo ZeejGHd5ejGHd6dpdq Zfdrds ZgG dtdu due;ZhG dvdw dwe;Zidxdy Zjdzd{ Zkd|d} ZldS )~z
Test the pipeline module.
    )LooseVersion)mkdtempN)sparse)zip)assert_raises)assert_raises_regex)assert_raise_message)assert_equal)assert_false)assert_array_equal)assert_array_almost_equal)assert_dict_equal)assert_no_warnings)cloneBaseEstimator)PipelineFeatureUnionmake_pipeline
make_union)SVC)LogisticRegressionLasso)LinearRegression)KMeans)SelectKBest	f_classif)DummyRegressor)PCATruncatedSVD)	load_iris)StandardScaler)CountVectorizer)Memory)__version__)zthe pizza pizza beer copyrightzthe pizza burger beer copyrightz!the the pizza beer beer copyrightzthe burger beer beer copyrightzthe coke burger coke copyrightzthe coke burger burgerc               @   s   e Zd ZdZdddZdS )NoFitz/Small class to test parameter dispatching.
    Nc             C   s   || _ || _d S )N)ab)selfr%   r&    r(   :lib/python3.7/site-packages/sklearn/tests/test_pipeline.py__init__6   s    zNoFit.__init__)NN)__name__
__module____qualname____doc__r*   r(   r(   r(   r)   r$   2   s   r$   c               @   s&   e Zd Zdd Zd	ddZdd ZdS )
NoTransc             C   s   | S )Nr(   )r'   Xyr(   r(   r)   fit=   s    zNoTrans.fitFc             C   s   | j | jdS )N)r%   r&   )r%   r&   )r'   deepr(   r(   r)   
get_params@   s    zNoTrans.get_paramsc             K   s   |d | _ | S )Nr%   )r%   )r'   paramsr(   r(   r)   
set_paramsC   s    
zNoTrans.set_paramsN)F)r+   r,   r-   r2   r4   r6   r(   r(   r(   r)   r/   ;   s   
r/   c               @   s   e Zd Zdd ZdS )NoInvTransfc             C   s   |S )Nr(   )r'   r0   r(   r(   r)   	transformI   s    zNoInvTransf.transformN)r+   r,   r-   r8   r(   r(   r(   r)   r7   H   s   r7   c               @   s   e Zd Zdd Zdd ZdS )Transfc             C   s   |S )Nr(   )r'   r0   r(   r(   r)   r8   N   s    zTransf.transformc             C   s   |S )Nr(   )r'   r0   r(   r(   r)   inverse_transformQ   s    zTransf.inverse_transformN)r+   r,   r-   r8   r:   r(   r(   r(   r)   r9   M   s   r9   c               @   s   e Zd Zdd ZdS )TransfFitParamsc             K   s
   || _ | S )N)
fit_params)r'   r0   r1   r<   r(   r(   r)   r2   W   s    zTransfFitParams.fitN)r+   r,   r-   r2   r(   r(   r(   r)   r;   U   s   r;   c               @   sL   e Zd ZdddZdd Zdd Zdd	 Zd
d Ze Z Z	Z
dddZdS )Mult   c             C   s
   || _ d S )N)mult)r'   r?   r(   r(   r)   r*   ]   s    zMult.__init__c             C   s   | S )Nr(   )r'   r0   r1   r(   r(   r)   r2   `   s    zMult.fitc             C   s   t || j S )N)npasarrayr?   )r'   r0   r(   r(   r)   r8   c   s    zMult.transformc             C   s   t || j S )N)r@   rA   r?   )r'   r0   r(   r(   r)   r:   f   s    zMult.inverse_transformc             C   s   t || j jddS )Nr>   )axis)r@   rA   r?   sum)r'   r0   r(   r(   r)   predicti   s    zMult.predictNc             C   s
   t |S )N)r@   rC   )r'   r0   r1   r(   r(   r)   scoren   s    z
Mult.score)r>   )N)r+   r,   r-   r*   r2   r8   r:   rD   predict_probapredict_log_probadecision_functionrE   r(   r(   r(   r)   r=   \   s   
r=   c               @   s>   e Zd ZdZdd ZdddZdd Zdd	d
ZdddZdS )	FitParamTzMock classifier
    c             C   s
   d| _ d S )NF)
successful)r'   r(   r(   r)   r*   v   s    zFitParamT.__init__Fc             C   s
   || _ d S )N)rJ   )r'   r0   r1   should_succeedr(   r(   r)   r2   y   s    zFitParamT.fitc             C   s   | j S )N)rJ   )r'   r0   r(   r(   r)   rD   |   s    zFitParamT.predictc             C   s   | j |||d | |S )N)rK   )r2   rD   )r'   r0   r1   rK   r(   r(   r)   fit_predict   s    zFitParamT.fit_predictNc             C   s   |d k	r|| }t |S )N)r@   rC   )r'   r0   r1   sample_weightr(   r(   r)   rE      s    zFitParamT.score)F)F)NN)	r+   r,   r-   r.   r*   r2   rD   rL   rE   r(   r(   r(   r)   rI   r   s   

rI   c               @   s   e Zd ZdZdd ZdS )DummyTransfz(Transformer which store the column meansc             C   s   t j|dd| _t | _| S )Nr   )rB   )r@   meanmeans_time
timestamp_)r'   r0   r1   r(   r(   r)   r2      s    
zDummyTransf.fitN)r+   r,   r-   r.   r2   r(   r(   r(   r)   rN      s   rN   c               @   s"   e Zd ZdZdd ZdddZdS )	DummyEstimatorParamsz,Mock classifier that takes params on predictc             C   s   | S )Nr(   )r'   r0   r1   r(   r(   r)   r2      s    zDummyEstimatorParams.fitFc             C   s
   || _ | S )N)got_attribute)r'   r0   rT   r(   r(   r)   rD      s    zDummyEstimatorParams.predictN)F)r+   r,   r-   r.   r2   rD   r(   r(   r(   r)   rS      s   rS   c              C   s  t tt ttdtdt fg t } td| fg}t|jddtf d d | d|jdd |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d}|jdd}x |jddD ]}|| qBW x |jddD ]}|| qdW |d |d
 |d |d
 t|| d S )Nz5Last step of Pipeline should implement fit. .*NoFit.*clfsvcT)r3   )svc__aZsvc__brV   Fg?)rW   anovaz<All intermediate steps should be transformers.*\bNoTrans\b.*t)Zsvc__C)Zanova__C)r   	TypeErrorr   r   r$   r/   r	   r4   dictr6   r%   r&   reprr   r   r   C
ValueErrorr   r   r
   named_stepspop)rU   pipefilter1pipe2r5   Zparams2xr(   r(   r)   test_pipeline_init   sH    





re   c              C   sh   t ddgg} tdt fdt ff}|j| d d ||  |jd d |j| d d ||  d S )Nr>      transfrU   )r1   )rg   )r@   arrayr   r9   rI   r2   rE   r6   )r0   ra   r(   r(   r)   test_pipeline_init_tuple   s    
ri   z&ignore: Default solver will be changedz ignore: Default multi_class willc              C   sr   t  } | j}| j}t }ttdd}td|fd|fg}||| || |	| |
| ||| d S )Nrf   )krX   Zlogistic)r   datatargetr   r   r   r   r2   rD   rF   rG   rE   )irisr0   r1   rU   rb   ra   r(   r(   r)   test_pipeline_methods_anova   s    


rn   c              C   sx   t dt fdt fg} | jd d dd | d s6t| jd jd ksJt| jd jd ks^tt	t
d| jd d dd d S )Nrg   rU   T)r0   r1   clf__should_succeedz.fit() got an unexpected keyword argument 'bad')Zclf__bad)r   r9   rI   r2   rD   AssertionErrorr_   r%   r&   r   rZ   )ra   r(   r(   r)   test_pipeline_fit_params   s    rq   c              C   s   t ddgg} tdt fdt fg}|j| d d t|| d t|j| d dd t|j| d d dd t|j| t ddgdd	 d S )
Nr>   rf   rg   rU   )r1      )r1   rM   )rM      )r@   rh   r   r9   rI   r2   r	   rE   )r0   ra   r(   r(   r)   %test_pipeline_sample_weight_supported  s    rt   c           	   C   s|   t ddgg} tdt fdt fg}|j| d d t|| d t|j| d dd tt	d|j| t ddgd d S )	Nr>   rf   rg   rU   )r1   rr   )rM   z:score() got an unexpected keyword argument 'sample_weight')
r@   rh   r   r9   r=   r2   r	   rE   r   rZ   )r0   ra   r(   r(   r)   'test_pipeline_sample_weight_unsupported  s    ru   c              C   sL   t dt fg} d}tt|d| f | jdd tt|d| f | jdd d S )NclszsInvalid parameter %s for estimator %s. Check the list of available parameters with `estimator.get_params().keys()`.fakeZnope)rw   )Zfake__estimator)r   r   r   r^   r6   )ra   Z	error_msgr(   r(   r)   $test_pipeline_raise_set_params_error)  s    

rx   c              C   s|   t  } | j}| j}tdddd}tdddd}td|fd	|fg}||| || || |	| |
|| d S )
NscaleTr   )gammaprobabilityrandom_statefullZmle)
svd_solvern_componentswhitenpcarV   )r   rk   rl   r   r   r   r2   rD   rF   rG   rE   )rm   r0   r1   rU   r   ra   r(   r(   r)   test_pipeline_methods_pca_svm>  s    


r   c              C   s   t  } | j}| j}|jd }tt|}t }tdddd}t	ddddd}x||gD ]}t
d	|fd
|fg}	|	|| |	|}
t|
j|f |	|}t|j||f |	|}t|j||f |	|}t|j||f |	|| qXW d S )Nr   rf   
randomizedT)r   r~   r   ry   Zovr)rz   r{   r|   Zdecision_function_shapeZ
preprocessrV   )r   rk   rl   shapelenr@   uniquer    r   r   r   r2   rD   r	   rF   rG   rH   rE   )rm   r0   r1   Z	n_samplesZ	n_classesscalerr   rU   Zpreprocessingra   rD   ZprobaZ	log_probarH   r(   r(   r)   'test_pipeline_methods_preprocessing_svmN  s*    




r   c        	      C   sj   t  } t }tdd}t }tdd}|| j}||}td|fd|fg}|| j}t|| d S )Nr   )r|   r   ZKmeans)r   r    r   fit_transformrk   rL   r   r   )	rm   r   ZkmZscaler_for_pipelineZkm_for_pipelineZscaledZseparate_predra   Zpipeline_predr(   r(   r)   test_fit_predict_on_pipelinen  s    


r   c              C   s8   t  } tdd}td| fd|fg}ttdt|d d S )Nr}   )r~   r   r   z+'PCA' object has no attribute 'fit_predict'rL   )r    r   r   r   AttributeErrorgetattr)r   r   ra   r(   r(   r)   0test_fit_predict_on_pipeline_without_fit_predict  s    
r   c              C   sf   t dt fdt fg} | jd d ddd | jd jd s>t| jd jsNttd| jd jk d S )Nrg   rU   T)r0   r1   Ztransf__should_get_thisro   Zshould_get_thisrK   )	r   r;   rI   rL   r_   r<   rp   rJ   r
   )ra   r(   r(   r)   -test_fit_predict_with_intermediate_fit_params  s    r   c              C   sF   t dt fdt fg} | d d  | jd dd | jd jsBtd S )Nrg   rU   T)r0   rT   )r   r9   rS   r2   rD   r_   rT   rp   )ra   r(   r(   r)    test_predict_with_predict_params  s    r   c        
      C   s  t  } | j}||jdd8 }| j}tddd}tdd}td|fd|fg}||| ||}t	|j
|j
d d	f t|d d d d
f || t|d d d
f |||  td|fd|fg}t|}|||}t||  tt|}	t|jd d |	jd d k |jdd t	|||j
|j
d df tdt fd|fd|fg}|||}t	|j
|j
d df ttdtdt fdt fg td|fd|ff}||| d S )Nr   )rB   rf   )r   r|   r>   )rj   svdselectrr   )Z	select__k   mockrs   z>All estimators should implement fit and transform.*\bNoTrans\br8   Zno_transform)r   rk   rO   rl   r   r   r   r2   r8   r	   r   r   r   r   ravelr   Z
csr_matrixtoarrayr   r   r
   transformer_listr6   r9   r   rZ   r/   )
rm   r0   r1   r   r   fsX_transformedZX_spZX_sp_transformedZfs2r(   r(   r)   test_feature_union  s<    

 

 r   c              C   sD   t dd} t }t| |}t|j \}}t|d t|| |f d S )Nr}   )r~   )r   rg   )r   r9   r   r   r   r	   )r   r   funamesZtransformersr(   r(   r)   test_make_union  s    


r   c           	   C   s\   t dd} t }t| |dd}t|jt| |j td|j ttdt| |dddd	 d S )
Nr}   )r~   rr   )n_jobsz0Unknown keyword arguments: "transformer_weights"
   r>   )r   r9   )transformer_weights)r   r9   r   r	   r   r   r   rZ   )r   r   r   r(   r(   r)   test_make_union_kwargs  s    
r   c        	      C   s   t  } | j}tddd}td|fg}|||}||}||}t|| t|| ||}||}t|| d S )Nrf   r}   )r   r~   r   )	r   rk   r   r   r2   r8   r   r   r:   )	rm   r0   r   pipelineX_transX_trans2ZX_trans3ZX_backZX_back2r(   r(   r)   test_pipeline_transform  s    





r   c              C   sR   t  } | j}| j}t }td|fg}|||}||||}t|| d S )Nr   )	r   rk   rl   r9   r   r   r2   r8   r   )rm   r0   r1   rg   r   r   r   r(   r(   r)   test_pipeline_fit_transform  s    r   c              C   s   t  } t  }td| fg}|jd | ks,td|fg|_d|jksFt|jd |ksXttd|fg|j |jd| fgd td| fg|j |j|d td|fg|j |jdgd tt|j	dggdg tt|j
dggdg d S )Nr   mock2)steps)r   )Zjunkr(   r>   )r9   r   r_   rp   r   r	   r6   r   rZ   r2   r   )Ztransf1Ztransf2r   r(   r(   r)   test_set_pipeline_steps  s    r   c              C   s   t  } tdd}td| fd|fg}d|jks2td|jks@t|jj| ksPt|jj|ks`ttd| fd|fg}|jj| k	st|jj|kstd S )Nrf   )r?   r   r?   r   values)r9   r=   r   r_   rp   r   r?   r   )rg   mult2r   r(   r(   r)   test_pipeline_named_steps/  s    
r   c           
      s  t dgg} t dg}tdd tddtdd fdd}| }d}t|gg|| | t|g|| |  t| ||gg |jd d	 d
}t|gg|| | t|g|| |  t| ||gg t	|j
dd|j d d ddd |jd d d}t|gg|| | t|g|| |  t| ||gg dddddg}x|D ]}t|||  qpW |j d d
}t|gg|| | t|g|| |  t| ||gg | }|jd d d}t|gg|| ||  t|gg|| | t| ||gg ttdt|d d
}td fddfg}t|gg|| | t|g|| |  t| ||gg d S )Nr>   rf   )r?   rr      c                  s   t d fdfdfgS )Nm2m3last)r   r(   )r   mult3mult5r(   r)   makeH  s    z)test_set_pipeline_step_none.<locals>.make   )r   r   T)r3   )r   r   r   r   memoryZm2__multZ
last__mult)r   rF   rG   rH   r8   rE   )r      z,'NoneType' object has no attribute 'predict'rD   r   )r   Nr   )r@   rh   r=   r   r   r2   rD   r:   r6   r   r4   r   r   r8   r   r   r   )r0   r1   r   r   ZexpZother_methodsmethodr(   )r   r   r   r)   test_set_pipeline_step_none@  sh    






r   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 )Nr   rD   r:   )	r   r=   rD   r8   r:   r9   r
   hasattrr7   )r   r(   r(   r)   test_pipeline_ducktyping  s(    
r   c              C   s   t  } t  }t| |}t|ts$tt|jd d d t|jd d d t| |t }t|tshtt|jd d d t|jd d d t|jd d d tt	dt| |dd	 d S )
Nr   ztransf-1r>   ztransf-2rf   Z	fitparamtz-Unknown keyword arguments: "random_parameter"Zrnd)Zrandom_parameter)
r9   r   
isinstancer   rp   r	   r   rI   r   rZ   )Zt1Zt2ra   r(   r(   r)   test_make_pipeline  s    
r   c        	      C   sZ  t  } | j}| j}tdddd}tdd}td|fd|fgdd	id
}||| ||}td|fd|fgdd	id
}|||}tdt	 fd|fd|fgdd	id
}|||}t
|d d d df d	||  t|d d df |||  t
|d d d df d	||  t|d d df |||  t|j|jd df d S )Nrf   r   r   )r   r~   r|   r>   )rj   r   r   r   )r   r   r      )r   rk   rl   r   r   r   r2   r8   r   r9   r   r   r   r	   r   )	rm   r0   r1   r   r   r   r   ZX_fit_transformedZX_fit_transformed_wo_methodr(   r(   r)   test_feature_union_weights  s.    

$r   c              C   s  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}||  || }t|jd t|  ||  || }t|j|j t|	 |	  |
| }t|	 |	  || }t|	 |	  d S )	Nwordsword)analyzercharscharrf   )r   r   )JUNK_FOOD_DOCSr   r!   r2   r8   r	   r   r   r   r   r   )r0   r   Zfs_parallelZfs_parallel2r   ZX_transformed_parallelZX_transformed_parallel2r(   r(   r)   test_feature_union_parallel  s:    







r   c              C   s   t dd} t ddd}td|fd| fg}|t | }x |D ]}d|ksBd	|ksBtqBW tt|d
 tdt fgdgg}t	t
d|j d S )Nr   )r   Zchar_wb)rr   rr   )r   Zngram_ranger   r   Zchars__Zwords__#   Ztr1r>   z@Transformer tr1 (type Transf) does not provide get_feature_names)r!   r   r2   r   get_feature_namesrp   r	   r   r9   r   r   )Z	word_vectZ	char_vectftZfeature_namesZfeatr(   r(   r)    test_feature_union_feature_names  s    


r   c              C   s   t  } | j}| j}ttddt }||| ttt	|d ttddt
dd}ttt	|d ||| t|jt| d S )Nr>   )rj   classes_r   )r|   )r   rk   rl   r   r   r   r2   r   r   r   r   r   r   r@   r   )rm   r0   r1   ZregrU   r(   r(   r)   test_classes_property  s    r   c              C   s4  t d} dd | _t d}dd |_t d}dd |_td| fd	|fg}tddgg|td
gg tddg|  d|fg|_tdgg|td
gg tdg|  |j	d|fgd tdgg|td
gg tdg|  |j	|d tdgg|td
gg tdg|  d S )Nrf   c               S   s   dgS )Nx2r(   r(   r(   r(   r)   <lambda>(  s    z.test_set_feature_union_steps.<locals>.<lambda>rr   c               S   s   dgS )Nx3r(   r(   r(   r(   r)   r   *  s    r   c               S   s   dgS )NZx5r(   r(   r(   r(   r)   r   ,  s    r   r   r>   m2__x2m3__x3Zm5Zm5__x5r   )r   Zmock__x3)r   Zmock__x5)
r=   r   r   r   r8   r@   rA   r	   r   r6   )r   r   r   r   r(   r(   r)   test_set_feature_union_steps&  s$    


 r   dropc             C   s  t d}dd |_t d}dd |_tdgg}td|fd|fg}tddgg||| tddgg|| t	d	d
g|  |j
| d tdgg||| tdgg|| t	d
g|  |j
| d tg g||| tg g|| t	g |  |j
|d tdgg||| td| fd|fg}tdgg||| tdgg|| t	d
g|  d S )Nrf   c               S   s   dgS )Nr   r(   r(   r(   r(   r)   r   E  s    z2test_set_feature_union_step_drop.<locals>.<lambda>rr   c               S   s   dgS )Nr   r(   r(   r(   r(   r)   r   G  s    r>   r   r   r   r   )r   )r   )r=   r   r@   rA   r   r   r2   r8   r   r	   r6   )r   r   r   r0   r   r(   r(   r)    test_set_feature_union_step_dropB  s.    

r   c              C   sV  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 ]\}}dt df|t dfg}x| df|d	f|d
| fgD ]\}}tt||f||i |f |dt dfgi}t||| tt||jdggdg tt||jdggdg |f |dt dfgi}|jf ||i tt||jdggdg tt||jdggdg qW qDW d S )NZa__qrf   r&   rr   r%   r   r   z1Estimator names must not contain __: got ['a__q']z)Names provided are not unique: ['a', 'a']z;Estimator names conflict with constructor arguments: ['%s']r>   )	r=   r   r   r   r^   setattrr2   r   r6   )Z
bad_steps1Z
bad_steps2rv   ZparamZ
bad_steps3Z	bad_stepsmessageZestr(   r(   r)   test_step_name_validationd  s,    




r   c              C   sD   t dt dt fgfg} | jdt d | jdt fgdd d S )Nr%   r&   gMbP?)Za__b__alphaZa__br   )Za__stepsZa__b__C)r   r   r6   r   r   )Z	estimatorr(   r(   r)   test_set_params_nested_pipeline  s
    r   c              C   sH   t  } | j}| j}d}tdt fdt fg|d}ttd|j|| d S )Nr>   rg   rV   )r   zf'memory' should be None, a string or have the same interface as joblib.Memory. Got memory='1' instead.)	r   rk   rl   r   rN   r   r   r^   r2   )rm   r0   r1   r   cached_piper(   r(   r)   test_pipeline_wrong_memory  s    
r   c               @   s   e Zd Zdd ZdS )DummyMemoryc             C   s   |S )Nr(   )r'   funcr(   r(   r)   cache  s    zDummyMemory.cacheN)r+   r,   r-   r   r(   r(   r(   r)   r     s   r   c               @   s   e Zd ZdS )WrongDummyMemoryN)r+   r,   r-   r(   r(   r(   r)   r     s   r   c              C   sx   t ddgg} tdt fdt fgt d}|j| d d t }tdt fdt fg|d}tt	d
||j|  d S )Nr>   rf   rg   rU   )r   )r1   zg'memory' should be None, a string or have the same interface as joblib.Memory. Got memory='{}' instead.)r@   rh   r   r9   r=   r   r2   r   r   r^   format)r0   ra   Zdummyr(   r(   r)   "test_pipeline_with_cache_attribute  s    
r   c           	   C   s  t  } | j}| j}t }zntttdk r:t|dd}nt|dd}tdddd}t }t	d	t
|fd
|fg}t	d	|fd
|fg|d}||| ||| |jd	 j}	t|||| t|||| t|||| t|||||| t|jd	 j|jd	 j tt|d ||| t|||| t|||| t|||| t|||||| t|jd	 j|jd	 j t|	|jd	 j tdddd}
t }t	d|fd
|
fg|d}||| t|||| t|||| t|||| t|||||| t|jd	 j|jd j t|	|jd j W d t| X d S )Nz0.12r   )cachedirverbose)locationr   ry   Tr   )rz   r{   r|   rg   rV   )r   rP   transf_2)r   rk   rl   r   r   joblib_versionr"   r   rN   r   r   r2   r_   rR   r   rD   rF   rG   rE   rP   r
   r   r	   shutilrmtree)rm   r0   r1   r   r   rU   rg   ra   r   ZtsZclf_2r   Zcached_pipe_2r(   r(   r)   test_pipeline_memory  s`    



r   c              C   sz   t  } tttdk r$t| dd}nt| dd}tt t |d}|j|ksPttt t }|jd ksltt	
|  d S )Nz0.12r   )r   r   )r   r   )r   )r   r   r   r"   r   rN   r   r   rp   r   r   )r   r   r   r(   r(   r)   test_make_pipeline_memory  s    r   )mr.   Zdistutils.versionr   Ztempfiler   r   rQ   ZpytestZnumpyr@   Zscipyr   Zsklearn.externals.six.movesr   Zsklearn.utils.testingr   r   r   r	   r
   r   r   r   r   Zsklearn.baser   r   Zsklearn.pipeliner   r   r   r   Zsklearn.svmr   Zsklearn.linear_modelr   r   r   Zsklearn.clusterr   Zsklearn.feature_selectionr   r   Zsklearn.dummyr   Zsklearn.decompositionr   r   Zsklearn.datasetsr   Zsklearn.preprocessingr    Zsklearn.feature_extraction.textr!   Zsklearn.utils._joblibr"   r#   r   r   objectr$   r/   r7   r9   r;   r=   rI   rN   rS   re   ri   Zmarkfilterwarningsrn   rq   rt   ru   rx   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   Zparametrizer   r   r   r   r   r   r   r   r   r(   r(   r(   r)   <module>   s   		B
 
2	F!.
"!
B