
    Ug;(                     x   d Z ddlZddlmZ ddlZddl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 dd
lmZmZ ddlmZ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(m)Z) ddl*m+Z+  G d d          Z, e,dd            e,dd dg           e,dd dg           e,deddg           e,d eddg           e,d!eg d"           e,d#d$ g d%          gZ-d& Z.d' Z/g d(Z0d)  e/            D             Z1d* Z2ej3        4                    d+e1e2,          d-             Z5dS ).zCommon tests for metaestimators    N)	signature)BaseEstimatoris_regressor)make_classification)BaggingClassifier)NotFittedError)TfidfVectorizer)RFERFECV)LogisticRegressionRidge)GridSearchCVRandomizedSearchCV)Pipelinemake_pipeline)MaxAbsScalerStandardScalerSelfTrainingClassifier)all_estimators)set_random_state)_enforce_estimator_tags_X_enforce_estimator_tags_ycheck_is_fittedc                   .    e Zd Zd ed          fdZdS )DelegatorData r   )random_statec                 >    || _         || _        || _        || _        d S N)name	constructfit_argsskip_methods)selfr"   r#   r%   r$   s        `/var/www/surfInsights/venv3-11/lib/python3.11/site-packages/sklearn/tests/test_metaestimators.py__init__zDelegatorData.__init__   s'     	" (    N)__name__
__module____qualname__r   r(   r   r)   r'   r   r      s>        
 $$!444
) 
) 
) 
) 
) 
)r)   r   r   c                 &    t          d| fg          S )Nest)r   r.   s    r'   <lambda>r0   ,   s    (UCL>*B*B r)   r   c                 ,    t          | ddgid          S )Nparam      )
param_gridcv)r   r/   s    r'   r0   r0   /   s    L'A3AFFF r)   score)r%   r   c                 .    t          | ddgidd          S )Nr2   r3   r4      )param_distributionsr6   n_iter)r   r/   s    r'   r0   r0   4   s%    &gs^!
 
 
 r)   r
   	transforminverse_transformr   r   )r<   r=   r7   predict_probapredict_log_probapredictr   c                      t          |           S r!   r   r/   s    r'   r0   r0   I   s    *3// r)   )r<   r=   r>   c                     d  G fddt                     } d | j                                        D             }|                                 t          D ]} |             }|                    |          }|D ]}||j        v rt          ||          sJ t          ||          sJ |j        d|d            |dk    rbt          j
        t                    5   t          ||          |j        d         |j        d	                    d d d            n# 1 swxY w Y   t          j
        t                    5   t          ||          |j        d                    d d d            n# 1 swxY w Y    |j        |j          |D ]g}||j        v r|dk    r1 t          ||          |j        d         |j        d	                    C t          ||          |j        d                    h|D ]d}||j        v r | |
          }|                    |          }t          ||          rJ t          ||          rJ |j        d|d            e	d S )Nc                 ,     t            fd            }|S )Nc                 |    | j         j        k    rt          d| j         z            t          j        |           S )Nz%r is hidden)hidden_methodr*   AttributeError	functoolspartial)objmethods    r'   wrapperz=test_metaestimator_delegation.<locals>.hides.<locals>.wrapperR   s<     FO33$^c6G%GHHH$VS111r)   )property)rJ   rK   s   ` r'   hidesz,test_metaestimator_delegation.<locals>.hidesQ   s-    		2 	2 	2 	2 
	2
 r)   c                       e Zd ZddZddZd Z d             Z d             Z d             Z d	             Z	 d
             Z
 d             Z d             ZdS )3test_metaestimator_delegation.<locals>.SubEstimatorr9   Nc                 "    || _         || _        d S r!   )r2   rE   )r&   r2   rE   s      r'   r(   z<test_metaestimator_delegation.<locals>.SubEstimator.__init__[   s    DJ!.Dr)   c                 \    t          j        |j        d                   | _        g | _        dS )Nr9   T)nparangeshapecoef_classes_r&   Xyargskwargss        r'   fitz7test_metaestimator_delegation.<locals>.SubEstimator.fit_   s%    171:..DJDM4r)   c                 $    t          |            d S r!   r   )r&   s    r'   
_check_fitz>test_metaestimator_delegation.<locals>.SubEstimator._check_fitd   s    D!!!!!r)   c                 .    |                                   |S r!   r^   r&   rX   rZ   r[   s       r'   r=   zEtest_metaestimator_delegation.<locals>.SubEstimator.inverse_transformg       OOHr)   c                 .    |                                   |S r!   r`   ra   s       r'   r<   z=test_metaestimator_delegation.<locals>.SubEstimator.transforml   rb   r)   c                 h    |                                   t          j        |j        d                   S Nr   r^   rR   onesrT   ra   s       r'   r@   z;test_metaestimator_delegation.<locals>.SubEstimator.predictq   (    OO7171:&&&r)   c                 h    |                                   t          j        |j        d                   S re   rf   ra   s       r'   r>   zAtest_metaestimator_delegation.<locals>.SubEstimator.predict_probav   rh   r)   c                 h    |                                   t          j        |j        d                   S re   rf   ra   s       r'   r?   zEtest_metaestimator_delegation.<locals>.SubEstimator.predict_log_proba{   rh   r)   c                 h    |                                   t          j        |j        d                   S re   rf   ra   s       r'   decision_functionzEtest_metaestimator_delegation.<locals>.SubEstimator.decision_function   rh   r)   c                 .    |                                   dS )N      ?r`   rW   s        r'   r7   z9test_metaestimator_delegation.<locals>.SubEstimator.score   s    OO3r)   )r9   Nr!   )r*   r+   r,   r(   r\   r^   r=   r<   r@   r>   r?   rl   r7   )rM   s   r'   SubEstimatorrO   Z   s	       	/ 	/ 	/ 	/	 	 	 	
	" 	" 	" 
	 	 
	 
	 	 
	 
	' 	' 
	' 
	' 	' 
	' 
	' 	' 
	' 
	' 	' 
	' 
	 	 
	 	 	r)   ro   c                 f    g | ].}|                     d           |                     d          ,|/S )_r\   )
startswith).0ks     r'   
<listcomp>z1test_metaestimator_delegation.<locals>.<listcomp>   sP       ||C   *+e)<)<	  r)   z does not have method z when its delegate doesr7   r   r9   )rE   z has method z when its delegate does not)r   __dict__keyssortDELEGATING_METAESTIMATORSr#   r%   hasattrr"   pytestraisesr   getattrr$   r\   )ro   methodsdelegator_datadelegate	delegatorrJ   rM   s         @r'   test_metaestimator_delegationr   O   s     . . . . . . .} . . .` &++--  G
 LLNNN3 . .<>>",,X66	 	K 	KF4448V,,,,,6    ###     ]>22  .GIv..&/2N4KA4N                
 ]>22 K K.GIv..~/Fq/IJJJK K K K K K K K K K K K K K K 		~.// 		G 		GF444  *	6**"+A.0G0J    +	6**>+B1+EFFFF 	 	F444#|&999H&00::Ix000006    ###   	G. .s$   1DD #D %E22E69E6c            	   #   T  K   t          t                                D ]\  } }t          t          |          j                  }d|v sd|v sd|v rt          |          r/t          t                      t                                }dddgi}n.t          t                      t                                }dddgi}d|v sd	|v rd
|v rd
dini } |||fi |V   ||          V  d|v redt          t                      t                                fdt          t                      t          d                    fg} ||          V  5d|v rt          |          rYdt          t                      t          d                    fdt          t                      t          d                    fg}nXdt          t                      t          d                    fdt          t                      t          d                    fg} ||          V  
dS )zGenerate instances of meta-estimators fed with a pipeline

    Are considered meta-estimators all estimators accepting one of "estimator",
    "base_estimator" or "estimators".
    	estimatorbase_estimator	regressorridge__alphag?rn   logisticregression__Cr5   r:   r;   r4   transformer_listtrans1trans2F)	with_mean
estimatorsest1)alphaest2r9   )CN)sortedr   setr   
parametersr   r   r	   r   r   r   r   )rq   	Estimatorsigr   r5   extra_paramsr   s          r'   0_generate_meta_estimator_instances_with_pipeliner      s      ~//00 / /9)I&&122#!1S!8!8K3<N<NI&& C)/*;*;UWWEE	,sCj9

)/*;*;=O=Q=QRR	5SzB
s""&;s&B&B08C!}}Ri	:FFFFFFFFi	******3&& =):):LNNKKL!/"3"3^e5T5T5TUU  ),------S  I&& ]?+<+<e#>N>N>NOOP]?+<+<e!nnnMMN		 %o&7&79Kc9R9R9RSS ]?+<+<>PST>U>U>UVVW	 )I&&&&&& _/ /r)   )AdaBoostClassifierAdaBoostRegressorr   BaggingRegressorClassifierChainIterativeImputerOneVsOneClassifierRANSACRegressorr
   r   RegressorChainr   SequentialFeatureSelectorc                 8    g | ]}|j         j        t          v|S r   )	__class__r*   )DATA_VALIDATION_META_ESTIMATORS_TO_IGNORE)rs   r.   s     r'   ru   ru     s3     # # #
}%NNN NNNr)   c                     | j         j        S r!   )r   r*   )r   s    r'   _get_meta_estimator_idr     s    ''r)   r   )idsc                    t           j                            d          }t          |            d}|                    t          j        g dt                    |          }t          |           r|                    |          }n|	                    d|          }t          | |                                          }t          | |                                          }|                     ||           t          | d          rJ d S )Nr      )aabbcc)dtype)size   n_features_in_)rR   randomRandomStater   choicearrayobjectr   normalrandintr   tolistr   r\   rz   )r   rng	n_samplesrX   rY   s        r'   -test_meta_estimators_delegate_data_validationr     s     )


"
"CYI

28...f===I
NNAI +JJIJ&&KK	K** 	")Q//6688A!)Q//6688A
 MM!Q y"23333333r)   )6__doc__rG   inspectr   numpyrR   r{   sklearn.baser   r   sklearn.datasetsr   sklearn.ensembler   sklearn.exceptionsr   sklearn.feature_extraction.textr	   sklearn.feature_selectionr
   r   sklearn.linear_modelr   r   sklearn.model_selectionr   r   sklearn.pipeliner   r   sklearn.preprocessingr   r   sklearn.semi_supervisedr   sklearn.utilsr   sklearn.utils._testingr   sklearn.utils.estimator_checksr   r   sklearn.utils.validationr   r   ry   r   r   r   DATA_VALIDATION_META_ESTIMATORSr   markparametrizer   r   r)   r'   <module>r      sU   % %                4 4 4 4 4 4 4 4 0 0 0 0 0 0 . . . . . . - - - - - - ; ; ; ; ; ; 0 0 0 0 0 0 0 0 : : : : : : : : D D D D D D D D 4 4 4 4 4 4 4 4 > > > > > > > > : : : : : : ( ( ( ( ( ( 3 3 3 3 3 3        5 4 4 4 4 4) ) ) ) ) ) ) ) M*BBCCMFFY  
 M	
 	
 Y   M%K9L+MNNNM'5=P/QRRRM
 
 
   M //HHH  9! Hp p pf5 5 5v- - - ) # #??AA# # # ( ( ( 06L   4 4 4 4 4r)   