Ë
    ÷Q(h>8  ã                   ó¾  — 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mZ ddl	m
Z
 ddlZddlm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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(m)Z) ddl*m+Z+m,Z, ddl-m.Z.m/Z/m0Z0m1Z1m2Z2m3Z3m4Z4m5Z5m6Z6m7Z7m8Z8m9Z9m:Z: ddl;m<Z< d„ Z=dGd„Z> G d„ de«      Z?ej€                  jƒ                  d ee>d¬«      dfe>df ee>d«      df ed¬«      d f edd!d"d#¬$«      d%f e?«       d&fg«      d'„ «       ZB e: eC e)«       «      e(¬(«      d)„ «       ZDd*„ ZEej€                  j�                  e<d+¬,«      ej€                  j�                  d-«      d.„ «       «       ZHd/„ ZId0„ ZJd1„ ZKd2„ ZL eC e
 e)«        e ed¬«      «      g eL«       «      «      ZMej€                  jƒ                  d3eMe'¬4«      d5„ «       ZNd6d7gZOd8„ ZP e)d9«      D � cg c]  }  eP| «      r| ‘Œ c} ZQej€                  jƒ                  d9eQe'¬4«      d:„ «       ZR e)«       D � cg c]  }  eS| d;«      sŒ| ‘Œ c} ZTej€                  jƒ                  d3eTe'¬4«      d<„ «       ZUej€                  jƒ                  d3 eC e)«       «      e'¬4«      d=„ «       ZV eC e
 e)d9«       e e#«        e!«       «       e"d>¬?«       e d@¬A«      g«      «      ZWej€                  jƒ                  d3eWe'¬4«      dB„ «       ZXej€                  jƒ                  d3eWe'¬4«      ej€                  jƒ                  dCe6e1e7e2g«      dD„ «       «       ZYej€                  jƒ                  d3 e)«       e'¬4«      dE„ «       ZZdF„ Z[yc c} w c c} w )Hz.
General tests for all estimators in sklearn.
é    N)Úpartial)Úisgenerator)Úchain)ÚLinAlgWarning)ÚBaseEstimator)ÚColumnTransformer)Úmake_classification)ÚConvergenceWarning)Úenable_halving_search_cvÚenable_iterative_imputer)ÚLogisticRegression)ÚFeatureUnionÚmake_pipeline)ÚFunctionTransformerÚMinMaxScalerÚOneHotEncoderÚStandardScaler)Úall_estimators)Ú_get_check_estimator_idsÚ_get_expected_failed_checksÚ_tested_estimators)ÚSkipTestÚignore_warnings)Ú(check_dataframe_column_names_consistencyÚcheck_estimatorÚ!check_get_feature_names_out_errorÚ$check_global_output_transform_pandasÚ(check_global_set_output_transform_polarsÚcheck_inplace_ensure_writeableÚcheck_param_validationÚcheck_set_output_transformÚ!check_set_output_transform_pandasÚ!check_set_output_transform_polarsÚ'check_transformer_get_feature_names_outÚ.check_transformer_get_feature_names_out_pandasÚparametrize_with_checks)Ú_IS_WASMc                  ó–   — t        «       D ]<  \  } }dj                  | «      }| j                  «       j                  d«      sŒ7J |«       ‚ y )NzDBase estimators such as {0} should not be included in all_estimatorsÚbase)r   ÚformatÚlowerÚ
startswith)ÚnameÚ	EstimatorÚmsgs      úW/var/www/skyplay_api_hub/venv/lib/python3.12/site-packages/sklearn/tests/test_common.pyÚ test_all_estimator_no_base_classr1   B   sJ   € ä)Ó+ò 8‰ˆˆiàRß
‰&�‹,ð 	ð —:‘:“<×*Ñ*¨6Õ2Ð7°CÓ7Ð2ñ	8ó    é   c                  ó   — y ©N© )ÚxÚys     r0   Ú_sample_funcr9   K   s   € Ør2   c                   ó   — e Zd ZdZd„ Zy)ÚCallableEstimatorzqDummy development stub for an estimator.

    This is to make sure a callable estimator passes common tests.
    c                  ó   — y r5   r6   )Úselfs    r0   Ú__call__zCallableEstimator.__call__U   s   € Ør2   N)Ú__name__Ú
__module__Ú__qualname__Ú__doc__r>   r6   r2   r0   r;   r;   O   s   „ ñó
r2   r;   zval, expected)r8   z_sample_func(y=1)r9   Úworldg       @)ÚCzLogisticRegression(C=2.0)z	newton-cgÚbalancedT)Úrandom_stateÚsolverÚclass_weightÚ
warm_startz]LogisticRegression(class_weight='balanced',random_state=1,solver='newton-cg',warm_start=True)zCallableEstimator()c                 ó$   — t        | «      |k(  sJ ‚y r5   )r   )ÚvalÚexpecteds     r0   Útest_get_check_estimator_idsrM   Y   s   € ô. $ CÓ(¨HÒ4Ð4Ñ4r2   )Úexpected_failed_checksc                 ó~   — t        t        t        t        t        f¬«      5   || «       d d d «       y # 1 sw Y   y xY w©N©Úcategory)r   ÚFutureWarningr
   ÚUserWarningr   )Ú	estimatorÚcheckÚrequests      r0   Útest_estimatorsrX   s   s8   € ô
 
ÜÔ!3´[Ä-ÐPô
ñ ñ 	ˆiÔ÷÷ ñ ús   ¡	3³<c                  ó¨   — t        j                  t        d¬«      5  t        t	        «       d¬«      } ddd«       t         «      sJ ‚y# 1 sw Y   ŒxY w)zTCheck that check_estimator with generate_only=True raises a deprecation
    warning.z$`generate_only` is deprecated in 1.6©ÚmatchT)Úgenerate_onlyN)ÚpytestÚwarnsrS   r   r   r   )Úall_instance_gen_checkss    r0   Ú.test_check_estimator_generate_only_deprecationr`      sL   € ô 
�‰”mÐ+QÔ	Rñ 
Ü"1ÜÓ °ô#
Ð÷
ô Ð.Ô/Ð/Ñ/÷	
ð 
ús   œAÁAz,importlib not supported for Pyodide packages)ÚreasonzZignore:Since version 1.0, it is not needed to import enable_hist_gradient_boosting anymorec                  óv  — t         j                  j                  t        j                  «      g} t        j                  | dd„ ¬«      }|D ��cg c]  \  }}}|‘Œ
 }}}|dgz   D ]N  }d|v rŒd|v rŒt        |d¬«      }t        |d	d
«      D ]%  }t        ||«      rŒJ dj                  ||«      «       ‚ ŒP y c c}}w )Núsklearn.c                  ó   — y r5   r6   ©Ú_s    r0   ú<lambda>z-test_import_all_consistency.<locals>.<lambda>“   ó   � r2   )ÚpathÚprefixÚonerrorÚsklearnz.tests.zsklearn._build_utilsÚdummy)ÚfromlistÚ__all__r6   z#Module '{0}' has no attribute '{1}')Úosri   Údirnamerl   Ú__file__ÚpkgutilÚwalk_packagesÚ
__import__ÚgetattrÚhasattrr*   )Úsklearn_pathÚpkgsrf   ÚmodnameÚsubmodsÚpackager-   s          r0   Útest_import_all_consistencyr}   ‰   sÒ   € ô —G‘G—O‘O¤G×$4Ñ$4Ó5Ð6€Lô × Ñ Ø *±nô€Dð -1×1™=˜1˜g qŠwÐ1€GÑ1Ø˜i˜[Ñ(ò 
ˆØ˜ÑØà! WÑ,ØÜ˜W¨wÔ7ˆÜ˜G Y°Ó3ò 	ˆDÜ˜7 DÕ)ð Ð+P×+WÑ+WØ˜ó,ó Ð)ñ	ñ
ùó 2s   ÁB5c                  ó  — t         j                  j                  t        j                  «      g} d}t        j                  | d„ ¬«      D ]4  \  }}}d|v s|j                  d«      s||v rŒ!|t        j                  v rŒ4J ‚ y )N)ÚutilsÚtestsr)   Úconftestc                  ó   — y r5   r6   re   s    r0   rg   z3test_root_import_all_completeness.<locals>.<lambda>§   rh   r2   )ri   rk   ú.rf   )	rp   ri   rq   rl   rr   rs   rt   r,   ro   )rx   Ú
EXCEPTIONSrf   rz   s       r0   Ú!test_root_import_all_completenessr…   £   sy   € Ü—G‘G—O‘O¤G×$4Ñ$4Ó5Ð6€LØ7€JÜ ×.Ñ.Ø¡>ôò *‰ˆˆ7�Að �'‰>˜W×/Ñ/°Ô4¸À:Ñ8MØØœ'Ÿ/™/Ò)Ð)Ð)ñ*r2   c                  ó¼  — t        j                  d«      } h d£}t        j                  j	                  t
        j                  «      g}t        j                  |d¬«      D ���ci c]	  \  }}}||“Œ }}}}|j                  «       D ��cg c]%  \  }}|r||vr| j                  |«      s	|dz   |vr|‘Œ' }}}|g k(  sJ dj                  |«      «       ‚y c c}}}w c c}}w )NzÃ(?x)
                                      \.externals(\.|$)|
                                      \.tests(\.|$)|
                                      \._
                                      >   úsklearn.datasets.dataúsklearn.datasets.descrúsklearn.datasets.imagesrc   )rj   z.testszn{0} do not have `tests` subpackages. Perhaps they require __init__.py or a meson.build in the parent directory)ÚreÚcompilerp   ri   rq   rl   rr   rs   rt   ÚitemsÚsearchr*   )ÚHAS_TESTS_EXCEPTIONSÚresource_modulesrx   rf   r-   ÚispkgÚlookupÚmissing_testss           r0   Útest_all_tests_are_importabler“   ®   sù   € ô Ÿ:™:ð	*óÐòÐô
 —G‘G—O‘O¤G×$4Ñ$4Ó5Ð6€Lô &×3Ñ3°LÈÔT÷ð áˆAˆt�Uð 	ˆe‰ð€Fò ð "Ÿ<™<›>÷áˆD�%ÙØÐ(Ñ(Ø$×+Ñ+¨DÔ1Ø�8‰O 6Ñ)ò 	ð€Mñ ð ˜BÒð ð	÷ ‘F˜=Ó)óÑùôùós   Á#CÂ*Cc                  ó  — d} t        j                  t        | ¬«      5  t        t        «       d d d «       t        j                  t        | ¬«      5  t        t        g«       d d d «       y # 1 sw Y   Œ>xY w# 1 sw Y   y xY w)Nz8Passing a class was deprecated.* isn't supported anymorerZ   )r]   ÚraisesÚ	TypeErrorr   r   r&   ©r/   s    r0   Útest_class_support_removedr˜   Ô   sl   € ð E€CÜ	�‰”y¨Ô	,ñ ,ÜÔ*Ô+÷,ô 
�‰”y¨Ô	,ñ 6ÜÔ!3Ð 4Ô5÷6ð 6÷,ð ,ú÷6ð 6ús   žA+ÁA7Á+A4Á7B c               #   óš  K  — t        «       D ]º  } t        | j                  «       «      }d|v r| j                  dd¬«      –— Œ6d|v rh| j                  dd¬«      }|j                  j
                  dv r8t        j                  |t        j                  j                  d¬	«      ¬
«      –— Œ�|–— Œ¢d|v sŒ§| j                  d¬«      –— Œ¼ y ­w)NÚ	oob_scoreT)rš   Ú	bootstrapÚearly_stoppingr3   )rœ   Ún_iter_no_change>   ÚMLPRegressorÚMLPClassifierzMLP still validates in fitr—   )Úmarksr�   )r�   )
r   ÚsetÚ
get_paramsÚ
set_paramsÚ	__class__r?   r]   ÚparamÚmarkÚxfail)rU   Ú
est_paramsÚests      r0   Ú_estimators_that_predict_in_fitrª   à   sÅ   è ø€ Ü'Ó)ò ;ˆ	Ü˜×-Ñ-Ó/Ó0ˆ
Ø˜*Ñ$Ø×&Ñ&°ÀÐ&ÓFÓFØ Ñ+Ø×&Ñ&°dÈQÐ&ÓOˆCØ�}‰}×%Ñ%Ð)JÑJä—l‘lØœvŸ{™{×0Ñ0Ð5QÐ0ÓRôó ð “	Ø :Ò-Ø×&Ñ&¸Ð&Ó:Ó:ñ;ùs   ‚B1CÂ4CrU   )Úidsc                 ó´  — t        | t        «      rt        j                  d«       dt	        | «      v rt        j                  d«       t        t        ¬«      5  t        j                  d¬«      5 }t        | j                  j                  | «       d d d «       D ]  }dt        |j                  «      vrŒJ ‚ 	 d d d «       y # 1 sw Y   Œ3xY w# 1 sw Y   y xY w)Nz$ColumnTransformer is not tested herer   zCEstimator does not support check_dataframe_column_names_consistencyrQ   T)Úrecordz was fitted without feature names)Ú
isinstancer   r]   Úskipr   r   rS   ÚwarningsÚcatch_warningsr   r¤   r?   ÚstrÚmessage)rU   r­   Úwarnings      r0   Ú#test_pandas_column_name_consistencyrµ   þ   sÑ   € ô �)Ô.Ô/Ü�‰Ð:Ô;Ø1Ô5PØó6ñ ô 	�‰ØQô	
ô 
¤=Ô	2ñ RÜ×$Ñ$¨DÔ1ð 	°VÜ4Ø×#Ñ#×,Ñ,¨iô÷	ð ò 	RˆGØ5¼SÀÇÁÓ=QÒQÐQÐQñ	R÷Rð R÷	ð 	ú÷Rð Rús*   ÁCÁ/!CÂ$CÂ5CÃC	ÃCÃCÚensembleÚkernel_approximationc                 óh   — t        | d«      ry| j                  j                  d«      d   }|t        vS )NÚget_feature_names_outTrƒ   r3   )rw   r@   ÚsplitÚ"GET_FEATURES_OUT_MODULES_TO_IGNORE)ÚtransformerÚmodules     r0   Ú'_include_in_get_feature_names_out_checkr¾     s7   € Üˆ{Ð3Ô4ØØ×#Ñ#×)Ñ)¨#Ó.¨qÑ1€FØÔ;Ð;Ð;r2   r¼   c                 óÎ   — t        t        ¬«      5  t        | j                  j                  | «       t        | j                  j                  | «       d d d «       y # 1 sw Y   y xY wrP   )r   rS   r$   r¤   r?   r%   )r¼   s    r0   Ú'test_transformers_get_feature_names_outrÀ   )  sU   € ô
 
¤=Ô	2ñ 
Ü/Ø×!Ñ!×*Ñ*¨Kô	
ô 	7Ø×!Ñ!×*Ñ*¨Kô	
÷	
÷ 
ñ 
ús   ‘AAÁA$r¹   c                 óH   — | j                   j                  }t        || «       y r5   )r¤   r?   r   )rU   Úestimator_names     r0   Ú+test_estimators_get_feature_names_out_errorrÃ   <  s   € ð ×(Ñ(×1Ñ1€NÜ% n°iÕ@r2   c                 ó’   — t        | t        «      rt        j                  d«       | j                  j
                  }t        || «       y )NzFeatureUnion is not tested here)r®   r   r]   r¯   r¤   r?   r    ©rU   r-   s     r0   Útest_check_param_validationrÆ   D  s6   € ô �)œ\Ô*Ü�‰Ð5Ô6Ø×Ñ×'Ñ'€DÜ˜4 Õ+r2   F)Úsparse_outputz
one-to-one)Úfeature_names_outc                 ó  — | j                   j                  }t        | d«      st        j                  d|› d�«       t        t        ¬«      5  t        | j                   j                  | «       d d d «       y # 1 sw Y   y xY w)NÚ
set_outputz(Skipping check_set_output_transform for z!: Does not support set_output APIrQ   )r¤   r?   rw   r]   r¯   r   rS   r!   rÅ   s     r0   Útest_set_output_transformrË   Z  su   € ð ×Ñ×'Ñ'€DÜ�9˜lÔ+Ü�‰Ø6°t°fð =ð ô	
ô 
¤=Ô	2ñ LÜ" 9×#6Ñ#6×#?Ñ#?ÀÔK÷L÷ Lñ Lús   Á!A6Á6A?Ú
check_funcc                 ó  — | j                   j                  }t        | d«      s&t        j                  d|j                  › d|› d�«       t        t        ¬«      5   || j                   j                  | «       d d d «       y # 1 sw Y   y xY w)NrÊ   z	Skipping z for z%: Does not support set_output API yetrQ   )r¤   r?   rw   r]   r¯   r   rS   )rU   rÌ   r-   s      r0   Ú$test_set_output_transform_configuredrÎ   h  s~   € ð ×Ñ×'Ñ'€DÜ�9˜lÔ+Ü�‰Ø˜
×+Ñ+Ð,¨E°$°ð 8"ð "ô	
ô 
¤=Ô	2ñ <Ù�9×&Ñ&×/Ñ/°Ô;÷<÷ <ñ <ús   ÁB Â B	c                 ól  — | j                   j                  }t        | d«      r| j                  d¬«       n-t        | d«      r| j                  d¬«       nt	        |› d�«      ‚|dk(  r| j                  dd	¬
«       |dk(  r| j                  d¬«       |dk(  r| j                  d¬«       t        || «       y )NÚcopyF)rÐ   Úcopy_X)rÑ   z! doesn't require writeable input.ÚHDBSCANÚprecomputedÚbrute)ÚmetricÚ	algorithmÚPCAÚfull)Ú
svd_solverÚ	KernelPCA)Úkernel)r¤   r?   rw   r£   r   r   rÅ   s     r0   Ú#test_check_inplace_ensure_writeablerÜ     s¶   € ð ×Ñ×'Ñ'€Däˆy˜&Ô!Ø×Ñ %ÐÕ(Ü	�˜HÔ	%Ø×Ñ EÐÕ*ä˜$˜Ð@ÐAÓBÐBð ˆyÒØ×Ñ M¸WÐÔEàˆu‚}Ø×Ñ¨ÐÔ/àˆ{ÒØ×Ñ MÐÔ2ä" 4¨Õ3r2   c                  óæ  —  G d„ dt         «      } t        ddd¬«      \  }} | «       }t        j                  t        «      5 }|j                  |«       ddd«       t        «      dk(  sJ ‚t        |d   j                  «      j                  d	«      sJ ‚t        |d
   j                  «      j                  d«      sJ ‚t        |d   j                  «      j                  d«      sJ ‚y# 1 sw Y   Œ•xY w)zŠThis test checks that we raised deprecation warning explaining how to transition
    to the new developer public API from 1.5 to 1.6.
    c                   ó   — e Zd Zdd„Zd„ Zy)ú=test_transition_public_api_deprecations.<locals>.OldEstimatorNc                 ót   — | j                  |«      }| j                  |d¬«       | j                  |d¬«       | S )NT)Úreset)Ú_validate_dataÚ_check_n_featuresÚ_check_feature_names)r=   ÚXr8   s      r0   ÚfitzAtest_transition_public_api_deprecations.<locals>.OldEstimator.fit   s=   € Ø×#Ñ# AÓ&ˆAØ×"Ñ" 1¨DÐ"Ô1Ø×%Ñ% a¨tÐ%Ô4ØˆKr2   c                 ó   — |S r5   r6   )r=   rå   s     r0   Ú	transformzGtest_transition_public_api_deprecations.<locals>.OldEstimator.transform¦  s   € ØˆHr2   r5   )r?   r@   rA   ræ   rè   r6   r2   r0   ÚOldEstimatorrß   Ÿ  s   „ ó	ó	r2   ré   é
   é   r   )Ú	n_samplesÚ
n_featuresrF   Né   z,`BaseEstimator._validate_data` is deprecatedr3   z/`BaseEstimator._check_n_features` is deprecatedé   z2`BaseEstimator._check_feature_names` is deprecated)
r   r	   r]   r^   rS   ræ   Úlenr²   r³   r,   )ré   rå   r8   Úold_estimatorÚwarning_lists        r0   Ú'test_transition_public_api_deprecationsró   š  sñ   € ô
”}ô ô ¨¸ÈÔJ�D€A€qá “N€MÜ	�‰”mÓ	$ð ¨Ø×Ñ˜!Ô÷ô ˆ|Ó Ò!Ð!Ð!Üˆ|˜A‰×&Ñ&Ó'×2Ñ2Ø6ôð ð ô ˆ|˜A‰×&Ñ&Ó'×2Ñ2Ø9ôð ð ô ˆ|˜A‰×&Ñ&Ó'×2Ñ2Ø<ôð ñ ÷ð ús   ÁC'Ã'C0)r3   )\rB   rp   rs   rŠ   r°   Ú	functoolsr   Úinspectr   Ú	itertoolsr   r]   Úscipy.linalgr   rl   Úsklearn.baser   Úsklearn.composer   Úsklearn.datasetsr	   Úsklearn.exceptionsr
   Úsklearn.experimentalr   r   Úsklearn.linear_modelr   Úsklearn.pipeliner   r   Úsklearn.preprocessingr   r   r   r   Úsklearn.utilsr   Ú-sklearn.utils._test_common.instance_generatorr   r   r   Úsklearn.utils._testingr   r   Úsklearn.utils.estimator_checksr   r   r   r   r   r   r    r!   r"   r#   r$   r%   r&   Úsklearn.utils.fixesr'   r1   r9   r;   r¦   ÚparametrizerM   ÚlistrX   r`   r§   Úfilterwarningsr}   r…   r“   r˜   rª   Úcolumn_name_estimatorsrµ   r»   r¾   ÚGET_FEATURES_OUT_ESTIMATORSrÀ   rw   Ú%ESTIMATORS_WITH_GET_FEATURE_NAMES_OUTrÃ   rÆ   ÚSET_OUTPUT_ESTIMATORSrË   rÎ   rÜ   ró   )r©   s   0r0   ú<module>r     s  ðñó 
Û Û 	Û Ý Ý Ý ã Ý &ã Ý &Ý -Ý 0Ý 1÷õ 4ß 8÷ó õ )÷ñ ÷
÷÷ ÷ õ õ )ò8ó	ô˜ô ð ‡�×ÑØá	� Ô	#Ð%8Ð9Ø	�~Ð&Ù	�˜wÓ	'¨Ð8Ù	˜cÔ	"Ð$?Ð@áØØ"Ø'Øô	ð6ð	
ñ 
Ó	Ð3Ð4ð#óñ,5ó-ð,5ñ ÙÑ	Ó	ÓÐ7Rôñóðò0ð ‡�×Ñ�8Ð$RÐÓSØ‡�×Ñð,óñó	ó Tð
ò**ò#òL	6ò;ñ* Ù	ÙÓÙ	Ñ)¨AÔ.Ó	/Ð0Ù'Ó)óóÐ ð ‡�×ÑØÐ'Ð-Eð ó ñRóðRð* Øð&Ð "ò<ñ " -Ó0öàÙ.¨sÔ3ò òÐ ð ‡�×ÑØÐ.Ð4Lð ó ñ
óð
ñ &Ó'ö)Ø©7°3Ð8OÕ+P‚Cò)Ð %ð
 ‡�×ÑØÐ6Ð<Tð ó ñAóðAð
 ‡�×ÑØ‘Ñ(Ó*Ó+Ð1Ið ó ñ,óð,ñ Ù	Ù˜=Ó)á™.Ó*©L«NÓ;Ù¨Ô.Ù°,Ô?ð	
óó	Ð ð ‡�×ÑØÐ&Ð,Dð ó ñLóðLð ‡�×ÑØÐ&Ð,Dð ó ð ‡�×ÑØà)Ø,Ø)Ø0ð	óñ<óóð<ð ‡�×ÑØÑ#Ó%Ð+Cð ó ñ4óð4ó0ùòqùò*)s   ÇMÈMÈ,M