Ë
    ÜÍ:jîŠ  ã                   ó´  — d dl 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Zd dlmZmZ d dlmZmZmZmZmZ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" 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l0m1Z1 d dl2m3Z3m4Z4 d dl5m6Z6m7Z7  G d„ de«      Z8 G d„ de«      Z9 G d„ de«      Z: G d„ de«      Z; G d„ de«      Z< G d„ de;«      Z= G d„ d e;e<«      Z> G d!„ d"e>«      Z? G d#„ d$e«      Z@ G d%„ d&e«      ZA G d'„ d(«      ZB G d)„ d*e«      ZCd+„ ZDd,„ ZEd-„ ZFd.„ ZGd/„ ZHd0„ ZId1„ ZJd2„ ZKd3„ ZLd4„ ZMd5„ ZNd6„ ZOd7„ ZPej¢                  j¥                  d8 e'«       d9f e e'«       d:d;d<gi«      d9f e"d= e'«       fg«      d9f e"d> e e'«       d:d;d<gi«      fg«      d9f e(«       d?f e e(«       d:d;d<gi«      d?f e"d@ e(«       fg«      d?f e"dA e e(«       d:d;d<gi«      fg«      d?fg«      dB„ «       ZSej¢                  j¥                  d8 e(«       d9f e e(«       d:d;d<gi«      d9f e"d@ e(«       fg«      d9f e"dA e e(«       d:d;d<gi«      fg«      d9f e'«       d?f e e'«       d:d;d<gi«      d?f e"d= e'«       fg«      d?f e"d> e e'«       d:d;d<gi«      fg«      d?fg«      dC„ «       ZTej¢                  j¥                  d8 e«       d9f e e«       dDdEdFgi«      d9f e"dG e«       fg«      d9f e"dH e e«       dDdEdFgi«      fg«      d9f e'«       d?f e e'«       d:d;d<gi«      d?f e"d= e'«       fg«      d?f e"d> e e'«       d:d;d<gi«      fg«      d?fg«      dI„ «       ZUdJ„ ZVdK„ ZWdL„ ZXej¢                  j¥                  dM e*dNd ¬O«       ej²                  d ¬P«      f e+dNd ¬O«       ej´                  d ¬P«      fg«      dQ„ «       Z[dR„ Z\dS„ Z]dT„ Z^ G dU„ dVe*«      Z_dWZ`dX„ Za G dY„ dZe*«      Zbd[„ Zcej¢                  jÈ                  d\„ «       Ze G d]„ d^«      Zf G d_„ d`efe«      Zgda„ Zhdb„ Zi G dc„ dde«      Zjde„ Zkdf„ Zldg„ Zmdh„ Zndi„ Zodj„ Zpdk„ Zqdl„ Zrdm„ Zsdn„ Zt G do„ dp«      Zu G dq„ dreue«      Zvej¢                  j¥                  ds e«        ev«       g«      dt„ «       Zwdu„ Zxej¢                  j¥                  dvg dw¢«      dx„ «       Zy ed9¬y«      dz„ «       Zz ed9¬y«      d{„ «       Z{d|„ Z|d}„ Z}d~„ Z~d„ Zej¢                  j¥                  d€d�d‚d<gfd‚ e�j                   d<g«      fdƒd„dEd…gfd„ e�j                   dEd…g«      fd†dg fdd‡„ fe�j                  dˆfe�j                   e�j                   e�j                  g«      fd‰dŠdŠgfd‹d„d<d<gfd< e�j                   d<g«      fdŒdˆdˆgfdˆ e�j                   dˆg«      fd<dNgdEgf e�j                   d<g«      dNdEgfd e «       fd ed�«      fg«      dŽ„ «       Z‚d�„ Zƒej¢                  j¥                  d€d�d‘d‚g fd‚ e�j                   g «      fd’d“g d“¢fd“ e�j                   g d“¢«      fe�j                  e�j                  fd”d•d–d—d˜g«      d™„ «       Z„y)šé    N)Úassert_allclose)Úconfig_contextÚdatasets)ÚBaseEstimatorÚOutlierMixinÚTransformerMixinÚcloneÚis_classifierÚis_clustererÚis_regressor)ÚKMeans)ÚPCA)ÚInconsistentVersionWarning)Ú
get_scorer)ÚGridSearchCVÚKFold)ÚPipeline)ÚLabelEncoderÚStandardScaler)ÚSVCÚSVR)ÚDecisionTreeClassifierÚDecisionTreeRegressor)Ú
deprecated)ÚMockDataFrame)Ú_get_output_config)Ú_convert_containerÚassert_array_equal)Ú_check_n_featuresÚvalidate_datac                   ó   — e Zd Zdd„Zy)ÚMyEstimatorNc                 ó    — || _         || _        y ©N©Úl1Úempty)Úselfr&   r'   s      úl/home/mcse/projects/srt_converter/srt-converter-venv/lib/python3.12/site-packages/sklearn/tests/test_base.pyÚ__init__zMyEstimator.__init__.   s   € ØˆŒØˆ�
ó    )r   N©Ú__name__Ú
__module__Ú__qualname__r*   © r+   r)   r"   r"   -   s   „ ôr+   r"   c                   ó   — e Zd Zdd„Zy)ÚKNc                 ó    — || _         || _        y r$   )ÚcÚd)r(   r4   r5   s      r)   r*   z
K.__init__4   ó   € ØˆŒØˆ�r+   ©NNr,   r0   r+   r)   r2   r2   3   ó   „ ôr+   r2   c                   ó   — e Zd Zdd„Zy)ÚTNc                 ó    — || _         || _        y r$   )ÚaÚb)r(   r<   r=   s      r)   r*   z
T.__init__:   r6   r+   r7   r,   r0   r+   r)   r:   r:   9   r8   r+   r:   c                   ó   ‡ — e Zd Zˆ fd„Zˆ xZS )ÚNaNTagc                 óF   •— t         ‰| �  «       }d|j                  _        |S )NT©ÚsuperÚ__sklearn_tags__Ú
input_tagsÚ	allow_nan©r(   ÚtagsÚ	__class__s     €r)   rC   zNaNTag.__sklearn_tags__@   s!   ø€ Ü‰wÑ'Ó)ˆØ$(ˆ�‰Ô!Øˆr+   ©r-   r.   r/   rC   Ú__classcell__©rH   s   @r)   r?   r?   ?   ó   ø„ ÷ð r+   r?   c                   ó   ‡ — e Zd Zˆ fd„Zˆ xZS )ÚNoNaNTagc                 óF   •— t         ‰| �  «       }d|j                  _        |S ©NFrA   rF   s     €r)   rC   zNoNaNTag.__sklearn_tags__G   ó!   ø€ Ü‰wÑ'Ó)ˆØ$)ˆ�‰Ô!Øˆr+   rI   rK   s   @r)   rN   rN   F   rL   r+   rN   c                   ó   ‡ — e Zd Zˆ fd„Zˆ xZS )ÚOverrideTagc                 óF   •— t         ‰| �  «       }d|j                  _        |S rP   rA   rF   s     €r)   rC   zOverrideTag.__sklearn_tags__N   rQ   r+   rI   rK   s   @r)   rS   rS   M   rL   r+   rS   c                   ó   — e Zd Zy)ÚDiamondOverwriteTagN©r-   r.   r/   r0   r+   r)   rV   rV   T   ó   „ Ør+   rV   c                   ó   — e Zd Zy)ÚInheritDiamondOverwriteTagNrW   r0   r+   r)   rZ   rZ   X   rX   r+   rZ   c                   ó<   — e Zd ZdZ ej
                  dg«      fd„Zy)ÚModifyInitParamsz_Deprecated behavior.
    Equal parameters but with a type cast.
    Doesn't fulfill a is a
    r   c                 ó.   — |j                  «       | _        y r$   )Úcopyr<   ©r(   r<   s     r)   r*   zModifyInitParams.__init__b   s   € Ø—‘“ˆ�r+   N)r-   r.   r/   Ú__doc__ÚnpÚarrayr*   r0   r+   r)   r\   r\   \   s   „ ñð
 "˜Ÿ™ 1 #›ô r+   r\   c                   ó   — e Zd ZdZdd„Zy)ÚBuggyz9A buggy estimator that does not set its parameters right.Nc                 ó   — d| _         y ©Né   ©r<   r_   s     r)   r*   zBuggy.__init__i   s	   € Øˆ�r+   r$   ©r-   r.   r/   r`   r*   r0   r+   r)   rd   rd   f   s
   „ Ù?ôr+   rd   c                   ó"   — e Zd Zd„ Zdd„Zdd„Zy)ÚNoEstimatorc                  ó   — y r$   r0   ©r(   s    r)   r*   zNoEstimator.__init__n   ó   € Ør+   Nc                 ó   — | S r$   r0   ©r(   ÚXÚys      r)   ÚfitzNoEstimator.fitq   s   € Øˆr+   c                  ó   — y r$   r0   ©r(   rq   s     r)   ÚpredictzNoEstimator.predictt   s   € Ør+   r7   r$   )r-   r.   r/   r*   rs   rv   r0   r+   r)   rk   rk   m   s   „ òóôr+   rk   c                   ó   — e Zd ZdZd„ Zy)ÚVargEstimatorz-scikit-learn estimators shouldn't have vargs.c                  ó   — y r$   r0   )r(   Úvargss     r)   r*   zVargEstimator.__init__{   rn   r+   Nri   r0   r+   r)   rx   rx   x   s
   „ Ù7ór+   rx   c                  óì   — ddl m} m}  | |d¬«      }t        |«      }||usJ ‚|j	                  «       |j	                  «       k(  sJ ‚ | |t        j                  d«      ¬«      }t        |«      }||usJ ‚y )Nr   ©Ú	SelectFprÚ	f_classifçš™™™™™¹?©Úalpha)é
   é   )Úsklearn.feature_selectionr}   r~   r	   Ú
get_paramsra   Úzeros©r}   r~   ÚselectorÚnew_selectors       r)   Ú
test_clonerŠ   ƒ   sv   € ÷ ?á˜¨#Ô.€HÜ˜“?€LØ˜<Ñ'Ð'Ð'Ø×ÑÓ  L×$;Ñ$;Ó$=Ò=Ð=Ð=á˜¬"¯(©(°7Ó*;Ô<€HÜ˜“?€LØ˜<Ñ'Ð'Ñ'r+   c                  óh   — ddl m} m}  | |d¬«      }d|_        t	        |«      }t        |d«      rJ ‚y )Nr   r|   r   r€   ÚtestÚown_attribute)r„   r}   r~   r�   r	   Úhasattrr‡   s       r)   Útest_clone_2r�   •   s7   € ÷ ?á˜¨#Ô.€HØ#€HÔÜ˜“?€LÜ�| _Ô5Ð5Ð5Ð5r+   c                  ó*  — t        «       } d| _        t        j                  t        «      5  t        | «       d d d «       t        «       }t        j                  t        «      5  t        |«       d d d «       t        «       }t        j                  t        «      5  t        |«       d d d «       t        «       }t        j                  t        «      5  t        |«       d d d «       y # 1 sw Y   Œ¯xY w# 1 sw Y   Œ„xY w# 1 sw Y   ŒYxY w# 1 sw Y   y xY w)Nrƒ   )
rd   r<   ÚpytestÚraisesÚRuntimeErrorr	   rk   Ú	TypeErrorrx   r\   )ÚbuggyÚno_estimatorÚvarg_estÚests       r)   Útest_clone_buggyr™   £   sÒ   € ä‹G€EØ€E„GÜ	�‰”|Ó	$ñ ÜˆeŒ÷ô “=€LÜ	�‰”yÓ	!ñ ÜˆlÔ÷ô ‹€HÜ	�‰”|Ó	$ñ ÜˆhŒ÷ô Ó
€CÜ	�‰”|Ó	$ñ ÜˆcŒ
÷ð ÷ð ú÷ð ú÷ð ú÷ð ús/   «C%Á"C1ÂC=ÃD	Ã%C.Ã1C:Ã=DÄ	Dc                  ód  — t        t        j                  g «      ¬«      } t        | «      }t	        | j
                  |j
                  «       t        t        j                  t        j                  dgg«      «      ¬«      } t        | «      }t	        | j
                  j                  |j
                  j                  «       t        t        j                  t        j                  dgg«      «      ¬«      } t        | «      }t	        | j
                  j                  |j
                  j                  «       y )N©r'   r   )
r"   ra   rb   r	   r   r'   ÚspÚ
csr_matrixÚdataÚ	csr_array©ÚclfÚclf2s     r)   Útest_clone_empty_arrayr£   ·   s³   € ä
œBŸH™H R›LÔ
)€CÜ�‹:€DÜ�s—y‘y $§*¡*Ô-ä
œBŸM™M¬"¯(©(°Q°C°5«/Ó:Ô
;€CÜ�‹:€DÜ�s—y‘y—~‘~ t§z¡z§¡Ô7ä
œBŸL™L¬¯©°A°3°%«Ó9Ô
:€CÜ�‹:€DÜ�s—y‘y—~‘~ t§z¡z§¡Õ7r+   c                  ó‚   — t        t        j                  ¬«      } t        | «      }| j                  |j                  u sJ ‚y ©Nr›   )r"   ra   Únanr	   r'   r    s     r)   Útest_clone_nanr§   Æ   s/   € ä
œBŸF™FÔ
#€CÜ�‹:€Dà�9‰9˜Ÿ
™
Ñ"Ð"Ñ"r+   c                  óJ   — dt        «       i} t        | «      }| d   |d   usJ ‚y )Nr<   )r"   r	   )ÚorigÚcloneds     r)   Útest_clone_dictr«   Î   s-   € à”“Ð€DÜ�4‹[€FØ�‰9˜F 3™KÑ'Ð'Ñ'r+   c            	      ó  — t        t        «      D � cg c]G  } | j                  d«      s| j                  d«      r#t        t	        t        | «      x}«      t        u r|‘ŒI }} |D ]ž  } |t        j                  d«      «      }t        |¬«      }t        |«      }|j                  j                  |j                  j                  u sJ ‚t        |j                  j                  «       |j                  j                  «       «       Œ  y c c} w )NÚ_matrixÚ_arrayé   r›   )Údirrœ   ÚendswithÚtypeÚgetattrra   Úeyer"   r	   r'   rH   r   Útoarray)ÚnameÚclsÚsparse_matrix_classesÚsparse_matrixr¡   Ú
clf_cloneds         r)   Útest_clone_sparse_matricesr»   Õ   sÜ   € ô œ“GöàØ�=‰=˜Ô# t§}¡}°XÔ'>Ü”wœr 4Ó(Ð(�Ó)¬TÑ1ò 	ðÐð ð %ò LˆÙœBŸF™F 1›I›ˆÜ Ô.ˆÜ˜3“Zˆ
Ø�y‰y×"Ñ" j×&6Ñ&6×&@Ñ&@Ñ@Ð@Ð@Ü˜3Ÿ9™9×,Ñ,Ó.°
×0@Ñ0@×0HÑ0HÓ0JÕKñLùòs   ’ADc                  ón   — t        t         ¬«      } t        | «      }| j                  |j                  u sJ ‚y r¥   )r"   r	   r'   r    s     r)   Útest_clone_estimator_typesr½   å   s-   € ô œKÔ
(€CÜ�‹:€Dà�9‰9˜Ÿ
™
Ñ"Ð"Ñ"r+   c                  ó†   — d} t        j                  t        | ¬«      5  t        t        «       d d d «       y # 1 sw Y   y xY w)Nz8You should provide an instance of scikit-learn estimator©Úmatch)r‘   r’   r”   r	   r"   )Úmsgs    r)   Ú%test_clone_class_rather_than_instancerÂ   î   s5   € ð E€CÜ	�‰”y¨Ô	,ñ ÜŒkÔ÷÷ ñ ús	   ž7·A c                  óÊ   — t        «       } dt        | «      vsJ ‚t        «       }dt        |«      v sJ ‚t        d¬«      }dt        |«      vsJ ‚d|_        dt        |«      v sJ ‚y )NÚ
set_outputF)ÚprobabilityÚpredict_probaT)r   r°   r   r   rÅ   )ÚencoderÚscalarÚsvcs      r)   Ú!test_conditional_attrs_not_in_dirrÊ   ÷   sl   € ô ‹n€GØœs 7›|Ñ+Ð+Ð+äÓ€FØœ3˜v›;Ñ&Ð&Ð&ä
˜%Ô
 €CØ¤# c£(Ñ*Ð*Ð*à€C„OØœc #›hÑ&Ð&Ñ&r+   c                  óØ   — t        «       } t        | «       t        t        «       t        «       «      }t        |«      dk(  sJ ‚t        dgdz  ¬«      }t	        t        |«      «      dk(  sJ ‚y )NzT(a=K(), b=K())Úlong_paramsiè  rh   iå  )r"   Úreprr:   r2   Úlen)Úmy_estimatorrŒ   Úsome_ests      r)   Ú	test_reprrÑ     s[   € ä“=€LÜˆÔÜŒQ‹S”!“#‹;€DÜ�‹:Ð*Ò*Ð*Ð*ä�M�? TÑ)Ô*€HÜŒt�H‹~Ó #Ò%Ð%Ñ%r+   c                  ó.   — t        «       } t        | «       y r$   )r"   Ústr)rÏ   s    r)   Útest_strrÔ     s   € ä“=€LÜˆÕr+   c                  óf  — t        t        «       t        «      } d| j                  d¬«      v sJ ‚d| j                  d¬«      vsJ ‚| j                  d¬«       | j                  j
                  dk(  sJ ‚t        j                  t        «      5  | j                  d¬«       d d d «       y # 1 sw Y   y xY w)NÚa__dT)ÚdeepFrƒ   )rÖ   )Úa__a)	r:   r2   r…   Ú
set_paramsr<   r5   r‘   r’   Ú
ValueError)rŒ   s    r)   Útest_get_paramsrÛ     s’   € ÜŒQ‹S”!‹9€Dà�T—_‘_¨$�_Ó/Ñ/Ð/Ð/Ø˜Ÿ™¨e˜Ó4Ñ4Ð4Ð4à‡O�O˜€OÔØ�6‰6�8‰8�qŠ=Ðˆ=ä	�‰”zÓ	"ñ  Ø�‰˜QˆÔ÷ ÷  ñ  ús   ÂB'Â'B0zestimator, expected_resultTÚCr   rg   rÉ   Úsvc_cvFÚsvrÚsvr_cvc                 ó$   — t        | «      |k(  sJ ‚y r$   )r
   ©Ú	estimatorÚexpected_results     r)   Útest_is_classifierrä   %  s   € ô ˜Ó# Ò6Ð6Ñ6r+   c                 ó$   — t        | «      |k(  sJ ‚y r$   )r   rá   s     r)   Útest_is_regressorræ   6  ó   € ô ˜	Ó" oÒ5Ð5Ñ5r+   Ú
n_clustersé   é   ÚkmÚkm_cvc                 ó$   — t        | «      |k(  sJ ‚y r$   )r   rá   s     r)   Útest_is_clustererrî   G  rç   r+   c                  ó0  — t        dt        «       fg«      } t        j                  t        «      5  | j                  d¬«       d d d «       t        j                  t        «      5  | j                  d¬«       d d d «       y # 1 sw Y   Œ>xY w# 1 sw Y   y xY w)NrÉ   T)Úsvc__stupid_param)Úsvm__stupid_param)r   r   r‘   r’   rÚ   rÙ   )r¡   s    r)   Útest_set_paramsrò   X  s|   € ä
�UœC›E�NÐ#Ó
$€Cô 
�‰”zÓ	"ñ /Ø�‰¨ˆÔ.÷/ô 
�‰”zÓ	"ñ /Ø�‰¨ˆÔ.÷/ð /÷	/ð /ú÷/ð /ús   °B Á$BÂ B	ÂBc                  óª   ‡—  G ˆfd„dt         «      } dddœŠt        d | «       fg«      t         | «       i «      fD ]  }|j                  dd¬«       Œ y )Nc                   ó"   •‡ — e Zd Zˆ ˆfd„Zˆ xZS )ú?test_set_params_passes_all_parameters.<locals>.TestDecisionTreec                 ó4   •— t        ‰| �  di |¤Ž |‰k(  sJ ‚| S )Nr0   )rB   rÙ   )r(   ÚkwargsrH   Úexpected_kwargss     €€r)   rÙ   zJtest_set_params_passes_all_parameters.<locals>.TestDecisionTree.set_paramso  s&   ø€ Ü‰GÑÑ( Ò(à˜_Ò,Ð,Ð,ØˆKr+   )r-   r.   r/   rÙ   rJ   )rH   rø   s   @€r)   ÚTestDecisionTreerõ   n  s   ù„ ÷	ñ 	r+   rù   r¯   rƒ   )Ú	max_depthÚmin_samples_leafrâ   )Úestimator__max_depthÚestimator__min_samples_leaf)r   r   r   rÙ   )rù   r˜   rø   s     @r)   Ú%test_set_params_passes_all_parametersrþ   j  sc   ø€ öÔ1ô ð %&¸1Ñ=€Oä�;Ñ 0Ó 2Ð3Ð4Ó5ÜÑ%Ó'¨Ó,ðò Nˆð 	�‰¨AÈ1ˆÕMñ	Nr+   c                  ó˜   — t        t        «       i «      } | j                  t        «       d¬«       | j                  j
                  dk(  sJ ‚y )Ng      E@)râ   Úestimator__C)r   r   rÙ   r   râ   rÜ   )Úgscvs    r)   Ú$test_set_params_updates_valid_paramsr  }  s>   € ô Ô.Ó0°"Ó5€DØ‡O�Oœc›e°$€OÔ7Ø�>‰>×Ñ˜tÒ#Ð#Ñ#r+   ztree,datasetrƒ   )rú   Úrandom_state)r  c                 ó(  — t        | «      } t        j                  j                  d«      }|\  }}| j	                  ||«       |j                  ddt        |«      ¬«      }| j                  ||«      }| j                  |||¬«      }d}||k7  sJ |«       ‚y )Nr   rg   r‚   )Úsize)Úsample_weightz5Unweighted and weighted scores are unexpectedly equal)r	   ra   ÚrandomÚRandomStaters   ÚrandintrÎ   Úscore)	ÚtreeÚdatasetÚrngrq   rr   r  Úscore_unweightedÚscore_weightedrÁ   s	            r)   Útest_score_sample_weightr  …  sŒ   € ô �‹;€DÜ
�)‰)×
Ñ
 Ó
"€Cà�D€A€qà‡H�HˆQ�„Nà—K‘K  2¬C°«F�KÓ3€MØ—z‘z ! QÓ'ÐØ—Z‘Z  1°M�ZÓB€NØ
A€CØ˜~Ò-Ð2¨sÓ2Ñ-r+   c                  ó2  —  G d„ dt         t        «      } t        j                  d«      }t	        |«      } | |d¬«      }t        |«      }|j                  |j                  k(  j                  j                  «       sJ ‚|j                  |j                  k(  sJ ‚y )Nc                   ó&   — e Zd ZdZdd„Zdd„Zd„ Zy)ú3test_clone_pandas_dataframe.<locals>.DummyEstimatora,  This is a dummy class for generating numerical features

        This feature extractor extracts numerical features from pandas data
        frame.

        Parameters
        ----------

        df: pandas data frame
            The pandas data frame parameter.

        Notes
        -----
        Nc                 ó    — || _         || _        y r$   )ÚdfÚscalar_param)r(   r  r  s      r)   r*   z<test_clone_pandas_dataframe.<locals>.DummyEstimator.__init__²  s   € ØˆDŒGØ ,ˆDÕr+   c                  ó   — y r$   r0   rp   s      r)   rs   z7test_clone_pandas_dataframe.<locals>.DummyEstimator.fit¶  ó   € Ør+   c                  ó   — y r$   r0   ru   s     r)   Ú	transformz=test_clone_pandas_dataframe.<locals>.DummyEstimator.transform¹  r  r+   rf   r$   )r-   r.   r/   r`   r*   rs   r  r0   r+   r)   ÚDummyEstimatorr  ¢  s   „ ñ	ó	-ó	ó	r+   r  r‚   rg   )r  )
r   r   ra   Úaranger   r	   r  ÚvaluesÚallr  )r  r5   r  ÚeÚcloned_es        r)   Útest_clone_pandas_dataframer!  ¡  s~   € ôÔ)¬=ô ô6 	�	‰	�"‹€AÜ	�qÓ	€BÙ�r¨Ô*€AÜ�Q‹x€Hð �D‰D�H—K‘KÑ×'Ñ'×+Ñ+Ô-Ð-Ð-Ø�>‰>˜X×2Ñ2Ò2Ð2Ñ2r+   c                  óZ  —  G d„ dt         «      } t        j                  ddgddgddgg«      }t        «       j	                  |«      }|j
                  } | |«      }t        |j
                  |«       t        |j                  «       |j                  «       «       t        j                  ddgddgd	dgg«      }|j	                  |«       t        |j
                  |«       |j                  |«       t        |j
                  |«       t        |«      }||u sJ ‚t        |j
                  |«       y
)z:Checks that clone works with `__sklearn_clone__` protocol.c                   ó*   — e Zd Zd„ Zd„ Zd„ Zd„ Zd„ Zy)ú,test_clone_protocol.<locals>.FrozenEstimatorc                 ó   — || _         y r$   )Úfitted_estimator)r(   r&  s     r)   r*   z5test_clone_protocol.<locals>.FrozenEstimator.__init__Ë  s
   € Ø$4ˆDÕ!r+   c                 ó.   — t        | j                  |«      S r$   )r³   r&  )r(   r¶   s     r)   Ú__getattr__z8test_clone_protocol.<locals>.FrozenEstimator.__getattr__Î  s   € Ü˜4×0Ñ0°$Ó7Ð7r+   c                 ó   — | S r$   r0   rm   s    r)   Ú__sklearn_clone__z>test_clone_protocol.<locals>.FrozenEstimator.__sklearn_clone__Ñ  ó   € ØˆKr+   c                 ó   — | S r$   r0   ©r(   Úargsr÷   s      r)   rs   z0test_clone_protocol.<locals>.FrozenEstimator.fitÔ  r+  r+   c                 ó:   —  | j                   j                  |i |¤ŽS r$   )r&  r  r-  s      r)   Úfit_transformz:test_clone_protocol.<locals>.FrozenEstimator.fit_transform×  s    € Ø2�4×(Ñ(×2Ñ2°DÐC¸FÑCÐCr+   N)r-   r.   r/   r*   r(  r*  rs   r0  r0   r+   r)   ÚFrozenEstimatorr$  Ê  s   „ ò	5ò	8ò	ò	ó	Dr+   r1  éÿÿÿÿéþÿÿÿéýÿÿÿrƒ   ré   é   rg   N)r   ra   rb   r   rs   Úcomponents_r   r   Úget_feature_names_outÚasarrayr0  r	   )r1  rq   ÚpcaÚ
componentsÚ
frozen_pcaÚX_newÚclone_frozen_pcas          r)   Útest_clone_protocolr>  Ç  s  € ôDœ-ô Dô  	�‰�2�r�(˜R ˜H r¨2 hÐ/Ó0€AÜ
‹%�)‰)�A‹,€CØ—‘€Já  Ó%€JÜ�J×*Ñ*¨JÔ7ô �z×7Ñ7Ó9¸3×;TÑ;TÓ;VÔWô �J‰J˜˜Q˜ ! Q ¨!¨Q¨Ð0Ó1€EØ‡N�N�5ÔÜ�J×*Ñ*¨JÔ7ð ×Ñ˜UÔ#Ü�J×*Ñ*¨JÔ7ô ˜ZÓ(ÐØ˜zÑ)Ð)Ð)ÜÐ$×0Ñ0°*Õ=r+   c                  ó
  — t        j                  «       } t        «       j                  | j                  | j
                  «      }t        j                  |«      }d|v sJ ‚t        j                  «       5  t        j                  d«       t        j                  |«      }d d d «       |j                  | j                  | j
                  «      }j                  | j                  | j
                  «      }||k(  sJ ‚y # 1 sw Y   Œ]xY w)Nó   _sklearn_versionÚerror)r   Ú	load_irisr   rs   rž   ÚtargetÚpickleÚdumpsÚwarningsÚcatch_warningsÚsimplefilterÚloadsr
  )Úirisr  Útree_pickleÚtree_restoredÚscore_of_originalÚscore_of_restoreds         r)   Ú?test_pickle_version_warning_is_not_raised_with_matching_versionrO  ó  sË   € Ü×ÑÓ€DÜ!Ó#×'Ñ'¨¯	©	°4·;±;Ó?€DÜ—,‘,˜tÓ$€KØ +Ñ-Ð-Ð-ä	×	 Ñ	 Ó	"ñ 2Ü×Ñ˜gÔ&ÜŸ™ [Ó1ˆ÷2ð
 Ÿ
™
 4§9¡9¨d¯k©kÓ:ÐØ%×+Ñ+¨D¯I©I°t·{±{ÓCÐØÐ 1Ò1Ð1Ñ1÷2ð 2ús   Á2+C9Ã9Dc                   ó   — e Zd Zd„ Zy)ÚTreeBadVersionc                 óL   — t        | j                  j                  «       d¬«      S )NÚ	something)Ú_sklearn_version)ÚdictÚ__dict__Úitemsrm   s    r)   Ú__getstate__zTreeBadVersion.__getstate__  s   € Ü�D—M‘M×'Ñ'Ó)¸KÔHÐHr+   N©r-   r.   r/   rX  r0   r+   r)   rQ  rQ    s   „ óIr+   rQ  z´Trying to unpickle estimator {estimator} from version {old_version} when using version {current_version}. This might lead to breaking code or invalid results. Use at your own risk.c                  ó`  — t        j                  «       } t        «       j                  | j                  | j
                  «      }t        j                  |«      }t        j                  ddt        j                  ¬«      }t        j                  t        |¬«      5 }t        j                  |«       d d d «       j                   d   j"                  }t%        |t&        «      sJ ‚|j(                  dk(  sJ ‚|j*                  dk(  sJ ‚|j,                  t        j                  k(  sJ ‚y # 1 sw Y   ŒvxY w)NrQ  rS  ©râ   Úold_versionÚcurrent_versionr¿   r   )r   rB  rQ  rs   rž   rC  rD  rE  Úpickle_error_messageÚformatÚsklearnÚ__version__r‘   ÚwarnsÚUserWarningrI  ÚlistÚmessageÚ
isinstancer   Úestimator_nameÚoriginal_sklearn_versionÚcurrent_sklearn_version)rJ  r  Útree_pickle_otherre  Úwarning_records        r)   Ú<test_pickle_version_warning_is_issued_upon_different_versionrl    s   € Ü×ÑÓ€DÜÓ×Ñ §	¡	¨4¯;©;Ó7€DÜŸ™ TÓ*ÐÜ"×)Ñ)Ø"ØÜ×+Ñ+ð *ó €Gô
 
�‰”k¨Ô	1ð (°^Ü�‰Ð&Ô'÷(ð ×!Ñ! !Ñ$×,Ñ,€GÜ�gÔ9Ô:Ð:Ð:Ø×!Ñ!Ð%5Ò5Ð5Ð5Ø×+Ñ+¨{Ò:Ð:Ð:Ø×*Ñ*¬g×.AÑ.AÒAÐAÑA÷(ð (ús   ÂD$Ä$D-c                   ó   — e Zd Zd„ Zy)ÚTreeNoVersionc                 ó   — | j                   S r$   )rV  rm   s    r)   rX  zTreeNoVersion.__getstate__%  s   € Ø�}‰}Ðr+   NrY  r0   r+   r)   rn  rn  $  s   „ ór+   rn  c                  ó”  — t        j                  «       } t        «       j                  | j                  | j
                  «      }t        j                  |«      }d|vsJ ‚t        j                  ddt        j                  ¬«      }t        j                  t        |¬«      5  t        j                  |«       d d d «       y # 1 sw Y   y xY w)Nr@  rn  zpre-0.18r[  r¿   )r   rB  rn  rs   rž   rC  rD  rE  r^  r_  r`  ra  r‘   rb  rc  rI  )rJ  r  Útree_pickle_noversionre  s       r)   ÚDtest_pickle_version_warning_is_issued_when_no_version_info_in_picklerr  )  s    € Ü×ÑÓ€Dä‹?×Ñ˜tŸy™y¨$¯+©+Ó6€Dä"ŸL™L¨Ó.ÐØÐ&;Ñ;Ð;Ð;Ü"×)Ñ)Ø!ØÜ×+Ñ+ð *ó €Gô 
�‰”k¨Ô	1ñ ,Ü�‰Ð*Ô+÷,÷ ,ñ ,ús   ÂB>Â>Cc                  óÆ  — t        j                  «       } t        «       j                  | j                  | j
                  «      }t        j                  |«      }	 t        j                  }dt        _        t        j                  «       5  t        j                  d«       t        j                  |«       d d d «       |t        _        y # 1 sw Y   ŒxY w# t        _        w xY w)NÚ
notsklearnrA  )r   rB  rn  rs   rž   rC  rD  rE  r.   rF  rG  rH  rI  )rJ  r  rq  Úmodule_backups       r)   ÚCtest_pickle_version_no_warning_is_issued_with_non_sklearn_estimatorrv  ;  s¤   € ä×ÑÓ€DÜ‹?×Ñ˜tŸy™y¨$¯+©+Ó6€DÜ"ŸL™L¨Ó.Ðð	1Ü%×0Ñ0ˆØ#/ŒÔ ä×$Ñ$Ó&ñ 	0Ü×!Ñ! 'Ô*ä�L‰LÐ.Ô/÷	0ð
 $1ŒÕ ÷	0ð 	0ûð
 $1ŒÕ ús$   Á/C Â+CÂ3C ÃCÃC ÃC c                   ó   — e Zd Zd„ Zd„ Zy)ÚDontPickleAttributeMixinc                 óD   — | j                   j                  «       }d |d<   |S ©NÚ_attribute_not_pickled)rV  r^   )r(   rž   s     r)   rX  z%DontPickleAttributeMixin.__getstate__M  s$   € Ø�}‰}×!Ñ!Ó#ˆØ)-ˆÐ%Ñ&Øˆr+   c                 óD   — d|d<   | j                   j                  |«       y )NTÚ	_restored)rV  Úupdate)r(   Ústates     r)   Ú__setstate__z%DontPickleAttributeMixin.__setstate__R  s   € Ø!ˆˆkÑØ�‰×Ñ˜UÕ#r+   N)r-   r.   r/   rX  r€  r0   r+   r)   rx  rx  L  s   „ òó
$r+   rx  c                   ó   — e Zd Zdd„Zy)ÚMultiInheritanceEstimatorc                 ó    — || _         d | _        y r$   ©Úattribute_pickledr{  ©r(   r…  s     r)   r*   z"MultiInheritanceEstimator.__init__X  ó   € Ø!2ˆÔØ&*ˆÕ#r+   N©r¯   r,   r0   r+   r)   r‚  r‚  W  s   „ ô+r+   r‚  c                  óÔ   — t        «       } d| _        t        j                  | «      }t        j                  |«      }|j
                  dk(  sJ ‚|j                  �J ‚|j                  sJ ‚y ©Nú$this attribute should not be pickledr¯   )r‚  r{  rD  rE  rI  r…  r}  ©râ   Ú
serializedÚestimator_restoreds      r)   Ú3test_pickling_when_getstate_is_overwritten_by_mixinr�  ]  sd   € Ü)Ó+€IØ'M€IÔ$ä—‘˜iÓ(€JÜŸ™ jÓ1ÐØ×/Ñ/°1Ò4Ð4Ð4Ø×4Ñ4Ð<Ð<Ð<Ø×'Ò'Ð'Ñ'r+   c                  ó`  — 	 t        «       } d}|| _        t        | «      j                  }dt        | «      _        | j	                  «       }|d ddœk(  sJ ‚d|d<   | j                  |«       | j                  dk(  sJ ‚| j                  sJ ‚	 |t        | «      _        y # t         «      _        w xY w)Nr‹  rt  r¯   )r{  r…  r5  r…  )r‚  r{  r²   r.   rX  r€  r…  r}  )râ   ÚtextÚold_modr�  s       r)   ÚFtest_pickling_when_getstate_is_overwritten_by_mixin_outside_of_sklearnr“  h  s®   € ð-Ü-Ó/ˆ	Ø5ˆØ+/ˆ	Ô(Ü�y“/×,Ñ,ˆØ%1ŒˆY‹Ô"à×+Ñ+Ó-ˆ
Ø¸ÐSTÑUÒUÐUÐUà*+ˆ
Ð&Ñ'Ø×Ñ˜zÔ*Ø×*Ñ*¨aÒ/Ð/Ð/Ø×"Ò"Ð"Ñ"à%,ŒˆY‹Õ"ø WŒˆY‹Õ"ús   ‚BB ÂB-c                   ó&   ‡ — e Zd Zdd„Zˆ fd„Zˆ xZS )ÚSingleInheritanceEstimatorc                 ó    — || _         d | _        y r$   r„  r†  s     r)   r*   z#SingleInheritanceEstimator.__init__|  r‡  r+   c                 ó.   •— t         ‰| �  «       }d |d<   |S rz  )rB   rX  )r(   r  rH   s     €r)   rX  z'SingleInheritanceEstimator.__getstate__€  s    ø€ Ü‘Ñ$Ó&ˆØ*.ˆÐ&Ñ'Øˆr+   rˆ  )r-   r.   r/   r*   rX  rJ   rK   s   @r)   r•  r•  {  s   ø„ ó+÷ð r+   r•  c                  ó¸   — t        «       } d| _        t        j                  | «      }t        j                  |«      }|j
                  dk(  sJ ‚|j                  �J ‚y rŠ  )r•  r{  rD  rE  rI  r…  rŒ  s      r)   ÚCtest_pickling_works_when_getstate_is_overwritten_in_the_child_classr™  †  sU   € Ü*Ó,€IØ'M€IÔ$ä—‘˜iÓ(€JÜŸ™ jÓ1ÐØ×/Ñ/°1Ò4Ð4Ð4Ø×4Ñ4Ð<Ð<Ñ<r+   c                  óä  — t        «       } t        «       }| j                  «       j                  j                  sJ ‚|j                  «       j                  j                  rJ ‚t        «       }|j                  «       j                  j                  rJ ‚t        «       }|j                  «       j                  j                  sJ ‚t        «       }|j                  «       j                  j                  sJ ‚y r$   )r?   rN   rC   rD   rE   rS   rV   rZ   )Únan_tag_estÚno_nan_tag_estÚredefine_tags_estÚdiamond_tag_estÚinherit_diamond_tag_ests        r)   Útest_tag_inheritancer   �  sÁ   € ô “(€KÜ“Z€NØ×'Ñ'Ó)×4Ñ4×>Ò>Ð>Ð>Ø×.Ñ.Ó0×;Ñ;×EÒEÐEÐEä#›ÐØ ×1Ñ1Ó3×>Ñ>×HÒHÐHÐHä)Ó+€OØ×+Ñ+Ó-×8Ñ8×BÒBÐBÐBä8Ó:ÐØ"×3Ñ3Ó5×@Ñ@×JÒJÐJÑJr+   c                  ó´   —  G d„ dt         «      }  | «       }d}t        j                  t        |¬«      5  |j	                  «        d d d «       y # 1 sw Y   y xY w)Nc                   ó   — e Zd Zdd„Zdd„Zy)ú<test_raises_on_get_params_non_attribute.<locals>.MyEstimatorc                  ó   — y r$   r0   ©r(   Úparams     r)   r*   zEtest_raises_on_get_params_non_attribute.<locals>.MyEstimator.__init__¤  r  r+   Nc                 ó   — | S r$   r0   rp   s      r)   rs   z@test_raises_on_get_params_non_attribute.<locals>.MyEstimator.fit§  r+  r+   rˆ  r$   )r-   r.   r/   r*   rs   r0   r+   r)   r"   r£  £  s   „ ó	ô	r+   r"   z-'MyEstimator' object has no attribute 'param'r¿   )r   r‘   r’   ÚAttributeErrorr…   )r"   r˜   rÁ   s      r)   Ú'test_raises_on_get_params_non_attributer©  ¢  sI   € ô”mô ñ ‹-€CØ
9€Cä	�‰”~¨SÔ	1ñ Ø�‰Ô÷÷ ñ ús   ´AÁAc                  óÌ   — t        «       } | j                  «       }d|v sJ ‚d|v sJ ‚t        d¬«      5  | j                  «       }d|v sJ ‚d|vsJ ‚	 d d d «       y # 1 sw Y   y xY w)Nz
text/plainz	text/htmlr‘  ©Údisplay)r   Ú_repr_mimebundle_r   )r  Úoutputs     r)   Útest_repr_mimebundle_r¯  ±  s{   € ä!Ó#€DØ×#Ñ#Ó%€FØ˜6Ñ!Ð!Ð!Ø˜&Ñ Ð Ð ä	 Ô	'ñ )Ø×'Ñ'Ó)ˆØ˜vÑ%Ð%Ð%Ø &Ñ(Ð(Ñ(÷)÷ )ñ )ús   ³AÁA#c                  ó
  — t        «       } | j                  «       }d|v sJ ‚t        d¬«      5  d}t        j                  t
        |¬«      5  | j                  «       }d d d «       d d d «       y # 1 sw Y   ŒxY w# 1 sw Y   y xY w)Nz<style>r‘  r«  z _repr_html_ is only defined whenr¿   )r   Ú_repr_html_r   r‘   r’   r¨  )r  r®  rÁ   s      r)   Útest_repr_html_wrapsr²  ¾  s~   € ä!Ó#€Dà×ÑÓ€FØ˜ÑÐÐä	 Ô	'ñ (Ø0ˆÜ�]‰]œ>°Ô5ñ 	(Ø×%Ñ%Ó'ˆF÷	(÷(ð (÷	(ð 	(ú÷(ð (ús#   ­A9ÁA-ÁA9Á-A6	Á2A9Á9Bc                  óæ   — t        «       } g d¢g d¢g}t        | |d¬«       | j                  dk(  sJ ‚d}t        j                  t
        |¬«      5  t        | dd	¬«       d
d
d
«       y
# 1 sw Y   y
xY w)z>Check that `_check_n_features` validates data when reset=False©rg   rƒ   ré   )r5  r¯   é   T©Úresetré   zHX does not contain any features, but MyEstimator is expecting 3 featuresr¿   ú	invalid XFN)r"   r   Ún_features_in_r‘   r’   rÚ   )r˜   ÚX_trainrÁ   s      r)   Útest_n_features_in_validationr»  Ë  sg   € ä
‹-€CÚš)Ð$€GÜ�c˜7¨$Õ/à×Ñ Ò"Ð"Ð"à
T€CÜ	�‰”z¨Ô	-ñ 9Ü˜#˜{°%Õ8÷9÷ 9ñ 9ús   ÁA'Á'A0c                  ól   — t        «       } t        | dd¬«       t        | d«      rJ ‚t        | dd¬«       y)z]Check that `_check_n_features` does not validate data when
    n_features_in_ is not defined.r¸  Tr¶  r¹  FN)r"   r   rŽ   ©r˜   s    r)   Ú test_n_features_in_no_validationr¾  Ø  s6   € ô ‹-€CÜ�c˜;¨dÕ3ä�sÐ,Ô-Ð-Ð-ô �c˜;¨eÖ4r+   c                  ó¦  — t        j                  d«      } t        j                  «       }|j                  }| j                  ||j                  ¬«      } G d„ dt        t        «      } |«       j                  |«      }t        |j                  |j                  «       |j                  |«       t        |d«      rJ ‚|j                  |«       d}| j                  ||j                  ddd…   ¬«      }t        j                  t        |¬	«      5  |j!                  |«       ddd«       d
}t        j"                  t$        |¬	«      5  |j!                  |«       ddd«       d} |«       j                  |«      }t        j"                  t$        |¬	«      5  |j!                  |«       ddd«       | j                  |«      } |«       }t'        j(                  «       5  t'        j*                  dt$        «       |j                  |«       ddd«       ||g}	|	D ]J  }
t'        j(                  «       5  t'        j*                  dt$        «       |j!                  |
«       ddd«       ŒL | j                  |g d¢¬«      } |«       }t-        j.                  d«      }t        j                  t0        |¬	«      5  |j                  |«       ddd«       t        j                  t0        |¬	«      5  |j!                  |«       ddd«       y# 1 sw Y   �ŒÝxY w# 1 sw Y   �Œ³xY w# 1 sw Y   �Œsx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   yxY w)z;Check that feature_name_in are recorded by `_validate_data`Úpandas©Úcolumnsc                   ó   — e Zd Zdd„Zd„ Zy)ú.test_feature_names_in.<locals>.NoOpTransformerNc                 ó   — t        | |«       | S r$   ©r    rp   s      r)   rs   z2test_feature_names_in.<locals>.NoOpTransformer.fitì  ó   € Ü˜$ Ô"ØˆKr+   c                 ó"   — t        | |d¬«       |S ©NFr¶  rÆ  ru   s     r)   r  z8test_feature_names_in.<locals>.NoOpTransformer.transformð  s   € Ü˜$ ¨Õ/ØˆHr+   r$   ©r-   r.   r/   rs   r  r0   r+   r)   ÚNoOpTransformerrÄ  ë  s   „ ó	ó	r+   rË  Úfeature_names_in_z5The feature names should match those that were passedNr2  r¿   zVX does not have valid feature names, but NoOpTransformer was fitted with feature nameszIX has feature names, but NoOpTransformer was fitted without feature namesrA  )r<   r=   rg   rƒ   a™  Feature names are only supported if all input features have string names, but your input has ['int', 'str'] as feature name / column name types. If you want feature names to be stored and validated, you must convert them all to strings, by using X.columns = X.columns.astype(str) for example. Otherwise you can remove feature / column names from your input data, or convert them all to a non-string data type.)r‘   Úimportorskipr   rB  rž   Ú	DataFrameÚfeature_namesr   r   rs   r   rÌ  rÂ  rŽ   r’   rÚ   r  rb  rc  rF  rG  rH  ÚreÚescaper”   )ÚpdrJ  ÚX_npr  rË  ÚtransrÁ   Údf_badÚdf_int_namesÚXsrq   Údf_mixeds               r)   Útest_feature_names_inrÙ  ä  sÆ  € ä	×	Ñ	˜XÓ	&€BÜ×ÑÓ€DØ�9‰9€DØ	�‰�d D×$6Ñ$6ˆÓ	7€BôÔ*¬Mô ñ Ó×!Ñ! "Ó%€EÜ�u×.Ñ.°·
±
Ô;ð 
‡I�Iˆd„OÜ�uÐ1Ô2Ð2Ð2à	‡I�Iˆb„MØ
A€CØ�\‰\˜$¨×(:Ñ(:¹4¸R¸4Ñ(@ˆ\ÓA€FÜ	�‰”z¨Ô	-ñ  Ø�‰˜Ô÷ ð
	$ð ô 
�‰”k¨Ô	-ñ Ø�‰˜Ô÷ð V€CÙÓ×!Ñ! $Ó'€EÜ	�‰”k¨Ô	-ñ Ø�‰˜Ô÷ð —<‘< Ó%€LÙÓ€EÜ	×	 Ñ	 Ó	"ñ  Ü×Ñ˜g¤{Ô3Ø�	‰	�,Ô÷ ð �Ð	€BØò ˆÜ×$Ñ$Ó&ñ 	Ü×!Ñ! '¬;Ô7Ø�O‰O˜AÔ÷	ð 	ðð �|‰|˜DÒ*:ˆ|Ó;€HÙÓ€EÜ
�)‰)ð	?ó€Cô 
�‰”y¨Ô	,ñ Ø�	‰	�(Ô÷ô 
�‰”y¨Ô	,ñ "Ø�‰˜Ô!÷"ð "÷_ ñ  ú÷ñ ú÷ñ ú÷ ñ  ú÷	ñ 	ú÷ð ú÷"ð "úsT   ÄK:ÅLÆLÇ,L!È(,L.Ê*L;ËMË:LÌLÌLÌ!L+Ì.L8	Ì;MÍMc                  ó"  — t        j                  d«      } t        j                  «       }| j	                  |j
                  |j                  ¬«      }| j                  |j                  «      } G d„ dt        t        «      } |«       }t        ||d¬«      }t        |t        j                  «      sJ ‚t        ||j!                  «       «       t        ||d¬«      }||u sJ ‚t        ||d¬«      }t        |t        j                  «      sJ ‚t        ||j!                  «       «       t        ||d¬«      }	|	|u sJ ‚t        |||d¬«      \  }}t        |t        j                  «      sJ ‚t        ||j!                  «       «       t        |t        j                  «      sJ ‚t        ||j!                  «       «       t        |||d¬«      \  }}	||u sJ ‚|	|u sJ ‚d	}
t        j"                  t$        |
¬
«      5  t        |«       ddd«       y# 1 sw Y   yxY w)z0Check skip_check_array option of _validate_data.rÀ  rÁ  c                   ó   — e Zd Zy)ú<test_validate_data_skip_check_array.<locals>.NoOpTransformerNrW   r0   r+   r)   rË  rÜ  :  ó   „ Ør+   rË  F)Úskip_check_arrayT)rr   rÞ  z*Validation should be done on X, y or both.r¿   N)r‘   rÍ  r   rB  rÎ  rž   rÏ  ÚSeriesrC  r   r   r    rf  ra   Úndarrayr   Úto_numpyr’   rÚ   )rÒ  rJ  r  rr   rË  Úno_opÚX_np_outÚX_df_outÚy_np_outÚy_series_outrÁ   s              r)   Ú#test_validate_data_skip_check_arrayrç  2  s¿  € ô 
×	Ñ	˜XÓ	&€BÜ×ÑÓ€DØ	�‰�d—i‘i¨×);Ñ);ˆÓ	<€BØ
�	‰	�$—+‘+Ó€AôÔ*¬Mô ñ Ó€EÜ˜U B¸Ô?€HÜ�h¤§
¡
Ô+Ð+Ð+Ü�H˜bŸk™k›mÔ,ä˜U B¸Ô>€HØ�r‰>Ðˆ>ä˜U a¸%Ô@€HÜ�h¤§
¡
Ô+Ð+Ð+Ü�H˜aŸj™j›lÔ+ä  ¨!¸dÔC€LØ˜1ÑÐÐä& u¨b°!ÀeÔLÑ€HˆhÜ�h¤§
¡
Ô+Ð+Ð+Ü�H˜bŸk™k›mÔ,Ü�h¤§
¡
Ô+Ð+Ð+Ü�H˜aŸj™j›lÔ+ä*¨5°"°aÈ$ÔOÑ€HˆlØ�r‰>Ðˆ>Ø˜1ÑÐÐà
6€CÜ	�‰”z¨Ô	-ñ Ü�eÔ÷÷ ñ ús   Ç0HÈHc                  óŒ   — t        «       j                  d¬«      } t        d| «      }t        | «      }t        d|«      }||k(  sJ ‚y)z-Check that clone keeps the set_output config.rÀ  )r  r  N)r   rÄ   r   r	   )ÚssÚconfigÚss_cloneÚconfig_clones       r)   Útest_clone_keeps_output_configrí  [  sI   € ô 
Ó	×	$Ñ	$¨xÐ	$Ó	8€BÜ ¨RÓ0€Fä�R‹y€HÜ% k°8Ó<€LØ�\Ò!Ð!Ñ!r+   c                   ó   — e Zd Zy)Ú_EmptyNrW   r0   r+   r)   rï  rï  f  rX   r+   rï  c                   ó   — e Zd Zy)ÚEmptyEstimatorNrW   r0   r+   r)   rñ  rñ  j  rX   r+   rñ  râ   c                 ó¶   — | j                  «       }dt        j                  i}||k(  sJ ‚t        j                  t        j
                  t        «       «      «       y)zàCheck that ``__getstate__`` returns an empty ``dict`` with an empty
    instance.

    Python 3.11+ changed behaviour by returning ``None`` instead of raising an
    ``AttributeError``. Non-regression test for gh-25188.
    rT  N)rX  r`  ra  rD  rI  rE  r   )râ   r  Úexpecteds      r)   Ú"test_estimator_empty_instance_dictrô  n  sI   € ð ×"Ñ"Ó$€EØ"¤G×$7Ñ$7Ð8€HØ�HÒÐÐô ‡L�L”—‘œm›oÓ.Õ/r+   c                  óZ  —  G d„ d«      }  G d„ dt         | «      }d}t        j                  t        |¬«      5   |«       j	                  «        ddd«       t        j                  t        |¬«      5  t        j                   |«       «       ddd«       y# 1 sw Y   ŒHxY w# 1 sw Y   yxY w)z:Using a `BaseEstimator` with `__slots__` is not supported.c                   ó   — e Zd ZdZy)úDtest_estimator_getstate_using_slots_error_message.<locals>.WithSlots©ÚxN)r-   r.   r/   Ú	__slots__r0   r+   r)   Ú	WithSlotsr÷  �  s   „ Ø‰	r+   rû  c                   ó   — e Zd Zy)úDtest_estimator_getstate_using_slots_error_message.<locals>.EstimatorNrW   r0   r+   r)   Ú	Estimatorrý  „  rÝ  r+   rþ  zRYou cannot use `__slots__` in objects inheriting from `sklearn.base.BaseEstimator`r¿   N)r   r‘   r’   r”   rX  rD  rE  )rû  rþ  rÁ   s      r)   Ú1test_estimator_getstate_using_slots_error_messagerÿ  ~  s�   € ÷ñ ô”M 9ô ð	'ð ô
 
�‰”y¨Ô	,ñ #Ù‹× Ñ Ô"÷#ô 
�‰”y¨Ô	,ñ "Ü�‰‘Y“[Ô!÷"ð "÷#ð #ú÷"ð "ús   ¸BÁ1B!ÂBÂ!B*zconstructor_name, minversion))rÀ  z1.5.0)Úpyarrowz13.0.0)Úpolarsz0.20.23c                 ó¨  — g d¢g d¢g}g d¢}t        || ||¬«      } G d„ dt        t        «      } |«       }|j                  |«       t	        |j
                  |«       |j                  |«      }| dk7  rt        ||«       g d¢}t        || |¬	«      }	t        j                  t        d
¬«      5  |j                  |	«       ddd«       y# 1 sw Y   yxY w)z=Test that feature_names_in_ is correctly set for dataframe X.)rg   r5  rƒ   )ré   ré   rµ  )Úcol_0Úcol_1Úcol_2)Úcolumn_namesÚ
minversionc                   ó   — e Zd Zdd„Zd„ Zy)ú<test_feature_names_in_on_dataframes.<locals>.NoOpTransformerNc                 ó   — t        | |«       | S r$   rÆ  rp   s      r)   rs   z@test_feature_names_in_on_dataframes.<locals>.NoOpTransformer.fit¤  rÇ  r+   c                 ó   — t        | |d¬«      S rÉ  rÆ  ru   s     r)   r  zFtest_feature_names_in_on_dataframes.<locals>.NoOpTransformer.transform¨  s   € Ü   q°Ô6Ð6r+   r$   rÊ  r0   r+   r)   rË  r	  £  s   „ ó	ó	7r+   rË  r   )r<   r=   r4   )r  zThe feature names should matchr¿   N)r   r   r   rs   r   rÌ  r  r   r‘   r’   rÚ   )
Úconstructor_namer  rž   rÂ  r  rË  râ  ÚX_outÚ	bad_namesrÕ  s
             r)   Ú#test_feature_names_in_on_dataframesr  “  sÁ   € ò ’yÐ!€DÚ)€GÜ	ØÐ¨WÀô
€Bô7Ô*¬Mô 7ñ Ó€EØ	‡I�Iˆb„MÜ�u×.Ñ.°Ô8Ø�O‰O˜BÓ€Eà˜9Ò$ô 	˜˜EÔ"â€IÜ Ð&6ÀYÔO€FÜ	�‰”zÐ)IÔ	Jñ  Ø�‰˜Ô÷ ÷  ñ  ús   Â-CÃC)Úenable_metadata_routingc                  ó°  —  G d„ dt         t        «      } t        j                  t        d¬«      5   | «       j                  d¬«      j                  dggdgd¬«       ddd«       t        j                  d¬	«      5 } | «       j                  d¬«      j                  dggdg«       t        |«      d
k(  sJ ‚	 ddd«       y# 1 sw Y   ŒdxY w# 1 sw Y   yxY w)zkTest that having a transformer with metadata for transform raises a
    warning when calling fit_transform.c                   ó   — e Zd Zdd„Zdd„Zy)úTtest_transformer_fit_transform_with_metadata_in_transform.<locals>.CustomTransformerNc                 ó   — | S r$   r0   ©r(   rq   rr   Úprops       r)   rs   zXtest_transformer_fit_transform_with_metadata_in_transform.<locals>.CustomTransformer.fitÁ  r+  r+   c                 ó   — |S r$   r0   ©r(   rq   r  s      r)   r  z^test_transformer_fit_transform_with_metadata_in_transform.<locals>.CustomTransformer.transformÄ  ó   € ØˆHr+   r7   r$   rÊ  r0   r+   r)   ÚCustomTransformerr  À  ó   „ ó	ô	r+   r  z*`transform` method which consumes metadatar¿   T©r  rg   N©Úrecordr   )
r   r   r‘   rb  rc  Úset_transform_requestr0  rF  rG  rÎ   )r  r  s     r)   Ú9test_transformer_fit_transform_with_metadata_in_transformr   »  sÐ   € ô
œMÔ+;ô ô 
�‰”kÐ)UÔ	Vñ 
ÙÓ×1Ñ1°tÐ1Ó<×JÑJØˆSˆE�A�3˜Qð 	Kô 	
÷
ô 
×	 Ñ	 ¨Ô	-ð  °ÙÓ×1Ñ1°tÐ1Ó<×JÑJÈQÈCÈ5ÐSTÐRUÔVÜ�6‹{˜aÒÐÑ÷ ð  ÷
ð 
ú÷ ð  úó   °-C Á;;CÃ C	ÃCc                  ó°  —  G d„ dt         t        «      } t        j                  t        d¬«      5   | «       j                  d¬«      j                  dggdgd¬«       ddd«       t        j                  d¬	«      5 } | «       j                  d¬«      j                  dggdg«       t        |«      d
k(  sJ ‚	 ddd«       y# 1 sw Y   ŒdxY w# 1 sw Y   yxY w)ziTest that having an OutlierMixin with metadata for predict raises a
    warning when calling fit_predict.c                   ó   — e Zd Zdd„Zdd„Zy)úVtest_outlier_mixin_fit_predict_with_metadata_in_predict.<locals>.CustomOutlierDetectorNc                 ó   — | S r$   r0   r  s       r)   rs   zZtest_outlier_mixin_fit_predict_with_metadata_in_predict.<locals>.CustomOutlierDetector.fitÛ  r+  r+   c                 ó   — |S r$   r0   r  s      r)   rv   z^test_outlier_mixin_fit_predict_with_metadata_in_predict.<locals>.CustomOutlierDetector.predictÞ  r  r+   r7   r$   )r-   r.   r/   rs   rv   r0   r+   r)   ÚCustomOutlierDetectorr$  Ú  r  r+   r'  z(`predict` method which consumes metadatar¿   Tr  rg   Nr  r   )
r   r   r‘   rb  rc  Úset_predict_requestÚfit_predictrF  rG  rÎ   )r'  r  s     r)   Ú7test_outlier_mixin_fit_predict_with_metadata_in_predictr*  Õ  sÏ   € ô
¤¬|ô ô 
�‰”kÐ)SÔ	Tñ 
ÙÓ×3Ñ3¸Ð3Ó>×JÑJØˆSˆE�A�3˜Qð 	Kô 	
÷
ô 
×	 Ñ	 ¨Ô	-ð  °ÙÓ×3Ñ3¸Ð3Ó>×JÑJÈQÈCÈ5ÐSTÐRUÔVÜ�6‹{˜aÒÐÑ÷ ð  ÷
ð 
ú÷ ð  úr!  c                  óŠ   — t        d¬«      } | j                  «       dddœk(  sJ ‚| j                  «       j                  dk(  sJ ‚y)z5Check the behaviour of the `_get_params_html` method.rŒ   r›   r   r%   N)r"   Ú_get_params_htmlÚnon_defaultr½  s    r)   Útest_get_params_htmlr.  ï  sE   € ä
˜FÔ
#€Cà×ÑÓ!¨A¸Ñ%?Ò?Ð?Ð?Ø×ÑÓ!×-Ñ-°Ò;Ð;Ñ;r+   c                  óf  — t        j                  ddgddgddgg«      } t        «       j                  | «      }d|_        |j                  «       }|d   dddœk(  sJ ‚|j                  |vsJ ‚t        |«      d	k(  sJ ‚|d
   d   dk(  sJ ‚|d
   d   dk(  sJ ‚t        |d
   d   |j                  «       y)z:Check the behaviour of the `_get_fitted_attr_html` method.r2  r3  r4  rù  r¹  Úintrƒ   ©Ú	type_nameÚvalueé	   r6  r2  rà  Úshape)rƒ   rƒ   r3  N)	ra   rb   r   rs   Ú_not_a_fitted_attrÚ_get_fitted_attr_htmlrÎ   r   r6  )rq   r9  Úfitted_attr_htmls      r)   Útest_get_fitted_attr_htmlr9  ÷  sÔ   € ä
�‰�2�r�(˜R ˜H r¨2 hÐ/Ó0€AÜ
‹%�)‰)�A‹,€CØ €CÔà×0Ñ0Ó2ÐØÐ,Ñ-¸uÈqÑ1QÒQÐQÐQØ×!Ñ!Ð)9Ñ9Ð9Ð9ÜÐÓ  AÒ%Ð%Ð%Ø˜MÑ*¨;Ñ7¸IÒFÐFÐFØ˜MÑ*¨7Ñ3°vÒ=Ð=Ð=ÜÐ$ ]Ñ3°GÑ<¸c¿o¹oÕNr+   c                  óæ   —  G d„ dt         «      }  | «       }t        j                  «       5  t        j                  d«       |j	                  «       }ddd«       d   dddœk(  sJ ‚y# 1 sw Y   ŒxY w)	z¨Check that deprecated fitted attrs don't generate a warning in the repr.

    Non-regression test for
    https://github.com/scikit-learn/scikit-learn/issues/34056
    c                   ó2   — e Zd Z ed«      ed„ «       «       Zy)ú8test_get_fitted_attr_html_no_warnings.<locals>.EstimatorzAttribute `foo` is deprecatedc                  ó   — yrf   r0   rm   s    r)   Úfoo_z=test_get_fitted_attr_html_no_warnings.<locals>.Estimator.foo_  s   € ð r+   N)r-   r.   r/   r   Úpropertyr>  r0   r+   r)   rþ  r<    s"   „ Ù	Ð3Ó	4Ø	ñ	ó 
ó 
5ñ	r+   rþ  rA  Nr>  r0  rg   r1  )r   rF  rG  rH  r7  )rþ  ÚmodelÚhtmls      r)   Ú%test_get_fitted_attr_html_no_warningsrB    sm   € ô”Mô ñ ‹K€EÜ	×	 Ñ	 Ó	"ñ -Ü×Ñ˜gÔ&à×*Ñ*Ó,ˆ÷-ð
 �‰<¨¸Ñ;Ò;Ð;Ñ;÷-ð -ús   «&A'Á'A0c                 ó*   ‡ —  G ˆ fd„dt         «      }|S )Nc                   ó   •— e Zd ZW ° fd„Zy)ú3make_estimator_with_param.<locals>.DynamicEstimatorc                 ó   — || _         y r$   ©r¦  r¥  s     r)   r*   z<make_estimator_with_param.<locals>.DynamicEstimator.__init__  s	   € ØˆD�Jr+   Nr,   ©Údefault_values   €r)   ÚDynamicEstimatorrE    s   ø„ Ù!.ô 	r+   rJ  )r   )rI  rJ  s   ` r)   Úmake_estimator_with_paramrK    s   ø€ öœ=ô ð Ðr+   zdefault_value, test_value)r0   )rg   r0   )©rg   rƒ   )ré   r5  rL  r5  rf   c                 ó   — | S r$   r0   rø  s    r)   ú<lambda>rN  /  s   € ˜€ r+   ç      ð?)ÚabcÚdefrP  )TF)rO  ç       @Úaccuracyc                 óh   —  t        | «      |¬«      }|j                  «       j                  }d|v sJ ‚y)z Check that we detect non-default parameters with various types.

    Non-regression test for:
    https://github.com/scikit-learn/scikit-learn/issues/31525
    rG  r¦  N©rK  r,  r-  ©rI  Ú
test_valuerâ   r-  s       r)   Útest_param_is_non_defaultrX  $  s9   € ðF 9Ô)¨-Ó8¸zÔJ€IØ×,Ñ,Ó.×:Ñ:€KØ�kÑ!Ð!Ñ!r+   c                  ó¨   — t        j                  d«      }  t        d¬«      | j                  ¬«      }|j	                  «       j
                  }d|v sJ ‚y)z™Check that we detect pandas.Na as non-default parameter.

    Non-regression test for:
    https://github.com/scikit-learn/scikit-learn/issues/32312
    rÀ  r   rH  rG  r¦  N)r‘   rÍ  rK  ÚNAr,  r-  )rÒ  râ   r-  s      r)   Ú(test_param_is_non_default_when_pandas_NAr[  L  sL   € ô 
×	Ñ	˜XÓ	&€Bà:Ô)¸Ô:ÀÇÁÔG€IØ×,Ñ,Ó.×:Ñ:€KØ�kÑ!Ð!Ñ!r+   r7   )r0   r0   )r´  r´  r´  )rP  rP  )TT)rg   rg   )rO  rO  )rƒ   rR  c                 óh   —  t        | «      |¬«      }|j                  «       j                  }d|vsJ ‚y)zÑCheck that we detect the default parameters and values in an array-like will
    be reported as default as well.

    Non-regression test for:
    https://github.com/scikit-learn/scikit-learn/issues/31525
    rG  r¦  NrU  rV  s       r)   Útest_param_is_defaultr]  Y  s8   € ð2 9Ô)¨-Ó8¸zÔJ€IØ×,Ñ,Ó.×:Ñ:€KØ˜+Ñ%Ð%Ñ%r+   )…rD  rÐ  rF  Únumpyra   r‘   Úscipy.sparseÚsparserœ   Únumpy.testingr   r`  r   r   Úsklearn.baser   r   r   r	   r
   r   r   Úsklearn.clusterr   Úsklearn.decompositionr   Úsklearn.exceptionsr   Úsklearn.metricsr   Úsklearn.model_selectionr   r   Úsklearn.pipeliner   Úsklearn.preprocessingr   r   Úsklearn.svmr   r   Úsklearn.treer   r   Úsklearn.utilsr   Úsklearn.utils._mockingr   Úsklearn.utils._set_outputr   Úsklearn.utils._testingr   r   Úsklearn.utils.validationr   r    r"   r2   r:   r?   rN   rS   rV   rZ   r\   rd   rk   rx   rŠ   r�   r™   r£   r§   r«   r»   r½   rÂ   rÊ   rÑ   rÔ   rÛ   ÚmarkÚparametrizerä   ræ   rî   rò   rþ   r  Úmake_classificationÚmake_regressionr  r!  r>  rO  rQ  r^  rl  rn  rr  Úthread_unsaferv  rx  r‚  r�  r“  r•  r™  r   r©  r¯  r²  r»  r¾  rÙ  rç  rí  rï  rñ  rô  rÿ  r  r   r*  r.  r9  rB  rK  rb   r¦   rX  r[  r]  r0   r+   r)   ú<module>rv     s³  ðó Û 	Û ã Û Ý Ý )ã ß ,÷÷ ñ õ #Ý %Ý 9Ý &ß 7Ý %ß >ß  ß FÝ $Ý 0Ý 8÷÷ Fô
�-ô ôˆô ôˆô ôˆ]ô ôˆ}ô ô�&ô ô	˜& (ô 	ô	Ð!4ô 	ô�}ô ôˆMô ÷ñ ô�Mô ò(ò$6òò(8ò#ò(òLò #òò'ò &òò
 ð ‡�×ÑØ á	‹�ˆÙ	‘c“e˜c C¨ 8˜_Ó	-¨tÐ4Ù	�E™3›5�>Ð"Ó	# TÐ*Ù	�H™l©3«5°3¸¸a¸°/ÓBÐCÐDÓ	EÀtÐLÙ	‹�ˆÙ	‘c“e˜c C¨ 8˜_Ó	-¨uÐ5Ù	�E™3›5�>Ð"Ó	# UÐ+Ù	�H™l©3«5°3¸¸a¸°/ÓBÐCÐDÓ	EÀuÐMð	óñ7óð7ð ‡�×ÑØ á	‹�ˆÙ	‘c“e˜c C¨ 8˜_Ó	-¨tÐ4Ù	�E™3›5�>Ð"Ó	# TÐ*Ù	�H™l©3«5°3¸¸a¸°/ÓBÐCÐDÓ	EÀtÐLÙ	‹�ˆÙ	‘c“e˜c C¨ 8˜_Ó	-¨uÐ5Ù	�E™3›5�>Ð"Ó	# UÐ+Ù	�H™l©3«5°3¸¸a¸°/ÓBÐCÐDÓ	EÀuÐMð	óñ6óð6ð ‡�×ÑØ á	‹�4ÐÙ	‘f“h °°1¨vÐ 6Ó	7¸Ð>Ù	�D™&›(Ð#Ð$Ó	% tÐ,Ù	�G™\©&«(°\ÀAÀqÀ6Ð4JÓKÐLÐMÓ	NÐPTÐUÙ	‹�ˆÙ	‘c“e˜c C¨ 8˜_Ó	-¨uÐ5Ù	�E™3›5�>Ð"Ó	# UÐ+Ù	�H™l©3«5°3¸¸a¸°/ÓBÐCÐDÓ	EÀuÐMð	óñ6óð6ò
/ò$Nò&$ð ‡�×ÑØñ #¨Q¸QÔ?Ø(ˆH×(Ñ(°aÔ8ð	
ñ
 "¨A¸AÔ>Ø$ˆH×$Ñ$°!Ô4ð	
ð	óñ3óð3ò#3òL)>òX2ô IÐ+ô Iðð òBô&Ð*ô ò
,ð$ ‡�×Ññ1ó ð1÷ $ñ $ô+Ð 8¸-ô +ò(ò-ô& ô ò=òKò$ò
)ò
(ò
9ò	5òK"ò\&òR"÷	ñ 	ô	�V˜]ô 	ð ‡�×Ñ˜¡}£¹Ó8HÐ&IÓJñ0ó Kð0ò"ð* ‡�×ÑØ"òóñ óð ñ@ ¨Ô-ñ ó .ð ñ2 ¨Ô-ñ ó .ð ò2<òOò<ò,ð ‡�×ÑØàØ	ˆaˆSˆ	Ø	ˆXˆR�XŠX�q�c‹]ÐØØ	�!�Q�ÐØ	��—’˜1˜a˜&Ó!Ð"ØØ	ˆrˆ
Ø	‰{ÐØ	�Š�ˆØ	�Š��—’˜2Ÿ6š6˜(Ó#Ð$ØØ	��ÐØØØ	
ˆQˆCˆØ	
ˆHˆB�HŠH�a�S‹MÐØØ	ˆsˆeˆØ	ˆhˆb�hŠh˜�u‹oÐØ
ˆQˆ�!�ˆØ	ˆ�Š�1�#‹˜˜A˜ÐØ	‰u‹wˆØ	‰z˜*Ó%Ð&ð1óñ:"ó;ð:"ò
"ð ‡�×ÑØàØØ	ˆRˆØ	ˆXˆR�XŠX�b‹\ÐØØ	’IÐØ	�H�B—H’HšYÓ'Ð(Ø	�Š�—’ÐØØØØØðóñ$	&ó%ñ$	&r+   