§
    ¥˜ºhvF  ã                   óV  — 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¦  «        ej                             d¦  «        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¦  «        ej                             d¦  «        d „ ¦   «         ¦   «         Zej                             d!¦  «        d"„ ¦   «         Zej                             d¦  «        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 d0¢g d1¢fdg d2¢g d0¢g d3¢fg¦  «        ej                             d¦  «        d4„ ¦   «         ¦   «         Z!ej                             d5d
g d6¢g d7¢g d8¢g d9¢gfdg d:¢g d:¢g d;¢g d<¢gfdg d=¢g d>¢g d?¢g d?¢gfg¦  «        ej                             d¦  «        ej                             d@g dA¢¦  «        dB„ ¦   «         ¦   «         ¦   «         Z"ej                             d¦  «        ej                             dg d$¢¦  «        dC„ ¦   «         ¦   «         Z#dD„ Z$ej                             dEdg dF¢fdg dG¢fg¦  «        dH„ ¦   «         Z%dI„ Z&ej                             dJej'        ej(        ej)        g¦  «        ej                             dKdej(        ej)        g¦  «        ej                             d@g dA¢¦  «        dL„ ¦   «         ¦   «         ¦   «         Z*ej                             dMej'        ej(        ej)        g¦  «        ej                             d@g dA¢¦  «        dN„ ¦   «         ¦   «         Z+dO„ Z,ej                             dPdQdR„  edS¦  «        D ¦   «         fdTdU„  edS¦  «        D ¦   «         fdVdW„  edS¦  «        D ¦   «         fg¦  «        dX„ ¦   «         Z-ej                             dg d$¢¦  «        dY„ ¦   «         Z.ej                             dd
dg¦  «        dZ„ ¦   «         Z/dS )[é    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   z0ignore:In version 1.5 onwards, subsample=200_000c                 ó²   — t          dd| ¬¦  «        }|                     t          |¬¦  «         t          ||                     t          ¦  «        ¦  «         d S )Nr   Úordinal©Ún_binsÚencodeÚstrategy©Úsample_weight)r   ÚfitÚXr	   Ú	transform)r   Úexpectedr    Úests       úw/var/www/html/services/rag-service/venv/lib/python3.11/site-packages/sklearn/preprocessing/tests/test_discretization.pyÚtest_fit_transformr'      sQ   € õH  !¨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>   B   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,\).r6   )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   rC   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   r:   r;   r<   r+   r"   )r   r%   r=   s      r&   Útest_invalid_n_bins_arrayrE   N   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   rB   )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_arrayrL   t   sÍ   € õN Øˆ|ˆ| 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      ð?rA   N)r,   r-   r   r!   r   rH   r#   ©r"   r%   s     r&   Ú*test_kbinsdiscretizer_effect_sample_weightrQ   §   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_weightrW   ´   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.r6   )ÚwarningsÚsimplefilterr,   r-   r   r:   ÚwarnsÚUserWarningr!   r.   r#   r	   Úzerosr4   )r   r"   r%   Úwarning_messageÚXts        r&   Útest_same_min_maxra   ¿   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   r:   r;   r<   r!   Úreshaper#   rP   s     r&   Útest_transform_1d_behaviorre   Í   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)rA   ç      @g      @g       @g      $@r   r   )r   r   r   r   r   rN   r   r   ©r   r   )r,   r-   rd   r   r+   r	   )rf   ÚX_initÚXt_expectedr"   r`   s        r&   Útest_numeric_stabilityrm   Ù   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 )NrG   r   rj   úonehot-densec                 ó6   — g | ]}t          j        |¦  «        ‘ŒS r1   ©r,   rc   ©Ú.0rf   s     r&   ú
<listcomp>z'test_encode_options.<locals>.<listcomp>ì   ó    € Ð;Ð;Ð;¨�œ	 !™œÐ;Ð;Ð;r(   F)Ú
categoriesÚsparse_outputÚonehotc                 ó6   — g | ]}t          j        |¦  «        ‘ŒS r1   rq   rr   s     r&   rt   z'test_encode_options.<locals>.<listcomp>õ   ru   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   rg   rN   r   r   r   r   ©r   r   r   r   é   )r,   r-   rd   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)ç      ø¿rA   ç      Àr   )r   ç      @ç      Àr   )r   ri   r‰   r   )r   ri   r‰   r   )g      ö¿g      @g      Àg      â¿)g      À¿g      @g      Àg      â?)g      è?g      @g      ô¿g      ú?)r‰   rA   rŠ   g      è¿)r   r‹   rŒ   rO   )r   ri   r‰   g      ô?r   )r   rx   ro   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   € õH  !¨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š   G  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   rj   r   r   r   )r,   r-   rU   r   r+   r	   rŽ   )r"   ÚX_beforer%   r`   Ú	Xt_beforer‘   s         r&   Útest_overwriterž   T  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}t          j        t          |¬¦  «        5  |                     |¦  «         d d d ¦  «         n# 1 swxY w Y   t          |j        d         |¦  «         d S )Nr   r   r5   ú'Consider decreasing the number of bins.r6   )r   r:   r\   r]   r!   r   rH   )r   Úexpected_bin_edgesr"   r�   r_   s        r&   Útest_redundant_binsr¢   b  sÐ   € ð ˆˆqˆc�A�3˜˜˜a˜S 1 #Ð&€AÝ
 !¨hÐ
7Ñ
7Ô
7€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@   rN   r   r   r   r    r6   r   )r,   r-   rd   r   r:   r\   r]   r!   r   rH   r#   )r"   rK   r`   r�   r_   s        r&   Ú!test_percentile_numeric_stabilityr¦   n  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 ©NrS   r   )r   r   r/   )	r,   r-   r"   r   r!   r/   Úfloat16rT   r#   )r§   r¨   r   ÚX_inputr�   Úexpected_dtyper`   s          r&   Útest_consistent_dtyper®   {  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#   rT   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   rN   r   r   r   ©Ú	subsampler   )r,   r-   rd   r   r!   r   Ú
set_paramsrI   rH   Ú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_namesrx   c           	      ó\   — g | ])}t          d ¦  «        D ]}d|› dt          |¦  «        › �‘ŒŒ*S ©r@   ÚfeatÚ_©ÚrangeÚfloat©rs   Úcol_idÚbin_ids      r&   rt   rt   ¹  ó[   € ð ð ð àÝ# A™hœhðð ð ð 0�vÐ/Ð/¥ f¡¤Ð/Ð/ðð ð ð r(   r   ro   c           	      ó\   — g | ])}t          d ¦  «        D ]}d|› dt          |¦  «        › �‘ŒŒ*S rÂ   rÅ   rÈ   s      r&   rt   rt   Á  rË   r(   r   c                 ó   — g | ]}d |› �‘ŒS ©rÃ   r1   )rs   rÉ   s     r&   rt   rt   Ç  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@   rj   c                 ó   — g | ]}d |› �‘ŒS rÎ   r1   rr   s     r&   rt   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   rH   )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¦  «        }t	          | d¬¦  «        }t          j        t          d¬¦  «        5  |                     |¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )Nr   )éd   r   )r   r×   z)subsample=200_000 will be used by defaultr6   )	r,   rÙ   rÚ   rÛ   r   r:   r\   ÚFutureWarningr!   )r   r"   r�   s      r&   Útest_kbd_subsample_warningrã   ð  sÂ   € õ 	Œ	×Ò˜aÑ Ô ×.Ò.¨xÑ8Ô8€Aå
 H¸1Ð
=Ñ
=Ô
=€CÝ	Œ•mÐ+VÐ	WÑ	WÔ	Wð ð Ø�Š�‰
Œ
ˆ
ðð ð ñ ô ð ð ð ð ð ð ð øøøð ð ð ð ð ð s   ÁBÂBÂ	B)0rZ   Únumpyr,   r:   Úscipy.sparseÚsparserz   Úsklearnr   Úsklearn.preprocessingr   r   Úsklearn.utils._testingr   r   r   r	   r"   ÚmarkÚparametrizeÚfilterwarningsr'   r2   r>   rE   rL   rQ   rW   ra   re   rÆ   rm   r€   rˆ   r’   rš   rž   r¢   r¦   r«   r±   rT   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ñ ô  ðD „×ÒÐNÑOÔOð3ð 3ñ PÔOñE ô  ðF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 ñ#ô #ðJ „×ÒÐNÑOÔOð
0ð 
0ñ PÔOñK#ô #ðL
0ð „×ÒÐDÑEÔEðRð Rñ FÔEðRð „×ÒÐNÑOÔOØ„×Ò˜ h°
Ð%;Ñ<Ô<ð7ð 7ñ =Ô<ñ PÔOð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ðñô ð „×ÒÐNÑOÔOð3ð 3ñ PÔOñô ð3ð* „×ÒØð à'Ð'Ð'Ø'Ð'Ð'Ø%Ð%Ð%Ø%Ð%Ð%ð	ð	
ð à0Ð0Ð0Ø0Ð0Ð0Ø/Ð/Ð/Ø*Ð*Ð*ð	ð	
ð à(Ð(Ð(Ø&Ð&Ð&Ø&Ð&Ð&Ø&Ð&Ð&ð	ð	
ð'ñô ðB „×ÒÐNÑOÔOØ„×Ò˜Ð#HÐ#HÐ#HÑIÔIð2ð 2ñ JÔIñ PÔOñCô ðF2ð „×ÒÐNÑOÔOØ„×Ò˜Ð%FÐ%FÐ%FÑGÔGð-ð -ñ HÔGñ PÔOð-ð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ðð* „×Ò˜ i°Ð%:Ñ;Ô;ðð ñ <Ô;ðð ð r(   