Ë
    ÷Q(h5_  ã                   óú  — d dl mZmZ d dlZd dl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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«      Z/ej`                  jc                  deeg«      d„ «       Z2ej`                  jc                  deeg«      d„ «       Z3d„ Z4ej`                  jc                  d eed dd¬«       eeddd¬«      g«      d„ «       Z5ej`                  jc                  dedddd œe6d!fedd"d#d œe6d$fedd dd œe7d%fed dd&d œe7d'fedd(dd œe7d)fg«      d*„ «       Z8d+„ Z9d,„ Z:ej`                  jc                  d-e;d.fed.fed/fejx                  d0fg«      d1„ «       Z=d2„ Z>ej`                  jc                  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j`                  jc                  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„ «       Z@ej`                  jc                  d3 e«        eeA«       e«        e"«        e$«        e%«        e«        eeddd#¬«      g«      dB„ «       ZBej`                  jc                  d3 e«        e«        eeA«       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„ «       ZCej`                  jc                  dE eed dd¬«      dFf eed dd#¬«      dGf eh d4£«      dHf eeDejŠ                  ejŒ                  h«      ejŒ                  feGdI„ 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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«        eLdS«      f‘ e«       ej–                  f‘ e«       dVf‘ ed6«       e/d ¬W«      f‘dX‘«      dY„ «       ZMej`                  jc                  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eGefe;efd^efd_e&f ed¬5«      ef ed6«      efd`efdSe!fg«      da„ «       ZNdb„ ZOdc„ ZPdd„ ZQde„ ZRdf„ ZSdg„ ZTdh„ ZUdi„ ZVdj„ ZWdk„ ZXdl„ ZYdm„ ZZdn„ Z[do„ Z\dp„ Z]dq„ Z^dr„ Z_ds„ Z`dt„ Zaej`                  jc                  duddvg«      dw„ «       Zbej`                  jc                  dxg dy¢«      dz„ «       Zcyc c} w )|é    )ÚIntegralÚRealN)Ú
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         úg/var/www/skyplay_api_hub/venv/lib/python3.12/site-packages/sklearn/utils/tests/test_param_validation.pyÚ_funcr1   )   ó   � ó    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     r0   Ú_methodz_Class._method4   r2   r3   c                  ó   — y)zA deprecated validated methodNr-   r7   s     r0   Ú_deprecated_methodz_Class._deprecated_method8   r2   r3   N)	Ú__name__Ú
__module__Ú__qualname__Ú__doc__r$   r   r9   r   r;   r-   r3   r0   r5   r5   1   sQ   „ ÙTá�c˜D˜6�]À$ÔGñ!ó Hð!ñ ƒ\Ù�c˜D˜6�]À$ÔGñ,ó Hó ñ,r3   r5   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&   r7   s     r0   Ú__init__z_Estimator.__init__C   s	   € Øˆ�r3   Tr*   Nc                  ó   — y rD   r-   )r8   ÚXÚys      r0   Úfitz_Estimator.fitF   ó   € àr3   ©NN)r<   r=   r>   r?   r   rB   ÚdictÚ__annotations__rF   r	   rJ   r-   r3   r0   rA   rA   >   s4   … ÙFà$'¨$¨ =Ð˜DÓ0òñ °Ô5òó 6ñr3   rA   Ú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   ©rO   Úintervals     r0   Ú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ÑÐÑr3   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   rR   rX   rT   éA   é€   i   N)r   ÚfloatrY   s     r0   Útest_interval_large_integersr`   _   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˜(Ñ"Ð"Ñ"r3   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   NrV   rT   rS   rX   )r   r   ÚnpÚinf©rZ   s    r0   Útest_interval_inf_in_boundsre   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˜(Ñ"Ð"Ñ"r3   rZ   é   rS   rT   rW   c                 ó,   — t         j                  | vsJ ‚y)z)Check that np.nan is not in any interval.N)rb   Únanrd   s    r0   Útest_nan_not_in_intervalri   „   s   € ô �6‰6˜Ñ!Ð!Ñ!r3   zparams, error, matchç      ð?rR   )ÚtyperS   rV   rU   z=Expecting left to be an int for an interval over the integersg       @rX   z>Expecting right to be an int for an interval over the integersz&left can't be None when closed == leftrV   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Úerrorro   s      r0   Útest_interval_errorsrt   �   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    r0   Útest_stroptionsrz   ±   s^   € äš°c°UÔ;€GØ×"Ñ" 3Ô'Ð'Ð'Ø×"Ñ" 3Ô'Ð'Ð'Ø×&Ñ& sÔ+Ð+Ð+à¤ W£Ñ-Ð-Ñ-r3   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   rb   rc   rv   rw   rx   s    r0   Útest_optionsr~   »   so   € ä”d˜T 3¬¯©Ð/¸T¸FÔC€GØ×"Ñ" 4Ô(Ð(Ð(Ø×"Ñ"¤2§6¡6Ô*Ð*Ð*Ø×&Ñ& tÔ,Ð,Ð,à¤# g£,Ñ.Ð.Ñ.r3   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   rw   )rk   Úexpected_type_nameÚ
constraints      r0   Ú%test_instances_of_type_human_readabler„   Å   s,   € ô ˜dÓ#€JÜˆz‹?Ð 0Ð1CÐ0DÀAÐFÒFÐFÑFr3   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 rD   r-   ©r8   s    r0   r&   z test_hasmethods.<locals>._Good.aÙ   ó   € Ør3   c                  ó   — y rD   r-   r‰   s    r0   r'   z test_hasmethods.<locals>._Good.bÜ   rŠ   r3   N)r<   r=   r>   r&   r'   r-   r3   r0   Ú_Goodr‡   Ø   s   „ ò	ó	r3   rŒ   c                   ó   — e Zd Zd„ Zy)útest_hasmethods.<locals>._Badc                  ó   — y rD   r-   r‰   s    r0   r&   ztest_hasmethods.<locals>._Bad.aà   rŠ   r3   N)r<   r=   r>   r&   r-   r3   r0   Ú_BadrŽ   ß   s   „ ó	r3   r�   z"an object implementing 'a' and 'b'N)r   rv   rw   )rƒ   rŒ   r�   s      r0   Útest_hasmethodsr‘   Ô   se   € ä˜S #˜JÓ'€J÷ñ ÷ñ ð ×%Ñ%¡e£gÔ.Ð.Ð.Ø×)Ñ)©$«&Ô1Ð1Ð1Üˆz‹?ÐBÒBÐBÑBr3   rƒ   >   r&   r'   r(   )Únumeric_onlyrJ   c                 ó@   — t        | «      }| j                  |«      rJ ‚y)z>Check that the value generated does not satisfy the constraintN©r!   rv   )rƒ   Ú	bad_values     r0   Útest_generate_invalid_param_valr–   è   s%   € ô" +¨:Ó6€IØ×)Ñ)¨)Ô4Ð4Ð4Ð4r3   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      r0   Ú+test_generate_invalid_param_val_2_intervalsr¢   ý   sm   € ôb +°mÔD€IØ×,Ñ,¨YÔ7Ð7Ð7Ø×/Ñ/°	Ô:Ð:Ð:ä*Ð6FÔG€IØ×,Ñ,¨YÔ7Ð7Ð7Ø×/Ñ/°	Ô:Ð:Ð:Ð:r3   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)rp   rq   ÚNotImplementedErrorr!   rŸ   s    r0   Ú)test_generate_invalid_param_val_all_validr¥   W  s.   € ô" 
�‰Ô*Ó	+ñ /Ü" :Ô.÷/÷ /ñ /ús   š/¯8>   rf   rR   r—   c                 ó@   — t        | «      }| j                  |«      sJ ‚y)z;Check that the value generated does satisfy the constraint.N)r"   rv   )rƒ   Úvalues     r0   Útest_generate_valid_paramr¨   l  s"   € ô: ! Ó,€EØ×%Ñ% eÔ,Ð,Ñ,r3   zconstraint_declaration, valuegáz®GáÚ?é*   r'   c                 ó   — | dz   S )Nrf   r-   )Úxs    r0   ú<lambda>r¬   ”  s
   € ˜Q ™U€ r3   rL   z
array-likezsparse matrix)Úrandom_stater   r­   )r­   Nr|   )ÚbooleanF)Úverboserf   rh   g      ð¿i  ÚmissingrE   )Ú	cv_objectr™   c                 ó@   — t        | «      }|j                  |«      sJ ‚y)z+Sanity check for the is_satisfied_by methodN)r#   rv   )Úconstraint_declarationr§   rƒ   s      r0   Útest_is_satisfied_byr´   �  s$   € ôL !Ð!7Ó8€JØ×%Ñ% eÔ,Ð,Ñ,r3   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      r0   Útest_make_constraintrº   ·  s$   € ô, !Ð!7Ó8€JØ×ÑÐ#<Ñ<Ð<Ñ<r3   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 constraintrn   znot a valid constraintN)rp   rq   Ú
ValueErrorr#   r-   r3   r0   Ú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 bern   Úwrongrf   ©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¿   rR   r—   rš   Úer™   ©rf   rR   r—   Úfour)rf   )rp   rq   r   r1   r-   r3   r0   Ú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 rD   r-   )r&   r'   s     r0   Úfuncz1test_validate_params_missing_params.<locals>.funcþ  rK   r3   rf   rR   N)r$   r   )rÈ   s    r0   Ú#test_validate_params_missing_paramsrÉ   ù  s/   € ô
 �cœC˜5�\ÀÔFñó Gðñ 	ˆˆA…Jr3   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 deprecatedrn   rf   rR   r—   rÀ   NrÁ   r¿   )r   r1   rp   ÚwarnsÚFutureWarningrq   r   )Údecorated_functions    r0   Ú 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 bern   r¿   Nz)Function _deprecated_method is deprecatedz6The 'a' parameter of _Class._deprecated_method must be)rp   rq   r   r5   r9   rË   rÌ   r;   r-   r3   r0   Ú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 bern   N)rA   rp   rq   r   rJ   )Úests    r0   Ú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 subsetrn   >   r&   r'   r(   r&   r)   r   N)rp   rq   r¼   r   r-   r3   r0   Ú!test_stroptions_deprecated_subsetrÕ   /  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 rD   r-   ©r×   s    r0   Úfz!test_hidden_constraint.<locals>.f8  s   € ð 	r3   rf   rR   r—   )r&   r'   r(   rÃ   úThe 'param' parameterrn   ÚbadrÙ   Nzan instance of 'dict'zan instance of 'list')	r$   r   ÚlistrM   rp   rq   r   rw   r§   ©rÚ   Úexc_infoÚerr_msgs      r0   Útest_hidden_constraintrá   5  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 rD   r-   rÙ   s    r0   rÚ   z!test_hidden_stroptions.<locals>.fP  ó   € ð
 	r3   rÛ   rn   rÜ   rÙ   N)r$   r   r   rp   rq   r   rw   r§   rÞ   s      r0   Útest_hidden_stroptionsrç   M  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)Úhasattrr1   r5   r9   r-   r3   r0   Ú4test_validate_params_set_param_constraints_attributerë   f  s.   € ô ”5Ð6Ô7Ð7Ð7Ü”6“8×#Ñ#Ð%AÔBÐBÑBr3   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 rD   r-   rÙ   s    r0   rÚ   z1test_boolean_constraint_deprecated_int.<locals>.fs  rK   r3   FN)r$   rb   Úbool_©rÚ   s    r0   Ú&test_boolean_constraint_deprecated_intrð   n  s>   € ô
 �g 	˜{Ð+È4ÔPñó Qðñ €d„GÙ„b‡h�hˆuƒoÕr3   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 rD   r-   ró   s     r0   rÚ   ztest_no_validation.<locals>.f  ræ   r3   zThe 'param1' parameterrn   r¿   )rô   c                   ó   — e Zd Zy)ú$test_no_validation.<locals>.SomeTypeN)r<   r=   r>   r-   r3   r0   ÚSomeTyperø   ‹  s   „ Ør3   rù   )rõ   rL   ©r$   r   rp   rq   r   )rÚ   rù   s     r0   Ú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)rp   Úimportorskipr   rv   ÚNArb   Úarray)ÚpdÚna_constraints     r0   Ú$test_pandas_na_constraint_with_pd_nar  ’  sR   € ä	×	Ñ	˜XÓ	&€Bä'Ó)€MØ×(Ñ(¨¯©Ô/Ð/Ð/Ø×,Ñ,¬R¯X©X²iÓ-@ÔAÐAÐAÐAr3   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   rv   ÚrangerŸ   s    r0   Útest_iterable_not_stringr  ›  sM   € ä$Ó&€JØ×%Ñ%¢iÔ0Ð0Ð0Ø×%Ñ%¤e¨B£iÔ0Ð0Ð0Ø×)Ñ)¨-Ô8Ð8Ð8Ð8r3   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™   rf   rR   r—   rš   Nznot a CV object)r   rv   r
   rŸ   s    r0   Útest_cv_objectsr  £  s”   € ô “€JØ×%Ñ% aÔ(Ð(Ð(Ø×%Ñ%¤k£mÔ4Ð4Ð4Ø×%Ñ%¨¨A¨°°A°Ð'7¸1¸a¸&À1ÀaÀ&Ð9IÐ&JÔKÐKÐKØ×%Ñ% dÔ+Ð+Ð+Ø×)Ñ)Ð*;Ô<Ð<Ð<Ð<r3   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   rE   )r'   ÚsuperrF   )r8   r'   r¸   s     €r0   rF   z@test_third_party_estimator.<locals>.ThirdPartyEstimator.__init__µ  s   ø€ ØˆDŒFÜ‰GÑ˜qÐÕ!r3   c                 ó&   •— t         ‰| �  ||«       y rD   )r  rJ   )r8   rH   rI   r¸   s      €r0   rJ   z;test_third_party_estimator.<locals>.ThirdPartyEstimator.fit¹  s   ø€ Ü‰G‰K˜˜1Õr3   rL   )r<   r=   r>   rF   rJ   Ú__classcell__)r¸   s   @r0   ÚThirdPartyEstimatorr  ´  s   ø„ ô	"÷	ñ 	r3   r  r   ©r'   N)rA   rJ   )r  s    r0   Útest_third_party_estimatorr  ®  s!   € ôœjô ñ ˜!Ô× Ñ Õ"r3   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   rf   rW   rT   rj   N)r   r   rv   rŸ   s    r0   Útest_interval_real_not_intr  Á  s=   € äœ* a¨°6Ô:€JØ×%Ñ% cÔ*Ð*Ð*Ø×)Ñ)¨!Ô,Ð,Ð,Ð,r3   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.rj   rf   N)Ú
isinstancer   rb   Úfloat64Úint64r-   r3   r0   Útest_real_not_intr  È  sU   € ä�cœ:Ô&Ð&Ð&Ü˜!œZÔ(Ð(Ð(Ü”b—j‘j “m¤ZÔ0Ð0Ð0Üœ"Ÿ(™( 1›+¤zÔ2Ð2Ð2Ð2r3   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 rD   r-   rE   s    r0   rÚ   z%test_skip_param_validation.<locals>.fÓ  rK   r3   úThe 'a' parameterrn   Ú1rE   N©Úskip_parameter_validation)r$   r   rp   rq   r   r   rï   s    r0   Ú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 rD   r-   rE   s    r0   rÚ   z&test_skip_nested_validation.<locals>.fã  rK   r3   r'   c                 ó   •—  ‰d¬«      S )NÚinvalid_param_valuerE   r-   )r'   rÚ   s    €r0   Úgz&test_skip_nested_validation.<locals>.gç  s   ø€ ñ Ð(Ô)Ð)r3   zThe 'b' parameterrn   r$  r  Nrf   r  rú   )r+   r%  rÚ   s     @r0   Ú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   rE   s    r0   r%  z9test_skip_nested_validation_and_config_context.<locals>.g  s   € ô ‹|Ð7Ñ8Ð8r3   r  rf   N)r$   r   r   )r  r+   Úexpected_skippedr%  Úactual_skippeds        r0   Ú.test_skip_nested_validation_and_config_contextr+  ú  sa   € ô Ø	ŒsˆeˆÐ4Qôñ9óð9ô 
Ð2KÔ	Lñ Ù˜1›ˆ÷ð Ð-Ò-Ð-Ñ-÷ð ús   §	A Á A	)r   )dÚnumbersr   r   Únumpyrb   rp   Úscipy.sparser   Ú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%   r1   r5   rA   ÚmarkÚparametrizer[   r`   re   ri   Ú	TypeErrorr¼   rt   rz   r~   r   Úndarrayr„   r‘   r–   r¢   rÝ   r¥   r¨   rk   Úfloat32r  Úcallabler   ÚrandomÚRandomStaterh   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   0r0   ú<module>r>     ss
  ðß "ã Û Ý #ç 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ð ð ,ö

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

ð ð 	ð ð 
˜Ÿ™×.Ñ.¨qÓ1Ð2ð ð  	ð! ð" 
‘“Ðð# ð$ 
ˆaˆð% ð& 
ˆsˆð' ð( 	ð) ð* 	ð+ ð, 
�—‘ˆð- ñ. 
‹˜"Ðð/ ñ0 
‹˜$Ðð1 ñ2 
‹˜!˜T™'Ð"ð3 ñ4 
‹˜$Ðð5 ñ6 
‹™% ›,Ð'ð7 ñ8 
‹˜"Ÿ&™&Ð!ð9 ñ: 
‹˜)Ð$ð; ñ< 
�EÓ	™J¨œOÐ,ð= ð> 	ð? ó#ñH-óI#ðH-ð ‡�×ÑØ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òóñ.óñ.ùòU

s   Ö1]8