
    ZPhA                        d 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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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mZ ddl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*m+Z+m,Z, ddl-m.Z. ddl/m0Z0 ddl1m2Z2 ddl3m4Z4m5Z5 ddl6m7Z8 ddl6m9Z9 ddl:m;Z; ddl<m=Z= dZ>dZ? G d d          Z@ G d de@          ZA G d  d!eA          ZB G d" d#eB          ZC G d$ d%eC          ZD G d& d'e          ZE G d( d)e          ZF G d* d+eC          ZG G d, d-e          ZH G d. d/eA          ZI G d0 d1eA          ZJd2 ZKd3 ZLd4 ZMd5 ZNd6 ZOd7 ZPd8 ZQd9 ZRd: ZSd; ZTd< ZUd= ZVd> ZWd? ZXd@ ZYe	jZ        [                    dAddAg          dB             Z\e	jZ        [                    dAddAg          dC             Z]dD Z^dE Z_dF Z`dG ZadH ZbdI ZcdJ ZddK ZedL ZfdM ZgdN ZhdO ZidP ZjdQ ZkdR ZldS ZmdT ZndU ZodV ZpdW ZqdX ZrdY ZsdZ Ztd[ Zud\ Zvd]  ejw         e4d^ eC            fd_ eF            fg          d`f e4d^ eC            fdad_ eF            fg          dbf e4d^ eC            fdcd_ eF            fg          dbf e4d^ eC            fddg          d`f e4dedf eE            fg          dgf e4dhdf eE            fg          dgf e$di eE            fdj eE            fg          dkf e$dldj eE            fdmg          dnfgg do          D             Zxe	jZ        [                    dpex          dq             Zydr Zzds Z{dt Z|e	jZ        [                    dug dv          dw             Z}e	jZ        ~                    e; e.dx          k     dyz           ed{|          d}                         Zd~ Ze	jZ        ~                    e; e.dx          k    dz           ed{|          d                         Zd ZdS )z
Test the pipeline module.
    N)mkdtemp)Memory)raises)config_context)BaseEstimatorClassifierMixinTransformerMixinclone)KMeans)	load_irismake_classification)PCA)SelectKBest	f_classif)LinearRegressionLogisticRegression)LocalOutlierFactor)FeatureUnion)StandardScaler)SVC)assert_allcloseassert_array_almost_equalassert_array_equal)parse_version)BaseSampler)make_imbalance)Pipelinemake_pipeline)EditedNearestNeighbours)RandomUnderSampler)sklearn_version)check_param_validation)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 burgerg-C6?c                       e Zd ZdZddZdS )NoFitz*Small class to test parameter dispatching.Nc                 "    || _         || _        d S Nab)selfr(   r)   s      \/var/www/html/test/jupyter/venv/lib/python3.11/site-packages/imblearn/tests/test_pipeline.py__init__zNoFit.__init__<   s        NN)__name__
__module____qualname____doc__r,    r-   r+   r$   r$   9   s.        44     r-   r$   c                   "    e Zd Zd ZddZd ZdS )NoTransc                     | S r&   r3   r*   Xys      r+   fitzNoTrans.fitB       r-   Fc                      | j         | j        dS )Nr'   r'   )r*   deeps     r+   
get_paramszNoTrans.get_paramsE   s    V$&)))r-   c                      |d         | _         | S )Nr(   )r(   )r*   paramss     r+   
set_paramszNoTrans.set_paramsH   s    r-   NF)r/   r0   r1   r:   r>   rA   r3   r-   r+   r5   r5   A   sF          * * * *    r-   r5   c                       e Zd ZddZdS )NoInvTransfNc                     |S r&   r3   r7   s      r+   	transformzNoInvTransf.transformN       r-   r&   )r/   r0   r1   rF   r3   r-   r+   rD   rD   M   s(             r-   rD   c                       e Zd ZddZd ZdS )TransfNc                     |S r&   r3   r7   s      r+   rF   zTransf.transformS   rG   r-   c                     |S r&   r3   r*   r8   s     r+   inverse_transformzTransf.inverse_transformV   rG   r-   r&   )r/   r0   r1   rF   rM   r3   r-   r+   rI   rI   R   s7               r-   rI   c                       e Zd Zd ZdS )TransfFitParamsc                     || _         | S r&   )
fit_params)r*   r8   r9   rQ   s       r+   r:   zTransfFitParams.fit[   s    $r-   Nr/   r0   r1   r:   r3   r-   r+   rO   rO   Z   s#            r-   rO   c                   H    e Zd Zd
dZd Zd Zd Zd Zd ZexZ	xZ
Zdd	ZdS )Mult   c                     || _         d S r&   mult)r*   rX   s     r+   r,   zMult.__init__a   s    			r-   c                     dS NTr3   r*   s    r+   __sklearn_is_fitted__zMult.__sklearn_is_fitted__d       tr-   c                     | S r&   r3   r7   s      r+   r:   zMult.fitg   r;   r-   c                 :    t          j        |          | j        z  S r&   npasarrayrX   rL   s     r+   rF   zMult.transformj       z!}}ty((r-   c                 :    t          j        |          | j        z  S r&   r`   rL   s     r+   rM   zMult.inverse_transformm   rc   r-   c                 b    t          j        |          | j        z                      d          S )NrU   axis)ra   rb   rX   sumrL   s     r+   predictzMult.predictp   s(    
1	)..A.666r-   Nc                 *    t          j        |          S r&   ra   rh   r7   s      r+   scorez
Mult.scoreu   s    vayyr-   )rU   r&   )r/   r0   r1   r,   r\   r:   rF   rM   ri   predict_probapredict_log_probadecision_functionrl   r3   r-   r+   rT   rT   `   s               ) ) )) ) )7 7 7 =DCMC%(9     r-   rT   c                   6    e Zd ZdZd Zd	dZd Zd	dZd
dZdS )	FitParamTzMock classifierc                     d| _         d S )NF
successfulr[   s    r+   r,   zFitParamT.__init__|   s    r-   Fc                 "    d| _         || _        | S rZ   )fitted_rt   r*   r8   r9   should_succeeds       r+   r:   zFitParamT.fit   s    (r-   c                     | j         S r&   rs   rL   s     r+   ri   zFitParamT.predict   s
    r-   c                 \    |                      |||           |                     |          S )N)rx   )r:   ri   rw   s       r+   fit_predictzFitParamT.fit_predict   s*    An555||Ar-   Nc                 8    |||z  }t          j        |          S r&   rk   )r*   r8   r9   sample_weights       r+   rl   zFitParamT.score   s     $M!Avayyr-   rB   r.   )	r/   r0   r1   r2   r,   r:   ri   r{   rl   r3   r-   r+   rq   rq   y   st                
          r-   rq   c                       e Zd ZdZd ZdS )DummyTransfz(Transformer which store the column meansc                 l    t          j        |d          | _        t          j                    | _        | S Nr   rf   ra   meanmeans_time
timestamp_r7   s      r+   r:   zDummyTransf.fit   s,    gaa((( )++r-   N)r/   r0   r1   r2   r:   r3   r-   r+   r   r      s)        22    r-   r   c                   &    e Zd ZdZd Zd ZddZdS )DummyEstimatorParamsz,Mock classifier that takes params on predictc                     dS rZ   r3   r[   s    r+   r\   z*DummyEstimatorParams.__sklearn_is_fitted__   r]   r-   c                     | S r&   r3   r7   s      r+   r:   zDummyEstimatorParams.fit   r;   r-   Fc                     || _         | S r&   )got_attribute)r*   r8   r   s      r+   ri   zDummyEstimatorParams.predict   s    *r-   NrB   )r/   r0   r1   r2   r\   r:   ri   r3   r-   r+   r   r      sL        66         r-   r   c                       e Zd ZdZd ZdS )DummySamplerz3Samplers which returns a balanced number of samplesc                 p    t          j        |d          | _        t          j                    | _        ||fS r   r   r7   s      r+   fit_resamplezDummySampler.fit_resample   s0    gaa((( )++!tr-   N)r/   r0   r1   r2   r   r3   r-   r+   r   r      s)        ==    r-   r   c                   8    e Zd ZdZd Zd	dZd
dZd
dZd
dZdS )FitTransformSamplez0Estimator implementing both transform and samplec                     dS rZ   r3   r[   s    r+   r\   z(FitTransformSample.__sklearn_is_fitted__   r]   r-   Fc                     d S r&   r3   rw   s       r+   r:   zFitTransformSample.fit   s    r-   Nc                 
    ||fS r&   r3   r7   s      r+   r   zFitTransformSample.fit_resample   s    !tr-   c                 T    |                      ||                              |          S r&   )r:   rF   r7   s      r+   fit_transformz FitTransformSample.fit_transform   s"    xx1~~''***r-   c                     |S r&   r3   r7   s      r+   rF   zFitTransformSample.transform   rG   r-   rB   r&   )	r/   r0   r1   r2   r\   r:   r   r   rF   r3   r-   r+   r   r      sy        ::        + + + +     r-   r   c                  j   t          j        ddgg          } t          dt                      fdt	                      ff          }|                    | d            |                    |            |                    d           |                    | d            |                    |            d S )NrU      transfclfr9   passthrough)r   )ra   arrayr   rI   rq   r:   rl   rA   r8   pipes     r+   test_pipeline_init_tupler      s    
1a&Ah)E9;;+?@AADHHQ$HJJqMMMOO=O)))HHQ$HJJqMMMMMr-   c                     t          t                    5  t                       d d d            n# 1 swxY w Y   t          d          \  } }d}t          t          |          5  t          dt	                      fg          }|                    | |           d d d            n# 1 swxY w Y   t                      }t          d|fg          }t          dd d |d|                    d	          }|                    d	          |k    sJ |	                    d
           |j
        d
k    sJ |j        J t          |           t          d          }t          t                    }t          d|fd|fg          }d}t          t          |          5  t          dt                      fd|fg          }|                    | |           d d d            n# 1 swxY w Y   |	                    d
           |j        d
k    sJ t          |           t          t"                    5  |	                    d
           d d d            n# 1 swxY w Y   t%          |          }|j        d         |j        d         usJ |                    d	          }	|                    d	          }
|                    d	          D ]}|	                    |           |                    d	          D ]}|
                    |           |	                    d           |	                    d           |
                    d           |
                    d           |	|
k    sJ d S )NT
return_X_yzILast step of Pipeline should implement fit or be the string 'passthrough'matchr   svc)svc__asvc__br   Fr=   皙?)r   scalegammaanovaz+implement fit and transform or fit_resamplet)svc__C)anova__Cr3   )r   	TypeErrorr   r   r$   r:   r5   dictr>   rA   r(   r)   reprr   r   r   C
ValueErrorr
   named_stepspop)r8   r9   error_regexmodelr   r   expectedfilter1pipe2r@   params2xs               r+   test_pipeline_initr      s^   				  


               %%%DAqS  
		-	-	-  5%''*+,,		!Q               ))CeS\N##DU4#UUe9T9TUUH???%%1111 	OO3O5C<<<<5===JJJ G


C)$$Ggw'%677D @K			-	-	-  3		*UCL9::		!Q              
 	OO3O5C<<<<JJJ 

		 & &%%%& & & & & & & & & & & & & & & $KKEE"%*;E*BBBBB __$_''FD))G__%_((  

15))  A JJu
JJwKKKKWsB   044&5B''B+.B+8G""G&)G&3IIIc                     t                      } | j        }| j        }t                      }t	          t
          d          }t          d|fd|fg          }|                    ||           |                    |           |	                    |           |
                    |           |                    ||           d S )Nr   kr   logistic)r   datatargetr   r   r   r   r:   ri   rm   rn   rl   )irisr8   r9   r   r   r   s         r+   test_pipeline_methods_anovar     s    ;;D	AA


C)q)))Ggw'*c):;<<DHHQNNNLLOOOq1JJq!r-   c                     t          dt                      fdt                      fg          } |                     d d d           |                     d           sJ | j        d         j        J | j        d         j        J t          t          d          5  |                     d d d           d d d            d S # 1 swxY w Y   d S )Nr   r   T)r8   r9   clf__should_succeedunexpected keyword argumentr   )clf__bad)
r   rI   rq   r:   ri   r   r(   r)   r   r   r   s    r+   test_pipeline_fit_paramsr   )  s   h)E9;;+?@AADHHttH666<<H%'///H%'///		!>	?	?	? , ,td+++, , , , , , , , , , , , , , , , , ,s   CCCc                     t          j        ddgg          } t          dt                      fdt	                      fg          }|                    | d            |                    |           dk    sJ |                    | d           dk    sJ |                    | d d           dk    sJ |                    | t          j        ddg                    d	k    sJ d S )
NrU   r   r   r   r      )r9   r}   r}      )ra   r   r   rI   rq   r:   rl   r   s     r+   %test_pipeline_sample_weight_supportedr   7  s    
1a&Ah)E9;;+?@AADHHQ$H::a==A::a4:  A%%%%::a4t:449999::arxA'7'7:88A======r-   c                     t          j        ddgg          } t          dt                      fdt	                      fg          }|                    | d            |                    |           dk    sJ |                    | d           dk    sJ t          t          d	          5  |                    | t          j        ddg                     d d d            d S # 1 swxY w Y   d S )
NrU   r   r   r   r   r   r   r   r   )	ra   r   r   rI   rT   r:   rl   r   r   r   s     r+   'test_pipeline_sample_weight_unsupportedr   B  s(   
1a&Ah)E466?;<<DHHQ$H::a==A::at:,,1111		!>	?	?	? 6 6

1BHaV$4$4
5556 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6s   *,C##C'*C'c                  T   t          dt                      fg          } t          t          d          5  |                     d           d d d            n# 1 swxY w Y   t          t          d          5  |                     d           d d d            d S # 1 swxY w Y   d S )NclszInvalid parameterr   nope)fake)fake__estimator)r   r   r   r   rA   r   s    r+   $test_pipeline_raise_set_params_errorr   M  s)   e-//0122D	
"5	6	6	6 % %V$$$% % % % % % % % % % % % % % % 

"5	6	6	6 0 0///0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0s#   AAA9BB!$B!c                     t                      } | j        }| j        }t          ddd          }t	          ddd          }t          d|fd	|fg          }|                    ||           |                    |           |                    |           |	                    |           |
                    ||           d S )
Nr   Tr   r   probabilityrandom_statefullmle
svd_solvern_componentswhitenpcar   )r   r   r   r   r   r   r:   ri   rm   rn   rl   )r   r8   r9   r   r   r   s         r+   test_pipeline_methods_pca_svmr   X  s    ;;D	AA
GA
>
>
>C
eD
A
A
ACeS\E3<011DHHQNNNLLOOOq1JJq!r-   c                     t                      } | j        }| j        }|j        d         }t	          t          j        |                    }t                      }t          ddd          }t          dddd          }||fD ]}t          d	|fd
|fg          }	|	                    ||           |	                    |          }
|
j        |fk    sJ |	                    |          }|j        ||fk    sJ |	                    |          }|j        ||fk    sJ |	                    |          }|j        ||fk    sJ |	                    ||           d S )Nr   r   
randomizedT)r   r   r   r   ovr)r   r   r   decision_function_shape
preprocessr   )r   r   r   shapelenra   uniquer   r   r   r   r:   ri   rm   rn   ro   rl   )r   r8   r9   	n_samples	n_classesscalerr   r   preprocessingr   ri   proba	log_probaro   s                 r+   'test_pipeline_methods_preprocessing_svmr   h  s   ;;D	AA
IBIaLL!!IF
1d
C
C
CC
 %	  C !#  ,6EFFA ,,q//},,,,""1%%{y)44444**1--	9i"88888 22155 &9i*@@@@@

1a# r-   c                  z   t                      } t                      }t          dd          }t                      }t          dd          }|                    | j                  }|                    |          }t          d|fd|fg          }|                    | j                  }t          ||           d S )Nr   
   )r   n_initr   Kmeans)r   r   r   r   r   r{   r   r   )	r   r   kmscaler_for_pipelinekm_for_pipelinescaledseparate_predr   pipeline_preds	            r+   test_fit_predict_on_pipeliner    s     ;;DF	Qr	*	*	*B )**!B777O !!$),,FNN6**M h 34x6QRSSD$$TY//Mm];;;;;r-   c                      t                      } t          d          }t          d| fd|fg          }d}t          t          |          5  t          |d           d d d            d S # 1 swxY w Y   d S )Nr   )r   r   r   zhas no attribute 'fit_predict'r   r{   )r   r   r   r   AttributeErrorgetattr)r   r   r   r   s       r+   0test_fit_predict_on_pipeline_without_fit_predictr    s     F

 
 
 Ch'%677D2K	k	2	2	2 % %m$$$% % % % % % % % % % % % % % % % % %s   A**A.1A.c                     t          dt                      fdt                      fg          } |                     d d dd           | j        d         j        d         sJ | j        d         j        sJ d| j        d         j        vsJ d S )Nr   r   T)r8   r9   transf__should_get_thisr   should_get_thisrx   )r   rO   rq   r{   r   rQ   rt   r   s    r+   -test_fit_predict_with_intermediate_fit_paramsr    s     h 1 12UIKK4HIJJD
$$     H%01BCCCCE"----4#3H#=#HHHHHHHr-   c                     t                      } | j        }t          dd          }t          d|fg          }|                    |                              |          }|                    |          }|                    |          }t          ||           t          ||           |                    |          }|                    |          }t          ||           d S )Nr   r   )r   r   r   )	r   r   r   r   r:   rF   r   r   rM   )	r   r8   r   pipelineX_transX_trans2X_trans3X_backX_back2s	            r+   test_pipeline_transformr    s     ;;D	A
1
0
0
0C%''H ll1oo''**G%%a((H  ##Hgx000gx000''00F##G,,Gfg.....r-   c                     t                      } | j        }| j        }t                      }t	          d|fg          }|                    ||          }|                    ||                              |          }t          ||           d S )Nmock)	r   r   r   rI   r   r   r:   rF   r   )r   r8   r9   r   r  r  r  s          r+   test_pipeline_fit_transformr    s    ;;D	AAXXF&&)*++H $$Q**Gzz!Q))!,,Hgx00000r-   c                     t                      } t                      }t          d| fg          }|j        d         | u sJ d|fg|_        d|j        vsJ |j        d         |u sJ d|fg|j        k    sJ |                    d| fg           d| fg|j        k    sJ |                    |           d|fg|j        k    sJ |                    dg           t          t                    5  |                    dggdg           d d d            n# 1 swxY w Y   t          t                    5  |	                    dggdg           d d d            d S # 1 swxY w Y   d S )Nr  mock2)steps)r  )junkr3   rU   )
rI   r   r   r  rA   r   r   r:   r  r   )transf1transf2r  s      r+   test_set_pipeline_stepsr    s1   hhGhhG&'*+,,H'72222 ()HN-----(G3333g8>1111 01222W(.0000 W%%%W(.0000 |n---				 ! !qcUQC   ! ! ! ! ! ! ! ! ! ! ! ! ! ! !			 + +uqc***+ + + + + + + + + + + + + + + + + +s$   0DDD5EE #E r   c                 X   t          j        dgg          }t          j        dg          }t          d          }t          d          }t          d          }t          d|fd| fd|fd	|fg          }|                    ||           g d
}d |j        D             }||k    sJ d S )NrU   r   rW   r      m2badm3m5)r   r!  r"  r#  c                     g | ]\  }}|S r3   r3   ).0name_s      r+   
<listcomp>z9test_pipeline_correctly_adjusts_steps.<locals>.<listcomp>  s    777WT1D777r-   )ra   r   rT   r   r:   r  )	r   r8   r9   mult2mult3mult5r  expected_namesactual_namess	            r+   %test_pipeline_correctly_adjusts_stepsr.    s    
1#A
!AaLLLEaLLLEaLLLE
,tUmdE]K H LLA...N77777L\))))))r-   c           
      |	  	
 t          j        dgg          }t          j        dg          }t          d          	t          d          
t          d          	
fd} |            }d}t          |gg|                    ||                     t          |g|                    |                              |                     t          ||                    |gg                     |                    |            d	}t          |gg|                    ||                     t          |g|                    |                              |                     t          ||                    |gg                     |j	        	| d ddd
d d	}|
                    d          |k    sJ |                    |            d}t          |gg|                    ||                     t          |g|                    |                              |                     t          ||                    |gg                     g d}|D ]} t          ||          |           |                    	           d	}t          |gg|                    ||                     t          |g|                    |                              |                     t          ||                    |gg                      |            }|                    |            d}|                    ||           |                    |           t          |gg|                    ||                              |                     t          |gg|                    ||                     t          ||                    |gg                     t          t          d          5  t          |d           d d d            n# 1 swxY w Y   d	}t          d	fd| fdfg          }t          |gg|                    ||                     t          |g|                    |                              |                     t          ||                    |gg                     d S )NrU   r   rW   r   r  c                  4    t          d fdfdfg          S )Nr   r"  last)r   )r)  r*  r+  s   r+   makez0test_set_pipeline_step_passthrough.<locals>.make  s$    $uGHHHr-      )r"  r   F)	r  r   r"  r1  memorym2__mult
last__multverbosetransform_inputTr   )r   )rm   rn   ro   rF   rl   )r1     zhas no attribute 'predict'r   ri   r   r"  r1  )ra   r   rT   r   r   r:   ri   rM   rA   r  r>   r  rF   r   r  r   )r   r8   r9   r2  r  expexpected_paramsother_methodsmethodr)  r*  r+  s            @@@r+   "test_set_pipeline_step_passthroughr>    s    	1#A
!AaLLLEaLLLEaLLLEI I I I I I I tvvH
Cw 6 6q! < <===uhll1oo55a88999q(44seW==>>>;'''
Cw 6 6q! < <===uhll1oo55a88999q(44seW==>>>
 
O D))_<<<<;'''
Cw 6 6q! < <===uhll1oo55a88999q(44seW==>>>  M   % %!&!!!$$$$5!!!
Cw 6 6q! < <===uhll1oo55a88999q(44seW==>>>tvvH[)))
CLLAqwQ 2 2 < <Q ? ?@@@w 6 6q! < <===q(44seW==>>>	&B	C	C	C % %)$$$% % % % % % % % % % % % % % % C${(;fe_MNNHw 6 6q! < <===uhll1oo55a88999q(44seW==>>>>>s   8PPPc                     t          t          d                    } | j         | j         | j         t          t                                } t          | d          rJ | j         | j         t          d          } | j        d         dk    sJ t          | d          rJ | j         | j         t          t                      t                                } t          | d          rJ | j         t          | d          rJ t          t                      t                                } t          | d          rJ | j         t          | d          rJ d S )Nr  ri   r   r   )r   r   rM   )	r   rT   ri   rF   rM   rI   hasattrr  rD   )r  s    r+   test_pipeline_ducktypingrA  X  sW   T!WW%%HVXX&&Hx+++++]++H>! >>>>>x+++++VXX{}}55Hx+++++x!455555[]]FHH55Hx+++++x!45555555r-   c                     t                      } t                      }t          | |          }t          |t                    sJ |j        d         d         dk    sJ |j        d         d         dk    sJ t          | |t                                }t          |t                    sJ |j        d         d         dk    sJ |j        d         d         dk    sJ |j        d         d         dk    sJ d S )Nr   ztransf-1rU   ztransf-2r   	fitparamt)rI   r   
isinstancer   r  rq   )t1t2r   s      r+   test_make_pipelinerG  t  s    	B	BR  DdH%%%%%:a=z)))):a=z))))R--DdH%%%%%:a=z)))):a=z)))):a={******r-   c                  |   t                      } | j        }| j        }t          t	          d          t                                }|                    ||           t          t                    5  t          |d           d d d            n# 1 swxY w Y   t          t	          d          t                                }t          t                    5  t          |d           d d d            n# 1 swxY w Y   |                    ||           t          |j        t          j        |                     d S )NrU   r   classes_)r   r   r   r   r   r   r:   r   r  r  r   r   rI  ra   r   )r   r8   r9   regr   s        r+   test_classes_propertyrK    s   ;;D	AA
a(((*:*<*<
=
=CGGAqMMM			 ! !Z   ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! a C 
		 ! !Z   ! ! ! ! ! ! ! ! ! ! ! ! ! ! !GGAqMMMs|RYq\\22222s$   1BBBC44C8;C8c                  	   t                      } | j        }| j        }t                      }	 t	          |d          }t          ddd          }t                      }t          dt          |          fd|fg          }t          d|fd|fg|	          }|	                    ||           |	                    ||           |j
        d         j        }	t          |                    |          |                    |                     t          |                    |          |                    |                     t          |                    |          |                    |                     t          |                    ||          |                    ||                     t          |j
        d         j        |j
        d         j                   t%          |d
          rJ |	                    ||           t          |                    |          |                    |                     t          |                    |          |                    |                     t          |                    |          |                    |                     t          |                    ||          |                    ||                     t          |j
        d         j        |j
        d         j                   |j
        d         j        |	k    sJ t          ddd          }
t                      }t          d|fd|
fg|	          }|	                    ||           t          |                    |          |                    |                     t          |                    |          |                    |                     t          |                    |          |                    |                     t          |                    ||          |                    ||                     t          |j
        d         j        |j
        d         j                   |j
        d         j        |	k    sJ 	 t'          j        |           d S # t'          j        |           w xY w)Nr   r7  r   Tr   r   r   r   r4  r   transf_2)r   r   r   r   r   r   r   r   r
   r:   r   r   r   ri   rm   rn   rl   r   r@  shutilrmtree)r   r8   r9   cachedirr4  r   r   r   cached_pipeexpected_tsclf_2rO  cached_pipe_2s                r+    test_pipeline_memory_transformerrW    sf   ;;D	AAyyH: "---TBBB(E&MM2UCLABB6 2UCLA&QQQ 	1A!-h7B4<<??K,?,?,B,BCCC4--a00+2K2KA2N2NOOO411!44k6S6STU6V6VWWW4::a++[->->q!-D-DEEEX&-#H-4	
 	
 	
 68,,,,, 	14<<??K,?,?,B,BCCC4--a00+2K2KA2N2NOOO411!44k6S6STU6V6VWWW4::a++[->->q!-D-DEEEX&-#H-4	
 	
 	
 &x0;{JJJJ 't!DDD== (#eU^4V
 
 
 	!Q 	4<<??M,A,A!,D,DEEE4--a00-2M2Ma2P2PQQQ""1%%}'F'Fq'I'I	
 	
 	
 	4::a++]-@-@A-F-FGGGX&-%j18	
 	
 	
 (4?;NNNNNhhs   Q+R. .Sc                  	   t          ddddgddddddd	
  
        \  } }t                      }	 t          |d
          }t          ddd          }t	                      }t          dt          |          fd|fg          }t          d|fd|fg|          }|                    | |           |                    | |           |j        d         j	        }t          |                    |           |                    |                      t          |                    |           |                    |                      t          |                    |           |                    |                      t          |                    | |          |                    | |                     t          |j        d         j        |j        d         j                   t!          |d          rJ |                    | |           t          |                    |           |                    |                      t          |                    |           |                    |                      t          |                    |           |                    |                      t          |                    | |          |                    | |                     t          |j        d         j        |j        d         j                   |j        d         j	        |k    sJ t          ddd          }	t	                      }
t          d|
fd|	fg|          }|                    | |           t          |                    |           |                    |                      t          |                    |           |                    |                      t          |                    |           |                    |                      t          |                    | |          |                    | |                     t          |j        d         j        |j        d         j                   |j        d         j	        |k    sJ 	 t#          j        |           d S # t#          j        |           w xY w)Nr   r   ?r   rU   r        
r   	class_sepweightsn_informativen_redundantflip_y
n_featuresn_clusters_per_classr   r   r   rM  r   Tr   r   r   rN  r   rO  )r   r   r   r   r   r   r
   r:   r   r   r   ri   rm   rn   rl   r   r@  rP  rQ  )r8   r9   rR  r4  r   r   r   rS  rT  rU  rO  rV  s               r+   test_pipeline_memory_samplerrd    s   c
  DAq yyH: "---TBBB(E&MM2UCLABB6 2UCLA&QQQ 	1A!-h7B4<<??K,?,?,B,BCCC4--a00+2K2KA2N2NOOO411!44k6S6STU6V6VWWW4::a++[->->q!-D-DEEEX&-#H-4	
 	
 	
 68,,,,, 	14<<??K,?,?,B,BCCC4--a00+2K2KA2N2NOOO411!44k6S6STU6V6VWWW4::a++[->->q!-D-DEEEX&-#H-4	
 	
 	
 &x0;{JJJJ 't!DDD>> (#eU^4V
 
 
 	!Q 	4<<??M,A,A!,D,DEEE4--a00-2M2Ma2P2PQQQ""1%%}'F'Fq'I'I	
 	
 	
 	4::a++]-@-@A-F-FGGGX&-%j18	
 	
 	
 (4?;NNNNNhhs   Q+R0 0Sc                     t          ddddgddddddd	
  
        \  } }t          d
dd          }t                      }t          d          }t	          d|fd|fd|fg          }|                    | |           |                    |            |                    |            |                    |            |	                    | |           d S )Nr   r   rY  r   rU   r   rZ  r[  r\  r   Tr   r   r   rusr   
r   r   r   r    r   r:   ri   rm   rn   rl   r8   r9   r   r   rg  r   s         r+   !test_pipeline_methods_pca_rus_svmrj  $      c
  DAq GA
>
>
>C
%%C
!
,
,
,CeS\E3<%>??DHHQNNNLLOOOq1JJq!r-   c                     t          ddddgddddddd	
  
        \  } }t          d
dd          }t                      }t          d          }t	          d|fd|fd|fg          }|                    | |           |                    |            |                    |            |                    |            |	                    | |           d S )Nr   r   rY  r   rU   r   rZ  r[  r\  r   Tr   rf  rg  r   r   rh  ri  s         r+   !test_pipeline_methods_rus_pca_svmrm  ?  rk  r-   c                  :   t          ddddgddddddd	
  
        \  } }t          d
          }t          d|fg          }|                    | |          \  }}|                    | |          \  }}t	          ||t
                     t	          ||t
                     t                      }t          dt                      fd|fg          }|                    | |          \  }}|                    |           }	|                    |	|          \  }}d|t          j	        |t
          k     |t
           k              <   d|t          j	        |t
          k     |t
           k              <   t	          ||t
                     t	          ||t
                     d S )Nr   r   rY  r   rU   r   rZ  r[  r\  rf  rg  )rtolr   )
r   r    r   r   r   R_TOLr   r   ra   bitwise_and)
r8   r9   rg  r  r  y_transr  y_trans2r   X_pcas
             r+   test_pipeline_sampleru  Z  s    c
  DAq !
,
,
,C%''H  ,,Q22GW))!Q//HhGXE2222GXE2222
%%C%%677H,,Q22GWa  E))%33Hh BCGBN7U?Guf,<==>DEHR^Hu,h%.?@@AGXE2222GXE222222r-   c                     t          ddddgddddddd	
  
        \  } }t          d
          }t                      }t                      }t          d|fd|fd|fg          }|                    | |                              |            d S )Nr   r   rY  r   rU   r   rZ  r[  r\  rf  r   rg  pca2)r   r    r   r   r:   rF   )r8   r9   rg  r   rw  r  s         r+   test_pipeline_sample_transformrx    s     c
  DAq !
,
,
,C
%%C55D%s|fd^DEEHLLA  #####r-   c                  Z   t          ddddgddddddd	
  
        \  } }t          d
d          }t          d |          }|                    | |           |                    |            |                    |            |                    |            |                    | |           d S )Nr   r   rY  r   rU   r   rZ  r[  r\  lbfgssolverr   )r   r   r   r:   ri   rm   ro   rl   )r8   r9   r   r   s       r+   test_pipeline_none_classifierr}    s    c
  DAq G!
<
<
<Cs##DHHQNNNLLOOOq1JJq!r-   c                  |   t          ddddgddddddd	
  
        \  } }t          d
d          }t          d          }t          d ||          }|                    | |           |                    |            |                    |            |                    |            |                    | |           d S Nr   r   rY  r   rU   r   rZ  r[  r\  rz  r{  rf  	r   r   r    r   r:   ri   rm   ro   rl   r8   r9   r   rg  r   s        r+   %test_pipeline_none_sampler_classifierr    s    c
  DAq G!
<
<
<C
!
,
,
,CsC((DHHQNNNLLOOOq1JJq!r-   c                  |   t          ddddgddddddd	
  
        \  } }t          d
d          }t          d          }t          |d |          }|                    | |           |                    |            |                    |            |                    |            |                    | |           d S r  r  r  s        r+   %test_pipeline_sampler_none_classifierr    s    c
  DAq G!
<
<
<C
!
,
,
,CdC((DHHQNNNLLOOOq1JJq!r-   c                      t          ddddgddddddd	
  
        \  } }t          d
          }t          d |          }|                    | |           d S )Nr   r   rY  r   rU   r   rZ  r[  r\  rf  r   r    r   r   r8   r9   rg  r   s       r+   !test_pipeline_none_sampler_sampler    sy    c
  DAq !
,
,
,Cs##Dar-   c                  "   t          ddddgddddddd	
  
        \  } }t          d
          }t          d |          }|                    | |           |                    |           }|                    |          }t          | |           d S )Nr   r   rY  r   rU   r   rZ  r[  r\  T)r   )r   r   r   r:   rF   rM   r   )r8   r9   r   r   r  
X_inverseds         r+   test_pipeline_none_transformerr    s     c
  DAq T


Cs##DHHQNNNnnQG''00Ja,,,,,r-   c                     t          ddddgddddddd	
  
        \  } }t          d
          }t          d          }t          t          d          }t          d|fd|fd|fg          }|                    | |           |                    |            |                    |            |	                    |            |
                    | |           d S )Nr   r   rY  r   rU   r   rZ  r[  r\  rz  r|  rf  r   rg  r   r   )r   r   r    r   r   r   r:   ri   rm   rn   rl   )r8   r9   r   rg  r   r   s         r+   test_pipeline_methods_anova_rusr    s    c
  DAq G
,
,
,C
!
,
,
,C)q)))GeS\GW#5
C7HIJJDHHQNNNLLOOOq1JJq!r-   c                  *   t          ddddgddddddd	
  
        \  } }t          d
          }t          t                    5  t	          dt                      fd|fg          }|                    | |           d d d            d S # 1 swxY w Y   d S )Nr   r   rY  r   rU   r   rZ  r[  r\  rz  r  stepr   )r   r   r   r   r   r   r:   )r8   r9   r   r  s       r+   Atest_pipeline_with_step_that_implements_both_sample_and_transformr  &  s    c
  DAq G
,
,
,C				  f&8&:&:;j#=NOPPQ                 s   8BBBc                     t          ddddgddddddd	
  
        \  } }t          d
          }t          d          }t          t          d          }t          d|fd|fg          }t          t                    5  t          d|fd|fg          }|                    | |           d d d            d S # 1 swxY w Y   d S )Nr   r   rY  r   rU   r   rZ  r[  r\  rz  r  rf  r   rg  r   pipe1r   )	r   r   r    r   r   r   r   r   r:   )r8   r9   r   rg  r   r  r   s          r+   +test_pipeline_with_step_that_it_is_pipeliner  ;  s*   c
  DAq G
,
,
,C
!
,
,
,C)q)))GuclWg$6788E				  7E*Z,=>??		!Q                 s   >,B77B;>B;c                     t          ddddgddddddd	
  
        \  } }t          d
          }t                      }t          ||          }|                    | |          \  }}t          ||          }|                    | |           |                    | |          \  }}t          ||           t          ||           d S Nr   r   rY  r   rU   r   rZ  iP  r\  *   rf  r   r    ENNr   r   r:   r   	r8   r9   rg  ennr  X_fit_resample_resampledy_fit_resample_resampledX_fit_then_sample_resy_fit_then_sample_ress	            r+   9test_pipeline_fit_then_sample_with_sampler_last_estimatorr  S  s    c
  DAq "
-
-
-C
%%CS#&&H9A9N9NqRS9T9T66S#&&HLLA3;3H3HA3N3N00/1FGGG/1FGGGGGr-   c                     t          ddddgddddddd	
  
        \  } }t          d
          }t                      }t          |||          }|                    | |          \  }}t          |||          }|                    | |           |                    | |          \  }}t          ||           t          ||           d S r  r  r  s	            r+   Dtest_pipeline_fit_then_sample_3_samplers_with_sampler_last_estimatorr  l  s    c
  DAq "
-
-
-C
%%CS#s++H9A9N9NqRS9T9T66S#s++HLLA3;3H3HA3N3N00/1FGGG/1FGGGGGr-   c                  v   t                      } 	 t          | d          }t          t                      t	          d          |          }|j        |u sJ t          t                      t	          d                    }|j        J 	 t          j        |            d S # t          j        |            w xY w)Nr   rM  r   r   rN  )r   r   r   r   r   r4  rP  rQ  )rR  r4  r  s      r+   test_make_pipeline_memoryr    s    yyH "--- '0B0B0B6RRR&(((( '0B0B0BCC&&&&hhs   A;B" "B8c                      t          dt                      fdt                      fg          } |                     d d            |                     d d           | j        d         j        sJ d S )Nr   r   T)r8   r   )r   rI   r   r:   ri   r   r   r   s    r+    test_predict_with_predict_paramsr    sr     h)E3G3I3I+JKLLDHHT4LL4tL,,,E"000000r-   c                      t          ddddgddddddd	
  
        \  } }t          d
          }t          |d           }|                    | |           d S r  r  r  s       r+   %test_resampler_last_stage_passthroughr    sy    c
  DAq "
-
-
-Cd##Dar-   c                  n   t          ddddgddddddd	
  
        \  } }t          d
          }t          ddd          }t          d          }t	          d|fd|fd|fg          }|                    | |           |                    |           j        | j        d         fk    sJ |                    | |          \  }}|                    |	                    |                     t          |                    |           |                    |                    |                                d S )Nr   g333333?gffffff?r   rU   r   rZ  i  r\  r  rf  r   r   Tr   noveltyrg  r   lof)r   r    r   r   r   r:   score_samplesr   r   r   r   rF   )r8   r9   rg  r   r  r   X_resr'  s           r+   *test_pipeline_score_samples_pca_lof_binaryr    sD   c
  DAq "
-
-
-C
eD
A
A
AC
T
*
*
*CeS\E3<%>??DHHQNNNa  &171:-77771%%HE1GGCe$$%%%D&&q))3+<+<S]]1=M=M+N+NOOOOOr-   c                  V   t          j        dgdgg          } t          j        ddg          }t          t                                }|                    | |           t          j        t          d          5  |                    |            d d d            d S # 1 swxY w Y   d S )NrU   r   z has no attribute 'score_samples'r   )	ra   r   r   r   r:   pytestr   r  r  )r8   r9   r   s      r+   4test_score_samples_on_pipeline_without_score_samplesr    s    
1#sA
!QA +--..DHHQNNN	0
 
 
   	1	                 s   ;BB"%B"c                      t          t                                } t          j        t          d          5  |                     dgdggddgddg           d d d            d S # 1 swxY w Y   d S )Nz8Pipeline.fit does not accept the sample_weight parameterr   r   rU   r   )r   r   r  r   r   r:   )r   s    r+   test_pipeline_param_errorr    s    
*,,
-
-C	H
 
 
 : : 	!qc
QF1a&999	: : : : : : : : : : : : : : : : : :s   !A%%A),A)c              #      K   | ][\  \  }}}t          ||          rC|d k    r6t          |d          r&t          |j        d         d         t                    T|||fV  \dS )r   r  rU   N)r@  rD  r  rq   )r%  estpatternr=  s       r+   	<genexpr>r    s       < <gh sFm<p 	/!!C!! 	"sy}Q'33 	"o 	'6n 	"!!!q< <r-   r   r   zv\[Pipeline\].*\(step 1 of 2\) Processing transf.* total=.*\n\[Pipeline\].*\(step 2 of 2\) Processing clf.* total=.*\n$)noopNz\[Pipeline\].*\(step 1 of 3\) Processing transf.* total=.*\n\[Pipeline\].*\(step 2 of 3\) Processing noop.* total=.*\n\[Pipeline\].*\(step 3 of 3\) Processing clf.* total=.*\n$)r  r   )r   N)r   NrX   zw\[Pipeline\].*\(step 1 of 2\) Processing transf.* total=.*\n\[Pipeline\].*\(step 2 of 2\) Processing mult.* total=.*\n$)r   r   mult1r)  z\[FeatureUnion\].*\(step 1 of 2\) Processing mult1.* total=.*\n\[FeatureUnion\].*\(step 2 of 2\) Processing mult2.* total=.*\n$)r  drop)r*  r  z@\[FeatureUnion\].*\(step 1 of 1\) Processing mult2.* total=.*\n$)r:   r   r{   zest, pattern, methodc                 l   t          | |          }g dg dg}dgdgg}|                     d            |||           |                                j        r
J d            |                     d            |||           t	          j        ||                                j                  sJ d S )	N)rU   r   r   )   r  r9     r   FrM  zGot output for verbose=FalseT)r  rA   
readouterroutrer   )r  r=  r  capsysfuncr8   r9   s          r+   test_verboser     s    3D	IIIA
qc
ANN5N!!!DAJJJ  ""&FF(FFFFNN4N   DAJJJ8GV..0045555555r-   c                  X   t          d          \  } }dddd}t          | ||          \  } }t                      }t          dd	d
          }t	          d          }t          d|fd|fd|fg          }|                    | |           |                    |           j        | j        d         fk    sJ |                    |	                    |                      t          |                    |           |                    |                    |                                d S )NTr   2   r3  rZ  )r   rU   r   )sampling_strategyr   r   r   r  rg  r   r  r   )r   r   r    r   r   r   r:   r  r   r   r   rF   )r8   r9   r  rg  r   r  r   s          r+   .test_pipeline_score_samples_pca_lof_multiclassr  0  s)   %%%DAq2"--!Q2CDDDDAq 

C
eD
A
A
AC
T
*
*
*CeS\E3<%>??DHHQNNNa  &171:-7777GGCa  !!!D&&q))3+<+<S]]1=M=M+N+NOOOOOr-   c                      t          dt                      fdt                      fg          } t          d|            d S )Nsampler
classifierr   )r   r    r   r"   )r   s    r+   test_pipeline_param_validationr  C  sI    
'))	*\;M;O;O,PQ E :u-----r-   c                     t          j        d          } t          dd          \  }}t          t	                      t                      t                                                    d          }|                    ||           |d d         	                    ||          \  }}t          |t          j                  sJ t          |t          |                    sJ |                    d           |d d         	                    ||          \  }}t          || j                  sJ t          |t          |                    sJ d S )NpandasT)r   as_framedefault)rF   r  )r  importorskipr   r   r   r    r   
set_outputr:   r   rD  ra   ndarraytype	DataFrame)pdr8   r9   r  r  y_ress         r+   test_pipeline_with_set_outputr  J  sA   		X	&	&Bt444DAq,..0B0D0D j9j%%  LLACRC=--a33LE5eRZ(((((eT!WW%%%%%(+++CRC=--a33LE5eR\*****eT!WW%%%%%%%r-   r=  )ri   rm   rn   ro   rl   r  rF   rM   c                      G d dt                     }t          d |            fg          }t          j        t          d          5   t          ||           dgg           d d d            d S # 1 swxY w Y   d S )Nc                   H    e Zd ZdZd Zd Zd Zd Zd Zd Z	d Z
d	 Zd
 ZdS ):test_pipeline_warns_not_fitted.<locals>.StatelessEstimatorzStateless estimator that doesn't check if it's fitted.
        Stateless estimators that don't require fit, should properly set the
        `requires_fit` flag and implement a `__sklearn_check_is_fitted__` returning
        `True`.
        c                     | S r&   r3   r7   s      r+   r:   z>test_pipeline_warns_not_fitted.<locals>.StatelessEstimator.fitu  s    Kr-   c                     |S r&   r3   rL   s     r+   rF   zDtest_pipeline_warns_not_fitted.<locals>.StatelessEstimator.transformx      Hr-   c                 D    t          j        t          |                    S r&   ra   onesr   rL   s     r+   ri   zBtest_pipeline_warns_not_fitted.<locals>.StatelessEstimator.predict{      73q66??"r-   c                 D    t          j        t          |                    S r&   r  rL   s     r+   rm   zHtest_pipeline_warns_not_fitted.<locals>.StatelessEstimator.predict_proba~  r  r-   c                 D    t          j        t          |                    S r&   )ra   zerosr   rL   s     r+   rn   zLtest_pipeline_warns_not_fitted.<locals>.StatelessEstimator.predict_log_proba  s    8CFF###r-   c                 D    t          j        t          |                    S r&   r  rL   s     r+   ro   zLtest_pipeline_warns_not_fitted.<locals>.StatelessEstimator.decision_function  r  r-   c                     dS NrU   r3   r7   s      r+   rl   z@test_pipeline_warns_not_fitted.<locals>.StatelessEstimator.score  s    1r-   c                 D    t          j        t          |                    S r&   r  rL   s     r+   r  zHtest_pipeline_warns_not_fitted.<locals>.StatelessEstimator.score_samples  r  r-   c                     |S r&   r3   rL   s     r+   rM   zLtest_pipeline_warns_not_fitted.<locals>.StatelessEstimator.inverse_transform  r  r-   N)r/   r0   r1   r2   r:   rF   ri   rm   rn   ro   rl   r  rM   r3   r-   r+   StatelessEstimatorr  n  s        	 		 	 		 	 		# 	# 	#	# 	# 	#	$ 	$ 	$	# 	# 	#	 	 		# 	# 	#	 	 	 	 	r-   r  	estimatorz)This Pipeline instance is not fitted yet.r   rU   )r   r   r  warnsFutureWarningr  )r=  r  r   s      r+   test_pipeline_warns_not_fittedr  `  s             ]      D k#5#5#7#789::D	m+V	W	W	W % %fse$$$% % % % % % % % % % % % % % % % % %s   	A22A69A6z1.4z3scikit-learn < 1.4 does not support transform_input)reasonTenable_metadata_routingc                      G d dt           t                    }  G d dt          t                    }t          j        ddgg          }t          j        ddg          }t          j        ddgg          }t          j        ddg          }t          d |             fd	 |                                d
d
          fgdg          }|                    ||||           dS )z;Test that the right transformed values are passed to `fit`.c                       e Zd Zd Zd ZdS )>test_transform_input_explicit_value_check.<locals>.Transformerc                     d| _         | S rZ   )rv   r7   s      r+   r:   zBtest_transform_input_explicit_value_check.<locals>.Transformer.fit  s    DLKr-   c                     |dz   S r  r3   rL   s     r+   rF   zHtest_transform_input_explicit_value_check.<locals>.Transformer.transform  s    q5Lr-   N)r/   r0   r1   r:   rF   r3   r-   r+   Transformerr    s2        	 	 		 	 	 	 	r-   r  c                       e Zd ZddZdS )<test_transform_input_explicit_value_check.<locals>.EstimatorNc                 *   t          |t          j        ddgg                     t          |t          j        ddg                     t          |t          j        ddgg                     t          |t          j        ddg                     | S )NrU   r   r   r   )r   ra   r   )r*   r8   r9   X_valy_vals        r+   r:   z@test_transform_input_explicit_value_check.<locals>.Estimator.fit  s    q"(QF8"4"4555q"(Aq6"2"2333ubhAx&8&8999ubh1v&6&6777Kr-   r.   rR   r3   r-   r+   	Estimatorr    s(        	 	 	 	 	 	r-   r  r   rU   r   transformerr  T)r  r  r  r8  N)r	   r   r   ra   r   r   set_fit_requestr:   )r  r  r8   r9   r  r  r   s          r+   )test_transform_input_explicit_value_checkr    s       &       O]    	1a&A
!QAHq!fXEHaVEKKMM*))++55D5MMN	
 !	  D 	HHQeH,,,,,r-   c                  6   t          j        ddgddgg          } t          j        ddg          }d}t          j        t          |          5  t          t                      dg	                              | |           d
d
d
           d
S # 1 swxY w Y   d
S )z<Make sure the right error is raised if slep6 is not enabled.rU   r   r   r  r   z;The `transform_input` parameter can only be set if metadatar   blahr  Nra   r   r  r   r   r   r   r:   r8   r9   msgs      r+   test_transform_input_no_slep6r	    s    
1a&1a&!""A
!QA
GC	z	-	-	- I IkmmfX>>>BB1aHHHI I I I I I I I I I I I I I I I I I   3BBBz,scikit-learn >= 1.4 supports transform_inputc                  6   t          j        ddgddgg          } t          j        ddg          }d}t          j        t          |          5  t          t                      dg	                              | |           d
d
d
           d
S # 1 swxY w Y   d
S )z:Test that transform_input raises error with sklearn < 1.4.rU   r   r   r  r   zVThe `transform_input` parameter is not supported in scikit-learn versions prior to 1.4r   r  r  Nr  r  s      r+   $test_transform_input_sklearn_versionr    s     	1a&1a&!""A
!QA	  
z	-	-	- I IkmmfX>>>BB1aHHHI I I I I I I I I I I I I I I I I Ir
  c                     t                      \  } }t          j                            | j        d         dd          } G d dt
                    }t          d          5   |                                d          }t          d|fd	t                      fg          }|
                    | ||           t          |d         j        |           d
d
d
           d
S # 1 swxY w Y   d
S )z6Check that we can use a sampler with metadata routing.r   r   c                       e Zd ZddZddZdS )@test_metadata_routing_with_sampler.<locals>.CostSensitiveSamplerNc                 2    |                      |||          S )Ncost_matrix)_fit_resampler*   r8   r9   r  s       r+   r   zMtest_metadata_routing_with_sampler.<locals>.CostSensitiveSampler.fit_resample  s    %%a%DDDr-   c                     || _         ||fS r&   )cost_matrix_r  s       r+   r  zNtest_metadata_routing_with_sampler.<locals>.CostSensitiveSampler._fit_resample  s     +Da4Kr-   r&   )r/   r0   r1   r   r  r3   r-   r+   CostSensitiveSamplerr    s@        	E 	E 	E 	E	 	 	 	 	 	r-   r  Tr  r  r  r   N)r   ra   randomrandr   r   r   set_fit_resample_requestr   r   r:   r   r  )r8   r9   r  r  r  r  s         r+   "test_metadata_routing_with_samplerr    s@     DAq)..Q22K    {    
	5	5	5 ? ?&&((AAdASSi1G=O=Q=Q3RSTTQ{3330+>>>? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?s   !A3C!!C%(C%)r2   	itertoolsr  rP  r   tempfiler   numpyra   r  joblibr   r   sklearnr   sklearn.baser   r   r	   r
   sklearn.clusterr   sklearn.datasetsr   r   sklearn.decompositionr   sklearn.feature_selectionr   r   sklearn.linear_modelr   r   sklearn.neighborsr   sklearn.pipeliner   sklearn.preprocessingr   sklearn.svmr   sklearn.utils._testingr   r   r   sklearn.utils.fixesr   imblearn.baser   imblearn.datasetsr   imblearn.pipeliner   r   imblearn.under_samplingr   r  r    imblearn.utils._sklearn_compatr!   imblearn.utils.estimator_checksr"   JUNK_FOOD_DOCSrp  r$   r5   rD   rI   rO   rT   rq   r   r   r   r   r   r   r   r   r   r   r   r   r   r  r  r  r  r  r  markparametrizer.  r>  rA  rG  rK  rW  rd  rj  rm  ru  rx  r}  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  productparameter_grid_test_verboser  r  r  r  r  skipifr  r	  r  r  r3   r-   r+   <module>r9     sS
        				                          " " " " " " P P P P P P P P P P P P " " " " " " ; ; ; ; ; ; ; ; % % % % % % < < < < < < < < E E E E E E E E 0 0 0 0 0 0 ) ) ) ) ) ) 0 0 0 0 0 0               
 . - - - - - % % % % % % , , , , , , 5 5 5 5 5 5 5 5 B B B B B B 6 6 6 6 6 6 : : : : : : B B B B B B 	       	 	 	 	 	e 	 	 	    '   
    [       f       =   2       0    &       =       7          &  C C CL   , , ,> > >6 6 60 0 0   ! ! !H< < <.% % %	I 	I 	I/ / /(1 1 1+ + +8 }(=>>* * ?>* }(=>>L? L? ?>L?^6 6 68+ + +3 3 3(?  ?  ? DH  H  H V  6  6$3 $3 $3N$ $ $0  .  0  0  (- - -0  4  *  0H H H2H H H2	  	  	 1 1 1  &P P P:  : : :< <"3)"3 8VVXX.		0DEFFN 8VVXX.		@TUVVN !6688,/		, N 8VVXX.>??N *VTTVV,<=>>O 3fddff5EFGGO w/'44661BCDDT /'44661BDUVWWSY0	
b 	0//e3# 3#< < < ~ /1LMM6 6 NM6P P P&. . .& & &, 	 	 	 %% %% %%X mmE***@    ---- - .-	 
-BI I I }}U+++9    ---	I 	I .-	 
	I ? ? ? ? ?r-   