Ë
    8Ò^jš_  ã                   ó6  — d dl mZmZ d dlZd dl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mZmZmZmZmZmZmZmZmZmZmZm Z m!Z!m"Z"m#Z#m$Z$m%Z%m&Z&m'Z'm(Z(m)Z)m*Z*m+Z+ d d	l,m-Z-  e+egegegegd
œd¬«      d{d dœd„«       Z. G d„ d«      Z/ G d„ de«      Z0ejb                  je                  deeg«      d„ «       Z3ejb                  je                  deeg«      d„ «       Z4d„ Z5ejb                  je                  d eed dd¬«       eeddd¬«      g«      d„ «       Z6ejb                  je                  dedddd œe7d!fedd"d#d œe7d$fedd dd œe8d%fed dd&d œe8d'fedd(dd œe8d)fg«      d*„ «       Z9d+„ Z:d,„ Z;ejb                  je                  d-e<d.fed.fed/fejz                  d0fg«      d1„ «       Z>d2„ Z?ejb                  je                  d3 eedd d¬«       eed dd¬«       eeddd#¬«       eh d4£«       e«        ed¬5«       e'«        ed6«       e!«        e«       g
«      d7„ «       Z@ejb                  je                  d8 eedd9d&¬«       eed:d;d¬«      f eedd9d&¬«       eed:d;d#¬«      f eedd9d&¬«       eed<d;d¬«      f eedd9d&¬«       eed;dd¬«      f eedd9d&¬«       eed<dd#¬«      f eed9dd¬«       eed:d;d¬«      f eed9dd¬«       eed:d;d#¬«      f eed9dd¬«       eeddd¬«      f eed9dd¬«       eedd:d¬«      f eed9dd¬«       eedd=d#¬«      f eed:d;d¬«       eeddd&¬«      f eed:d;d¬«       eeddd¬«      f eed:d;d¬«       eed>d=d#¬«      f eed:d;d¬«       eed>d=d&¬«      f eed:d;d#¬«       eed?d@d#¬«      f eed:d;d#¬«       eed?d@d¬«      f eeddd¬«       eed dd¬«      f eeddd¬«       eed dd¬«      fg«      dA„ «       ZAejb                  je                  d3 e«        e eB«       e«        e#«        e%«        e&«        e«        eeddd#¬«      g«      dB„ «       ZCejb                  je                  d3 e«        e«        e eB«       e#«        e%«        e&«        e«        e'«        e«        ed¬5«       eh d4£«       eeh dC£«       eeddd#¬«       eed d@d#¬«       eed dd#¬«       eedd d#¬«       eed dd#¬«       eed dd¬«       eedd d&¬«       ed6«       e!«        e«       g«      dD„ «       ZDejb                  je                  dE eed dd¬«      dFf eed dd#¬«      dGf eh d4£«      dHf eeEejŒ                  ejŽ                  h«      ejŽ                  feHdI„ fdJdKddgd9d<ggfdK ej’                  ddgd9d<gg«      fdL eddgd9d<gg«      fdL eddgd9d<gg«      fg
e-D � cg c]  } dL | ddgd9d<gg«      f‘Œ c} ¢dM‘dNej”                  j—                  d «      f‘dO‘e/ e/«       f‘e<df‘edPf‘dQ‘dR‘dSej˜                  f‘ e«       d(f‘ e«       dTf‘ e«       ddUz  f‘ e«       df‘ e«        eMdS«      f‘ e«       ej˜                  f‘ e«       dVf‘ ed6«       e0d ¬W«      f‘dX‘«      dY„ «       ZNejb                  je                  dZ eed dd¬«      ef ed[d\h«      ef eedFd]h«      efdKefdLe&fdNe%fde#feHefe<e fd^efd_e'f ed¬5«      ef ed6«      efd`efdSe"fej˜                  e"fg«      da„ «       ZOdb„ ZPdc„ ZQdd„ ZRde„ ZSdf„ ZTdg„ ZUdh„ ZVdi„ ZWdj„ ZXdk„ ZYdl„ ZZdm„ Z[dn„ Z\do„ Z]dp„ Z^dq„ Z_dr„ Z`ds„ Zadt„ Zbejb                  je                  duddvg«      dw„ «       Zcejb                  je                  dxg dy¢«      dz„ «       Zdyc c} w )|é    )ÚIntegralÚRealN)Ú	csr_arrayÚ
csr_matrix)Úconfig_contextÚ
get_config)ÚBaseEstimatorÚ_fit_context)ÚLeaveOneOut©Ú
deprecated)Ú
HasMethodsÚHiddenÚIntervalÚInvalidParameterErrorÚMissingValuesÚOptionsÚ
RealNotIntÚ
StrOptionsÚ_ArrayLikesÚ	_BooleansÚ
_CallablesÚ
_CVObjectsÚ_InstancesOfÚ_IterablesNotStringÚ_NanConstraintÚ_NoneConstraintÚ_PandasNAConstraintÚ_RandomStatesÚ_SparseMatricesÚ_VerboseHelperÚgenerate_invalid_param_valÚgenerate_valid_paramÚmake_constraintÚvalidate_params)ÚCSR_CONTAINERS)ÚaÚbÚcÚdT©Úprefer_skip_nested_validation)r*   c                 ó   — y)z/A function to test the validation of functions.N© )r'   r(   r)   r*   ÚargsÚkwargss         út/var/www/ramen.bs-engineer-server.com/venv/lib/python3.12/site-packages/sklearn/utils/tests/test_param_validation.pyÚ_funcr2   )   ó   � ó    c                   óp   — e Zd ZdZ edegid¬«      d„ «       Z e«        edegid¬«      d„ «       «       Zy)Ú_ClasszJA class to test the _InstancesOf constraint and the validation of methods.r'   Tr+   c                  ó   — y)zA validated methodNr.   ©Úselfr'   s     r1   Ú_methodz_Class._method4   r3   r4   c                  ó   — y)zA deprecated validated methodNr.   r8   s     r1   Ú_deprecated_methodz_Class._deprecated_method8   r3   r4   N)	Ú__name__Ú
__module__Ú__qualname__Ú__doc__r%   r   r:   r   r<   r.   r4   r1   r6   r6   1   sQ   „ ÙTá�c˜D˜6�]À$ÔGñ!ó Hð!ñ ƒ\Ù�c˜D˜6�]À$ÔGñ,ó Hó ñ,r4   r6   c                   óL   — e Zd ZU dZdegiZeed<   d„ Z e	d¬«      d	d„«       Z
y)
Ú
_Estimatorz<An estimator to test the validation of estimator parameters.r'   Ú_parameter_constraintsc                 ó   — || _         y ©N©r'   r8   s     r1   Ú__init__z_Estimator.__init__C   s	   € Øˆ�r4   Tr+   Nc                  ó   — y rE   r.   )r9   ÚXÚys      r1   Úfitz_Estimator.fitF   ó   € àr4   ©NN)r=   r>   r?   r@   r   rC   ÚdictÚ__annotations__rG   r
   rK   r.   r4   r1   rB   rB   >   s4   … ÙFà$'¨$¨ =Ð˜DÓ0òñ °Ô5òó 6ñr4   rB   Úinterval_typec                 óÜ   — t        | ddd¬«      }d|v sJ ‚d|vsJ ‚t        | ddd¬«      }d|vsJ ‚d|v sJ ‚t        | ddd¬«      }d|v sJ ‚d|v sJ ‚t        | ddd¬«      }d|vsJ ‚d|vsJ ‚y)	z.Check the range of values depending on closed.éþÿÿÿé   Úleft©ÚclosedÚrightÚbothÚneitherN)r   ©rP   Úintervals     r1   Útest_interval_ranger\   K   s¬   € ô ˜ r¨1°VÔ<€HØ�‰>Ðˆ>Ø�HÑÐÐä˜ r¨1°WÔ=€HØ�XÑÐÐØ�‰=Ðˆ=ä˜ r¨1°VÔ<€HØ�‰>Ðˆ>Ø�‰=Ðˆ=ä˜ r¨1°YÔ?€HØ�XÑÐÐØ�HÑÐÑr4   c                 ó0  — t        | ddd¬«      }ddz  |vsJ ‚ddz  |vsJ ‚t        ddz  «      |vsJ ‚t        ddz  «      |vsJ ‚t        | dddz  d¬«      }ddz  |v sJ ‚ddz  |vsJ ‚t        ddz  «      |v sJ ‚t        ddz  «      |vsJ ‚ddz  |vsJ ‚y)	zbCheck that Interval constraint work with large integers.

    non-regression test for #26648.
    r   rS   rY   rU   éA   é€   i   N)r   ÚfloatrZ   s     r1   Útest_interval_large_integersra   _   sÚ   € ô ˜ q¨!°IÔ>€HØˆb‰5˜Ñ Ð Ð Øˆc‰6˜Ñ!Ð!Ð!Ü��B‘‹<˜xÑ'Ð'Ð'Ü��C‘‹= Ñ(Ð(Ð(ä˜ q¨!¨S©&¸ÔC€HØˆb‰5�HÑÐÐØˆc‰6˜Ñ!Ð!Ð!Ü��B‘‹<˜8Ñ#Ð#Ð#Ü��C‘‹= Ñ(Ð(Ð(àˆd‰7˜(Ñ"Ð"Ñ"r4   c                  ó  — t        t        ddd¬«      } t        j                  | v sJ ‚t        t        ddd¬«      } t        j                   | v sJ ‚t        t        ddd¬«      } t        j                  | vsJ ‚t        j                   | vsJ ‚y)zjCheck that inf is included iff a bound is closed and set to None.

    Only valid for real intervals.
    r   NrW   rU   rT   rY   )r   r   ÚnpÚinf©r[   s    r1   Útest_interval_inf_in_boundsrf   t   s€   € ô
 œ˜a ¨gÔ6€HÜ�6‰6�XÑÐÐäœ˜d A¨fÔ5€HÜ�F‰Fˆ7�hÑÐÐäœ˜d D°Ô;€HÜ�6‰6˜Ñ!Ð!Ð!Ü�F‰Fˆ7˜(Ñ"Ð"Ñ"r4   r[   é   rT   rU   rX   c                 ó,   — t         j                  | vsJ ‚y)z)Check that np.nan is not in any interval.N)rc   Únanre   s    r1   Útest_nan_not_in_intervalrj   „   s   € ô �6‰6˜Ñ!Ð!Ñ!r4   zparams, error, matchç      ð?rS   )ÚtyperT   rW   rV   z=Expecting left to be an int for an interval over the integersg       @rY   z>Expecting right to be an int for an interval over the integersz&left can't be None when closed == leftrW   z(right can't be None when closed == rightéÿÿÿÿzright can't be less than leftc                 ór   — t        j                  ||¬«      5  t        di | ¤Ž ddd«       y# 1 sw Y   yxY w)zNCheck that informative errors are raised for invalid combination of parameters©ÚmatchNr.   )ÚpytestÚraisesr   )ÚparamsÚerrorrp   s      r1   Útest_interval_errorsru   �   s3   € ô@ 
�‰�u EÔ	*ñ ÜÑ�6Ò÷÷ ñ ús   ˜-­6c                  ó´   — t        h d£dh¬«      } | j                  d«      sJ ‚| j                  d«      sJ ‚| j                  d«      rJ ‚dt        | «      v sJ ‚y)z*Sanity check for the StrOptions constraint>   r'   r(   r)   r)   r   r'   r*   z'c' (deprecated)N)r   Úis_satisfied_byÚstr©Úoptionss    r1   Útest_stroptionsr{   ±   s^   € äš°c°UÔ;€GØ×"Ñ" 3Ô'Ð'Ð'Ø×"Ñ" 3Ô'Ð'Ð'Ø×&Ñ& sÔ+Ð+Ð+à¤ W£Ñ-Ð-Ñ-r4   c                  óø   — t        t        ddt        j                  hdh¬«      } | j	                  d«      sJ ‚| j	                  t        j                  «      sJ ‚| j	                  d«      rJ ‚dt        | «      v sJ ‚y)z'Sanity check for the Options constraintg      à¿ç      à?r   ç®Gáz®ó?z-0.5 (deprecated)N)r   r   rc   rd   rw   rx   ry   s    r1   Útest_optionsr   »   so   € ä”d˜T 3¬¯©Ð/¸T¸FÔC€GØ×"Ñ" 4Ô(Ð(Ð(Ø×"Ñ"¤2§6¡6Ô*Ð*Ð*Ø×&Ñ& tÔ,Ð,Ð,à¤# g£,Ñ.Ð.Ñ.r4   ztype, expected_type_nameÚintr`   znumpy.ndarrayc                 óB   — t        | «      }t        |«      d|› d�k(  sJ ‚y)z?Check the string representation of the _InstancesOf constraint.zan instance of 'ú'N)r   rx   )rl   Úexpected_type_nameÚ
constraints      r1   Ú%test_instances_of_type_human_readabler…   Å   s,   € ô ˜dÓ#€JÜˆz‹?Ð 0Ð1CÐ0DÀAÐFÒFÐFÑFr4   c                  óÆ   — t        ddg«      }  G d„ d«      } G d„ d«      }| j                   |«       «      sJ ‚| j                   |«       «      rJ ‚t        | «      dk(  sJ ‚y)	z Check the HasMethods constraint.r'   r(   c                   ó   — e Zd Zd„ Zd„ Zy)útest_hasmethods.<locals>._Goodc                  ó   — y rE   r.   ©r9   s    r1   r'   z test_hasmethods.<locals>._Good.aÙ   ó   € Ør4   c                  ó   — y rE   r.   rŠ   s    r1   r(   z test_hasmethods.<locals>._Good.bÜ   r‹   r4   N)r=   r>   r?   r'   r(   r.   r4   r1   Ú_Goodrˆ   Ø   s   „ ò	ó	r4   r�   c                   ó   — e Zd Zd„ Zy)útest_hasmethods.<locals>._Badc                  ó   — y rE   r.   rŠ   s    r1   r'   ztest_hasmethods.<locals>._Bad.aà   r‹   r4   N)r=   r>   r?   r'   r.   r4   r1   Ú_Badr�   ß   s   „ ó	r4   r‘   z"an object implementing 'a' and 'b'N)r   rw   rx   )r„   r�   r‘   s      r1   Útest_hasmethodsr’   Ô   se   € ä˜S #˜JÓ'€J÷ñ ÷ñ ð ×%Ñ%¡e£gÔ.Ð.Ð.Ø×)Ñ)©$«&Ô1Ð1Ð1Üˆz‹?ÐBÒBÐBÑBr4   r„   >   r'   r(   r)   )Únumeric_onlyrK   c                 ó@   — t        | «      }| j                  |«      rJ ‚y)z>Check that the value generated does not satisfy the constraintN©r"   rw   )r„   Ú	bad_values     r1   Útest_generate_invalid_param_valr—   è   s%   € ô" +¨:Ó6€IØ×)Ñ)¨)Ô4Ð4Ð4Ð4r4   zinteger_interval, real_intervalé   éûÿÿÿé   é   éüÿÿÿiöÿÿÿé   é
   c                 óÌ   — t        |¬«      }|j                  |«      rJ ‚| j                  |«      rJ ‚t        | ¬«      }|j                  |«      rJ ‚| j                  |«      rJ ‚y)ztCheck that the value generated for an interval constraint does not satisfy any of
    the interval constraints.
    ©r„   Nr•   )Úinteger_intervalÚreal_intervalr–   s      r1   Ú+test_generate_invalid_param_val_2_intervalsr£   ý   sm   € ôb +°mÔD€IØ×,Ñ,¨YÔ7Ð7Ð7Ø×/Ñ/°	Ô:Ð:Ð:ä*Ð6FÔG€IØ×,Ñ,¨YÔ7Ð7Ð7Ø×/Ñ/°	Ô:Ð:Ð:Ð:r4   c                 óv   — t        j                  t        «      5  t        | «       ddd«       y# 1 sw Y   yxY w)zmCheck that the function raises NotImplementedError when there's no invalid value
    for the constraint.
    N)rq   rr   ÚNotImplementedErrorr"   r    s    r1   Ú)test_generate_invalid_param_val_all_validr¦   W  s.   € ô" 
�‰Ô*Ó	+ñ /Ü" :Ô.÷/÷ /ñ /ús   š/¯8>   rg   rS   r˜   c                 ó@   — t        | «      }| j                  |«      sJ ‚y)z;Check that the value generated does satisfy the constraint.N)r#   rw   )r„   Úvalues     r1   Útest_generate_valid_paramr©   l  s"   € ô: ! Ó,€EØ×%Ñ% eÔ,Ð,Ñ,r4   zconstraint_declaration, valuegáz®GáÚ?é*   r(   c                 ó   — | dz   S )Nrg   r.   )Úxs    r1   ú<lambda>r­   ”  s
   € ˜Q ™U€ r4   rM   z
array-likezsparse matrix)Úrandom_stater   r®   )r®   Nr}   )ÚbooleanF)Úverboserg   ri   g      ð¿i  ÚmissingrF   )Ú	cv_objectrš   c                 ó@   — t        | «      }|j                  |«      sJ ‚y)z+Sanity check for the is_satisfied_by methodN)r$   rw   )Úconstraint_declarationr¨   r„   s      r1   Útest_is_satisfied_byrµ   �  s$   € ôN !Ð!7Ó8€JØ×%Ñ% eÔ,Ð,Ñ,r4   z1constraint_declaration, expected_constraint_classÚoption1Úoption2r~   r¯   r°   r²   c                 ó:   — t        | «      }|j                  |u sJ ‚y)zICheck that make_constraint dispatches to the appropriate constraint classN)r$   Ú	__class__)r´   Úexpected_constraint_classr„   s      r1   Útest_make_constraintr»   ¸  s$   € ô. !Ð!7Ó8€JØ×ÑÐ#<Ñ<Ð<Ñ<r4   c                  óz   — t        j                  t        d¬«      5  t        d«       ddd«       y# 1 sw Y   yxY w)zNCheck that an informative error is raised when an unknown constraint is passedzUnknown constraintro   znot a valid constraintN)rq   rr   Ú
ValueErrorr$   r.   r4   r1   Útest_make_constraint_unknownr¾   Ó  s/   € ä	�‰”zÐ)=Ô	>ñ 2ÜÐ0Ô1÷2÷ 2ñ 2ús   œ1±:c                  ó  — t        j                  t        d¬«      5  t        dd¬«       ddd«       t        j                  t        d¬«      5  t        ddgddiŽ ddd«       t        j                  t        d	¬«      5  t        di ddi¤Ž ddd«       t        j                  t        d
¬«      5  t        ddd¬«       ddd«       t        j                  t        d¬«      5  t        dgg d¢¢­ddiddi¤Ž ddd«       t        j                  t        d	¬«      5  t        dgg d¢¢­ddiddi¤Ž ddd«       y# 1 sw Y   �ŒxY w# 1 sw Y   ŒìxY w# 1 sw Y   ŒÇxY w# 1 sw Y   Œ¡xY w# 1 sw Y   ŒtxY w# 1 sw Y   yxY w)zGCheck that validate_params works no matter how the arguments are passedz"The 'a' parameter of _func must bero   Úwrongrg   ©r)   Nz"The 'b' parameter of _func must ber)   ú"The 'c' parameter of _func must bez"The 'd' parameter of _func must be)r)   r*   r   )rÀ   rS   r˜   r›   Úerš   ©rg   rS   r˜   Úfour)rg   )rq   rr   r   r2   r.   r4   r1   Útest_validate_paramsrÆ   Ù  ss  € ä	�‰ÜÐ%Iô
ñ ô 	ˆg˜Õ÷ô
 
�‰ÜÐ%Iô
ñ "ô 	��7ˆ|Ð!˜qÒ!÷"ô
 
�‰ÜÐ%Iô
ñ #ô 	Ñ"�C˜�>Ò"÷#ô
 
�‰ÜÐ%Iô
ñ !ô 	ˆa�1˜Õ ÷!ô 
�‰ÜÐ%Iô
ñ 4ô 	ˆaÐ3’/Ò3 QÐ3¨3°¨(Ò3÷4ô
 
�‰ÜÐ%Iô
ñ 3ô 	ˆaÐ2’)Ò2˜vÐ2¨#¨q¨Ò2÷3ð 3÷5ñ ú÷
"ð "ú÷
#ð #ú÷
!ð !ú÷4ð 4ú÷
3ð 3úsG   œD9ÁEÁ>EÂ/EÃ!E*ÄE6Ä9EÅEÅEÅE'Å*E3Å6E?c                  óJ   — t        dt        gid¬«      d„ «       }  | dd«       y)zTCheck that no error is raised when there are parameters without
    constraints
    r'   Tr+   c                  ó   — y rE   r.   )r'   r(   s     r1   Úfuncz1test_validate_params_missing_params.<locals>.func   rL   r4   rg   rS   N)r%   r€   )rÉ   s    r1   Ú#test_validate_params_missing_paramsrÊ   û  s/   € ô
 �cœC˜5�\ÀÔFñó Gðñ 	ˆˆA…Jr4   c                  óx  —  t        «       t        «      } t        j                  t        d¬«      5   | ddd¬«       ddd«       t        j                  t        d¬«      5  t        j
                  t        d¬«      5   | ddd	¬«       ddd«       ddd«       y# 1 sw Y   Œ]xY w# 1 sw Y   ŒxY w# 1 sw Y   yxY w)
z5Check that validate_params functions can be decoratedzFunction _func is deprecatedro   rg   rS   r˜   rÁ   NrÂ   rÀ   )r   r2   rq   ÚwarnsÚFutureWarningrr   r   )Údecorated_functions    r1   Ú test_decorate_validated_functionrÏ     s¡   € à%œ›¤eÓ,Ðä	�‰”mÐ+IÔ	Jñ &Ù˜1˜a 1Õ%÷&ô 
�‰”mÐ+IÔ	Jñ 0Ü�]‰]Ü!Ð)Nô
ñ 	0ñ ˜q ! wÕ/÷	0÷0ð 0÷	&ð &ú÷
	0ð 	0ú÷0ð 0ús/   °BÁB0Á;B$ÂB0ÂB!Â$B-	Â)B0Â0B9c                  óˆ  — t        j                  t        d¬«      5  t        «       j	                  d«       ddd«       t        j
                  t        d¬«      5  t        j                  t        d¬«      5  t        «       j                  d«       ddd«       ddd«       y# 1 sw Y   ŒkxY w# 1 sw Y   ŒxY w# 1 sw Y   yxY w)z-Check that validate_params works with methodsz+The 'a' parameter of _Class._method must bero   rÀ   Nz)Function _deprecated_method is deprecatedz6The 'a' parameter of _Class._deprecated_method must be)rq   rr   r   r6   r:   rÌ   rÍ   r<   r.   r4   r1   Útest_validate_params_methodrÑ     sŸ   € ä	�‰ÜÐ%Rô
ñ "ô 	‹×Ñ˜Ô!÷"ô 
�‰”mÐ+VÔ	Wñ 1Ü�]‰]Ü!ØJô
ñ 	1ô ‹H×'Ñ'¨Ô0÷		1÷1ð 1÷"ð "ú÷	1ð 	1ú÷1ð 1ús/   œB ÁB8Á5B,ÂB8Â B)Â,B5	Â1B8Â8Cc                  óš   — t        d«      } t        j                  t        d¬«      5  | j	                  «        ddd«       y# 1 sw Y   yxY w)z9Check that validate_params works with Estimator instancesrÀ   z'The 'a' parameter of _Estimator must bero   N)rB   rq   rr   r   rK   )Úests    r1   Útest_validate_params_estimatorrÔ   &  s@   € ô �WÓ
€Cä	�‰ÜÐ%Nô
ñ ð 	�‰Œ	÷÷ ñ ús   §AÁA
c                  ó†   — t        j                  t        d¬«      5  t        h d£ddh¬«       ddd«       y# 1 sw Y   yxY w)z@Check that the deprecated parameter must be a subset of options.z#deprecated options must be a subsetro   >   r'   r(   r)   r'   r*   r   N)rq   rr   r½   r   r.   r4   r1   Ú!test_stroptions_deprecated_subsetrÖ   1  s4   € ä	�‰”zÐ)NÔ	Oñ ;Ü’?°°S¨zÕ:÷;÷ ;ñ ;ús	   œ7·A c                  ó4  — t        dt        t        «      t        gid¬«      d„ «       }  | ddddœ«        | g d	¢«       t	        j
                  t        d
¬«      5 } | d¬«       ddd«       t        j                  «      }d|v sJ ‚d|vsJ ‚y# 1 sw Y   Œ+xY w)zECheck that internal constraints are not exposed in the error message.ÚparamTr+   c                  ó   — y rE   r.   ©rØ   s    r1   Úfz!test_hidden_constraint.<locals>.f:  s   € ð 	r4   rg   rS   r˜   )r'   r(   r)   rÄ   úThe 'param' parameterro   ÚbadrÚ   Nzan instance of 'dict'zan instance of 'list')	r%   r   ÚlistrN   rq   rr   r   rx   r¨   ©rÛ   Úexc_infoÚerr_msgs      r1   Útest_hidden_constraintrâ   7  s£   € ô Ø	”6œ$“<¤Ð&Ð'Àtôñóðñ ˆA�A˜AÑÔÙ‚i„Lä	�‰ÜÐ%<ô
ð à	Ù	��÷ô �(—.‘.Ó!€GØ" gÑ-Ð-Ð-Ø"¨'Ñ1Ð1Ñ1÷ð ús   Á
BÂBc            	      ó@  — t        dt        dh«      t        t        dh«      «      gid¬«      d„ «       }  | d«        | d«       t        j                  t
        d¬«      5 } | d	¬
«       ddd«       t        j                  «      }d|v sJ ‚d|vsJ ‚y# 1 sw Y   Œ+xY w)zBCheck that we can have 2 StrOptions constraints, one being hidden.rØ   ÚautoÚwarnTr+   c                  ó   — y rE   r.   rÚ   s    r1   rÛ   z!test_hidden_stroptions.<locals>.fR  ó   € ð
 	r4   rÜ   ro   rÝ   rÚ   N)r%   r   r   rq   rr   r   rx   r¨   rß   s      r1   Útest_hidden_stroptionsrè   O  s«   € ô Ø	”:˜v˜hÓ'¬´
¸F¸8Ó0DÓ)EÐFÐGØ&*ôñó	ðñ €f„IÙ€f„Iä	�‰ÜÐ%<ô
ð à	Ù	��÷ô �(—.‘.Ó!€GØ�WÑÐÐØ˜Ñ Ð Ñ ÷ð ús   Á 
BÂBc                  óh   — t        t        d«      sJ ‚t        t        «       j                  d«      sJ ‚y)zˆCheck that the validate_params decorator properly sets the parameter constraints
    as attribute of the decorated function/method.
    Ú_skl_parameter_constraintsN)Úhasattrr2   r6   r:   r.   r4   r1   Ú4test_validate_params_set_param_constraints_attributerì   h  s.   € ô ”5Ð6Ô7Ð7Ð7Ü”6“8×#Ñ#Ð%AÔBÐBÑBr4   c                  óv   — t        ddgid¬«      d„ «       }  | d«        | t        j                  d«      «       y)z’Check that validate_params raise a deprecation message but still passes
    validation when using an int for a parameter accepting a boolean.
    rØ   r¯   Tr+   c                  ó   — y rE   r.   rÚ   s    r1   rÛ   z1test_boolean_constraint_deprecated_int.<locals>.fu  rL   r4   FN)r%   rc   Úbool_©rÛ   s    r1   Ú&test_boolean_constraint_deprecated_intrñ   p  s>   € ô
 �g 	˜{Ð+È4ÔPñó Qðñ €d„GÙ„b‡h�hˆuƒoÕr4   c                  óò   — t        t        dgddœd¬«      dd„«       } t        j                  t        d¬«      5   | d	¬
«       ddd«        G d„ d«      } | |¬«        |  |«       ¬«       y# 1 sw Y   Œ+xY w)z5Check that validation can be skipped for a parameter.NÚno_validation©Úparam1Úparam2Tr+   c                  ó   — y rE   r.   rô   s     r1   rÛ   ztest_no_validation.<locals>.f�  rç   r4   zThe 'param1' parameterro   rÀ   )rõ   c                   ó   — e Zd Zy)ú$test_no_validation.<locals>.SomeTypeN)r=   r>   r?   r.   r4   r1   ÚSomeTyperù   �  s   „ Ør4   rú   )rö   rM   ©r%   r€   rq   rr   r   )rÛ   rú   s     r1   Útest_no_validationrü   ~  sw   € ô Ü˜�;¨/Ñ:Ø&*ôòó	ðô 
�‰Ô,Ð4LÔ	Mñ Ù	�Õ÷÷ñ ñ ˆXÕÙ‰X‹ZÖ÷ð ús   ¹
A-Á-A6c                  óÌ   — t        j                  d«      } t        «       }|j                  | j                  «      sJ ‚|j                  t        j                  g d¢«      «      rJ ‚y)z9Add a specific test for checking support for `pandas.NA`.ÚpandasrÄ   N)rq   Úimportorskipr   rw   ÚNArc   Úarray)ÚpdÚna_constraints     r1   Ú$test_pandas_na_constraint_with_pd_nar  ”  sR   € ä	×	Ñ	˜XÓ	&€Bä'Ó)€MØ×(Ñ(¨¯©Ô/Ð/Ð/Ø×,Ñ,¬R¯X©X²iÓ-@ÔAÐAÐAÐAr4   c                  ó    — t        «       } | j                  g d¢«      sJ ‚| j                  t        d«      «      sJ ‚| j                  d«      rJ ‚y)zGCheck that a string does not satisfy the _IterableNotString constraint.rÄ   rž   zsome stringN)r   rw   Úranger    s    r1   Útest_iterable_not_stringr  �  sM   € ä$Ó&€JØ×%Ñ%¢iÔ0Ð0Ð0Ø×%Ñ%¤e¨B£iÔ0Ð0Ð0Ø×)Ñ)¨-Ô8Ð8Ð8Ð8r4   c                  ó  — t        «       } | j                  d«      sJ ‚| j                  t        «       «      sJ ‚| j                  ddgddgfddgddgfg«      sJ ‚| j                  d«      sJ ‚| j                  d«      rJ ‚y)zUCheck that the _CVObjects constraint accepts all current ways
    to pass cv objects.rš   rg   rS   r˜   r›   Nznot a CV object)r   rw   r   r    s    r1   Útest_cv_objectsr	  ¥  s”   € ô “€JØ×%Ñ% aÔ(Ð(Ð(Ø×%Ñ%¤k£mÔ4Ð4Ð4Ø×%Ñ%¨¨A¨°°A°Ð'7¸1¸a¸&À1ÀaÀ&Ð9IÐ&JÔKÐKÐKØ×%Ñ% dÔ+Ð+Ð+Ø×)Ñ)Ð*;Ô<Ð<Ð<Ð<r4   c                  óP   —  G d„ dt         «      }  | d¬«      j                  «        y)zÆCheck that the validation from a scikit-learn estimator inherited by a third
    party estimator does not impose a match between the dict of constraints and the
    parameters of the estimator.
    c                   ó*   ‡ — e Zd Zˆ fd„Zdˆ fd„	Zˆ xZS )ú7test_third_party_estimator.<locals>.ThirdPartyEstimatorc                 ó4   •— || _         t        ‰| �	  d¬«       y )Nr   rF   )r(   ÚsuperrG   )r9   r(   r¹   s     €r1   rG   z@test_third_party_estimator.<locals>.ThirdPartyEstimator.__init__·  s   ø€ ØˆDŒFÜ‰GÑ˜qÐÕ!r4   c                 ó&   •— t         ‰| �  ||«       y rE   )r  rK   )r9   rI   rJ   r¹   s      €r1   rK   z;test_third_party_estimator.<locals>.ThirdPartyEstimator.fit»  s   ø€ Ü‰G‰K˜˜1Õr4   rM   )r=   r>   r?   rG   rK   Ú__classcell__)r¹   s   @r1   ÚThirdPartyEstimatorr  ¶  s   ø„ ô	"÷	ñ 	r4   r  r   ©r(   N)rB   rK   )r  s    r1   Útest_third_party_estimatorr  °  s!   € ôœjô ñ ˜!Ô× Ñ Õ"r4   c                  óv   — t        t        ddd¬«      } | j                  d«      sJ ‚| j                  d«      rJ ‚y)z9Check for the type RealNotInt in the Interval constraint.r   rg   rX   rU   rk   N)r   r   rw   r    s    r1   Útest_interval_real_not_intr  Ã  s=   € äœ* a¨°6Ô:€JØ×%Ñ% cÔ*Ð*Ð*Ø×)Ñ)¨!Ô,Ð,Ð,Ð,r4   c                  óà   — t        dt        «      sJ ‚t        dt        «      rJ ‚t        t        j                  d«      t        «      sJ ‚t        t        j                  d«      t        «      rJ ‚y)zCheck for the RealNotInt type.rk   rg   N)Ú
isinstancer   rc   Úfloat64Úint64r.   r4   r1   Útest_real_not_intr  Ê  sU   € ä�cœ:Ô&Ð&Ð&Ü˜!œZÔ(Ð(Ð(Ü”b—j‘j “m¤ZÔ0Ð0Ð0Üœ"Ÿ(™( 1›+¤zÔ2Ð2Ð2Ð2r4   c                  óþ   — t        dt        gid¬«      d„ «       } t        j                  t        d¬«      5   | d¬«       d	d	d	«       t        d¬
«      5   | d¬«       d	d	d	«       y	# 1 sw Y   Œ(xY w# 1 sw Y   y	xY w)z@Check that param validation can be skipped using config_context.r'   Tr+   c                  ó   — y rE   r.   rF   s    r1   rÛ   z%test_skip_param_validation.<locals>.fÕ  rL   r4   úThe 'a' parameterro   Ú1rF   N©Úskip_parameter_validation)r%   r€   rq   rr   r   r   rð   s    r1   Útest_skip_param_validationr!  Ò  s}   € ô �cœC˜5�\ÀÔFñó Gðô 
�‰Ô,Ð4GÔ	Hñ Ù	ˆC�÷ô 
°$Ô	7ñ Ù	ˆC�÷ð ÷	ð ú÷ð ús   ¶
A'Á
A3Á'A0Á3A<r,   Fc                 ón  ‡— t        dt        gid¬«      d„ «       Št        dt        gi| ¬«      ˆfd„«       }t        j                  t        d¬«      5   |d	¬
«       ddd«       | r
 |d¬
«       yt        j                  t        d¬«      5   |d¬
«       ddd«       y# 1 sw Y   ŒCxY w# 1 sw Y   yxY w)z,Check that nested validation can be skipped.r'   Tr+   c                  ó   — y rE   r.   rF   s    r1   rÛ   z&test_skip_nested_validation.<locals>.få  rL   r4   r(   c                 ó   •—  ‰d¬«      S )NÚinvalid_param_valuerF   r.   )r(   rÛ   s    €r1   Úgz&test_skip_nested_validation.<locals>.gé  s   ø€ ñ Ð(Ô)Ð)r4   zThe 'b' parameterro   r%  r  Nrg   r  rû   )r,   r&  rÛ   s     @r1   Útest_skip_nested_validationr'  á  s·   ø€ ô �cœC˜5�\ÀÔFñó Gðô Ø	ŒsˆeˆØ&Côó*ó	ð*ô
 
�‰Ô,Ð4GÔ	Hñ #Ù	Ð!Õ"÷#ñ %Ù	ˆAŽä�]‰]Ô0Ð8KÔLñ 	Ù��F÷	ð 	÷#ð #ú÷	ð 	ús   Á
BÂ
B+ÂB(Â+B4zJskip_parameter_validation, prefer_skip_nested_validation, expected_skipped))TTT)TFT)FTT)FFFc                 ó˜   — t        dt        gi|¬«      d„ «       }t        | ¬«      5   |d«      }ddd«       |k(  sJ ‚y# 1 sw Y   ŒxY w)z5Check interaction between global skip and local skip.r'   r+   c                 ó   — t        «       d   S )Nr   )r   rF   s    r1   r&  z9test_skip_nested_validation_and_config_context.<locals>.g
  s   € ô ‹|Ð7Ñ8Ð8r4   r  rg   N)r%   r€   r   )r   r,   Úexpected_skippedr&  Úactual_skippeds        r1   Ú.test_skip_nested_validation_and_config_contextr,  ü  sa   € ô Ø	ŒsˆeˆÐ4Qôñ9óð9ô 
Ð2KÔ	Lñ Ù˜1›ˆ÷ð Ð-Ò-Ð-Ñ-÷ð ús   §	A Á A	)r   )eÚnumbersr   r   Únumpyrc   rq   Úscipy.sparser   r   Úsklearn._configr   r   Úsklearn.baser	   r
   Úsklearn.model_selectionr   Úsklearn.utilsr   Úsklearn.utils._param_validationr   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r    r!   r"   r#   r$   r%   Úsklearn.utils.fixesr&   r2   r6   rB   ÚmarkÚparametrizer\   ra   rf   rj   Ú	TypeErrorr½   ru   r{   r   r€   Úndarrayr…   r’   r—   r£   rÞ   r¦   r©   rl   Úfloat32r  Úcallabler  ÚrandomÚRandomStateri   r`   rµ   r»   r¾   rÆ   rÊ   rÏ   rÑ   rÔ   rÖ   râ   rè   rì   rñ   rü   r  r  r	  r  r  r  r!  r'  r,  )Ú	containers   0r1   ú<module>r?     s›
  ðß "ã Û ß .ç 6ß 4Ý /Ý $÷÷ ÷ ÷ ÷ ÷ ó õ4 /ñ Øˆ&˜�v T F°$°Ñ8Ø"&ôð:˜aó :ó	ð:÷
,ñ 
,ô
�ô 
ð ‡�×Ñ˜¨8°TÐ*:Ó;ñó <ðð& ‡�×Ñ˜¨8°TÐ*:Ó;ñ#ó <ð#ò(#ð  ‡�×ÑØÙˆd�A�q Ô(©(°4¸¸tÈFÔ*SÐTóñ"ó	ð"ð
 ‡�×ÑØð  s°QÀ&ÑIØØLð	
ð  q°3À)ÑLØØLð	
ð  t°aÀ6ÑJØØ5ð	
ð  q°4À7ÑKØØ7ð	
ð  q°2ÀÑHØØ,ð	
ð+óñ<ó=ð<ò.ò/ð ‡�×ÑØà	ˆeˆØ	�5ÐØ	ˆwˆØ	�‰�_Ð%ð	óñGóðGòCð( ‡�×ÑØá��t˜Q vÔ.Ù��q˜$ vÔ.Ù��t˜T¨)Ô4Ù’?Ó#Ù‹Ù 4Ô(ÙÓÙ�5ÓÙÓÙ‹ðóñ5óð5ð ‡�×ÑØ%ñ �X˜t Q¨wÔ7Ù�Z  Q¨vÔ6ð	
ñ
 �X˜t Q¨wÔ7Ù�Z  Q¨yÔ9ð	
ñ
 �X˜t Q¨wÔ7Ù�Z  A¨fÔ5ð	
ñ
 �X˜t Q¨wÔ7Ù�Z  D°Ô8ð	
ñ
 �X˜t Q¨wÔ7Ù�Z  D°Ô;ð	
ñ
 �X˜q $¨vÔ6Ù�Z  Q¨vÔ6ð	
ñ
 �X˜q $¨vÔ6Ù�Z  Q¨yÔ9ð	
ñ
 �X˜q $¨vÔ6Ù�Z  A¨fÔ5ð	
ñ
 �X˜q $¨vÔ6Ù�Z  r°&Ô9ð	
ñ
 �X˜q $¨vÔ6Ù�Z  r°)Ô<ð	
ñ
 �X˜r 1¨VÔ4Ù�Z  q°Ô9ð	
ñ
 �X˜r 1¨VÔ4Ù�Z  D°Ô8ð	
ñ
 �X˜r 1¨VÔ4Ù�Z  b°Ô;ð	
ñ
 �X˜r 1¨VÔ4Ù�Z  b°Ô9ð	
ñ
 �X˜r 1¨YÔ7Ù�Z  B¨yÔ9ð	
ñ
 �X˜r 1¨YÔ7Ù�Z  B¨vÔ6ð	
ñ
 �X˜q $¨vÔ6Ù�Z  A¨fÔ5ð	
ñ
 �X˜q $¨vÔ6Ù�Z  A¨fÔ5ð	
ðKIóLñZ
;ó[LðZ
;ð ‡�×ÑØá‹Ù�TÓÙ‹ÙÓÙ‹ÙÓÙ‹Ù�˜4 ¨iÔ8ð	óñ/óð/ð ‡�×ÑØá‹Ù‹Ù�TÓÙÓÙ‹ÙÓÙ‹ÙÓÙ‹Ù 4Ô(Ù’?Ó#Ù�š)Ó$Ù�˜4 ¨iÔ8Ù�˜1˜b¨Ô3Ù�˜1˜d¨9Ô5Ù�˜4 ¨9Ô5Ù��q˜! IÔ.Ù��q˜$ vÔ.Ù��t˜Q wÔ/Ù�5ÓÙÓÙ‹ð-óñ6-ó7ð6-ð ‡�×ÑØ#á	�$˜˜1 VÔ	,¨dÐ3Ù	�(˜A˜t¨IÔ	6¸Ð;Ù	’OÓ	$ cÐ*Ù	�˜Ÿ
™
 B§J¡JÐ/Ó	0°"·*±*Ð=Ø	‘?Ð#ØØ	˜˜A˜  A Ð'Ð(Ø	�x�r—x‘x ! Q ¨!¨Q¨Ð 0Ó1Ð2Ø	™* q¨! f¨q°!¨fÐ%5Ó6Ð7Ø	™) a¨ V¨a°¨VÐ$4Ó5Ð6ð!ð ,ö

àð ™i¨!¨Q¨°!°Q°Ð(8Ó9Ò:ò

ð!ð 	ð!ð  
˜Ÿ™×.Ñ.¨qÓ1Ð2ð!!ð" 	ð#!ð$ 
‘“Ðð%!ð& 
ˆaˆð'!ð( 
ˆsˆð)!ð* 	ð+!ð, 	ð-!ð. 
�—‘ˆð/!ñ0 
‹˜"Ðð1!ñ2 
‹˜$Ðð3!ñ4 
‹˜!˜T™'Ð"ð5!ñ6 
‹˜$Ðð7!ñ8 
‹™% ›,Ð'ð9!ñ: 
‹˜"Ÿ&™&Ð!ð;!ñ< 
‹˜)Ð$ð=!ñ> 
�EÓ	™J¨œOÐ,ð?!ð@ 	ðA!ó$ñJ-óK$ðJ-ð ‡�×ÑØ7á	�$˜˜1 VÔ	,¨hÐ7Ù	�Y 	Ð*Ó	+¨ZÐ8Ù	�˜˜d�|Ó	$ gÐ.Ø	�{Ð#Ø	˜/Ð*Ø	˜Ð'Ø	ˆÐØ	�:ÐØ	ˆlÐØ	�IÐØ	�NÐ#Ù	 DÔ	)¨=Ð9Ù	�EÓ	˜JÐ'Ø	�jÐ!Ø	�ÐØ	�‰�Ð ð!óñ*=ó+ð*=ò2ò3òD	ò0ò1ò ò;ò2ò0!ò2Còòò,Bò9ò=ò#ò&-ò3òð ‡�×ÑÐ8¸4À¸-ÓHñó Iðð4 ‡�×ÑØPòóñ.óñ.ùòW

s   ×^