Ë
    êÿæiô„  ã                   ó‚  — 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l0m1Z1m2Z2 d dl3m4Z4m5Z5  G d„ de«      Z6 G d„ de«      Z7 G d„ de«      Z8 G d„ de«      Z9 G d„ de«      Z: G d„ de9«      Z; G d„ de9e:«      Z< G d „ d!e<«      Z= G d"„ d#e«      Z> G d$„ d%e«      Z? G d&„ d'«      Z@ G d(„ d)e«      ZAd*„ ZBd+„ ZCd,„ ZDd-„ ZEd.„ ZFd/„ ZGd0„ ZHd1„ ZId2„ ZJd3„ ZKd4„ ZLd5„ ZMd6„ ZNejž                  j¡                  d7 e'«       d8f e e'«       d9d:d;gi«      d8f e"d< e'«       fg«      d8f e"d= e e'«       d9d:d;gi«      fg«      d8f e(«       d>f e e(«       d9d:d;gi«      d>f e"d? e(«       fg«      d>f e"d@ e e(«       d9d:d;gi«      fg«      d>fg«      dA„ «       ZQejž                  j¡                  d7 e(«       d8f e e(«       d9d:d;gi«      d8f e"d? e(«       fg«      d8f e"d@ e e(«       d9d:d;gi«      fg«      d8f e'«       d>f e e'«       d9d:d;gi«      d>f e"d< e'«       fg«      d>f e"d= e e'«       d9d:d;gi«      fg«      d>fg«      dB„ «       ZRejž                  j¡                  d7 e«       d8f e e«       dCdDdEgi«      d8f e"dF e«       fg«      d8f e"dG e e«       dCdDdEgi«      fg«      d8f e'«       d>f e e'«       d9d:d;gi«      d>f e"d< e'«       fg«      d>f e"d= e e'«       d9d:d;gi«      fg«      d>fg«      dH„ «       ZSdI„ ZTdJ„ ZUdK„ ZVejž                  j¡                  dL e*dMd ¬N«       ej®                  d ¬O«      f e+dMd ¬N«       ej°                  d ¬O«      fg«      dP„ «       ZYdQ„ ZZdR„ Z[dS„ Z\ G dT„ dUe*«      Z]dVZ^dW„ Z_ G dX„ dYe*«      Z`dZ„ Zaejž                  jÄ                  d[„ «       Zc G d\„ d]«      Zd G d^„ d_ede«      Zed`„ Zfda„ Zg G db„ dce«      Zhdd„ Zide„ Zjdf„ Zkdg„ Zldh„ Zmdi„ Zndj„ Zodk„ Zpdl„ Zqdm„ Zr G dn„ do«      Zs G dp„ dqese«      Ztejž                  j¡                  dr e«        et«       g«      ds„ «       Zudt„ Zvejž                  j¡                  dug dv¢«      dw„ «       Zw ed8¬x«      dy„ «       Zx ed8¬x«      dz„ «       Zyd{„ Zzd|„ Z{ejž                  j¡                  d}d~dd;gfd ejø                  d;g«      fd€d�dDd‚gfd� ejø                  dDd‚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;dMgdDgf ejø                  d;g«      dMdDg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)Ú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/Volumes/fast/ai/experiments/voice-extract-mac/.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'   r3   r4   s      r(   r)   z
K.__init__3   ó   € ØˆŒØˆ�r*   ©NNr+   r/   r*   r(   r1   r1   2   ó   „ ôr*   r1   c                   ó   — e Zd Zdd„Zy)ÚTNc                 ó    — || _         || _        y r#   )ÚaÚb)r'   r;   r<   s      r(   r)   z
T.__init__9   r5   r*   r6   r+   r/   r*   r(   r9   r9   8   r7   r*   r9   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(   rB   zNaNTag.__sklearn_tags__?   s!   ø€ Ü‰wÑ'Ó)ˆØ$(ˆ�‰Ô!Øˆr*   ©r,   r-   r.   rB   Ú__classcell__©rG   s   @r(   r>   r>   >   ó   ø„ ÷ð r*   r>   c                   ó   ‡ — e Zd Zˆ fd„Zˆ xZS )ÚNoNaNTagc                 óF   •— t         ‰| �  «       }d|j                  _        |S ©NFr@   rE   s     €r(   rB   zNoNaNTag.__sklearn_tags__F   ó!   ø€ Ü‰wÑ'Ó)ˆØ$)ˆ�‰Ô!Øˆr*   rH   rJ   s   @r(   rM   rM   E   rK   r*   rM   c                   ó   ‡ — e Zd Zˆ fd„Zˆ xZS )ÚOverrideTagc                 óF   •— t         ‰| �  «       }d|j                  _        |S rO   r@   rE   s     €r(   rB   zOverrideTag.__sklearn_tags__M   rP   r*   rH   rJ   s   @r(   rR   rR   L   rK   r*   rR   c                   ó   — e Zd Zy)ÚDiamondOverwriteTagN©r,   r-   r.   r/   r*   r(   rU   rU   S   ó   „ Ør*   rU   c                   ó   — e Zd Zy)ÚInheritDiamondOverwriteTagNrV   r/   r*   r(   rY   rY   W   rW   r*   rY   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__a   s   € Ø—‘“ˆ�r*   N)r,   r-   r.   Ú__doc__ÚnpÚarrayr)   r/   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__h   s	   € Øˆ�r*   r#   ©r,   r-   r.   r_   r)   r/   r*   r(   rc   rc   e   s
   „ Ù?ôr*   rc   c                   ó"   — e Zd Zd„ Zdd„Zdd„Zy)ÚNoEstimatorc                  ó   — y r#   r/   ©r'   s    r(   r)   zNoEstimator.__init__m   ó   € Ør*   Nc                 ó   — | S r#   r/   ©r'   ÚXÚys      r(   ÚfitzNoEstimator.fitp   s   € Øˆr*   c                  ó   — y r#   r/   ©r'   rp   s     r(   ÚpredictzNoEstimator.predicts   s   € Ør*   r6   r#   )r,   r-   r.   r)   rr   ru   r/   r*   r(   rj   rj   l   s   „ òóôr*   rj   c                   ó   — e Zd ZdZd„ Zy)ÚVargEstimatorz-scikit-learn estimators shouldn't have vargs.c                  ó   — y r#   r/   )r'   Úvargss     r(   r)   zVargEstimator.__init__z   rm   r*   Nrh   r/   r*   r(   rw   rw   w   s
   „ Ù7ór*   rw   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_paramsr`   Ú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‚   )
rc   r;   ÚpytestÚraisesÚRuntimeErrorr	   rj   Ú	TypeErrorrw   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                  ó~  — t        t        j                  g «      ¬«      } t        | «      }t	        | j
                  |j
                  «       t        t        j                  t        j                  dgg«      «      ¬«      } t        | «      }t	        | j
                  j                  |j
                  j                  «       y )N©r&   r   )	r!   r`   ra   r	   r   r&   ÚspÚ
csr_matrixÚdata©ÚclfÚclf2s     r(   Útest_clone_empty_arrayr¡   ¶   sq   € ä
œBŸH™H R›LÔ
)€CÜ�‹:€DÜ�s—y‘y $§*¡*Ô-ä
œBŸM™M¬"¯(©(°Q°C°5«/Ó:Ô
;€CÜ�‹:€DÜ�s—y‘y—~‘~ t§z¡z§¡Õ7r*   c                  ó‚   — t        t        j                  ¬«      } t        | «      }| j                  |j                  u sJ ‚y ©Nrš   )r!   r`   Ú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]6  } | j                  d«      r#t        t	        t        | «      x}«      t        u r|‘Œ8 }} |D ]ž  } |t        j                  d«      «      }t        |¬«      }t        |«      }|j                  j                  |j                  j                  u sJ ‚t        |j                  j                  «       |j                  j                  «       «       Œ  y c c} w )NÚ_matrixé   rš   )Údirr›   ÚendswithÚtypeÚgetattrr`   Úeyer!   r	   r&   rG   r   Útoarray)ÚnameÚclsÚsparse_matrix_classesÚsparse_matrixrŸ   Ú
clf_cloneds         r(   Útest_clone_sparse_matricesr¸   Ð   sË   € ô œ”GóáˆDØ�=‰=˜Ô#¬´G¼BÀÓ4EÐ-E¨SÓ(FÌ$Ñ(Nò 	Øð ð ó %ˆÙœBŸF™F 1›I›ˆÜ Ô.ˆÜ˜3“Zˆ
Ø�y‰y×"Ñ" j×&6Ñ&6×&@Ñ&@Ñ@Ð@Ð@Ü˜3Ÿ9™9×,Ñ,Ó.°
×0@Ñ0@×0HÑ0HÓ0JÕKñ %ùòs   ’;C3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¿   è   s,   € ð 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è  rg   iå  )r!   Úreprr9   r1   Ú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)	r9   r1   r„   Ú
set_paramsr;   r4   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~   rf   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ã   /  ó   € ô ˜	Ó" oÒ5Ð5Ñ5r*   Ú
n_clustersé   é   ÚkmÚkm_cvc                 ó$   — t        | «      |k(  sJ ‚y r#   )r   rÞ   s     r(   Útest_is_clustererrë   @  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ï   Q  sl   € ä
�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 )Nr/   )rA   rÖ   )r'   ÚkwargsrG   Úexpected_kwargss     €€r(   rÖ   zJtest_set_params_passes_all_parameters.<locals>.TestDecisionTree.set_paramsh  s&   ø€ Ü‰GÑÑ( Ò(à˜_Ò,Ð,Ð,ØˆKr*   )r,   r-   r.   rÖ   rI   )rG   rõ   s   @€r(   ÚTestDecisionTreerò   g  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û   c  s\   ø€ öÔ1ô ð %&¸1Ñ=€Oä�;Ñ 0Ó 2Ð3Ð4Ó5ÜÑ%Ó'¨Ó,óˆð 	�‰¨AÈ1ˆÕMñ	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ÿ   v  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   rf   r�   )Úsize)Úsample_weightz5Unweighted and weighted scores are unexpectedly equal)r	   r`   ÚrandomÚRandomStaterr   ÚrandintrË   Úscore)	ÚtreeÚdatasetÚrngrp   rq   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#   r/   ro   s      r(   rr   z7test_clone_pandas_dataframe.<locals>.DummyEstimator.fit¯  ó   € Ør*   c                  ó   — y r#   r/   rt   s     r(   Ú	transformz=test_clone_pandas_dataframe.<locals>.DummyEstimator.transform²  r  r*   re   r#   )r,   r-   r.   r_   r)   rr   r  r/   r*   r(   ÚDummyEstimatorr  ›  s   „ ñ	ó	-ó	ó	r*   r  r�   rf   )r  )
r   r   r`   Úaranger   r	   r  ÚvaluesÚallr  )r  r4   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#   r/   rl   s    r(   Ú__sklearn_clone__z>test_clone_protocol.<locals>.FrozenEstimator.__sklearn_clone__Ê  ó   € ØˆKr*   c                 ó   — | S r#   r/   ©r'   Úargsrô   s      r(   rr   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'  rr   r-  r/   r*   r(   ÚFrozenEstimatorr!  Ã  s   „ ò	5ò	8ò	ò	ó	Dr*   r.  éÿÿÿÿéþÿÿÿéýÿÿÿr‚   ræ   é   rf   N)r   r`   ra   r   rr   Úcomponents_r   r   Úget_feature_names_outÚasarrayr-  r	   )r.  rp   Ú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   rr   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_versionrL  ì  sÄ   € Ü×ÑÓ€DÜ!Ó#×'Ñ'¨¯	©	°4·;±;Ó?€DÜ—,‘,˜tÓ$€KØ +Ñ-Ð-Ð-ä	×	 Ñ	 Õ	"Ü×Ñ˜gÔ&ÜŸ™ [Ó1ˆ÷ 
#ð
 Ÿ
™
 4§9¡9¨d¯k©kÓ:ÐØ%×+Ñ+¨D¯I©I°t·{±{ÓCÐØÐ 1Ò1Ð1Ñ1÷ 
#Ð	"ú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__Úitemsrl   s    r(   Ú__getstate__zTreeBadVersion.__getstate__ý  s   € Ü�D—M‘M×'Ñ'Ó)¸KÔHÐHr*   N©r,   r-   r.   rU  r/   r*   r(   rN  rN  ü  s   „ óIr*   rN  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)NrN  rP  ©rß   Úold_versionÚcurrent_versionr¼   r   )r   r?  rN  rr   r�   r@  rA  rB  Úpickle_error_messageÚformatÚsklearnÚ__version__r�   ÚwarnsÚUserWarningrF  ÚlistÚmessageÚ
isinstancer   Úestimator_nameÚoriginal_sklearn_versionÚcurrent_sklearn_version)rG  r  Útree_pickle_otherrb  Úwarning_records        r(   Ú<test_pickle_version_warning_is_issued_upon_different_versionri  
  sù   € Ü×ÑÓ€DÜÓ×Ñ §	¡	¨4¯;©;Ó7€DÜŸ™ TÓ*ÐÜ"×)Ñ)Ø"ØÜ×+Ñ+ð *ó €Gô
 
�‰”k¨Õ	1°^Ü�‰Ð&Ô'÷ 
2ð ×!Ñ! !Ñ$×,Ñ,€GÜ�gÔ9Ô:Ð:Ð:Ø×!Ñ!Ð%5Ò5Ð5Ð5Ø×+Ñ+¨{Ò:Ð:Ð:Ø×*Ñ*¬g×.AÑ.AÒAÐAÑA÷ 
2Ð	1ús   ÂD$Ä$D-c                   ó   — e Zd Zd„ Zy)ÚTreeNoVersionc                 ó   — | j                   S r#   )rS  rl   s    r(   rU  zTreeNoVersion.__getstate__  s   € Ø�}‰}Ðr*   NrV  r/   r*   r(   rk  rk    s   „ ór*   rk  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=  rk  zpre-0.18rX  r¼   )r   r?  rk  rr   r�   r@  rA  rB  r[  r\  r]  r^  r�   r_  r`  rF  )rG  r  Útree_pickle_noversionrb  s       r(   ÚDtest_pickle_version_warning_is_issued_when_no_version_info_in_picklero  "  s—   € Ü×ÑÓ€Dä‹?×Ñ˜tŸy™y¨$¯+©+Ó6€Dä"ŸL™L¨Ó.ÐØÐ&;Ñ;Ð;Ð;Ü"×)Ñ)Ø!ØÜ×+Ñ+ð *ó €Gô 
�‰”k¨Ö	1Ü�‰Ð*Ô+÷ 
2×	1Ñ	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Ú
notsklearnr>  )r   r?  rk  rr   r�   r@  rA  rB  r-   rC  rD  rE  rF  )rG  r  rn  Úmodule_backups       r(   ÚCtest_pickle_version_no_warning_is_issued_with_non_sklearn_estimatorrs  4  s�   € ä×ÑÓ€DÜ‹?×Ñ˜tŸy™y¨$¯+©+Ó6€DÜ"ŸL™L¨Ó.Ðð	1Ü%×0Ñ0ˆØ#/ŒÔ ä×$Ñ$Õ&Ü×!Ñ! 'Ô*ä�L‰LÐ.Ô/÷ 'ð
 $1ŒÕ ÷ 'Ð&ûð
 $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)rS  r]   )r'   r�   s     r(   rU  z%DontPickleAttributeMixin.__getstate__F  s$   € Ø�}‰}×!Ñ!Ó#ˆØ)-ˆÐ%Ñ&Øˆr*   c                 óD   — d|d<   | j                   j                  |«       y )NTÚ	_restored)rS  Úupdate)r'   Ústates     r(   Ú__setstate__z%DontPickleAttributeMixin.__setstate__K  s   € Ø!ˆˆkÑØ�‰×Ñ˜UÕ#r*   N)r,   r-   r.   rU  r}  r/   r*   r(   ru  ru  E  s   „ òó
$r*   ru  c                   ó   — e Zd Zdd„Zy)ÚMultiInheritanceEstimatorc                 ó    — || _         d | _        y r#   ©Úattribute_pickledrx  ©r'   r‚  s     r(   r)   z"MultiInheritanceEstimator.__init__Q  ó   € Ø!2ˆÔØ&*ˆÕ#r*   N©r¬   r+   r/   r*   r(   r  r  P  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  rx  rA  rB  rF  r‚  rz  ©rß   Ú
serializedÚestimator_restoreds      r(   Ú3test_pickling_when_getstate_is_overwritten_by_mixinrŒ  V  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ˆ  rq  r¬   )rx  r‚  r2  r‚  )r  rx  r¯   r-   rU  r}  r‚  rz  )rß   ÚtextÚold_modrŠ  s       r(   ÚFtest_pickling_when_getstate_is_overwritten_by_mixin_outside_of_sklearnr�  a  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__u  r„  r*   c                 ó.   •— t         ‰| �  «       }d |d<   |S rw  )rA   rU  )r'   r|  rG   s     €r(   rU  z'SingleInheritanceEstimator.__getstate__y  s    ø€ Ü‘Ñ$Ó&ˆØ*.ˆÐ&Ñ'Øˆr*   r…  )r,   r-   r.   r)   rU  rI   rJ   s   @r(   r’  r’  t  s   ø„ ó+÷ð r*   r’  c                  ó¸   — t        «       } d| _        t        j                  | «      }t        j                  |«      }|j
                  dk(  sJ ‚|j                  �J ‚y r‡  )r’  rx  rA  rB  rF  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>   rM   rB   rC   rD   rR   rU   rY   )Ú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#   r/   ©r'   Úparams     r(   r)   zEtest_raises_on_get_params_non_attribute.<locals>.MyEstimator.__init__�  r  r*   Nc                 ó   — | S r#   r/   ro   s      r(   rr   z@test_raises_on_get_params_non_attribute.<locals>.MyEstimator.fit   r(  r*   r…  r#   )r,   r-   r.   r)   rr   r/   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¦  ›  s@   € ô”mô ñ ‹-€CØ
9€Cä	�‰”~¨SÖ	1Ø�‰Ô÷ 
2×	1Ñ	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¬  ª  sr   € ä!Ó#€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¯  ·  sl   € ä!Ó#€Dà×ÑÓ€FØ˜ÑÐÐä	 Ö	'Ø0ˆÜ�]‰]œ>°Ö5Ø×%Ñ%Ó'ˆF÷ 6÷ 
(Ð	'ç5Ð5ú÷ 
(Ð	'ú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©rf   r‚   ræ   )r2  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¸  Ä  s^   € ä
‹-€CÚš)Ð$€GÜ�c˜7¨$Õ/à×Ñ Ò"Ð"Ð"à
T€CÜ	�‰”z¨Ö	-Ü˜#˜{°%Õ8÷ 
.×	-Ñ	-ú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   ro   s      r(   rr   z2test_feature_names_in.<locals>.NoOpTransformer.fitå  ó   € Ü˜$ Ô"ØˆKr*   c                 ó"   — t        | |d¬«       |S ©NFr³  rÃ  rt   s     r(   r  z8test_feature_names_in.<locals>.NoOpTransformer.transformé  s   € Ü˜$ ¨Õ/ØˆHr*   r#   ©r,   r-   r.   rr   r  r/   r*   r(   ÚNoOpTransformerrÁ  ä  s   „ ó	ó	r*   rÈ  Úfeature_names_in_z5The feature names should match those that were passedNr/  r¼   zVX does not have valid feature names, but NoOpTransformer was fitted with feature nameszIX has feature names, but NoOpTransformer was fitted without feature namesr>  )r;   r<   rf   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   r?  r�   Ú	DataFrameÚfeature_namesr   r   rr   r   rÉ  r¿  r�   r‘   r×   r  r_  r`  rC  rD  rE  ÚreÚescaper“   )ÚpdrG  ÚX_npr  rÈ  Útransr¾   Údf_badÚdf_int_namesÚXsrp   Ú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>.NoOpTransformerNrV   r/   r*   r(   rÈ  rÙ  3  ó   „ Ør*   rÈ  F)Úskip_check_arrayT)rq   rÛ  z*Validation should be done on X, y or both.r¼   N)r�   rÊ  r   r?  rË  r�   rÌ  ÚSeriesr@  r   r   r   rc  r`   Úndarrayr   Úto_numpyr‘   r×   )rÏ  rG  r  rq   rÈ  Úno_opÚX_np_outÚX_df_outÚy_np_outÚy_series_outr¾   s              r(   Ú#test_validate_data_skip_check_arrayrä  +  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ê  T  sI   € ô 
Ó	×	$Ñ	$¨xÐ	$Ó	8€BÜ ¨RÓ0€Fä�R‹y€HÜ% k°8Ó<€LØ�\Ò!Ð!Ñ!r*   c                   ó   — e Zd Zy)Ú_EmptyNrV   r/   r*   r(   rì  rì  _  rW   r*   rì  c                   ó   — e Zd Zy)ÚEmptyEstimatorNrV   r/   r*   r(   rî  rî  c  rW   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.
    rQ  N)rU  r]  r^  rA  rF  rB  r   )rß   r|  Úexpecteds      r(   Ú"test_estimator_empty_instance_dictrñ  g  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__r/   r*   r(   Ú	WithSlotsrô  z  s   „ Ø‰	r*   rø  c                   ó   — e Zd Zy)úDtest_estimator_getstate_using_slots_error_message.<locals>.EstimatorNrV   r/   r*   r(   Ú	Estimatorrú  }  rÚ  r*   rû  zRYou cannot use `__slots__` in objects inheriting from `sklearn.base.BaseEstimator`r¼   N)r   r�   r‘   r“   rU  rA  rB  )rø  rû  r¾   s      r(   Ú1test_estimator_getstate_using_slots_error_messagerü  w  s   € ÷ñ ô”M 9ô ð	'ð ô
 
�‰”y¨Ö	,Ù‹× Ñ Ô"÷ 
-ô 
�‰”y¨Ö	,Ü�‰‘Y“[Ô!÷ 
-Ð	,÷ 
-Ð	,ú÷ 
-Ð	,ús   ¸BÁ1B!ÂBÂ!B*zconstructor_name, minversion))Ú	dataframez1.5.0)Úpyarrowz12.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:Uses the dataframe exchange protocol to get feature names.)rf   r2  r‚   )ræ   ræ   r²  )Úcol_0Úcol_1Úcol_2)Úcolumns_nameÚ
minversionc                   ó   — e Zd Zdd„Zd„ Zy)ú0test_dataframe_protocol.<locals>.NoOpTransformerNc                 ó   — t        | |«       | S r#   rÃ  ro   s      r(   rr   z4test_dataframe_protocol.<locals>.NoOpTransformer.fit�  rÄ  r*   c                 ó   — t        | |d¬«      S rÆ  rÃ  rt   s     r(   r  z:test_dataframe_protocol.<locals>.NoOpTransformer.transform¡  s   € Ü   q°Ô6Ð6r*   r#   rÇ  r/   r*   r(   rÈ  r  œ  s   „ ó	ó	7r*   rÈ  rþ  )r;   r<   r3   )r  zThe feature names should matchr¼   N)r   r   r   rr   r   rÉ  r  r   r�   r‘   r×   )
Úconstructor_namer  r�   r¿  r  rÈ  rß  ÚX_outÚ	bad_namesrÒ  s
             r(   Útest_dataframe_protocolr  Œ  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Ø�‰˜Ô÷ 
K×	JÑ	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#   r/   ©r'   rp   rq   Úprops       r(   rr   zXtest_transformer_fit_transform_with_metadata_in_transform.<locals>.CustomTransformer.fitº  r(  r*   c                 ó   — |S r#   r/   ©r'   rp   r  s      r(   r  z^test_transformer_fit_transform_with_metadata_in_transform.<locals>.CustomTransformer.transform½  ó   € ØˆHr*   r6   r#   rÇ  r/   r*   r(   ÚCustomTransformerr  ¹  ó   „ ó	ô	r*   r  z*`transform` method which consumes metadatar¼   T©r  rf   N©Úrecordr   )
r   r   r�   r_  r`  Úset_transform_requestr-  rC  rD  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ô 	
÷ 
Wô 
×	 Ñ	 ¨Õ	-°ÙÓ×1Ñ1°tÐ1Ó<×JÑJÈQÈCÈ5ÐSTÐRUÔVÜ�6‹{˜aÒÐÑ÷ 
.Ð	-÷ 
WÐ	Vú÷ 
.Ð	-úó   °-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#   r/   r  s       r(   rr   zZtest_outlier_mixin_fit_predict_with_metadata_in_predict.<locals>.CustomOutlierDetector.fitÔ  r(  r*   c                 ó   — |S r#   r/   r  s      r(   ru   z^test_outlier_mixin_fit_predict_with_metadata_in_predict.<locals>.CustomOutlierDetector.predict×  r  r*   r6   r#   )r,   r-   r.   rr   ru   r/   r*   r(   ÚCustomOutlierDetectorr"  Ó  r  r*   r%  z(`predict` method which consumes metadatar¼   Tr  rf   Nr  r   )
r   r   r�   r_  r`  Úset_predict_requestÚfit_predictrC  rD  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ô 	
÷ 
Uô 
×	 Ñ	 ¨Õ	-°ÙÓ×3Ñ3¸Ð3Ó>×JÑJÈQÈCÈ5ÐSTÐRUÔVÜ�6‹{˜aÒÐÑ÷ 
.Ð	-÷ 
UÐ	Tú÷ 
.Ð	-ú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                 ó*   ‡ —  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(   ÚDynamicEstimatorr/  ñ  s   ø„ Ù!.ô 	r*   r4  )r   )r3  r4  s   ` r(   Úmake_estimator_with_paramr5  ð  s   ø€ öœ=ô ð Ðr*   zdefault_value, test_value)r/   )rf   r/   )©rf   r‚   )ræ   r2  r6  r2  re   c                 ó   — | S r#   r/   rõ  s    r(   Ú<lambda>r8    s   € ™r*   ç      ð?)ÚabcÚdefr:  )TF)r9  ç       @Ú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
    r1  r£  N©r5  r*  r+  ©r3  Ú
test_valuerß   r+  s       r(   Útest_param_is_non_defaultrB  ø  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   r2  r1  r£  N)r�   rÊ  r5  ÚNAr*  r+  )rÏ  rß   r+  s      r(   Ú(test_param_is_non_default_when_pandas_NArE     sL   € ô 
×	Ñ	˜XÓ	&€Bà:Ô)¸Ô:ÀÇÁÔG€IØ×,Ñ,Ó.×:Ñ:€KØ�kÑ!Ð!Ñ!r*   r6   )r/   r/   )r±  r±  r±  )r:  r:  )TT)rf   rf   )r9  r9  )r‚   r<  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
    r1  r£  Nr?  r@  s       r(   Útest_param_is_defaultrG  -  s8   € ð2 9Ô)¨-Ó8¸zÔJ€IØ×,Ñ,Ó.×:Ñ:€KØ˜+Ñ%Ð%Ñ%r*   )�rA  rÍ  rC  Únumpyr`   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.utils._mockingr   Úsklearn.utils._set_outputr   Úsklearn.utils._testingr   r   Úsklearn.utils.validationr   r   r!   r1   r9   r>   rM   rR   rU   rY   r[   rc   rj   rw   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;  rL  rN  r[  ri  rk  ro  Úthread_unsafers  ru  r  rŒ  r�  r’  r–  r�  r¦  r¬  r¯  r¸  r»  rÖ  rä  rê  rì  rî  rñ  rü  r  r  r(  r,  r5  ra   r¤   rB  rE  rG  r/   r*   r(   Ú<module>r_     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<òð ‡�×ÑØàØ	ˆ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*   