§
    ¨éUg¾C  ã                   ó�	  — 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	m
Z
mZ d dlmZmZmZmZ g d¢g d¢g d¢g d¢gZej                             d	d
g d¢g d¢g d¢g d¢gdfdg d¢g d¢g d¢g d¢gdfdg d¢g d¢g d¢g d¢gdfdg d¢g d¢g d¢g d¢gg d¢fdg d¢g d¢g d¢g d¢gg d¢fdg d¢g d¢g d¢g d¢gg d¢fdg d¢g d¢g d¢g d¢gg d¢fdg d¢g d¢g d¢g d¢gg d¢fg¦  «        d„ ¦   «         Zd„ Zej                             dd
g¦  «        d„ ¦   «         Zd„ Zej                             d	d
g d¢g d¢g d¢g d¢gdfdg d¢g d¢g d¢g d¢gdfdg d¢g d¢g d¢g d¢gdfdg d¢g d¢g d¢g d¢gg d¢fdg d¢g d¢g d¢g d¢gg d¢fdg d¢g d¢g d¢g d¢gg d¢fg¦  «        d„ ¦   «         Zej                             d ¦  «        d!„ ¦   «         Zej                             dddg¦  «        d"„ ¦   «         Zej                             dg d#¢¦  «        d$„ ¦   «         Zd%„ Zej                             d& ed'd(¦  «        ¦  «        d)„ ¦   «         Zd*„ Z ej                             d+d
g d,¢g d-¢g d.¢fdg d,¢g d/¢g d0¢fdg d1¢g d/¢g d2¢fg¦  «        d3„ ¦   «         Z!ej                             d4d
g d5¢g d6¢g d7¢g d8¢gfdg d9¢g d9¢g d:¢g d;¢gfdg d<¢g d=¢g d>¢g d>¢gfg¦  «        ej                             d?g d@¢¦  «        dA„ ¦   «         ¦   «         Z"ej                             dg d#¢¦  «        dB„ ¦   «         Z#dC„ Z$ej                             dDdg dE¢fdg dF¢fg¦  «        dG„ ¦   «         Z%dH„ Z&ej                             dIej'        ej(        ej)        g¦  «        ej                             dJdej(        ej)        g¦  «        ej                             d?g d@¢¦  «        dK„ ¦   «         ¦   «         ¦   «         Z*ej                             dLej'        ej(        ej)        g¦  «        ej                             d?g d@¢¦  «        dM„ ¦   «         ¦   «         Z+dN„ Z,ej                             dOdPdQ„  edR¦  «        D ¦   «         fdSdT„  edR¦  «        D ¦   «         fdUdV„  edR¦  «        D ¦   «         fg¦  «        dW„ ¦   «         Z-ej                             dg d#¢¦  «        dX„ ¦   «         Z.dY„ Z/dS )Zé    N)Úclone)ÚKBinsDiscretizerÚOneHotEncoder)Úassert_allcloseÚassert_allclose_dense_sparseÚassert_array_almost_equalÚassert_array_equal©éþÿÿÿç      ø?éüÿÿÿéÿÿÿÿ)r   ç      @éýÿÿÿç      à¿)r   g      @r   ç      à?)é   g      @r   é   z!strategy, expected, sample_weightÚuniform)r   r   r   r   )r   r   r   r   )r   r   r   r   )r   r   r   r   Úkmeans)r   r   r   r   Úquantile)r   r   r   r   )r   r   r   r   )r   r   é   r   c                 ó²   — t          dd| ¬¦  «        }|                     t          |¬¦  «         t          ||                     t          ¦  «        ¦  «         d S )Nr   Úordinal©Ún_binsÚencodeÚstrategy©Úsample_weight)r   ÚfitÚXr	   Ú	transform)r   Úexpectedr    Úests       ún/var/www/surfInsights/venv3-11/lib/python3.11/site-packages/sklearn/preprocessing/tests/test_discretization.pyÚtest_fit_transformr'      sQ   € õD  !¨IÀÐ
IÑ
IÔ
I€CØ‡G‚G�A˜]€GÑ+Ô+Ð+Ý�x §¢­qÑ!1Ô!1Ñ2Ô2Ð2Ð2Ð2ó    c                  óv  — t          d¬¦  «                             t          ¦  «         t          t          j        dg¦  «        d         ¬¦  «                             t          ¦  «         t          d¬¦  «                             t          ¦  «        j        j        t          j        t          ¦  «        k    sJ ‚d S )Nr   ©r   r   )	r   Úfit_transformr"   ÚnpÚarrayr!   Ún_bins_ÚdtypeÚint© r(   r&   Útest_valid_n_binsr2   :   s�   € Ý˜AÐÑÔ×,Ò,­QÑ/Ô/Ð/Ý�BœH a S™MœM¨!Ô,Ð-Ñ-Ô-×;Ò;½AÑ>Ô>Ð>Ý 1Ð%Ñ%Ô%×)Ò)­!Ñ,Ô,Ô4Ô:½b¼hÅs¹m¼mÒKÐKÐKÐKÐKÐKr(   r   c                 ó  — t          j        t          t          ¦  «        ¬¦  «        }t	          d| ¬¦  «        }d}t          j        t          |¬¦  «        5  |                     t          |¬¦  «         ddd¦  «         dS # 1 swxY w Y   dS )z=Check that we raise an error when the wrong strategy is used.)Úshaper   )r   r   zK`sample_weight` was provided but it cannot be used with strategy='uniform'.©Úmatchr   N)	r,   ÚonesÚlenr"   r   ÚpytestÚraisesÚ
ValueErrorr!   )r   r    r%   Úerr_msgs       r&   Ú1test_kbinsdiscretizer_wrong_strategy_with_weightsr=   @   sÇ   € õ ”G¥3¥q¡6¤6Ð+Ñ+Ô+€MÝ
 !¨hÐ
7Ñ
7Ô
7€CàUð õ 
Œ•z¨Ð	1Ñ	1Ô	1ð 0ð 0Ø�Š• ˆÑ/Ô/Ð/ð0ð 0ð 0ñ 0ô 0ð 0ð 0ð 0ð 0ð 0ð 0ð 0øøøð 0ð 0ð 0ð 0ð 0ð 0s   ÁB Â BÂBc                  óB  — t          j        dd¦  «        } t          | ¬¦  «        }d}t          j        t
          |¬¦  «        5  |                     t          ¦  «         d d d ¦  «         n# 1 swxY w Y   g d¢} t          | ¬¦  «        }d}t          j        t
          |¬¦  «        5  |                     t          ¦  «         d d d ¦  «         n# 1 swxY w Y   g d¢} t          | ¬¦  «        }d}t          j        t
          |¬¦  «        5  |                     t          ¦  «         d d d ¦  «         n# 1 swxY w Y   g d	¢} t          | ¬¦  «        }d
}t          j        t
          |¬¦  «        5  |                     t          ¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )N)r   é   ç       @r*   z:n_bins must be a scalar or array of shape \(n_features,\).r5   )r   r   r   ©r   r   r   r   z{KBinsDiscretizer received an invalid number of bins at indices 0, 3. Number of bins must be at least 2, and must be an int.)çÍÌÌÌÌÌ @r   rB   r   z{KBinsDiscretizer received an invalid number of bins at indices 0, 2. Number of bins must be at least 2, and must be an int.)r,   Úfullr   r9   r:   r;   r+   r"   )r   r%   r<   s      r&   Útest_invalid_n_bins_arrayrD   L   sŸ  € åŒW�V˜SÑ!Ô!€FÝ
 &Ð
)Ñ
)Ô
)€CØK€GÝ	Œ•z¨Ð	1Ñ	1Ô	1ð ð Ø×Ò�!ÑÔÐðð ð ñ ô ð ð ð ð ð ð øøøð ð ð ð ð ˆYˆY€FÝ
 &Ð
)Ñ
)Ô
)€CØK€GÝ	Œ•z¨Ð	1Ñ	1Ô	1ð ð Ø×Ò�!ÑÔÐðð ð ñ ô ð ð ð ð ð ð øøøð ð ð ð ð ˆ\ˆ\€FÝ
 &Ð
)Ñ
)Ô
)€Cð	ð õ
 
Œ•z¨Ð	1Ñ	1Ô	1ð ð Ø×Ò�!ÑÔÐðð ð ñ ô ð ð ð ð ð ð øøøð ð ð ð ð ÐÐ€FÝ
 &Ð
)Ñ
)Ô
)€Cð	ð õ
 
Œ•z¨Ð	1Ñ	1Ô	1ð ð Ø×Ò�!ÑÔÐðð ð ñ ô ð ð ð ð ð ð ð øøøð ð ð ð ð ð sH   ÁA*Á*A.Á1A.Â&CÃCÃCÄ	D0Ä0D4Ä7D4Å,FÆFÆF)r   r   r   r   rA   )r   r   r   r   )r   r   r   r   )r   r   r   r   c                 ó‚  — t          g d¢d| ¬¦  «                             t          |¬¦  «        }t          ||                     t          ¦  «        ¦  «         t          j        t          ¦  «        j        d         }|j        j        |fk    sJ ‚t          |j        |j
        ¦  «        D ]\  }}|j        |dz   fk    sJ ‚Œd S )N©r   r   r   r   r   r   r   r   )r   r!   r"   r	   r#   r,   r-   r4   Ú
bin_edges_Úzipr.   )r   r$   r    r%   Ú
n_featuresÚ	bin_edgesr   s          r&   Útest_fit_transform_n_bins_arrayrK   r   sÍ   € õJ Øˆ|ˆ| I¸ðñ ô ç	‚c�!˜=€cÑ)Ô)ð õ �x §¢­qÑ!1Ô!1Ñ2Ô2Ð2õ ”�!‘”Ô" 1Ô%€JØŒ>Ô J =Ò0Ð0Ð0Ð0Ý  ¤°´Ñ=Ô=ð 0ð 0Ñˆ	�6ØŒ 6¨A¡: -Ò/Ð/Ð/Ð/Ð/ð0ð 0r(   z&ignore: Bins whose width are too smallc            	      ó4  — t          j        dgdgdgdgdgdgg¦  «        } t          ddd	¬
¦  «        }|                     | g d¢¬¦  «         t	          |j        d         g d¢¦  «         t	          |                     | ¦  «        dgdgdgdgdgdgg¦  «         dS )z;Check the impact of `sample_weight` one computed quantiles.r   r   r   r   iô  iè  é
   r   r   r   )r   r   r   r   r   r   r   r   )r   r   r   r   ç        g      ð?r@   N)r,   r-   r   r!   r   rG   r#   ©r"   r%   s     r&   Ú*test_kbinsdiscretizer_effect_sample_weightrP   £   sµ   € õ 	Œ�2�$˜˜˜q˜c A 3¨¨°¨vÐ6Ñ7Ô7€Aõ  "¨YÀÐ
LÑ
LÔ
L€CØ‡G‚GˆAÐ/Ð/Ð/€GÑ0Ô0Ð0Ý�C”N 1Ô% ~ ~ ~Ñ6Ô6Ð6Ý�C—M’M !Ñ$Ô$¨ u¨s¨e°c°U¸S¸EÀCÀ5È3È%Ð&PÑQÔQÐQÐQÐQr(   c                 óî   — t          dd| ¬¦  «        }t          j        g d¢t          j        ¬¦  «        }t          j        |¦  «        }|                     t          |¬¦  «         t          ||¦  «         dS )z7Make sure that `sample_weight` is not changed in place.r   r   r   )r   r   r   r   ©r/   r   N)r   r,   r-   Úfloat64Úcopyr!   r"   r   )r   r%   r    Úsample_weight_copys       r&   Ú/test_kbinsdiscretizer_no_mutating_sample_weightrV   ¯   so   € õ  !¨IÀÐ
IÑ
IÔ
I€CÝ”H˜\˜\˜\µ´Ð<Ñ<Ô<€MÝœ Ñ/Ô/ÐØ‡G‚G�A˜]€GÑ+Ô+Ð+Ý�MÐ#5Ñ6Ô6Ð6Ð6Ð6r(   )r   r   r   c                 óä  — t          j        d¦  «         t          j        ddgddgddgddgg¦  «        }t	          | dd¬¦  «        }d	}t          j        t          |¬
¦  «        5  |                     |¦  «         d d d ¦  «         n# 1 swxY w Y   |j	        d         dk    sJ ‚| 
                    |¦  «        }t          |d d …df         t          j        |j        d         ¦  «        ¦  «         d S )NÚalwaysr   r   r   r   r   r   )r   r   r   z2Feature 0 is constant and will be replaced with 0.r5   )ÚwarningsÚsimplefilterr,   r-   r   r9   ÚwarnsÚUserWarningr!   r.   r#   r	   Úzerosr4   )r   r"   r%   Úwarning_messageÚXts        r&   Útest_same_min_maxr`   ¹   s'  € åÔ˜(Ñ#Ô#Ð#Ý
Œ�1�b�'˜A˜r˜7 Q¨ F¨Q°¨FÐ3Ñ4Ô4€AÝ
 H°Q¸yÐ
IÑ
IÔ
I€CØJ€OÝ	Œ•k¨Ð	9Ñ	9Ô	9ð ð Ø�Š�‰
Œ
ˆ
ðð ð ñ ô ð ð ð ð ð ð øøøð ð ð ð àŒ;�qŒ>˜QÒÐÐÐà	�Š�qÑ	Ô	€BÝ�r˜!˜!˜!˜Q˜$”x¥¤¨!¬'°!¬*Ñ!5Ô!5Ñ6Ô6Ð6Ð6Ð6s   Á$BÂB
ÂB
c                  óÚ  — t          j        d¦  «        } t          d¬¦  «        }t          j        t
          ¦  «        5  |                     | ¦  «         d d d ¦  «         n# 1 swxY w Y   t          d¬¦  «        }|                     |                      dd¦  «        ¦  «         t          j        t
          ¦  «        5  |                     | ¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )Nr?   r   r*   r   r   )	r,   Úaranger   r9   r:   r;   r!   Úreshaper#   rO   s     r&   Útest_transform_1d_behaviorrd   Ç   sK  € Ý
Œ	�!‰Œ€AÝ
 !Ð
$Ñ
$Ô
$€CÝ	Œ•zÑ	"Ô	"ð ð Ø�Š�‰
Œ
ˆ
ðð ð ñ ô ð ð ð ð ð ð øøøð ð ð ð õ  !Ð
$Ñ
$Ô
$€CØ‡G‚GˆA�IŠI�b˜!ÑÔÑÔÐÝ	Œ•zÑ	"Ô	"ð ð Ø�Š�aÑÔÐðð ð ñ ô ð ð ð ð ð ð ð øøøð ð ð ð ð ð s#   ¾A Á A$Á'A$Â=C Ã C$Ã'C$Úir   é	   c                 ó&  — t          j        g d¢¦  «                             dd¦  «        }t          j        g d¢¦  «                             dd¦  «        }|d| z  z  }t          dd¬¦  «                             |¦  «        }t          ||¦  «         d S )	N)r@   ç      @g      @g       @g      $@r   r   )r   r   r   r   r   rM   r   r   ©r   r   )r,   r-   rc   r   r+   r	   )re   ÚX_initÚXt_expectedr"   r_   s        r&   Útest_numeric_stabilityrl   Ó   s�   € åŒXÐ0Ð0Ð0Ñ1Ô1×9Ò9¸"¸aÑ@Ô@€FÝ”(˜?˜?˜?Ñ+Ô+×3Ò3°B¸Ñ:Ô:€Kð 	��Q‘‰€AÝ	 ¨9Ð	5Ñ	5Ô	5×	CÒ	CÀAÑ	FÔ	F€BÝ�{ BÑ'Ô'Ð'Ð'Ð'r(   c                  ó4  — t          g d¢d¬¦  «                             t          ¦  «        } |                      t          ¦  «        }t          g d¢d¬¦  «                             t          ¦  «        } |                      t          ¦  «        }t	          j        |¦  «        rJ ‚t          t          d„ dD ¦   «         d¬¦  «                             |¦  «        |¦  «         t          g d¢d¬¦  «                             t          ¦  «        } |                      t          ¦  «        }t	          j        |¦  «        sJ ‚t          t          d	„ dD ¦   «         d
¬¦  «                             |¦  «         	                    ¦   «         | 	                    ¦   «         ¦  «         d S )NrF   r   ri   úonehot-densec                 ó6   — g | ]}t          j        |¦  «        ‘ŒS r1   ©r,   rb   ©Ú.0re   s     r&   ú
<listcomp>z'test_encode_options.<locals>.<listcomp>æ   ó    € Ð;Ð;Ð;¨�œ	 !™œÐ;Ð;Ð;r(   F)Ú
categoriesÚsparse_outputÚonehotc                 ó6   — g | ]}t          j        |¦  «        ‘ŒS r1   rp   rq   s     r&   rs   z'test_encode_options.<locals>.<listcomp>ï   rt   r(   T)
r   r!   r"   r#   ÚspÚissparser	   r   r+   Útoarray)r%   ÚXt_1ÚXt_2ÚXt_3s       r&   Útest_encode_optionsr   Þ   sz  € Ý
 , , ,°yÐ
AÑ
AÔ
A×
EÒ
EÅaÑ
HÔ
H€CØ�=Š=�ÑÔ€DÝ
 , , ,°~Ð
FÑ
FÔ
F×
JÒ
JÍ1Ñ
MÔ
M€CØ�=Š=�ÑÔ€DÝŒ{˜4Ñ Ô Ð Ð Ð ÝÝØ;Ð;¨lÐ;Ñ;Ô;È5ð	
ñ 	
ô 	
ç
Š-˜Ñ
Ô
Øñ	ô ð õ  , , ,°xÐ
@Ñ
@Ô
@×
DÒ
DÅQÑ
GÔ
G€CØ�=Š=�ÑÔ€DÝŒ;�tÑÔÐÐÐÝÝØ;Ð;¨lÐ;Ñ;Ô;È4ð	
ñ 	
ô 	
÷ 
Š�tÑ	Ô	ß	Š‰ŒØ�Š‰Œñô ð ð ð r(   z8strategy, expected_2bins, expected_3bins, expected_5bins)r   r   r   r   r   r   )r   r   r   r   r   r   )r   r   r   r   r?   r?   )r   r   r   r   r   r   )r   r   r   r   r   r?   )r   r   r   r   r   r   )r   r   r   r   r?   r?   c                 ó  — t          j        g d¢¦  «                             dd¦  «        }t          d| d¬¦  «        }|                     |¦  «        }t          ||                     ¦   «         ¦  «         t          d| d¬¦  «        }|                     |¦  «        }t          ||                     ¦   «         ¦  «         t          d| d¬¦  «        }|                     |¦  «        }t          ||                     ¦   «         ¦  «         d S )	N)r   r   r   r   rf   rM   r   r   r   r   ©r   r   r   r   é   )r,   r-   rc   r   r+   r	   Úravel)r   Úexpected_2binsÚexpected_3binsÚexpected_5binsr"   r%   r_   s          r&   Útest_nonuniform_strategiesr‡   ÷   só   € õ 	ŒÐ&Ð&Ð&Ñ'Ô'×/Ò/°°AÑ6Ô6€Aõ  !¨h¸yÐ
IÑ
IÔ
I€CØ	×	Ò	˜1Ñ	Ô	€BÝ�~ r§x¢x¡z¤zÑ2Ô2Ð2õ  !¨h¸yÐ
IÑ
IÔ
I€CØ	×	Ò	˜1Ñ	Ô	€BÝ�~ r§x¢x¡z¤zÑ2Ô2Ð2õ  !¨h¸yÐ
IÑ
IÔ
I€CØ	×	Ò	˜1Ñ	Ô	€BÝ�~ r§x¢x¡z¤zÑ2Ô2Ð2Ð2Ð2r(   zstrategy, expected_inv)ç      ø¿r@   ç      Àr   )r   ç      @ç      Àr   )r   rh   rˆ   r   )r   rh   rˆ   r   )g      ö¿g      @g      Àg      â¿)g      À¿g      @g      Àg      â?)g      è?g      @g      ô¿g      ú?)rˆ   r@   r‰   g      è¿)r   rŠ   r‹   rN   )r   rh   rˆ   g      ô?r   )r   rw   rn   c                 ó¨   — t          d| |¬¦  «        }|                     t          ¦  «        }|                     |¦  «        }t	          ||¦  «         d S )Nr   r�   )r   r+   r"   Úinverse_transformr   )r   r   Úexpected_invÚkbdr_   ÚXinvs         r&   Útest_inverse_transformr‘     sU   € õD  !¨h¸vÐ
FÑ
FÔ
F€CØ	×	Ò	�1Ñ	Ô	€BØ× Ò  Ñ$Ô$€DÝ˜l¨DÑ1Ô1Ð1Ð1Ð1r(   c                 ó   — t          j        g d¢¦  «        d d …d f         }t          d| d¬¦  «        }|                     |¦  «         t          j        ddg¦  «        d d …d f         }|                     |¦  «        }t          |                     d¬¦  «        d	z   |j        ¦  «         t          |                     d¬¦  «        dg¦  «         d S )
N©r   r   r   r   r?   r   r�   r   r‚   r   )Úaxisr   )	r,   r-   r   r!   r#   r	   Úmaxr.   Úmin)r   r"   r�   ÚX2ÚX2ts        r&   Ú test_transform_outside_fit_ranger™   <  s½   € å
Œ���ÑÔ˜q˜q˜q $˜wÔ'€AÝ
 !¨h¸yÐ
IÑ
IÔ
I€CØ‡G‚GˆA�J„J€Jå	Œ�2�q�'Ñ	Ô	˜1˜1˜1˜d˜7Ô	#€BØ
�-Š-˜Ñ
Ô
€CÝ�s—w’w A�w‘”¨Ñ*¨C¬KÑ8Ô8Ð8Ý�s—w’w A�w‘”¨¨Ñ,Ô,Ð,Ð,Ð,r(   c            	      ó   — t          j        g d¢¦  «        d d …d f         } |                      ¦   «         }t          dd¬¦  «        }|                     | ¦  «        }t          | |¦  «         |                     ¦   «         }|                     |¦  «        }t          ||¦  «         t          |t          j        dgdgdgdgg¦  «        ¦  «         d S )Nr“   r   r   ri   r   r   r   )r,   r-   rT   r   r+   r	   r�   )r"   ÚX_beforer%   r_   Ú	Xt_beforer�   s         r&   Útest_overwriter�   H  sÅ   € Ý
Œ���ÑÔ˜q˜q˜q $˜wÔ'€AØ�vŠv‰xŒx€Hå
 !¨IÐ
6Ñ
6Ô
6€CØ	×	Ò	˜1Ñ	Ô	€BÝ�q˜(Ñ#Ô#Ð#à—’‘	”	€IØ× Ò  Ñ$Ô$€DÝ�r˜9Ñ%Ô%Ð%Ý�t�RœX¨ u¨s¨e°c°U¸S¸EÐ&BÑCÔCÑDÔDÐDÐDÐDr(   zstrategy, expected_bin_edges)r   r   r   )r   r   r   c                 ó  — dgdgdgdgdgdgg}t          d| d ¬¦  «        }d}t          j        t          |¬¦  «        5  |                     |¦  «         d d d ¦  «         n# 1 swxY w Y   t          |j        d         |¦  «         d S )Nr   r   )r   r   Ú	subsampleú'Consider decreasing the number of bins.r5   )r   r9   r[   r\   r!   r   rG   )r   Úexpected_bin_edgesr"   r�   r^   s        r&   Útest_redundant_binsr¢   V  sÒ   € ð ˆˆqˆc�A�3˜˜˜a˜S 1 #Ð&€AÝ
 !¨hÀ$Ð
GÑ
GÔ
G€CØ?€OÝ	Œ•k¨Ð	9Ñ	9Ô	9ð ð Ø�Š�‰
Œ
ˆ
ðð ð ñ ô ð ð ð ð ð ð øøøð ð ð ð å˜cœn¨QÔ/Ð1CÑDÔDÐDÐDÐDs   ¾A Á A$Á'A$c                  ó  — t          j        g d¢¦  «                             dd¦  «        } t          j        g d¢¦  «        }t          j        g d¢¦  «                             dd¦  «        }t          ddd¬	¦  «        }d
}t	          j        t          |¬¦  «        5  |                     | ¦  «         d d d ¦  «         n# 1 swxY w Y   t          |j	        d         |¦  «         t          | 
                    | ¦  «        |¦  «         d S )N)çš™™™™™©?r¤   çffffffî?r   r   )r¤   gq=
×£pÍ?g=
×£p=Ú?gáz®Gáâ?g¤p=
×£è?r¥   )r   r   r?   rM   r   r   r   r    r5   r   )r,   r-   rc   r   r9   r[   r\   r!   r   rG   r#   )r"   rJ   r_   r�   r^   s        r&   Ú!test_percentile_numeric_stabilityr¦   b  s.  € Ý
ŒÐ#Ð#Ð#Ñ$Ô$×,Ò,¨R°Ñ3Ô3€AÝ”Ð=Ð=Ð=Ñ>Ô>€IÝ	Œ�)�)�)Ñ	Ô	×	$Ò	$ R¨Ñ	+Ô	+€BÝ
 "¨YÀÐ
LÑ
LÔ
L€CØ?€OÝ	Œ•k¨Ð	9Ñ	9Ô	9ð ð Ø�Š�‰
Œ
ˆ
ðð ð ñ ô ð ð ð ð ð ð øøøð ð ð ð õ ˜cœn¨QÔ/°Ñ;Ô;Ð;Ý˜cŸmšm¨AÑ.Ô.°Ñ3Ô3Ð3Ð3Ð3s   ÂB<Â<C ÃC Úin_dtypeÚ	out_dtypec                 ó.  — t          j        t          | ¬¦  «        }t          d||¬¦  «        }|                     |¦  «         |�|}n+|€"|j        t           j        k    rt           j        }n|j        }|                     |¦  «        }|j        |k    sJ ‚d S ©NrR   r   )r   r   r/   )	r,   r-   r"   r   r!   r/   Úfloat16rS   r#   )r§   r¨   r   ÚX_inputr�   Úexpected_dtyper_   s          r&   Útest_consistent_dtyper®   o  s›   € õ Œh•q Ð)Ñ)Ô)€GÝ
 !¨F¸)Ð
DÑ
DÔ
D€CØ‡G‚GˆGÑÔÐð ÐØ"ˆˆØ	Ð	˜wœ}µ´
Ò:Ð:åœˆˆà œˆØ	�Š�wÑ	Ô	€BØŒ8�~Ò%Ð%Ð%Ð%Ð%Ð%r(   Úinput_dtypec                 ót  — t          j        t          | ¬¦  «        }t          d|t           j        ¬¦  «        }|                     |¦  «         |                     |¦  «        }t          d|t           j        ¬¦  «        }|                     |¦  «         |                     |¦  «        }t          ||¦  «         d S rª   )	r,   r-   r"   r   Úfloat32r!   r#   rS   r   )r¯   r   r¬   Úkbd_32ÚXt_32Úkbd_64ÚXt_64s          r&   Útest_32_equal_64r¶   ƒ  s¨   € õ
 Œh•q Ð,Ñ,Ô,€Gõ  Q¨v½R¼ZÐHÑHÔH€FØ
‡J‚JˆwÑÔÐØ×Ò˜WÑ%Ô%€Eõ  Q¨v½R¼ZÐHÑHÔH€FØ
‡J‚JˆwÑÔÐØ×Ò˜WÑ%Ô%€Eå  ¨Ñ.Ô.Ð.Ð.Ð.r(   c                  óì  — t          j        g d¢¦  «                             dd¦  «        } t          ddd¬¦  «        }|                     | ¦  «         t          |¦  «        }|                     d ¬¦  «         |                     | ¦  «         t          |j        d	         |j        d	         ¦  «        D ]%\  }}t           j	         
                    ||¦  «         Œ&|j        j        |j        j        k    sJ ‚d S )
Nr
   r   r   rM   r   r   r   ©rŸ   r   )r,   r-   rc   r   r!   r   Ú
set_paramsrH   rG   Útestingr   r4   )r"   Úkbd_defaultÚkbd_without_subsamplingÚbin_kbd_defaultÚbin_kbd_with_subsamplings        r&   Ú'test_kbinsdiscretizer_subsample_defaultr¿   —  s   € å
ŒÐ"Ð"Ð"Ñ#Ô#×+Ò+¨B°Ñ2Ô2€AÝ"¨"°YÈÐTÑTÔT€KØ‡O‚O�AÑÔÐå# KÑ0Ô0ÐØ×&Ò&°Ð&Ñ6Ô6Ð6Ø×Ò Ñ"Ô"Ð"å58ØÔ˜qÔ!Ð#:Ô#EÀaÔ#Hñ6ô 6ð Nð NÑ1ˆÐ1õ 	Œ
×"Ò" ?Ð4LÑMÔMÐMÐMØÔ!Ô'Ð+BÔ+MÔ+SÒSÐSÐSÐSÐSÐSr(   zencode, expected_namesrw   c           	      ó\   — g | ])}t          d ¦  «        D ]}d|› dt          |¦  «        › �‘ŒŒ*S ©r?   ÚfeatÚ_©ÚrangeÚfloat©rr   Úcol_idÚbin_ids      r&   rs   rs   ­  ó[   € ð ð ð àÝ# A™hœhðð ð ð 0�vÐ/Ð/¥ f¡¤Ð/Ð/ðð ð ð r(   r   rn   c           	      ó\   — g | ])}t          d ¦  «        D ]}d|› dt          |¦  «        › �‘ŒŒ*S rÁ   rÄ   rÇ   s      r&   rs   rs   µ  rÊ   r(   r   c                 ó   — g | ]}d |› �‘ŒS ©rÂ   r1   )rr   rÈ   s     r&   rs   rs   »  s   € Ð<Ð<Ð<¨�_˜F�_�_Ð<Ð<Ð<r(   c                 óL  — g d¢g d¢g d¢g d¢g}t          d| ¬¦  «                             |¦  «        }|                     |¦  «        }d„ t          d¦  «        D ¦   «         }|                     |¦  «        }|j        d	         |j        d
         k    sJ ‚t          ||¦  «         dS )z[Check get_feature_names_out for different settings.
    Non-regression test for #22731
    )r   r   r   )r   r   r   )r   r   r   )r   r?   r   r?   ri   c                 ó   — g | ]}d |› �‘ŒS rÍ   r1   rq   s     r&   rs   z>test_kbinsdiscrtizer_get_feature_names_out.<locals>.<listcomp>Ç  s   € Ð3Ð3Ð3 Q�j˜Q�j�jÐ3Ð3Ð3r(   r   r   r   N)r   r!   r#   rÅ   Úget_feature_names_outr4   r	   )r   Úexpected_namesr"   r�   r_   Úinput_featuresÚoutput_namess          r&   Ú*test_kbinsdiscrtizer_get_feature_names_outrÔ   ¨  s´   € ð4 
ˆˆ�k�k�k : : :¨z¨z¨zÐ:€Aå
 !¨FÐ
3Ñ
3Ô
3×
7Ò
7¸Ñ
:Ô
:€CØ	�Š�qÑ	Ô	€Bà3Ð3­%°©(¬(Ð3Ñ3Ô3€NØ×,Ò,¨^Ñ<Ô<€LØŒ8�AŒ;˜,Ô,¨QÔ/Ò/Ð/Ð/Ð/å�| ^Ñ4Ô4Ð4Ð4Ð4r(   c                 ó‚  — t           j                             |¦  «                             d¦  «        dz   }t	          | d|¬¦  «        }|                     |¦  «         t          |¦  «        }|                     d ¬¦  «         |                     |¦  «         t          |j	        d         |j	        d         d¬¦  «         d S )	N)i † r   r   iPÃ  )r   rŸ   Úrandom_stater¸   r   g{®Gáz„?)Úrtol)
r,   ÚrandomÚRandomStateÚrandom_sampler   r!   r   r¹   r   rG   )r   Úglobal_random_seedr"   Úkbd_subsamplingÚkbd_no_subsamplings        r&   Útest_kbinsdiscretizer_subsamplerÞ   Î  sÓ   € õ 	Œ	×ÒÐ0Ñ1Ô1×?Ò?ÀÑLÔLÈqÑP€Aå&Ø UÐ9Kðñ ô €Oð ×Ò˜ÑÔÐå˜Ñ/Ô/ÐØ×!Ò!¨DÐ!Ñ1Ô1Ð1Ø×Ò˜1ÑÔÐõ ØÔ" 1Ô%Ð'9Ô'DÀQÔ'GÈdðñ ô ð ð ð r(   c                  óê  — t          j        d¦  «        d d …d f         } t          ¦   «         }|                     | ¦  «        } t	          j        t          d¬¦  «        5  |                     ¦   «          d d d ¦  «         n# 1 swxY w Y   t	          j        t          d¬¦  «        5  |                     | | ¬¦  «         d d d ¦  «         n# 1 swxY w Y   t          j	        d¬¦  «        5  t          j
        d¦  «         |                     | ¦  «         d d d ¦  «         n# 1 swxY w Y   t	          j        t          d	¬¦  «        5  |                     | ¬
¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )NrM   z$Missing required positional argumentr5   z$Cannot use both X and Xt. Use X only)r"   r_   T)ÚrecordÚerrorzXt was renamed X in version 1.5)r_   )r,   rb   r   r+   r9   r:   Ú	TypeErrorr�   rY   Úcatch_warningsrZ   r[   ÚFutureWarning)r"   r�   s     r&   Ú)test_KBD_inverse_transform_Xt_deprecationrå   ä  s`  € Ý
Œ	�"‰Œ�a�a�a˜�gÔ€AÝ
Ñ
Ô
€CØ×Ò˜!ÑÔ€Aå	Œ•yÐ(NÐ	OÑ	OÔ	Oð  ð  Ø×ÒÑÔÐð ð  ð  ñ  ô  ð  ð  ð  ð  ð  ð  øøøð  ð  ð  ð  õ 
Œ•yÐ(NÐ	OÑ	OÔ	Oð )ð )Ø×Ò  aÐÑ(Ô(Ð(ð)ð )ð )ñ )ô )ð )ð )ð )ð )ð )ð )øøøð )ð )ð )ð )õ 
Ô	 ¨Ð	-Ñ	-Ô	-ð !ð !ÝÔ˜gÑ&Ô&Ð&Ø×Ò˜aÑ Ô Ð ð!ð !ð !ñ !ô !ð !ð !ð !ð !ð !ð !øøøð !ð !ð !ð !õ 
Œ•mÐ+LÐ	MÑ	MÔ	Mð $ð $Ø×Ò ÐÑ#Ô#Ð#ð$ð $ð $ñ $ô $ð $ð $ð $ð $ð $ð $ð $øøøð $ð $ð $ð $ð $ð $sH   ÁA>Á>BÂBÂ$CÃCÃCÃ(*DÄD"Ä%D"ÅE(Å(E,Å/E,)0rY   Únumpyr,   r9   Úscipy.sparseÚsparsery   Úsklearnr   Úsklearn.preprocessingr   r   Úsklearn.utils._testingr   r   r   r	   r"   ÚmarkÚparametrizer'   r2   r=   rD   rK   ÚfilterwarningsrP   rV   r`   rd   rÅ   rl   r   r‡   r‘   r™   r�   r¢   r¦   r«   r±   rS   r®   r¶   r¿   rÔ   rÞ   rå   r1   r(   r&   ú<module>rï      sî  ðØ €€€à Ð Ð Ð Ø €€€Ø Ð Ð Ð Ð Ð à Ð Ð Ð Ð Ð Ø AÐ AÐ AÐ AÐ AÐ AÐ AÐ Aðð ð ð ð ð ð ð ð ð ð ð ð ÐÐÐ+Ð+Ð+Ð->Ð->Ð->ÀÀÀÐP€ð „×ÒØ'à	�\�\�\ < < <°°°¸|¸|¸|ÐLÈdÐSØ	�L�L�L , , ,°°°¸l¸l¸lÐKÈTÐRØ	�l�l�l L L L°,°,°,ÀÀÀÐMÈtÐTàØˆ\ˆ\˜<˜<˜<¨¨¨°|°|°|ÐDØˆLˆLð	
ð Øˆ\ˆ\˜<˜<˜<¨¨¨°|°|°|ÐDØˆLˆLð	
ð Øˆ\ˆ\˜<˜<˜<¨¨¨°|°|°|ÐDØˆLˆLð	
ð Øˆ\ˆ\˜<˜<˜<¨¨¨°|°|°|ÐDØˆLˆLð	
ð Øˆ\ˆ\˜<˜<˜<¨¨¨°|°|°|ÐDØˆLˆLð	
ð1ñ ô  ðB3ð 3ñC ô  ðB3ðLð Lð Lð „×Ò˜ i [Ñ1Ô1ð0ð 0ñ 2Ô1ð0ð#ð #ð #ðL „×ÒØ'à	�\�\�\ < < <°°°¸|¸|¸|ÐLÈdÐSØ	�L�L�L , , ,°°°¸l¸l¸lÐKÈTÐRØ	�l�l�l L L L°,°,°,ÀÀÀÐMÈtÐTàØˆ\ˆ\˜<˜<˜<¨¨¨°|°|°|ÐDØˆLˆLð	
ð Øˆ\ˆ\˜<˜<˜<¨¨¨°|°|°|ÐDØˆLˆLð	
ð& Øˆ\ˆ\˜<˜<˜<¨¨¨°|°|°|ÐDØˆLˆLð	
ð7 ñ#ô #ðH
0ð 
0ñI#ô #ðH
0ð „×ÒÐDÑEÔEðRð Rñ FÔEðRð „×Ò˜ h°
Ð%;Ñ<Ô<ð7ð 7ñ =Ô<ð7ð „×Ò˜Ð%FÐ%FÐ%FÑGÔGð
7ð 
7ñ HÔGð
7ð	ð 	ð 	ð „×Ò˜˜e˜e A q™kœkÑ*Ô*ð(ð (ñ +Ô*ð(ðð ð ð2 „×ÒØ>à	Ð&Ð&Ð&Ð(:Ð(:Ð(:Ð<NÐ<NÐ<NÐOØ	Ð%Ð%Ð%Ð'9Ð'9Ð'9Ð;MÐ;MÐ;MÐNØ	Ð'Ð'Ð'Ð);Ð);Ð);Ð=OÐ=OÐ=OÐPðñô ð3ð 3ñô ð3ð* „×ÒØð à'Ð'Ð'Ø'Ð'Ð'Ø%Ð%Ð%Ø%Ð%Ð%ð	ð	
ð à0Ð0Ð0Ø0Ð0Ð0Ø/Ð/Ð/Ø*Ð*Ð*ð	ð	
ð à(Ð(Ð(Ø&Ð&Ð&Ø&Ð&Ð&Ø&Ð&Ð&ð	ð	
ð'ñô ð@ „×Ò˜Ð#HÐ#HÐ#HÑIÔIð2ð 2ñ JÔIñAô ðB2ð „×Ò˜Ð%FÐ%FÐ%FÑGÔGð-ð -ñ HÔGð-ðEð Eð Eð „×ÒØ" j°)°)°)Ð%<¸xÈÈÈÐ>UÐ$Vñô ðEð Eñô ðEð
4ð 
4ð 
4ð „×Ò˜ b¤j°"´*¸b¼jÐ%IÑJÔJØ„×Ò˜ t¨R¬Z¸¼Ð&DÑEÔEØ„×Ò˜Ð#HÐ#HÐ#HÑIÔIð&ð &ñ JÔIñ FÔEñ KÔJð&ð" „×Ò˜¨¬°R´ZÀÄÐ(LÑMÔMØ„×Ò˜Ð#HÐ#HÐ#HÑIÔIð/ð /ñ JÔIñ NÔMð/ð$Tð Tð Tð" „×ÒØð ðð à#˜e A™hœhðñ ô ð	
ð ðð à#˜e A™hœhðñ ô ð	
ð 
Ð<Ð<°5°5¸±8´8Ð<Ñ<Ô<Ð=ð#ñô ð,5ð 5ñ-ô ð,5ð  „×Ò˜Ð%FÐ%FÐ%FÑGÔGðð ñ HÔGðð*$ð $ð $ð $ð $r(   