§
    rŠtj�R  ã                   ó

  — 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mZ g d¢g d¢g d¢g d¢gZej                             d	d
dg d¢g d¢g d¢g d¢gdfddg d¢g d¢g d¢g d¢gdfddg d¢g d¢g d¢g d¢gdfd
dg d¢g d¢g d¢g d¢gg d¢fd
dg d¢g d¢g d¢g d¢gg d¢fddg d¢g d¢g d¢g d¢gg d¢fddg d¢g d¢g d¢g d¢gg d¢fddg d¢g d¢g d¢g d¢gg d¢fddg d¢g d¢g d¢g d¢gg d¢fddg d¢g d¢g d¢g d¢gg d¢fg
¦  «        d„ ¦   «         Zd„ Zd„ Zej                             d	d
dg d¢g d¢g d¢g d¢gdfddg d¢g d¢g d¢g d¢gdfddg d¢g d¢g d¢g d¢gdfddg d¢g d¢g d¢g d¢gdfddg d¢g d¢g d¢g d¢gg d¢fddg d¢g d¢g d¢g d¢gg d¢fddg d¢g d¢g d¢g d¢gg d¢fd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
dg d-¢g d.¢g d/¢fddg d-¢g d0¢g d1¢fddg d2¢g d0¢g d3¢fg¦  «        d4„ ¦   «         Z!ej                             d5d
g d6¢g d7¢g d8¢g d9¢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g¦  «        ej                             d@g dA¢¦  «        dB„ ¦   «         ¦   «         Z"ej                             d"g d$¢¦  «        dC„ ¦   «         Z#dD„ Z$ej                             dEdg dF¢dfdg dF¢d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 dA¢¦  «        dK„ ¦   «         ¦   «         ¦   «         Z*ej                             dLej'        ej(        ej)        g¦  «        ej                             d@g dA¢¦  «        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Úignore_warnings©éþÿÿÿç      ø?éüÿÿÿéÿÿÿÿ)r   ç      @éýÿÿÿç      à¿)r   g      @r   ç      à?)é   g      @r   é   z2strategy, quantile_method, expected, sample_weightÚuniformÚaveraged_inverted_cdf)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          ¬¦  «        5  |                     t          |¬¦  «         d d d ¦  «         n# 1 swxY w Y   t          |                     t          ¦  «        |¦  «         d S )Nr   Úordinal©Ún_binsÚencodeÚstrategyÚquantile_method)Úcategory©Úsample_weight)r   r
   ÚUserWarningÚfitÚXr	   Ú	transform)r    r!   Úexpectedr$   Úests        úm/var/www/html/CA-Chatbot/venv/lib/python3.11/site-packages/sklearn/preprocessing/tests/test_discretization.pyÚtest_fit_transformr,      sÄ   € õD Ø˜¨XÀðñ ô €Cõ 
¥+Ð	.Ñ	.Ô	.ð 0ð 0à�Š• ˆÑ/Ô/Ð/ð0ð 0ð 0ñ 0ô 0ð 0ð 0ð 0ð 0ð 0ð 0øøøð 0ð 0ð 0ð 0õ �s—}’}¥QÑ'Ô'¨Ñ2Ô2Ð2Ð2Ð2s   ©AÁAÁAc                  ó|  — t          dd¬¦  «                             t          ¦  «         t          t          j        dg¦  «        d         d¬¦  «                             t          ¦  «         t          dd¬¦  «                             t          ¦  «        j        j        t          j        t          ¦  «        k    sJ ‚d S )Nr   r   ©r   r!   r   )	r   Úfit_transformr'   ÚnpÚarrayr&   Ún_bins_ÚdtypeÚint© ó    r+   Útest_valid_n_binsr7   _   s­   € Ý˜AÐ/FÐGÑGÔG×UÒUÕVWÑXÔXÐXÝÝŒx˜˜‰}Œ}˜QÔÐ1Hðñ ô ç‚m•AÑÔÐÝ 1Ð6MÐNÑNÔN×RÒRÝ	ñô äŒe•r”x¥‘}”}ò%ð %ð %ð %ð %ð %r6   c                  óJ  — t          j        dd¦  «        } t          | d¬¦  «        }d}t          j        t
          |¬¦  «        5  |                     t          ¦  «         d d d ¦  «         n# 1 swxY w Y   g d¢} t          | d¬¦  «        }d}t          j        t
          |¬¦  «        5  |                     t          ¦  «         d d d ¦  «         n# 1 swxY w Y   g d¢} t          | d¬¦  «        }d	}t          j        t
          |¬¦  «        5  |                     t          ¦  «         d d d ¦  «         n# 1 swxY w Y   g d
¢} t          | d¬¦  «        }d}t          j        t
          |¬¦  «        5  |                     t          ¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )N)r   é   ç       @r   r.   z:n_bins must be a scalar or array of shape \(n_features,\).©Úmatch)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   r>   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.)r0   Úfullr   ÚpytestÚraisesÚ
ValueErrorr/   r'   )r   r*   Úerr_msgs      r+   Útest_invalid_n_bins_arrayrD   i   s«  € åŒW�V˜SÑ!Ô!€FÝ
 &Ð:QÐ
RÑ
RÔ
R€CØK€GÝ	Œ•z¨Ð	1Ñ	1Ô	1ð ð Ø×Ò�!ÑÔÐðð ð ñ ô ð ð ð ð ð ð øøøð ð ð ð ð ˆYˆY€FÝ
 &Ð:QÐ
RÑ
RÔ
R€CØK€GÝ	Œ•z¨Ð	1Ñ	1Ô	1ð ð Ø×Ò�!ÑÔÐðð ð ñ ô ð ð ð ð ð ð øøøð ð ð ð ð ˆ\ˆ\€FÝ
 &Ð:QÐ
RÑ
RÔ
R€Cð	ð õ
 
Œ•z¨Ð	1Ñ	1Ô	1ð ð Ø×Ò�!ÑÔÐðð ð ñ ô ð ð ð ð ð ð øøøð ð ð ð ð ÐÐ€FÝ
 &Ð:QÐ
RÑ
RÔ
R€Cð	ð õ
 
Œ•z¨Ð	1Ñ	1Ô	1ð ð Ø×Ò�!ÑÔÐðð ð ñ ô ð ð ð ð ð ð ð øøøð ð ð ð ð ð sH   ÁA+Á+A/Á2A/Â(CÃCÃCÄD3Ä3D7Ä:D7Å0FÆFÆF)r   r   r   r   r=   )r   r   r   r   Úlinear)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(   r0   r1   ÚshapeÚ
bin_edges_Úzipr2   )r    r!   r)   r$   r*   Ú
n_featuresÚ	bin_edgesr   s           r+   Útest_fit_transform_n_bins_arrayrM   �   sÔ   € õl Øˆ|ˆ|ØØØ'ð	ñ ô ÷
 
‚c�!˜=€cÑ)Ô)ð õ �s—}’}¥QÑ'Ô'¨Ñ2Ô2Ð2õ ”�!‘”Ô" 1Ô%€JØŒ>Ô J =Ò0Ð0Ð0Ð0Ý  ¤°´Ñ=Ô=ð 0ð 0Ñˆ	�6ØŒ 6¨A¡: -Ò/Ð/Ð/Ð/Ð/ð0ð 0r6   z&ignore: Bins whose width are too smallc            	      ó6  — t          j        dgdgdgdgdgdgg¦  «        } t          d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   r   r   ç        g      ð?ç      @N)r0   r1   r   r&   r   rI   r(   ©r'   r*   s     r+   Ú*test_kbinsdiscretizer_effect_sample_weightrS   Ô   sÆ   € õ 	Œ�2�$˜˜˜q˜c A 3¨¨°¨vÐ6Ñ7Ô7€Aõ ØØØØ/ð	ñ ô €Cð ‡G‚GˆAÐ/Ð/Ð/€GÑ0Ô0Ð0Ý�C”N 1Ô%Ð'8Ð'8Ð'8Ñ9Ô9Ð9Ý�C—M’M !Ñ$Ô$¨ u¨s¨e°c°U¸S¸EÀCÀ5È3È%Ð&PÑQÔQÐQÐQÐQr6   r    c                 ó"  — | dk    rt          dd| d¬¦  «        }n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   r   r   r   ©r3   r#   N)r   r0   r1   Úfloat64Úcopyr&   r'   r   )r    r*   r$   Úsample_weight_copys       r+   Ú/test_kbinsdiscretizer_no_mutating_sample_weightrY   å   sž   € ð �:ÒÐÝØØØØ3ð	
ñ 
ô 
ˆˆõ  a°	ÀHÐMÑMÔMˆÝ”H˜\˜\˜\µ´Ð<Ñ<Ô<€MÝœ Ñ/Ô/ÐØ‡G‚G�A˜]€GÑ+Ô+Ð+Ý�MÐ#5Ñ6Ô6Ð6Ð6Ð6r6   )r   r   r   c                 ó  — t          j        d¦  «         t          j        ddgddgddgddgg¦  «        }| dk    rt	          | ddd	¬
¦  «        }n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    r   r   r!   )r    r   r   z2Feature 0 is constant and will be replaced with 0.r;   )ÚwarningsÚsimplefilterr0   r1   r   r@   Úwarnsr%   r&   r2   r(   r	   ÚzerosrH   )r    r'   r*   Úwarning_messageÚXts        r+   Útest_same_min_maxrb   ø   sV  € åÔ˜(Ñ#Ô#Ð#Ý
Œ�1�b�'˜A˜r˜7 Q¨ F¨Q°¨FÐ3Ñ4Ô4€AØ�:ÒÐÝØØØØ3ð	
ñ 
ô 
ˆˆõ ¨¸À9ÐMÑMÔMˆØ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d¬¦  «        }t          j        t
          ¦  «        5  |                     | ¦  «         d d d ¦  «         n# 1 swxY w Y   t          dd¬¦  «        }|                     |                      dd¦  «        ¦  «         t          j        t
          ¦  «        5  |                     | ¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )Nr9   r   r   r.   r   r   )	r0   Úaranger   r@   rA   rB   r&   Úreshaper(   rR   s     r+   Útest_transform_1d_behaviorrf     sQ  € Ý
Œ	�!‰Œ€AÝ
 !Ð5LÐ
MÑ
MÔ
M€CÝ	Œ•zÑ	"Ô	"ð ð Ø�Š�‰
Œ
ˆ
ðð ð ñ ô ð ð ð ð ð ð øøøð ð ð ð õ  !Ð5LÐ
MÑ
MÔ
M€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d¬	¦  «                             |¦  «        }t          ||¦  «         d S )
N)r:   ç      @g      @g       @g      $@r   r   )r   r   r   r   r   rO   r   r   r   ©r   r   r!   )r0   r1   re   r   r/   r	   )rg   ÚX_initÚXt_expectedr'   ra   s        r+   Útest_numeric_stabilityrn     sž   € åŒXÐ0Ð0Ð0Ñ1Ô1×9Ò9¸"¸aÑ@Ô@€FÝ”(˜?˜?˜?Ñ+Ô+×3Ò3°B¸Ñ:Ô:€Kð 	��Q‘‰€AÝ	Ø˜Ð4Kð
ñ 
ô 
ç‚m�AÑÔð õ �{ BÑ'Ô'Ð'Ð'Ð'r6   c                  ó:  — t          g d¢dd¬¦  «                             t          ¦  «        } |                      t          ¦  «        }t          g d¢dd¬¦  «                             t          ¦  «        } |                      t          ¦  «        }t	          j        |¦  «        rJ ‚t          t          d„ dD ¦   «         d¬¦  «                             |¦  «        |¦  «         t          g d¢d	d¬¦  «                             t          ¦  «        } |                      t          ¦  «        }t	          j        |¦  «        sJ ‚t          t          d
„ dD ¦   «         d¬¦  «                             |¦  «         	                    ¦   «         | 	                    ¦   «         ¦  «         d S )NrG   r   r   rk   úonehot-densec                 ó6   — g | ]}t          j        |¦  «        ‘ŒS r5   ©r0   rd   ©Ú.0rg   s     r+   ú
<listcomp>z'test_encode_options.<locals>.<listcomp>5  ó    € Ð;Ð;Ð;¨�œ	 !™œÐ;Ð;Ð;r6   F)Ú
categoriesÚsparse_outputÚonehotc                 ó6   — g | ]}t          j        |¦  «        ‘ŒS r5   rr   rs   s     r+   ru   z'test_encode_options.<locals>.<listcomp>@  rv   r6   T)
r   r&   r'   r(   ÚspÚissparser	   r   r/   Útoarray)r*   ÚXt_1ÚXt_2ÚXt_3s       r+   Útest_encode_optionsr�   '  s¡  € Ý
Øˆ|ˆ| IÐ?Vðñ ô ç	‚c�!�f„fð ð �=Š=�ÑÔ€DÝ
Øˆ|ˆ|ØØ/ðñ ô ÷ 
‚c�!�f„fð	 ð
 �=Š=�ÑÔ€DÝŒ{˜4Ñ Ô Ð Ð Ð ÝÝØ;Ð;¨lÐ;Ñ;Ô;È5ð	
ñ 	
ô 	
ç
Š-˜Ñ
Ô
Øñ	ô ð õ Øˆ|ˆ| HÐ>Uðñ ô ç	‚c�!�f„fð ð �=Š=�ÑÔ€DÝŒ;�tÑÔÐÐÐÝÝØ;Ð;¨lÐ;Ñ;Ô;È4ð	
ñ 	
ô 	
÷ 
Š�tÑ	Ô	ß	Š‰ŒØ�Š‰Œñô ð ð ð r6   zIstrategy, quantile_method, expected_2bins, expected_3bins, expected_5bins)r   r   r   r   r   r   )r   r   r   r   r   r   )r   r   r   r   r9   r9   )r   r   r   r   r   r   )r   r   r   r   r   r9   )r   r   r   r   r   r   )r   r   r   r   r9   r9   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   rh   rO   r   r   r   r   ©r   r    r!   r   r   é   )r0   r1   re   r   r/   r	   Úravel)r    r!   Úexpected_2binsÚexpected_3binsÚexpected_5binsr'   r*   ra   s           r+   Útest_nonuniform_strategiesr‰   H  s  € õ: 	ŒÐ&Ð&Ð&Ñ'Ô'×/Ò/°°AÑ6Ô6€Aõ Ø˜8°_ÈYðñ ô €Cð 
×	Ò	˜1Ñ	Ô	€BÝ�~ r§x¢x¡z¤zÑ2Ô2Ð2õ Ø˜8°_ÈYðñ ô €Cð 
×	Ò	˜1Ñ	Ô	€BÝ�~ r§x¢x¡z¤zÑ2Ô2Ð2õ Ø˜8°_ÈYðñ ô €Cð 
×	Ò	˜1Ñ	Ô	€BÝ�~ r§x¢x¡z¤zÑ2Ô2Ð2Ð2Ð2r6   z&strategy, expected_inv,quantile_method)ç      ø¿r:   ç      Àr   )r   rQ   ç      Àr   )r   rj   rŠ   r   )r   rj   rŠ   r   )g      ö¿g      @g      Àg      â¿)g      À¿g      @g      Àg      â?)g      è?g      @g      ô¿g      ú?)rŠ   r:   r‹   g      è¿)r   rQ   rŒ   rP   )r   rj   rŠ   g      ô?r   )r   ry   rp   c                 óª   — t          d| ||¬¦  «        }|                     t          ¦  «        }|                     |¦  «        }t	          ||¦  «         d S )Nr   rƒ   )r   r/   r'   Úinverse_transformr   )r    r   Úexpected_invr!   Úkbdra   ÚXinvs          r+   Útest_inverse_transformr’   }  s`   € õJ Ø˜8°_ÈVðñ ô €Cð 
×	Ò	�1Ñ	Ô	€BØ× Ò  Ñ$Ô$€DÝ˜l¨DÑ1Ô1Ð1Ð1Ð1r6   c                 óÔ  — t          j        g d¢¦  «        d d …d f         }| dk    rt          d| dd¬¦  «        }n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   r9   r   r   )r   r    r   r!   )r   r    r   r   r„   r   )Úaxisr   )	r0   r1   r   r&   r(   r	   Úmaxr2   Úmin)r    r'   r�   ÚX2ÚX2ts        r+   Ú test_transform_outside_fit_rangerš   ª  sì   € å
Œ���ÑÔ˜q˜q˜q $˜wÔ'€Aà�:ÒÐÝØØØØ3ð	
ñ 
ô 
ˆˆõ  a°(À9ÐMÑMÔMˆØ‡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‘”¨¨Ñ,Ô,Ð,Ð,Ð,r6   c            	      ó¢  — t          j        g d¢¦  «        d d …d f         } |                      ¦   «         }t          ddd¬¦  «        }|                     | ¦  «        }t          | |¦  «         |                     ¦   «         }|                     |¦  «        }t          ||¦  «         t          |t          j        dgdgdgdgg¦  «        ¦  «         d S )	Nr”   r   r   r   )r   r!   r   r   r   r   )r0   r1   rW   r   r/   r	   rŽ   )r'   ÚX_beforer*   ra   Ú	Xt_beforer‘   s         r+   Útest_overwriterž   ¿  sÑ   € Ý
Œ���ÑÔ˜q˜q˜q $˜wÔ'€AØ�vŠv‰xŒx€Hå
ØÐ"9À)ðñ ô €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ÐDr6   z-strategy, expected_bin_edges, quantile_method)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    r!   Ú	subsampleú'Consider decreasing the number of bins.r;   )r   r@   r^   r%   r&   r   rI   )r    Úexpected_bin_edgesr!   r'   r�   r`   s         r+   Útest_redundant_binsr£   Ï  sá   € ð ˆˆqˆc�A�3˜˜˜a˜S 1 #Ð&€AÝ
Ø˜8°_ÐPTðñ ô €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	¬
¦  «        }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   r9   rO   r   r   rE   r   r¡   r;   r   )r0   r1   re   r   r@   r^   r%   r&   r   rI   r(   )r'   rL   ra   r�   r`   s        r+   Ú!test_percentile_numeric_stabilityr§   â  s=  € Ý
ŒÐ#Ð#Ð#Ñ$Ô$×,Ò,¨R°Ñ3Ô3€AÝ”Ð=Ð=Ð=Ñ>Ô>€IÝ	Œ�)�)�)Ñ	Ô	×	$Ò	$ R¨Ñ	+Ô	+€BÝ
ØØØØ ð	ñ ô €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                 ó0  — t          j        t          | ¬¦  «        }t          d|d|¬¦  «        }|                     |¦  «         |�|}n+|€"|j        t           j        k    rt           j        }n|j        }|                     |¦  «        }|j        |k    sJ ‚d S ©NrU   r   r   )r   r   r!   r3   )	r0   r1   r'   r   r&   r3   Úfloat16rV   r(   )r¨   r©   r   ÚX_inputr�   Úexpected_dtypera   s          r+   Útest_consistent_dtyper¯   ÷  s©   € õ Œh•q Ð)Ñ)Ô)€GÝ
ØØØ/Øð	ñ ô €Cð ‡G‚GˆGÑÔÐð ÐØ"ˆˆØ	Ð	˜wœ}µ´
Ò:Ð:åœˆˆà œˆØ	�Š�wÑ	Ô	€BØŒ8�~Ò%Ð%Ð%Ð%Ð%Ð%r6   Úinput_dtypec                 óx  — t          j        t          | ¬¦  «        }t          d|dt           j        ¬¦  «        }|                     |¦  «         |                     |¦  «        }t          d|dt           j        ¬¦  «        }|                     |¦  «         |                     |¦  «        }t          ||¦  «         d S r«   )	r0   r1   r'   r   Úfloat32r&   r(   rV   r   )r°   r   r­   Úkbd_32ÚXt_32Úkbd_64ÚXt_64s          r+   Útest_32_equal_64r·     sÄ   € õ
 Œh•q Ð,Ñ,Ô,€Gõ ØØØ/ÝŒjð	ñ ô €Fð ‡J‚JˆwÑÔÐØ×Ò˜WÑ%Ô%€Eõ ØØØ/ÝŒjð	ñ ô €Fð ‡J‚JˆwÑÔÐØ×Ò˜WÑ%Ô%€Eå  ¨Ñ.Ô.Ð.Ð.Ð.r6   c                  óî  — t          j        g d¢¦  «                             dd¦  «        } t          d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   rO   r   r   r   r   ©r    r   )r0   r1   re   r   r&   r   Ú
set_paramsrJ   rI   Útestingr   rH   )r'   Úkbd_defaultÚkbd_without_subsamplingÚbin_kbd_defaultÚbin_kbd_with_subsamplings        r+   Ú'test_kbinsdiscretizer_subsample_defaultrÀ   .  s  € å
ŒÐ"Ð"Ð"Ñ#Ô#×+Ò+¨B°Ñ2Ô2€AÝ"ØØØØ/ð	ñ ô €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ÐSr6   zencode, expected_namesry   c           	      ó\   — g | ])}t          d ¦  «        D ]}d|› dt          |¦  «        › �‘ŒŒ*S ©r9   ÚfeatÚ_©ÚrangeÚfloat©rt   Úcol_idÚbin_ids      r+   ru   ru   I  ó[   € ð ð ð àÝ# A™hœhðð ð ð 0�vÐ/Ð/¥ f¡¤Ð/Ð/ðð ð ð r6   r   rp   c           	      ó\   — g | ])}t          d ¦  «        D ]}d|› dt          |¦  «        › �‘ŒŒ*S rÂ   rÅ   rÈ   s      r+   ru   ru   Q  rË   r6   r   c                 ó   — g | ]}d |› �‘ŒS ©rÃ   r5   )rt   rÉ   s     r+   ru   ru   W  s   € Ð<Ð<Ð<¨�_˜F�_�_Ð<Ð<Ð<r6   c                 óN  — g d¢g d¢g d¢g d¢g}t          d| 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   r9   r   r9   r   rk   c                 ó   — g | ]}d |› �‘ŒS rÎ   r5   rs   s     r+   ru   z>test_kbinsdiscrtizer_get_feature_names_out.<locals>.<listcomp>e  s   € Ð3Ð3Ð3 Q�j˜Q�j�jÐ3Ð3Ð3r6   r   r   r   N)r   r&   r(   rÆ   Úget_feature_names_outrH   r	   )r   Úexpected_namesr'   r�   ra   Úinput_featuresÚoutput_namess          r+   Ú*test_kbinsdiscrtizer_get_feature_names_outrÙ   D  sÀ   € ð4 
ˆˆ�k�k�k : : :¨z¨z¨zÐ:€Aå
Ø˜Ð1Hðñ ô ç	‚cˆ!�f„fð ð 
�Š�qÑ	Ô	€Bà3Ð3­%°©(¬(Ð3Ñ3Ô3€NØ×,Ò,¨^Ñ<Ô<€LØŒ8�AŒ;˜,Ô,¨QÔ/Ò/Ð/Ð/Ð/å�| ^Ñ4Ô4Ð4Ð4Ð4r6   c                 ó¶  — t           j                             |¦  «                             d¦  «        dz   }| dk    rt	          | d|d¬¦  «        }nt	          | d|¬¦  «        }|                     |¦  «         t          |¦  «        }|                     d ¬¦  «         |                     |¦  «         t          |j	        d	         |j	        d	         d
¬¦  «         d S )N)i † r   r   r   iPÃ  r   )r    r    Úrandom_stater!   )r    r    rÛ   r¹   r   g{®Gáz„?)Úrtol)
r0   ÚrandomÚRandomStateÚrandom_sampler   r&   r   rº   r   rI   )r    Úglobal_random_seedr'   Úkbd_subsamplingÚkbd_no_subsamplings        r+   Útest_kbinsdiscretizer_subsamplerã   l  s  € õ 	Œ	×ÒÐ0Ñ1Ô1×?Ò?ÀÑLÔLÈqÑP€Aà�:ÒÐÝ*ØØØ+Ø3ð	
ñ 
ô 
ˆˆõ +Ø¨Ð=Oð
ñ 
ô 
ˆð ×Ò˜ÑÔÐå˜Ñ/Ô/ÐØ×!Ò!¨DÐ!Ñ1Ô1Ð1Ø×Ò˜1ÑÔÐõ ØÔ" 1Ô%Ð'9Ô'DÀQÔ'GÈdðñ ô ð ð ð r6   c                  óÞ   — g d¢g d¢g d¢g d¢g} d}t          j        t          |¬¦  «        5  t          dd¬	¦  «                             | g d
¢¬¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )NrÐ   rÑ   rÒ   rÓ   z²When fitting with strategy='quantile' and sample weights, quantile_method should either be set to 'averaged_inverted_cdf' or 'inverted_cdf', got quantile_method='linear' instead.r;   r   rE   )r    r!   )r   r   r   r   r#   )r@   rA   rB   r   r&   )r'   Úexpected_msgs     r+   Ú/test_invalid_quantile_method_with_sample_weightræ   ‰  så   € Ø	ˆˆ�k�k�k : : :¨z¨z¨zÐ:€Að	@ð õ
 
ŒÝØð
ñ 
ô 
ð 
ð 
õ 	 *¸hÐGÑGÔG×KÒKØØ&˜,˜,ð 	Lñ 	
ô 	
ð 	
ð	
ð 
ð 
ñ 
ô 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
øøøð 
ð 
ð 
ð 
ð 
ð 
s   ¬)A"Á"A&Á)A&)0r\   Únumpyr0   r@   Úscipy.sparseÚsparser{   Úsklearnr   Úsklearn.preprocessingr   r   Úsklearn.utils._testingr   r   r   r	   r
   r'   ÚmarkÚparametrizer,   r7   rD   rM   ÚfilterwarningsrS   rY   rb   rf   rÆ   rn   r�   r‰   r’   rš   rž   r£   r§   r¬   r²   rV   r¯   r·   rÀ   rÙ   rã   ræ   r5   r6   r+   ú<module>rð      s
  ðØ €€€à Ð Ð Ð Ø €€€Ø Ð Ð Ð Ð Ð à Ð Ð Ð Ð Ð Ø AÐ AÐ AÐ AÐ AÐ AÐ AÐ Aðð ð ð ð ð ð ð ð ð ð ð ð ð ð ÐÐÐ+Ð+Ð+Ð->Ð->Ð->ÀÀÀÐP€ð „×ÒØ8ð Ø#Øˆ\ˆ\˜<˜<˜<¨¨¨°|°|°|ÐDØð		
ð Ø#Øˆ\ˆ\˜<˜<˜<¨¨¨°|°|°|ÐDØð		
ð Ø#Øˆ\ˆ\˜<˜<˜<¨¨¨°|°|°|ÐDØð		
ð Ø#Øˆ\ˆ\˜<˜<˜<¨¨¨°|°|°|ÐDØˆLˆLð		
ð Ø#Øˆ\ˆ\˜<˜<˜<¨¨¨°|°|°|ÐDØˆLˆLð		
ð Ø#Øˆ\ˆ\˜<˜<˜<¨¨¨°|°|°|ÐDØˆLˆLð		
ð Ø#Øˆ\ˆ\˜<˜<˜<¨¨¨°|°|°|ÐDØˆLˆLð		
ð Ø#Øˆ\ˆ\˜<˜<˜<¨¨¨°|°|°|ÐDØˆLˆLð		
ð Ø#Øˆ\ˆ\˜<˜<˜<¨¨¨°|°|°|ÐDØˆLˆLð		
ð Ø#Øˆ\ˆ\˜<˜<˜<¨¨¨°|°|°|ÐDØˆLˆLð		
ðo=ñ@ô @ðB3ð 3ñC@ô @ðB3ð%ð %ð %ð#ð #ð #ðL „×ÒØ8ð Ø#Øˆ\ˆ\˜<˜<˜<¨¨¨°|°|°|ÐDØð		
ð Ø#Øˆ\ˆ\˜<˜<˜<¨¨¨°|°|°|ÐDØð		
ð ØØˆ\ˆ\˜<˜<˜<¨¨¨°|°|°|ÐDØð		
ð Ø#Øˆ\ˆ\˜<˜<˜<¨¨¨°|°|°|ÐDØð		
ð Ø#Øˆ\ˆ\˜<˜<˜<¨¨¨°|°|°|ÐDØˆLˆLð		
ð Ø#Øˆ\ˆ\˜<˜<˜<¨¨¨°|°|°|ÐDØˆLˆLð		
ð Ø#Øˆ\ˆ\˜<˜<˜<¨¨¨°|°|°|ÐDØˆLˆLð		
ð Ø#Øˆ\ˆ\˜<˜<˜<¨¨¨°|°|°|ÐDØˆLˆLð		
ðW1ñ4ô 4ðj0ð 0ñk4ô 4ðj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Ñ*Ô*ð	(ð 	(ñ +Ô*ð	(ðð ð ðB „×ÒØOð Ø#ØÐÐØÐÐØÐÐð	
ð Ø#ØÐÐØÐÐØÐÐð	
ð Ø#ØÐÐØÐÐØÐÐð	
ðñô ð43ð 3ñ5ô ð43ð6 „×ÒØ,ð à'Ð'Ð'Ø'Ð'Ð'Ø%Ð%Ð%Ø%Ð%Ð%ð	ð $ð		
ð à0Ð0Ð0Ø0Ð0Ð0Ø/Ð/Ð/Ø*Ð*Ð*ð	ð $ð		
ð à(Ð(Ð(Ø&Ð&Ð&Ø&Ð&Ð&Ø&Ð&Ð&ð	ð $ð		
ð+ñ"ô "ðF „×Ò˜Ð#HÐ#HÐ#HÑIÔIð2ð 2ñ JÔIñG"ô "ðH2ð „×Ò˜Ð%FÐ%FÐ%FÑGÔGð-ð -ñ HÔGð-ð(Eð Eð Eð  „×ÒØ3à	�[�[�[Ð"9Ð:Ø	�;�;�;Ð 7Ð8ðñô ð	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ð/ð8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ðð8
ð 
ð 
ð 
ð 
r6   