Ë
    D�Dj_s  ã                   ól  — 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 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 d d
lmZ d dl m!Z!m"Z" d dl#m$Z$ d dl%m&Z& d dl'm(Z(m)Z)m*Z*m+Z+  G d„ de«      Z, G d„ de«      Z- G d„ de«      Z. G d„ de«      Z/ G d„ de«      Z0 G d„ de/«      Z1 G d„ de/e0«      Z2 G d„ de2«      Z3 G d„ d e«      Z4 G d!„ d"e«      Z5 G d#„ d$«      Z6 G d%„ d&e«      Z7d'„ Z8d(„ Z9d)„ Z:d*„ Z;d+„ Z<d,„ Z=d-„ Z>d.„ Z?d/„ Z@d0„ ZAd1„ ZBd2„ ZCd3„ ZDd4„ ZEd5„ ZFd6„ ZGej�                  j“                  d7 e!d8d ¬9«       ej”                  d ¬:«      f e"d8d ¬9«       ej–                  d ¬:«      fg«      d;„ «       ZLd<„ ZMd=„ ZNd>„ ZO G d?„ d@e!«      ZPdAZQdB„ ZR G dC„ dDe!«      ZSdE„ ZTdF„ ZU G dG„ dH«      ZV G dI„ dJeVe«      ZWdK„ ZXdL„ ZY G dM„ dNe«      ZZ e+e[¬O«      dP„ «       Z\dQ„ Z]dR„ Z^dS„ Z_dT„ Z`dU„ ZadV„ ZbdW„ ZcdX„ ZddY„ Ze G dZ„ d[«      Zf G d\„ d]efe«      Zgej�                  j“                  d^ e«        eg«       g«      d_„ «       Zhd`„ Ziej�                  j“                  dag db¢«      dc„ «       Zjej�                  j×                  dd«      de„ «       Zlej�                  j×                  dd«      df„ «       Zmy)gé    N)Úassert_allclose)Úconfig_contextÚdatasets)ÚBaseEstimatorÚOutlierMixinÚTransformerMixinÚcloneÚis_classifier)ÚPCA)ÚInconsistentVersionWarning)ÚGridSearchCV)ÚPipeline)ÚStandardScaler)ÚSVC)ÚDecisionTreeClassifierÚDecisionTreeRegressor)ÚMockDataFrame)Ú_get_output_config)Ú_convert_containerÚassert_array_equalÚassert_no_warningsÚignore_warningsc                   ó   — e Zd Zdd„Zy)ÚMyEstimatorNc                 ó    — || _         || _        y ©N)Úl1Úempty)Úselfr   r   s      ú[C:\Crop_Prediction\Backend\crop-ai-system\venv\Lib\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   r+   r,   s      r    r!   z
K.__init__0   ó   € ØˆŒØˆ�r"   ©NNr#   r'   r"   r    r)   r)   /   ó   „ ôr"   r)   c                   ó   — e Zd Zdd„Zy)ÚTNc                 ó    — || _         || _        y r   )ÚaÚb)r   r3   r4   s      r    r!   z
T.__init__6   r-   r"   r.   r#   r'   r"   r    r1   r1   5   r/   r"   r1   c                   ó   — e Zd Zd„ Zy)ÚNaNTagc                 ó
   — ddiS )NÚ	allow_nanTr'   ©r   s    r    Ú
_more_tagszNaNTag._more_tags<   s   € Ø˜TÐ"Ð"r"   N©r$   r%   r&   r:   r'   r"   r    r6   r6   ;   s   „ ó#r"   r6   c                   ó   — e Zd Zd„ Zy)ÚNoNaNTagc                 ó
   — ddiS ©Nr8   Fr'   r9   s    r    r:   zNoNaNTag._more_tagsA   ó   € Ø˜UÐ#Ð#r"   Nr;   r'   r"   r    r=   r=   @   ó   „ ó$r"   r=   c                   ó   — e Zd Zd„ Zy)ÚOverrideTagc                 ó
   — ddiS r?   r'   r9   s    r    r:   zOverrideTag._more_tagsF   r@   r"   Nr;   r'   r"   r    rC   rC   E   rA   r"   rC   c                   ó   — e Zd Zd„ Zy)ÚDiamondOverwriteTagc                 ó   — t        «       S r   )Údictr9   s    r    r:   zDiamondOverwriteTag._more_tagsK   s	   € Ü‹vˆr"   Nr;   r'   r"   r    rF   rF   J   s   „ ór"   rF   c                   ó   — e Zd Zy)ÚInheritDiamondOverwriteTagN©r$   r%   r&   r'   r"   r    rJ   rJ   O   ó   „ Ør"   rJ   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   )Úcopyr3   ©r   r3   s     r    r!   zModifyInitParams.__init__Y   s   € Ø—‘“ˆ�r"   N)r$   r%   r&   Ú__doc__ÚnpÚarrayr!   r'   r"   r    rN   rN   S   s   „ ñð
 "˜Ÿ™ 1 #›ô r"   rN   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é   ©r3   rQ   s     r    r!   zBuggy.__init__`   s	   € Øˆ�r"   r   ©r$   r%   r&   rR   r!   r'   r"   r    rV   rV   ]   s
   „ Ù?ôr"   rV   c                   ó"   — e Zd Zd„ Zdd„Zdd„Zy)ÚNoEstimatorc                  ó   — y r   r'   r9   s    r    r!   zNoEstimator.__init__e   ó   € Ør"   Nc                 ó   — | S r   r'   ©r   ÚXÚys      r    ÚfitzNoEstimator.fith   s   € Øˆr"   c                  ó   — y r   r'   ©r   rb   s     r    ÚpredictzNoEstimator.predictk   s   € Ør"   r.   r   )r$   r%   r&   r!   rd   rg   r'   r"   r    r]   r]   d   s   „ òóôr"   r]   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__r   r_   r"   Nr[   r'   r"   r    ri   ri   o   s
   „ Ù7ór"   ri   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_selectionrn   ro   r	   Ú
get_paramsrS   Úzeros©rn   ro   ÚselectorÚnew_selectors       r    Ú
test_cloner{   z   sp   € ÷ ?á˜¨#Ô.€HÜ˜“?€LØ˜<Ñ'Ñ'Ø×ÑÓ  L×$;Ñ$;Ó$=Ò=Ñ=á˜¬"¯(©(°7Ó*;Ô<€HÜ˜“?€LØ˜<Ñ'Ñ'Ð'r"   c                  óh   — ddl m} m}  | |d¬«      }d|_        t	        |«      }t        |d«      rJ ‚y )Nr   rm   rp   rq   ÚtestÚown_attribute)ru   rn   ro   r~   r	   Úhasattrrx   s       r    Útest_clone_2r€   Œ   s4   € ÷ ?á˜¨#Ô.€HØ#€HÔÜ˜“?€LÜ�| _Ô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)Nrt   )
rV   r3   ÚpytestÚraisesÚRuntimeErrorr	   r]   Ú	TypeErrorri   rN   )Ú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   rS   rT   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   rS   Ú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 )Nr3   )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ÚgetattrrS   Úeyer   r	   r   Ú	__class__r   Útoarray)ÚnameÚclsÚsparse_matrix_classesÚsparse_matrixr‘   Ú
clf_cloneds         r    Útest_clone_sparse_matricesr«   È   sÍ   € ô œ“GöàØ�=‰=˜Ô#¬´G¼BÀÓ4EÐ-E¨SÓ(FÌ$Ñ(Nò 	ðÐð ð %ò LˆÙœBŸF™F 1›I›ˆÜ Ô.ˆÜ˜3“Zˆ
Ø�y‰y×"Ñ" j×&6Ñ&6×&@Ñ&@Ñ@Ñ@Ü˜3Ÿ9™9×,Ñ,Ó.°
×0@Ñ0@×0HÑ0HÓ0JÕKñLùò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²   à   s5   € ð E€CÜ	�‰”y¨Ô	,ñ ÜŒkÔ÷÷ ñ ús	   ž7·A 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è  rZ   iå  )r   Úreprr1   r)   Úlen)Úmy_estimatorr}   Úsome_ests      r    Ú	test_reprr¹   è   sX   € ä“=€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)ÚdeepFrt   )r¾   )Úa__a)	r1   r)   rv   Ú
set_paramsr3   r,   r‚   rƒ   Ú
ValueError)r}   s    r    Útest_get_paramsrÃ   ù   sŠ   € ÜŒQ‹S”!‹9€Dà�T—_‘_¨$�_Ó/Ñ/Ñ/Ø˜Ÿ™¨e˜Ó4Ñ4Ñ4à‡O�O˜€OÔØ�6‰6�8‰8�qŠ=Ñä	�‰”zÓ	"ñ  Ø�‰˜QˆÔ÷ ÷  ñ  ús   ÂB'Â'B0c                  óè   — t        «       } t        | «      sJ ‚t        t        | dddgi«      «      sJ ‚t        t        d| fg«      «      sJ ‚t        t        dt        | dddgi«      fg«      «      sJ ‚y )NÚCrp   rY   ÚsvcÚsvc_cv)r   r
   r   r   )rÆ   s    r    Útest_is_classifierrÈ     sn   € Ü
‹%€CÜ˜ÔÑÜœ c¨C°#°q°¨?Ó;Ô<Ñ<Üœ E¨3 < .Ó1Ô2Ñ2Üœ H¬l¸3ÀÀsÈAÀhÀÓ.PÐ#QÐ"RÓSÔTÑTÐTr"   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Ì     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 )Nr'   )ÚsuperrÁ   )r   Úkwargsr¤   Úexpected_kwargss     €€r    rÁ   zJtest_set_params_passes_all_parameters.<locals>.TestDecisionTree.set_params%  s#   ø€ Ü‰GÑÑ( Ò(à˜_Ò,Ñ,ØˆKr"   )r$   r%   r&   rÁ   Ú__classcell__)r¤   rÓ   s   @€r    ÚTestDecisionTreerÏ   $  s   ù„ ÷	ñ 	r"   rÕ   rž   rt   )Ú	max_depthÚmin_samples_leafÚ	estimator)Úestimator__max_depthÚestimator__min_samples_leaf)r   r   r   rÁ   )rÕ   r‰   rÓ   s     @r    Ú%test_set_params_passes_all_parametersrÛ      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ß   3  s>   € ô Ô.Ó0°"Ó5€DØ‡O�Oœc›e°$€OÔ7Ø�>‰>×Ñ˜tÒ#Ñ#Ð#r"   ztree,datasetrt   )rÖ   Úrandom_state)rà   c                 ó  — t         j                  j                  d«      }|\  }}| j                  ||«       |j	                  ddt        |«      ¬«      }| j                  ||«      }| j                  |||¬«      }d}||k7  sJ |«       ‚y )Nr   rY   rs   )Úsize)Úsample_weightz5Unweighted and weighted scores are unexpectedly equal)rS   ÚrandomÚRandomStaterd   Úrandintr¶   Úscore)	ÚtreeÚdatasetÚrngrb   rc   rã   Úscore_unweightedÚscore_weightedr±   s	            r    Útest_score_sample_weightrí   ;  sƒ   € ô �)‰)×
Ñ
 Ó
"€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__g  s   € ØˆDŒGØ ,ˆDÕr"   c                  ó   — y r   r'   ra   s      r    rd   z7test_clone_pandas_dataframe.<locals>.DummyEstimator.fitk  ó   € Ør"   c                  ó   — y r   r'   rf   s     r    Ú	transformz=test_clone_pandas_dataframe.<locals>.DummyEstimator.transformn  rõ   r"   rX   r   )r$   r%   r&   rR   r!   rd   r÷   r'   r"   r    ÚDummyEstimatorrð   W  s   „ ñ	ó	-ó	ó	r"   rø   rs   rY   )ró   )
r   r   rS   Úaranger   r	   rò   ÚvaluesÚallró   )rø   r,   rò   ÚeÚcloned_es        r    Útest_clone_pandas_dataframerþ   V  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'   r9   s    r    Ú__sklearn_clone__z>test_clone_protocol.<locals>.FrozenEstimator.__sklearn_clone__†  ó   € ØˆKr"   c                 ó   — | S r   r'   ©r   ÚargsrÒ   s      r    rd   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  rd   r  r'   r"   r    ÚFrozenEstimatorr    s   „ ò	5ò	8ò	ò	ó	Dr"   r  éÿÿÿÿéþÿÿÿéýÿÿÿrt   é   é   rY   N)r   rS   rT   r   rd   Úcomponents_r   r   Úget_feature_names_outÚasarrayr  r	   )r  rb   Ú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        t        j                  |«      }|j                  | j                  | j
                  «      }|j                  | j                  | j
                  «      }||k(  sJ ‚y )Nó   _sklearn_version)r   Ú	load_irisr   rd   r�   ÚtargetÚpickleÚdumpsr   Úloadsrç   )Úirisrè   Útree_pickleÚtree_restoredÚscore_of_originalÚscore_of_restoreds         r    Ú?test_pickle_version_warning_is_not_raised_with_matching_versionr)  ¨  s›   € Ü×ÑÓ€DÜ!Ó#×'Ñ'¨¯	©	°4·;±;Ó?€DÜ—,‘,˜tÓ$€KØ +Ñ-Ñ-Ü&¤v§|¡|°[ÓA€Mð Ÿ
™
 4§9¡9¨d¯k©kÓ:ÐØ%×+Ñ+¨D¯I©I°t·{±{ÓCÐØÐ 1Ò1Ñ1Ð1r"   c                   ó   — e Zd Zd„ Zy)ÚTreeBadVersionc                 óL   — t        | j                  j                  «       d¬«      S )NÚ	something)Ú_sklearn_version)rH   Ú__dict__Úitemsr9   s    r    Ú__getstate__zTreeBadVersion.__getstate__¶  s   € Ü�D—M‘M×'Ñ'Ó)¸KÔHÐHr"   N©r$   r%   r&   r1  r'   r"   r    r+  r+  µ  s   „ óIr"   r+  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)Nr+  r-  ©rØ   Úold_versionÚcurrent_versionr¯   r   )r   r  r+  rd   r�   r   r!  r"  Úpickle_error_messageÚformatÚsklearnÚ__version__r‚   ÚwarnsÚUserWarningr#  ÚlistÚmessageÚ
isinstancer   Úestimator_nameÚoriginal_sklearn_versionÚcurrent_sklearn_version)r$  rè   Útree_pickle_otherr>  Úwarning_records        r    Ú<test_pickle_version_warning_is_issued_upon_different_versionrE  Ã  s÷   € Ü×ÑÓ€DÜÓ×Ñ §	¡	¨4¯;©;Ó7€DÜŸ™ TÓ*ÐÜ"×)Ñ)Ø"ØÜ×+Ñ+ð *ó €Gô
 
�‰”k¨Ô	1ð (°^Ü�‰Ð&Ô'÷(ð ×!Ñ! !Ñ$×,Ñ,€GÜ�gÔ9Ô:Ñ:Ø×!Ñ!Ð%5Ò5Ñ5Ø×+Ñ+¨{Ò:Ñ:Ø×*Ñ*¬g×.AÑ.AÒAÑAÐA÷(ð (ús   ÂD$Ä$D-c                   ó   — e Zd Zd„ Zy)ÚTreeNoVersionc                 ó   — | j                   S r   )r/  r9   s    r    r1  zTreeNoVersion.__getstate__×  s   € Ø�}‰}Ðr"   Nr2  r'   r"   r    rG  rG  Ö  s   „ ór"   rG  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  rG  zpre-0.18r4  r¯   )r   r  rG  rd   r�   r   r!  r"  r7  r8  r9  r:  r‚   r;  r<  r#  )r$  rè   Útree_pickle_noversionr>  s       r    ÚDtest_pickle_version_warning_is_issued_when_no_version_info_in_picklerK  Û  s�   € Ü×ÑÓ€Dä‹?×Ñ˜tŸy™y¨$¯+©+Ó6€Dä"ŸL™L¨Ó.ÐØÐ&;Ñ;Ñ;Ü"×)Ñ)Ø!ØÜ×+Ñ+ð *ó €Gô 
�‰”k¨Ô	1ñ ,Ü�‰Ð*Ô+÷,÷ ,ñ ,ús   ÂB>Â>Cc                  óT  — t        j                  «       } t        «       j                  | j                  | j
                  «      }t        j                  |«      }	 t        j                  }dt        _        t        t        j                  |«       |t        _        y # t        _        w xY w)NÚ
notsklearn)r   r  rG  rd   r�   r   r!  r"  r%   r   r#  )r$  rè   rJ  Úmodule_backups       r    ÚCtest_pickle_version_no_warning_is_issued_with_non_sklearn_estimatorrO  ì  ss   € Ü×ÑÓ€DÜ‹?×Ñ˜tŸy™y¨$¯+©+Ó6€DÜ"ŸL™L¨Ó.Ðð1Ü%×0Ñ0ˆØ#/ŒÔ Üœ6Ÿ<™<Ð)>Ô?à#0ŒÕ ø =ŒÕ ús   Á5B ÂB'c                   ó   — e Zd Zd„ Zd„ Zy)ÚDontPickleAttributeMixinc                 óD   — | j                   j                  «       }d |d<   |S ©NÚ_attribute_not_pickled©r/  rP   ©r   r�   s     r    r1  z%DontPickleAttributeMixin.__getstate__ù  ó$   € Ø�}‰}×!Ñ!Ó#ˆØ)-ˆÐ%Ñ&Øˆr"   c                 óD   — d|d<   | j                   j                  |«       y )NTÚ	_restored)r/  Úupdate)r   Ústates     r    Ú__setstate__z%DontPickleAttributeMixin.__setstate__þ  s   € Ø!ˆˆkÑØ�‰×Ñ˜UÕ#r"   N)r$   r%   r&   r1  r\  r'   r"   r    rQ  rQ  ø  s   „ òó
$r"   rQ  c                   ó   — e Zd Zdd„Zy)ÚMultiInheritanceEstimatorc                 ó    — || _         d | _        y r   ©Úattribute_pickledrT  ©r   ra  s     r    r!   z"MultiInheritanceEstimator.__init__  ó   € Ø!2ˆÔØ&*ˆÕ#r"   N©rž   r#   r'   r"   r    r^  r^    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^  rT  r!  r"  r#  ra  rY  ©rØ   Ú
serializedÚestimator_restoreds      r    Ú3test_pickling_when_getstate_is_overwritten_by_mixinrk  	  s^   € Ü)Ó+€IØ'M€IÔ$ä—‘˜iÓ(€JÜŸ™ jÓ1ÐØ×/Ñ/°1Ò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)Nrg  rM  rž   )rT  ra  r  ra  )r^  rT  r¡   r%   r1  r\  ra  rY  )rØ   ÚtextÚold_modri  s       r    ÚFtest_pickling_when_getstate_is_overwritten_by_mixin_outside_of_sklearnro    s¨   € ð-Ü-Ó/ˆ	Ø5ˆØ+/ˆ	Ô(Ü�y“/×,Ñ,ˆØ%1ŒˆY‹Ô"à×+Ñ+Ó-ˆ
Ø¸ÐSTÑUÒUÑUà*+ˆ
Ð&Ñ'Ø×Ñ˜zÔ*Ø×*Ñ*¨aÒ/Ñ/Ø×"Ò"Ñ"Ð"à%,ŒˆY‹Õ"ø WŒˆY‹Õ"ús   ‚BB ÂB-c                   ó   — e Zd Zdd„Zd„ Zy)ÚSingleInheritanceEstimatorc                 ó    — || _         d | _        y r   r`  rb  s     r    r!   z#SingleInheritanceEstimator.__init__(  rc  r"   c                 óD   — | j                   j                  «       }d |d<   |S rS  rU  rV  s     r    r1  z'SingleInheritanceEstimator.__getstate__,  rW  r"   Nrd  )r$   r%   r&   r!   r1  r'   r"   r    rq  rq  '  s   „ ó+ór"   rq  )Úcategoryc                  ó¸   — t        «       } d| _        t        j                  | «      }t        j                  |«      }|j
                  dk(  sJ ‚|j                  �J ‚y rf  )rq  rT  r!  r"  r#  ra  rh  s      r    ÚCtest_pickling_works_when_getstate_is_overwritten_in_the_child_classrv  2  sR   € ä*Ó,€IØ'M€IÔ$ä—‘˜iÓ(€JÜŸ™ jÓ1ÐØ×/Ñ/°1Ò4Ñ4Ø×4Ñ4Ð<Ñ<Ð<r"   c                  ó:  — t        «       } t        «       }| j                  «       d   sJ ‚|j                  «       d   rJ ‚t        «       }|j                  «       d   rJ ‚t	        «       }|j                  «       d   sJ ‚t        «       }|j                  «       d   sJ ‚y )Nr8   )r6   r=   Ú	_get_tagsrC   rF   rJ   )Ú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Ø× Ñ Ó" ;Ò/Ñ/Ø×'Ñ'Ó)¨+Ò6Ñ6ä#›ÐØ ×*Ñ*Ó,¨[Ò9Ñ9ä)Ó+€OØ×$Ñ$Ó& {Ò3Ñ3ä8Ó:ÐØ"×,Ñ,Ó.¨{Ò;Ñ;Ð;r"   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__Q  rõ   r"   Nc                 ó   — | S r   r'   ra   s      r    rd   z@test_raises_on_get_params_non_attribute.<locals>.MyEstimator.fitT  r  r"   rd  r   )r$   r%   r&   r!   rd   r'   r"   r    r   r�  P  s   „ ó	ô	r"   r   z-'MyEstimator' object has no attribute 'param'r¯   )r   r‚   rƒ   ÚAttributeErrorrv   )r   r‰   r±   s      r    Ú'test_raises_on_get_params_non_attributer†  O  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/htmlrm  ©Ú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>rm  rˆ  z _repr_html_ is only defined whenr¯   )r   Ú_repr_html_r   r‚   rƒ   r…  )rè   r‹  r±   s      r    Útest_repr_html_wrapsr�  k  s{   € ä!Ó#€Dà×ÑÓ€FØ˜ÑÑä	 Ô	'ñ (Ø0ˆÜ�]‰]œ>°Ô5ñ 	(Ø×%Ñ%Ó'ˆF÷	(÷(ð (÷	(ð 	(ú÷(ð (ús#   ­A9ÁA-ÁA9Á-A6	Á2A9Á9Bc                  óú   — t        «       } g d¢g d¢g}| j                  |d¬«       | j                  dk(  sJ ‚d}t        j                  t
        |¬«      5  | j                  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)rY   rt   r  )r  rž   é   T©Úresetr  zHX does not contain any features, but MyEstimator is expecting 3 featuresr¯   ú	invalid XFN)r   Ú_check_n_featuresÚn_features_in_r‚   rƒ   rÂ   )r‰   ÚX_trainr±   s      r    Útest_n_features_in_validationr˜  x  sr   € ä
‹-€CÚš)Ð$€GØ×Ñ˜'¨ÐÔ.à×Ñ Ò"Ñ"à
T€CÜ	�‰”z¨Ô	-ñ 8Ø×Ñ˜k°ÐÔ7÷8÷ 8ñ 8ús   ÁA1Á1A:c                  ó€   — t        «       } | j                  dd¬«       t        | d«      rJ ‚| j                  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š  …  sA   € ô ‹-€CØ×Ñ˜+¨TÐÔ2ä�sÐ,Ô-Ñ-ð ×Ñ˜+¨UÐÕ3r"   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                 ó(   — | j                  |«       | S r   ©Ú_validate_datara   s      r    rd   z2test_feature_names_in.<locals>.NoOpTransformer.fit™  ó   € Ø×Ñ Ô"ØˆKr"   c                 ó,   — | j                  |d¬«       |S ©NFr’  r¢  rf   s     r    r÷   z8test_feature_names_in.<locals>.NoOpTransformer.transform�  s   € Ø×Ñ ¨ÐÔ/ØˆHr"   r   ©r$   r%   r&   rd   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 namesÚerror)r3   r4   rY   rt   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   rd   r   r©  rž  r   rƒ   rÂ   r÷   r;  r<  ÚwarningsÚcatch_warningsÚsimplefilterÚreÚescaper…   )Úpdr$  ÚX_nprò   r¨  Útransr±   Údf_badÚdf_int_namesÚXsrb   Ú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à	‡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                  óh  — t        j                  d«      } t        j                  «       }| j	                  |j
                  |j                  ¬«      }| j                  |j                  «      } G d„ dt        t        «      } |«       }|j                  |d¬«      }t        |t        j                  «      sJ ‚t        ||j!                  «       «       |j                  |d¬«      }||u sJ ‚|j                  |d¬«      }t        |t        j                  «      sJ ‚t        ||j!                  «       «       |j                  |d¬«      }	|	|u sJ ‚|j                  ||d¬«      \  }}t        |t        j                  «      sJ ‚t        ||j!                  «       «       t        |t        j                  «      sJ ‚t        ||j!                  «       «       |j                  ||d¬«      \  }}	||u sJ ‚|	|u sJ ‚d	}
t        j"                  t$        |
¬
«      5  |j                  «        ddd«       y# 1 sw Y   yxY w)z/Check cast_to_ndarray option of _validate_data.rœ  r�  c                   ó   — e Zd Zy)ú;test_validate_data_cast_to_ndarray.<locals>.NoOpTransformerNrK   r'   r"   r    r¨  r½  ç  ó   „ Ør"   r¨  T)Úcast_to_ndarrayF)rc   r¿  z*Validation should be done on X, y or both.r¯   N)r‚   r«  r   r  r¬  r�   r­  ÚSeriesr   r   r   r£  r?  rS   Úndarrayr   Úto_numpyrƒ   rÂ   )r³  r$  rò   rc   r¨  Úno_opÚX_np_outÚX_df_outÚy_np_outÚy_series_outr±   s              r    Ú"test_validate_data_cast_to_ndarrayrÈ  ß  s×  € ô 
×	Ñ	˜XÓ	&€BÜ×ÑÓ€DØ	�‰�d—i‘i¨×);Ñ);ˆÓ	<€BØ
�	‰	�$—+‘+Ó€AôÔ*¬Mô ñ Ó€EØ×#Ñ# B¸Ð#Ó=€HÜ�h¤§
¡
Ô+Ñ+Ü�H˜bŸk™k›mÔ,à×#Ñ# B¸Ð#Ó>€HØ�r‰>Ñà×#Ñ# a¸Ð#Ó>€HÜ�h¤§
¡
Ô+Ñ+Ü�H˜aŸj™j›lÔ+à×'Ñ'¨!¸UÐ'ÓC€LØ˜1ÑÑà×-Ñ-¨b°!ÀTÐ-ÓJÑ€HˆhÜ�h¤§
¡
Ô+Ñ+Ü�H˜bŸk™k›mÔ,Ü�h¤§
¡
Ô+Ñ+Ü�H˜aŸj™j›lÔ+à"×1Ñ1°"°aÈÐ1ÓOÑ€HˆlØ�r‰>ÑØ˜1ÑÑà
6€CÜ	�‰”z¨Ô	-ñ Ø×ÑÔ÷÷ ñ ús   ÈH(È(H1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   Ú
set_outputr   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)Ú_EmptyNrK   r'   r"   r    rÑ  rÑ    rL   r"   rÑ  c                   ó   — e Zd Zy)ÚEmptyEstimatorNrK   r'   r"   r    rÓ  rÓ    rL   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.
    r.  N)r1  r9  r:  r!  r#  r"  r   )rØ   r[  Úexpecteds      r    Ú"test_estimator_empty_instance_dictrÖ    sF   € ð ×"Ñ"Ó$€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Ù  .  s   „ Ø‰	r"   rÜ  c                   ó   — e Zd Zy)úDtest_estimator_getstate_using_slots_error_message.<locals>.EstimatorNrK   r'   r"   r    Ú	EstimatorrÞ  1  r¾  r"   rß  zRYou cannot use `__slots__` in objects inheriting from `sklearn.base.BaseEstimator`r¯   N)r   r‚   rƒ   r…   r1  r!  r"  )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))Ú	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.)rY   r  rt   )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                 ó(   — | j                  |«       | S r   r¢  ra   s      r    rd   z4test_dataframe_protocol.<locals>.NoOpTransformer.fitQ  r¤  r"   c                 ó(   — | j                  |d¬«      S r¦  r¢  rf   s     r    r÷   z:test_dataframe_protocol.<locals>.NoOpTransformer.transformU  s   € Ø×&Ñ& q°Ð&Ó6Ð6r"   r   r§  r'   r"   r    r¨  rë  P  s   „ ó	ó	7r"   r¨  râ  )r3   r4   r+   )rè  zThe feature names should matchr¯   N)r   r   r   rd   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ñ  Ø�‰˜Ô÷ ÷  ñ  ús   Â-CÃCÚenable_slep006c                  ó°  —  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   rb   rc   Úprops       r    rd   zXtest_transformer_fit_transform_with_metadata_in_transform.<locals>.CustomTransformer.fitn  r  r"   c                 ó   — |S r   r'   ©r   rb   rø  s      r    r÷   z^test_transformer_fit_transform_with_metadata_in_transform.<locals>.CustomTransformer.transformq  ó   € ØˆHr"   r.   r   r§  r'   r"   r    ÚCustomTransformerrõ  m  ó   „ ó	ô	r"   rü  z*`transform` method which consumes metadatar¯   T©rø  rY   N©Úrecordr   )
r   r   r‚   r;  r<  Úset_transform_requestr  r®  r¯  r¶   )rü  r   s     r    Ú9test_transformer_fit_transform_with_metadata_in_transformr  h  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   r'   r÷  s       r    rd   zZtest_outlier_mixin_fit_predict_with_metadata_in_predict.<locals>.CustomOutlierDetector.fitˆ  r  r"   c                 ó   — |S r   r'   rú  s      r    rg   z^test_outlier_mixin_fit_predict_with_metadata_in_predict.<locals>.CustomOutlierDetector.predict‹  rû  r"   r.   r   )r$   r%   r&   rd   rg   r'   r"   r    ÚCustomOutlierDetectorr  ‡  rý  r"   r	  z(`predict` method which consumes metadatar¯   Trþ  rY   Nrÿ  r   )
r   r   r‚   r;  r<  Úset_predict_requestÚfit_predictr®  r¯  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  )nr!  r±  r®  ÚnumpyrS   r‚   Úscipy.sparseÚsparser�   Únumpy.testingr   r9  r   r   Úsklearn.baser   r   r   r	   r
   Úsklearn.decompositionr   Úsklearn.exceptionsr   Úsklearn.model_selectionr   Úsklearn.pipeliner   Úsklearn.preprocessingr   Úsklearn.svmr   Úsklearn.treer   r   Úsklearn.utils._mockingr   Úsklearn.utils._set_outputr   Úsklearn.utils._testingr   r   r   r   r   r)   r1   r6   r=   rC   rF   rJ   rN   rV   r]   ri   r{   r€   rŠ   r“   r—   r›   r«   r­   r²   r¹   r¼   rÃ   rÈ   rÌ   rÛ   rß   ÚmarkÚparametrizeÚmake_classificationÚmake_regressionrí   rþ   r  r)  r+  r7  rE  rG  rK  rO  rQ  r^  rk  ro  rq  r<  rv  r~  r†  rŒ  r�  r˜  rš  rº  rÈ  rÏ  rÑ  rÓ  rÖ  rà  rñ  Úusefixturesr  r  r'   r"   r    ú<module>r!     s$  ðó Û 	Û ã Û Ý Ý )ã ß ,÷õ õ &Ý 9Ý 0Ý %Ý 0Ý ß FÝ 0Ý 8÷ó ô�-ô ôˆô ôˆô ô#ˆ]ô #ô
$ˆ}ô $ô
$�&ô $ô
˜& (ô ô
	Ð!4ô 	ô�}ô ôˆMô ÷ñ ô�Mô ò(ò$6òò(8ò#ò(òLò#òò&òò
 òUò
/ò$Nò&$ð ‡�×ÑØñ #¨Q¸QÔ?Ø(ˆH×(Ñ(°aÔ8ð	
ñ
 "¨A¸AÔ>Ø$ˆH×$Ñ$°!Ô4ð	
ð	óñ3óð3ò#3òL)>òX
2ôIÐ+ô Iðð òBô&Ð*ô ò
,ò"	1÷$ñ $ô+Ð 8¸-ô +ò(ò-ô& ô ñ ˜;Ô(ñ=ó )ð=ò<ò$ò
)ò
(ò
8ò	4òK"ò\&òR"÷	ñ 	ô	�V˜]ô 	ð ‡�×Ñ˜¡}£¹Ó8HÐ&IÓJñ0ó Kð0ò"ð* ‡�×ÑØ"òóñ óð ð@ ‡�×ÑÐ)Ó*ñ ó +ð ð2 ‡�×ÑÐ)Ó*ñ ó +ñ r"   