Ë
    ÜÍ:j9€  ã                   óø	  — d dl Zd dl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mZ d dlmZmZmZmZmZmZmZ d dlmZ d dlmZ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&  ejN                  «       Z(d„ Z)d„ Z*d„ Z+d„ Z,ejZ                  j]                  dg d¢«      ejZ                  j]                  dddg«      d„ «       «       Z/d„ Z0ejZ                  j]                  de «      d„ «       Z1ejZ                  j]                  dg d¢d dgdgd gd gdgggg d¢g d¢g d¢g d¢g d¢g d ¢ggg«      ejZ                  j]                  d! e«       «      d"„ «       «       Z2ejZ                  j]                  d# ejf                  g d$¢d%¬&«       ejf                  g d'¢d%¬&«       ejf                  d(gd%¬&«      f ejf                  g d)¢e4¬&«       ejf                  g d*¢e4¬&«       ejf                  d+ge4¬&«      f ejf                  g d)¢«       ejf                  g d*¢«       ejf                  d+g«      fgg d,¢¬-«      d.„ «       Z5d/„ Z6ejZ                  j]                  dd0d1g«      d2„ «       Z7d3„ Z8ejZ                  j]                  d4 ejf                  g d$¢d%¬&«       ejf                  g d)¢e4¬&«       ejf                  g d)¢«      gg d,¢¬-«      d5„ «       Z9d6„ Z:ejZ                  j]                  de «      d7„ «       Z;d8„ Z<d9„ Z=d:„ Z>d;„ Z?d<„ Z@d=„ ZAd>„ ZBd?„ ZCd@„ ZDdA„ ZEdB„ ZFdC„ ZGdD„ ZHejZ                  j]                  dEejf                  gez   ez   e z   e!z   e"z   «      dF„ «       ZIdG„ ZJejZ                  j]                  dg d¢dHdIgd gd gd gd gggg d¢g dJ¢g dK¢g dK¢g dK¢g dK¢ggg d¢d dgdgd gd gdgggg dL¢g dM¢g dN¢g dO¢g dP¢g dN¢ggg«      ejZ                  j]                  d! e«       «      dQ„ «       «       ZKejZ                  j]                  d! e«       «      ejZ                  j]                  dRd dgg dM¢g«      dS„ «       «       ZLejZ                  j]                  de «      dT„ «       ZMdU„ ZNejZ                  j]                  dV e
«        e	«        e«       g«      dW„ «       ZOejZ                  j]                  d! e«       «      ejZ                  j]                  dX ejf                  g d$¢«       ejf                  g dY¢«       ejf                  g dZ¢«      g«      d[„ «       «       ZPy)\é    N)Úissparse)Úconfig_contextÚdatasets)ÚLabelBinarizerÚLabelEncoderÚMultiLabelBinarizerÚ_inverse_binarize_multiclassÚ_inverse_binarize_thresholdingÚlabel_binarize)Ú_atol_for_typeÚ_convert_to_numpyÚ_is_numpy_namespaceÚget_namespaceÚindexing_dtypeÚmove_toÚ)yield_namespace_device_dtype_combinations©Údevice)Ú_array_api_for_testsÚassert_allcloseÚassert_array_equal)ÚCOO_CONTAINERSÚCSC_CONTAINERSÚCSR_CONTAINERSÚDOK_CONTAINERSÚLIL_CONTAINERS)Útype_of_target)Ú_to_object_arrayc                 ó>   — t        | d«      r| j                  «       } | S )NÚtoarray)Úhasattrr    ©Úas    ú{/home/mcse/projects/srt_converter/srt-converter-venv/lib/python3.12/site-packages/sklearn/preprocessing/tests/test_label.pyr    r    ,   s   € Üˆq�)ÔØ�I‰I‹KˆØ€Hó    c                  óD  — g d¢} t        d¬«      }t        j                  g d¢g«      j                  }|j	                  | «      }t        |j                  dg«       t        ||«       t        |j                  |«      | «       t        d¬«      }|j	                  | «      }t        |«      sJ ‚t        |j                  dg«       t        ||j                  «       «       t        |j                  |j                  «       «      | «       t        d¬«      }g d¢} t        j                  g d¢g«      j                  }|j	                  | «      }t        |j                  d	dg«       t        ||«       t        j                  d
dgdd
gdd
gd
dgg«      }t        |j                  |«      | «       g d¢} t        j                  g d¢g d¢g d¢g d¢g d¢g«      }|j	                  | «      }t        |j                  g d¢«       t        ||«       t        |j                  |«      | «       y )N)Úposr'   r'   r'   F©Úsparse_output©r   r   r   r   r'   T)Únegr'   r'   r+   ©r   é   r-   r   r+   r-   r   )ÚspamÚhamÚeggsr/   Ú0©r   r   r   r-   ©r   r   r-   r   ©r   r-   r   r   ©r-   r   r   r   )r1   r0   r/   r.   )
r   ÚnpÚarrayÚTÚfit_transformr   Úclasses_Úinverse_transformr   r    )ÚinpÚlbÚexpectedÚgotÚ	to_inverts        r$   Útest_label_binarizerrA   2   s»  € ò '€CÜ	 eÔ	,€BÜ�x‰xš˜Ó'×)Ñ)€HØ
×
Ñ
˜3Ó
€CÜ�r—{‘{ U GÔ,Ü�x Ô%Ü�r×+Ñ+¨CÓ0°#Ô6ô 
 dÔ	+€BØ
×
Ñ
˜3Ó
€CÜ�CŒ=Ðˆ=Ü�r—{‘{ U GÔ,Ü�x §¡£Ô/Ü�r×+Ñ+¨C¯K©K«MÓ:¸CÔ@ä	 eÔ	,€Bâ
&€CÜ�x‰xš˜Ó'×)Ñ)€HØ
×
Ñ
˜3Ó
€CÜ�r—{‘{ U¨E NÔ3Ü�x Ô%ä—‘˜1˜a˜& 1 a &¨1¨a¨&°1°a°&Ð9Ó:€IÜ�r×+Ñ+¨IÓ6¸Ô<ò .€CÜ�x‰xÚ	’|¢\²<ÂÐNó€Hð ×
Ñ
˜3Ó
€CÜ�r—{‘{Ò$@ÔAÜ�x Ô%Ü�r×+Ñ+¨CÓ0°#Õ6r%   c            	      ó  — t        «       } t        j                  g d¢g d¢g d¢g«      }| j                  g d¢«      }t	        ||«       t        j                  g d¢g d¢g d¢g d¢g d¢g d¢g«      }| j                  g d¢«      }t	        ||«       y )N©r-   r   r   ©r   r-   r   ©r   r   r-   )ÚbÚdÚe©r   r   r   )r#   rF   ÚcrG   rH   Úf)r   r6   r7   r9   r   Ú	transform)r=   r>   r?   s      r$   Ú"test_label_binarizer_unseen_labelsrM   [   sr   € Ü	Ó	€Bä�x‰xš¢IªyÐ9Ó:€HØ
×
Ñ
š?Ó
+€CÜ�x Ô%ä�x‰xÚ	’Išyª)²YÂ	ÐJó€Hð �,‰,Ò5Ó
6€CÜ�x Õ%r%   c                  ó   — t        dd¬«      } t        j                  g d¢«      }t        j                  g d¢g«      j                  }| j	                  |«      }t        ||«       t        | j                  |«      |«       t        dd¬«      } t        j                  g d¢«      }t        j                  g d¢g d	¢g d
¢g d	¢g d¢g«      }| j	                  |«      }t        ||«       t        | j                  |«      |«       y )Néþÿÿÿr   ©Ú	neg_labelÚ	pos_labelr,   )rO   r   r   rO   é   )é   rS   r-   rS   r   )rO   rO   rO   rS   )rO   rO   rS   rO   )rO   rS   rO   rO   )rS   rO   rO   rO   )r   r6   r7   r8   r9   r   r;   )r=   r<   r>   r?   s       r$   Ú'test_label_binarizer_set_label_encodingrU   i   sÓ   € Ü	 "°Ô	2€Bô �(‰(’<Ó
 €CÜ�x‰xšÐ(Ó)×+Ñ+€HØ
×
Ñ
˜3Ó
€CÜ�x Ô%Ü�r×+Ñ+¨CÓ0°#Ô6ä	 "°Ô	2€Bô �(‰(’?Ó
#€CÜ�x‰xâÚÚÚÚð	
ó€Hð ×
Ñ
˜3Ó
€CÜ�x Ô%Ü�r×+Ñ+¨CÓ0°#Õ6r%   Údtype)ÚInt64ÚFloat64ÚbooleanÚunique_firstTFc                 óô   — t        j                  d«      }|j                  g d¢| ¬«      }|r|j                  «       }t	        «       j                  |«      }|j                  ddg«      }t        |dgdgg«       y)ziChecks that LabelBinarizer works with pandas nullable dtypes.

    Non-regression test for gh-25637.
    Úpandas)	r-   r   r   r-   r   r-   r-   r   r-   ©rV   r-   r   N)ÚpytestÚimportorskipÚSeriesÚuniquer   ÚfitrL   r   )rV   rZ   ÚpdÚy_truer=   Úy_outs         r$   Ú$test_label_binarizer_pandas_nullablerf   …   sn   € ô 
×	Ñ	˜XÓ	&€Bà�Y‰YÒ2¸%ˆYÓ@€FÙð —‘“ˆÜ	Ó	×	Ñ	˜fÓ	%€BØ�L‰L˜!˜Q˜Ó €Eä�u ˜s Q C˜jÕ)r%   c                  óè  — t        j                  g d¢«      } t        «       j                  | «      }g d¢}d}t	        j
                  t        |¬«      5  |j                  |«       d d d «       t        «       }d}t	        j
                  t        |¬«      5  |j                  g «       d d d «       t	        j
                  t        |¬«      5  |j                  g «       d d d «       g d¢}d}t        dd	¬
«      }t	        j
                  t        |¬«      5  |j                  |«       d d d «       d}t        dd¬
«      }t	        j
                  t        |¬«      5  |j                  |«       d d d «       d}t        d	dd¬«      }t	        j
                  t        |¬«      5  |j                  |«       d d d «       g d	dgdgg d¢dgg}d}t	        j
                  t        |¬«      5  t        «       j                  |«       d d d «       d}t	        j
                  t        |¬«      5  t        t        j                  g d¢g d¢g«      dg d¢d¬«       d d d «       d}t	        j
                  t        |¬«      5  t        «       j                  t        j                  d	dgdd	gg«      «       d d d «       t	        j
                  t        |¬«      5  t        t        j                  d	dgdd	gg«      g d¢¬«       d d d «       y # 1 sw Y   �Œ’xY w# 1 sw Y   �Œ^xY w# 1 sw Y   �Œ6x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   �ŒMxY w# 1 sw Y   �Œ
xY w# 1 sw Y   Œ¾xY w# 1 sw Y   y xY w)Nr*   )©rS   rT   )r   )r   rS   z@You appear to be using a legacy multi-label data representation.©Úmatchz.This LabelBinarizer instance is not fitted yet)r   r-   r   r-   z3neg_label=2 must be strictly less than pos_label=1.rS   r-   rP   z3neg_label=2 must be strictly less than pos_label=2.zqSparse binarization is only supported with non zero pos_label and zero neg_label, got pos_label=2 and neg_label=1T©rQ   rR   r)   rT   )r   r-   rT   z?You appear to be using a legacy multi-label data representationz!output_type='binary', but y.shape©r-   rS   rT   )rS   r-   rT   Úbinaryr   ©ÚyÚoutput_typeÚclassesÚ	thresholdz@Multioutput target data is not supported with label binarization©rq   )r6   r7   r   rb   r^   ÚraisesÚ
ValueErrorrL   r;   r9   r
   r   )Ú	one_classr=   Úmulti_labelÚerr_msgÚinput_labelsÚy_seq_of_seqss         r$   Útest_label_binarizer_errorsr{   ™   sÚ  € ä—‘šÓ&€IÜ	Ó	×	Ñ	˜iÓ	(€Bâ(€KØP€GÜ	�‰”z¨Ô	1ñ "Ø
�‰�[Ô!÷"ô 
Ó	€BØ>€GÜ	�‰”z¨Ô	1ñ Ø
�‰�RÔ÷ä	�‰”z¨Ô	1ñ !Ø
×Ñ˜RÔ ÷!ò  €LØC€GÜ	 !¨qÔ	1€BÜ	�‰”z¨Ô	1ñ Ø
�‰ˆ|Ô÷àC€GÜ	 !¨qÔ	1€BÜ	�‰”z¨Ô	1ñ Ø
�‰ˆ|Ô÷ð	5ð ô 
 !¨qÀÔ	E€BÜ	�‰”z¨Ô	1ñ Ø
�‰ˆ|Ô÷ð ˜!˜Q˜ ! ¢i°!°Ð5€MØO€GÜ	�‰”z¨Ô	1ñ 6ÜÓ×&Ñ& }Ô5÷6ð 2€GÜ	�‰”z¨Ô	1ñ 
Ü&Ü�h‰hš	¢9Ð-Ó.Ø ÚØõ		
÷
ð Q€GÜ	�‰”z¨Ô	1ñ 9ÜÓ×ÑœRŸX™X¨¨1 v°°1¨vÐ&6Ó7Ô8÷9ä	�‰”z¨Ô	1ñ FÜ”r—x‘x ! Q ¨!¨Q¨Ð 0Ó1º9ÕE÷Fð F÷_"ñ "ú÷
ñ ú÷!ñ !ú÷ñ ú÷ñ ú÷ñ ú÷6ñ 6ú÷

ñ 
ú÷9ð 9ú÷Fð Fúsx   ÁK4ÂLÃLÄLÅL(ÆL5ÇMÈ+MÉ,3MË)M(Ë4K>ÌLÌLÌL%Ì(L2Ì5L?ÍMÍMÍM%Í(M1Úcsr_containerc                 ó@  — d}t        j                  t        |¬«      5  t         | ddgddgg«      dddgd¬«       d d d «       d}t        j                  t        |¬«      5  t         | ddgddgg«      dg d	¢d¬«       d d d «       y # 1 sw Y   ŒMxY w# 1 sw Y   y xY w)
Nzfoo format is not supportedri   r-   rS   Úfoor   rn   zAThe number of class is not equal to the number of dimension of y.rl   )r^   rt   ru   r
   )r|   rx   s     r$   Ú"test_label_binarizer_sparse_errorsr   Ó   s¬   € ð ,€GÜ	�‰”z¨Ô	1ñ 
Ü&Ù˜a ˜V a¨ VÐ,Ó-ØØ˜�FØõ		
÷
ð R€GÜ	�‰”z¨Ô	1ñ 
Ü&Ù˜a ˜V a¨ VÐ,Ó-ØÚØõ		
÷
ð 
÷
ð 
ú÷
ð 
ús   žBÁ!BÂBÂBzy, classes, expected)r-   r   r   r-   r-   )r-   r   rS   é	   )r   r-   rS   r€   r4   r5   r3   r2   z(array_namespace, device_name, dtype_namec           	      óÌ  — t        |||«      \  }}t        j                  | «      }t        d¬«      5  |j                  | |¬«      } t	        |«      sùd}	t        j                  t        |	¬«      5  t        d¬«      j                  | «       ddd«       t        d¬«      j                  |«      }
t        j                  t        |	¬«      5  |
j                  | «       ddd«       t        «       j                  |«      }d|_        d}t        j                  t        |¬«      5  |j                  |j                  ||¬«      «       ddd«       t        «       }|j                  | «      }t        |«      d	   j                  |j                  k(  sJ ‚d
t!        |j"                  «      v sJ ‚t%        |«      t%        | «      k(  sJ ‚t'        t)        |t        d¬«      t        j                  |«      «       |j*                  }t        |«      d	   j                  |j                  k(  sJ ‚t%        |«      t%        | «      k(  sJ ‚d
t!        |j"                  «      v sJ ‚t'        t)        |t        d¬«      t        j                  |«      «       |j                  ||¬«      }|j                  |«      }t        |«      d	   j                  |j                  k(  sJ ‚d
t!        |j"                  «      v sJ ‚t%        |«      t%        | «      k(  sJ ‚t'        t)        |t        d¬«      t)        | t        d¬«      «       ddd«       y# 1 sw Y   �Œ«xY w# 1 sw Y   �ŒhxY w# 1 sw Y   �ŒxY w# 1 sw Y   yxY w)zœTest that :class:`LabelBinarizer` works correctly with the array API for binary
    and multi-class inputs for numerical labels and non-sparse outputs.
    T©Úarray_api_dispatchr   z3`sparse_output=True` is not supported for array APIri   r(   NzD`LabelBinarizer` was fitted on a sparse matrix, and therefore cannotr   ÚintÚcpu©Úxpr   )r   r6   Úasarrayr   r   r^   rt   ru   r   rb   rL   Úsparse_input_r;   r9   r   Ú__name__ÚstrrV   Úarray_api_devicer   r   r:   )ro   rq   r>   Úarray_namespaceÚdevice_nameÚ
dtype_namer‡   r   Úy_npÚsparse_output_msgÚlb_npÚ	lb_sparseÚsparse_input_msgÚlb_xpÚ	binarizedÚfitted_classesÚexpected_xpÚbinarized_inverses                     r$   Ú)test_label_binarizer_array_api_compliancerš   ê   sö  € ô* & o°{ÀJÓO�J€Bˆä�:‰:�a‹=€Dä	¨4Ô	0ñ 3
Ø�J‰J�q ˆJÓ(ˆô
 # 2Ô&Ø UÐä—‘œzÐ1BÔCñ :Ü¨TÔ2×6Ñ6°qÔ9÷:ô #°Ô6×:Ñ:¸4Ó@ˆEÜ—‘œzÐ1BÔCñ #Ø—‘ Ô"÷#ô 'Ó(×,Ñ,¨TÓ2ˆIØ&*ˆIÔ#àVð ô —‘œzÐ1AÔBñ QØ×+Ñ+¨B¯J©J°xÈ¨JÓ,OÔP÷Qô Ó ˆà×'Ñ'¨Ó*ˆ	Ü˜YÓ'¨Ñ*×3Ñ3°r·{±{ÒBÐBÐBØœ˜IŸO™OÓ,Ñ,Ð,Ð,Ü 	Ó*Ô.>¸qÓ.AÒAÐAÐAÜÜ�I¤"¨UÔ3´R·Z±ZÀÓ5Iô	
ð Ÿ™ˆÜ˜^Ó,¨QÑ/×8Ñ8¸B¿K¹KÒGÐGÐGÜ Ó/Ô3CÀAÓ3FÒFÐFÐFØœ˜N×0Ñ0Ó1Ñ1Ð1Ð1ÜÜ�N¤r°%Ô8¼"¿*¹*ÀWÓ:Mô	
ð —j‘j °&�jÓ9ˆØ!×3Ñ3°KÓ@ÐÜÐ.Ó/°Ñ2×;Ñ;¸r¿{¹{ÒJÐJÐJØœÐ-×3Ñ3Ó4Ñ4Ð4Ð4ÜÐ 1Ó2Ô6FÀqÓ6IÒIÐIÐIÜÜÐ%¬"°UÔ;Ü�Aœ" UÔ+ô	
÷a3
ð 3
÷:ñ :ú÷#ñ #ú÷Qñ Qú÷+3
ð 3
úsU   ²<MÁ.L3Â
>MÃM ÃAMÄ#MÅG(MÌ3L=	Ì8MÍ M
	ÍMÍM	ÍMÍM#zvalues, classes, unknown)rS   r-   rT   r-   rT   Úint64r]   rl   é   )rF   r#   rJ   r#   rJ   ©r#   rF   rJ   rG   )r›   Úobjectr‹   )Úidsc                 ó®  — t        «       }|j                  | «       t        |j                  |«       t        |j	                  | «      g d¢«       t        |j                  g d¢«      | «       t        «       }|j                  | «      }t        |g d¢«       t        j                  t        d¬«      5  |j	                  |«       d d d «       y # 1 sw Y   y xY w)N)r-   r   rS   r   rS   zunseen labelsri   )
r   rb   r   r:   rL   r;   r9   r^   rt   ru   )Úvaluesrq   ÚunknownÚleÚrets        r$   Útest_label_encoderr¥   9  sœ   € ô0 
‹€BØ‡F�Fˆ6„NÜ�r—{‘{ GÔ,Ü�r—|‘| FÓ+ª_Ô=Ü�r×+Ñ+ªOÓ<¸fÔEÜ	‹€BØ
×
Ñ
˜6Ó
"€CÜ�sšOÔ,ä	�‰”z¨Ô	9ñ Ø
�‰�WÔ÷÷ ñ ús   Â0CÃCc                  ól  — t        «       } | j                  g d¢«       t        | j                  g d¢«       t        | j	                  g d¢«      g d¢«       t        | j                  g d¢«      g d¢«       t        j                  t        «      5  | j	                  ddg«       d d d «       y # 1 sw Y   y xY w)N©r-   r-   rœ   é   éÿÿÿÿr   )r©   r   r-   rœ   r¨   )r   r-   rœ   rœ   r¨   r©   r©   )r-   rS   rT   rT   rœ   r   r   r   é   )	r   rb   r   r:   rL   r;   r^   rt   ru   )r£   s    r$   Ú test_label_encoder_negative_intsr«   ^  s‡   € Ü	‹€BØ‡F�FÒÔÜ�r—{‘{Ò$4Ô5Ü�r—|‘|Ò$;Ó<Ò>SÔTÜØ
×ÑÒ2Ó3Ò5Lôô 
�‰”zÓ	"ñ Ø
�‰�a˜�VÔ÷÷ ñ ús   ÂB*Â*B3r‹   rž   c                 óî   — t        «       }|j                  t        j                  ddg| ¬«      «       d}t	        j
                  t        |¬«      5  |j                  d«       d d d «       y # 1 sw Y   y xY w)NÚappleÚoranger]   zshould be a 1d arrayri   )r   rb   r6   r7   r^   rt   ru   rL   )rV   r£   Úmsgs      r$   Ú test_label_encoder_str_bad_shaper°   j  sY   € ä	‹€BØ‡F�FŒ2�8‰8�W˜hÐ'¨uÔ5Ô6Ø
 €CÜ	�‰”z¨Ô	-ñ Ø
�‰�WÔ÷÷ ñ ús   ÁA+Á+A4c                  óä  — t        «       } t        j                  t        «      5  | j	                  g «       d d d «       t        j                  t        «      5  | j                  g «       d d d «       t        «       } | j                  g d¢«       d}t        j                  t        |¬«      5  | j                  dg«       d d d «       t        j                  t        |¬«      5  | j                  g d¢«       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   ŒÚxY w# 1 sw Y   Œ‘xY w# 1 sw Y   ŒfxY w# 1 sw Y   y xY w)N)r-   rS   rT   r©   r-   z!contains previously unseen labelsri   rO   )rO   éýÿÿÿéüÿÿÿz should be a 1d array.+shape \(\)Ú )r   r^   rt   ru   rL   r;   rb   )r£   r¯   s     r$   Útest_label_encoder_errorsrµ   s  s!  € ä	‹€BÜ	�‰”zÓ	"ñ Ø
�‰�RÔ÷ä	�‰”zÓ	"ñ !Ø
×Ñ˜RÔ ÷!ô 
‹€BØ‡F�FÒÔØ
-€CÜ	�‰”z¨Ô	-ñ #Ø
×Ñ˜b˜TÔ"÷#ä	�‰”z¨Ô	-ñ +Ø
×Ñš\Ô*÷+ð .€CÜ	�‰”z¨Ô	-ñ !Ø
×Ñ˜RÔ ÷!ð !÷!ñ ú÷!ð !ú÷#ð #ú÷+ð +ú÷
!ð !ús;   ¤D5ÁEÂ+EÃ!EÄE&Ä5D?ÅEÅEÅE#Å&E/r¡   c                 óú   — t        «       }|j                  | «       |j                  g «      }t        t	        j
                  g «      |«       |j                  g «      }t        t	        j
                  g «      |«       y )N)r   rb   rL   r   r6   r7   r;   )r¡   r£   ÚtransformedÚinverse_transformeds       r$   Útest_label_encoder_empty_arrayr¹   Š  sZ   € ô 
‹€BØ‡F�Fˆ6„Nà—,‘,˜rÓ"€KÜ”r—x‘x “| [Ô1à×.Ñ.¨rÓ2ÐÜ”r—x‘x “|Ð%8Õ9r%   c                  ód  — d„ d„ d„ g} t        j                  g d¢g d¢g d¢g«      } | d   «       }dD �]z  }| D �]q  }t        |¬	«      }|j                   |«       «      }t	        |«      |k(  sJ ‚|r?|j
                  j                  |j                  j                  k(  sJ ‚|j                  «       }t        ||«       t        g d
¢|j                  «       |j                  |«      |k(  sJ ‚t        |¬	«      }|j                   |«       «      j                   |«       «      }t	        |«      |k(  sJ ‚|r?|j
                  j                  |j                  j                  k(  sJ ‚|j                  «       }t        ||«       t        g d
¢|j                  «       |j                  |«      |k(  r�ŒrJ ‚ �Œ} y )Nc                  ó
   — g d¢S ©N©rh   ©r-   )r-   rS   © r¿   r%   r$   ú<lambda>z9test_sparse_output_multilabel_binarizer.<locals>.<lambda>¡  ó   € Ò&€ r%   c                  ó   — ddhdhddhfS ©NrS   rT   r-   r¿   r¿   r%   r$   rÀ   z9test_sparse_output_multilabel_binarizer.<locals>.<lambda>¢  ó   € �!�Q�˜!˜˜q !˜fÐ%€ r%   c                  óF   — t        t        d«      t        d«      ddhg«      S ©Nrh   r¾   r-   rS   ©Úiterr¿   r%   r$   rÀ   z9test_sparse_output_multilabel_binarizer.<locals>.<lambda>£  ó   € ””d˜6“l¤D¨£J°°A°Ð7Ó8€ r%   ©r   r-   r-   rC   ©r-   r-   r   r   ©TFr(   rl   )r6   r7   r   r9   r   ÚindicesrV   Úindptrr    r   r:   r;   rb   rL   )ÚinputsÚindicator_matÚinverser)   r<   Úmlbr?   s          r$   Ú'test_sparse_output_multilabel_binarizerrÓ   ž  s€  € ñ 	'Ù%Ù8ð€Fô
 —H‘Hšiª²IÐ>Ó?€Màˆf�Q‰i‹k€GØ&ó 9ˆØó 	9ˆCä%°MÔBˆCØ×#Ñ#¡C£EÓ*ˆCÜ˜C“= MÒ1Ð1Ð1Ùà—{‘{×(Ñ(¨C¯J©J×,<Ñ,<Ò<Ð<Ð<Ø—k‘k“m�Ü˜}¨cÔ2Üšy¨#¯,©,Ô7Ø×(Ñ(¨Ó-°Ò8Ð8Ð8ô &°MÔBˆCØ—'‘'™#›%“.×*Ñ*©3«5Ó1ˆCÜ˜C“= MÒ1Ð1Ð1Ùà—{‘{×(Ñ(¨C¯J©J×,<Ñ,<Ò<Ð<Ð<Ø—k‘k“m�Ü˜}¨cÔ2Üšy¨#¯,©,Ô7Ø×(Ñ(¨Ó-°Ô8Ð8Ð8ò/	9ñ9r%   c                 óD  — t        t        d«      t        d«      ddhg«      }t        d¬«      }|j                  |«       t        j                  t
        «      5  |j                   | t        j                  g d¢g d¢g d	¢g«      «      «       d d d «       y # 1 sw Y   y xY w)
Nrh   r¾   r-   rS   Fr(   rÊ   )rS   r   r   rË   )	rÈ   r   rb   r^   rt   ru   r;   r6   r7   )r|   r<   rÒ   s      r$   Ú.test_sparse_output_multilabel_binarizer_errorsrÕ   Ã  s{   € ä
”�V“œd 4›j¨1¨a¨&Ð1Ó
2€CÜ
¨EÔ
2€CØ‡G�GˆC„LÜ	�‰”zÓ	"ñ 
Ø×ÑÙœ"Ÿ(™(¢Iªyº)Ð#DÓEÓFô	
÷
÷ 
ñ 
ús   Á4BÂBc                  ó  — d„ d„ d„ g} t        j                  g d¢g d¢g d¢g«      } | d   «       }| D ]Ê  }t        «       }|j                   |«       «      }t	        ||«       t	        g d¢|j
                  «       |j                  |«      |k(  sJ ‚t        «       }|j                   |«       «      j                   |«       «      }t	        ||«       t	        g d¢|j
                  «       |j                  |«      |k(  rŒÊJ ‚ y )	Nc                  ó
   — g d¢S r¼   r¿   r¿   r%   r$   rÀ   z+test_multilabel_binarizer.<locals>.<lambda>Ñ  rÁ   r%   c                  ó   — ddhdhddhfS rÃ   r¿   r¿   r%   r$   rÀ   z+test_multilabel_binarizer.<locals>.<lambda>Ò  rÄ   r%   c                  óF   — t        t        d«      t        d«      ddhg«      S rÆ   rÇ   r¿   r%   r$   rÀ   z+test_multilabel_binarizer.<locals>.<lambda>Ó  rÉ   r%   rÊ   rC   rË   r   rl   )	r6   r7   r   r9   r   r:   r;   rb   rL   )rÏ   rÐ   rÑ   r<   rÒ   r?   s         r$   Útest_multilabel_binarizerrÚ   Î  sé   € ñ 	'Ù%Ù8ð€Fô
 —H‘Hšiª²IÐ>Ó?€MØˆf�Q‰i‹k€GØò 5ˆä!Ó#ˆØ×Ñ¡£Ó&ˆÜ˜=¨#Ô.Üš9 c§l¡lÔ3Ø×$Ñ$ SÓ)¨WÒ4Ð4Ð4ô "Ó#ˆØ�g‰g‘c“e‹n×&Ñ&¡s£uÓ-ˆÜ˜=¨#Ô.Üš9 c§l¡lÔ3Ø×$Ñ$ SÓ)¨WÓ4Ð4Ð4ñ5r%   c                  óš   — t        «       } ddgdgg g}t        j                  ddgddgddgg«      }t        | j	                  |«      |«       y )Nr-   rS   r   )r   r6   r7   r   r9   )rÒ   ro   ÚYs      r$   Ú&test_multilabel_binarizer_empty_samplerÝ   ç  sR   € Ü
Ó
€CØ
ˆQˆ�!��bÐ€AÜ
�‰�1�a�&˜1˜a˜& 1 a &Ð)Ó*€AÜ�s×(Ñ(¨Ó+¨QÕ/r%   c                  ó  — t        «       } ddgg}t        j                  ddgddgg«      }d}t        j                  t
        |¬«      5  | j                  |«      j                  ddgddgg«      }d d d «       t        j                  g d¢g d¢g«      }t        g d	¢¬
«      } t        j                  t
        |¬«      5  | j                  |«      j                  ddgddgg«      }d d d «       t        |«       y # 1 sw Y   Œ‰xY w# 1 sw Y   Œ"xY w)Nr-   rS   r   zunknown class.* will be ignoredri   rœ   rC   rD   rl   rs   )	r   r6   r7   r^   ÚwarnsÚUserWarningrb   rL   r   )rÒ   ro   rÜ   Úwarning_messageÚmatrixs        r$   Ú'test_multilabel_binarizer_unknown_classrã   î  sî   € Ü
Ó
€CØ
ˆQˆˆ€AÜ
�‰�1�a�&˜1˜a˜&Ð!Ó"€AØ7€OÜ	�‰”k¨Ô	9ñ 8Ø—‘˜“×%Ñ%¨¨1 v°°1¨vÐ&6Ó7ˆ÷8ô 	�‰’)šYÐ'Ó(€AÜ
¢iÔ
0€CÜ	�‰”k¨Ô	9ñ 8Ø—‘˜“×%Ñ%¨¨1 v°°1¨vÐ&6Ó7ˆ÷8ä�v˜qÕ!÷8ð 8ú÷
8ð 8ús   Á'C7Â;'DÃ7D ÄDc                  óJ  — g d¢} t        j                  g d¢g d¢g d¢g«      }t        g d¢¬«      }t        |j	                  | «      |«       t        |j
                  g d¢«       t        g d¢¬«      }t        |j                  | «      j                  | «      |«       t        |j
                  g d¢«       t        g d¢¬«      }t        |j	                  | «      t        j                  dgdgdgg|f«      «       t        |j
                  g d¢«       t        | «      } t        g d¢¬«      }t        |j                  | «      j                  | «      |«       d	}t        g d
¢¬«      }t        j                  t        |¬«      5  |j                  | «       d d d «       y # 1 sw Y   y xY w)Nr½   rÊ   rC   ©r-   r   r-   ©r-   rT   rS   rs   )rœ   r-   rT   rS   r   ztThe classes argument contains duplicate classes. Remove these duplicates before passing them to MultiLabelBinarizer.)r-   rT   rS   rT   ri   )r6   r7   r   r   r9   r:   rb   rL   ÚhstackrÈ   r^   rt   ru   )r<   rÐ   rÒ   rx   s       r$   Ú'test_multilabel_binarizer_given_classesrè   ý  sE  € Ú
 €CÜ—H‘Hšiª²IÐ>Ó?€Mä
¢iÔ
0€CÜ�s×(Ñ(¨Ó-¨}Ô=Ü�s—|‘|¢YÔ/ô ¢iÔ
0€CÜ�s—w‘w˜s“|×-Ñ-¨cÓ2°MÔBÜ�s—|‘|¢YÔ/ô ¢lÔ
3€CÜØ×Ñ˜#Ó¤§	¡	¨Q¨C°!°°q°c¨?¸MÐ*JÓ Kôô �s—|‘|¢\Ô2ô ˆs‹)€CÜ
¢iÔ
0€CÜ�s—w‘w˜s“|×-Ñ-¨cÓ2°MÔBð	Gð ô ¢lÔ
3€CÜ	�‰”z¨Ô	1ñ Ø�‰�Œ÷÷ ñ ús   Å>FÆF"c                  ó  — g d¢} t        j                  g d¢g d¢g d¢g«      }t        j                  g d¢g d¢g d¢g«      }t        g d¢¬«      }t        |j	                  | «      |«       g d¢|_        t        |j	                  | «      |«       y )	Nr½   rÊ   rC   rå   rË   ræ   rs   rl   )r6   r7   r   r   r9   rq   )r<   rÐ   Úindicator_mat2rÒ   s       r$   Ú(test_multilabel_binarizer_multiple_callsrë      sn   € Ú
 €CÜ—H‘Hšiª²IÐ>Ó?€Mä—X‘Xšyª)²YÐ?Ó@€Nô ¢iÔ
0€CÜ�s×(Ñ(¨Ó-¨}Ô=â€C„KÜ�s×(Ñ(¨Ó-¨~Õ>r%   c                  ón  — dgdgdgg} t        j                  g d¢g d¢g d¢g«      }t        «       }t        |j	                  | «      |«       t        |j                  |«      | «       t        «       }t        |j                  | «      j                  | «      |«       t        |j                  |«      | «       y )Nr-   r   rS   rD   rC   rE   )r6   r7   r   r   r9   r;   rb   rL   ©r<   rÐ   rÒ   s      r$   Ú.test_multilabel_binarizer_same_length_sequencerî   .  s–   € àˆ3���a�Sˆ/€CÜ—H‘Hšiª²IÐ>Ó?€Mä
Ó
€CÜ�s×(Ñ(¨Ó-¨}Ô=Ü�s×,Ñ,¨]Ó;¸SÔAô Ó
€CÜ�s—w‘w˜s“|×-Ñ-¨cÓ2°MÔBÜ�s×,Ñ,¨]Ó;¸SÕAr%   c                  óR  — t        g d¢«      } g d¢g d¢fg d¢g d¢fg d¢| fg}t        j                  g d¢g d¢g d	¢g«      }|D �]  \  }}t        «       }t        j                  |t        ¬
«      }t        |j                  |«      |«       t        |j                  |«       t        j                  |j                  |«      t        ¬
«      }t        ||«       t        «       }t        |j                  |«      j                  |«      |«       t        |j                  |«       t        j                  |j                  |«      t        ¬
«      }t        ||«       �Œ t        «       }t        j                  t        «      5  |j                  i i ddifg«       d d d «       y # 1 sw Y   y xY w)N)r¾   ©rS   ©rT   ))Ú2Ú3)Ú1)rô   rò   )rô   rò   ró   ))rF   rJ   r"   )r#   rF   r�   ))rð   rñ   )r¾   )r¾   rð   rÊ   rC   rË   r]   r#   rF   )r   r6   r7   r   rž   r   r9   r:   r;   rb   rL   r^   rt   Ú	TypeError)Útuple_classesrÏ   rÐ   r<   rq   rÒ   Úindicator_mat_invs          r$   Ú,test_multilabel_binarizer_non_integer_labelsrø   =  s]  € Ü$Ò%7Ó8€Mâ	)ª?Ð;Ú	)ª?Ð;Ú	.°Ð>ð€Fô
 —H‘Hšiª²IÐ>Ó?€MØó 3‰ˆˆWä!Ó#ˆÜ�h‰h�s¤&Ô)ˆÜ˜3×,Ñ,¨SÓ1°=ÔAÜ˜3Ÿ<™<¨Ô1ÜŸH™H S×%:Ñ%:¸=Ó%IÔQWÔXÐÜÐ,¨cÔ2ô "Ó#ˆÜ˜3Ÿ7™7 3›<×1Ñ1°#Ó6¸ÔFÜ˜3Ÿ<™<¨Ô1ÜŸH™H S×%:Ñ%:¸=Ó%IÔQWÔXÐÜÐ,¨cÖ2ð3ô  Ó
€CÜ	�‰”yÓ	!ñ 4Ø×Ñ˜B " s¨C jÐ!1Ð2Ô3÷4÷ 4ñ 4ús   Å<FÆF&c                  ó„   — dg} t        j                  ddgg«      }t        «       }t        |j	                  | «      |«       y )N©r-   r-   r-   r   r-   )r6   r7   r   r   r9   rí   s      r$   Ú$test_multilabel_binarizer_non_uniquerû   Z  s:   € Øˆ.€CÜ—H‘H˜q !˜f˜XÓ&€MÜ
Ó
€CÜ�s×(Ñ(¨Ó-¨}Õ=r%   c                  ó(  — dg} t        «       }|j                  | «       t        j                  t        «      5  |j                  t        j                  ddgg«      «       d d d «       |j                  t        j                  ddgg«      «       |j                  t        j                  ddgg«      «       |j                  t        j                  ddgg«      «       t        j                  t        «      5  |j                  t        j                  dgg«      «       d d d «       t        j                  t        «      5  |j                  t        j                  g d¢g«      «       d d d «       y # 1 sw Y   �ŒxY w# 1 sw Y   Œ`xY w# 1 sw Y   y xY w)Nrú   r-   rT   r   ©r-   r-   r-   )r   r9   r^   rt   ru   r;   r6   r7   )r<   rÒ   s     r$   Ú,test_multilabel_binarizer_inverse_validationrþ   a  s2  € Øˆ.€CÜ
Ó
€CØ×Ñ�cÔä	�‰”zÓ	"ñ 2Ø×ÑœbŸh™h¨¨A¨ xÓ0Ô1÷2ð ×Ñœ"Ÿ(™( Q¨ F 8Ó,Ô-Ø×Ñœ"Ÿ(™( Q¨ F 8Ó,Ô-Ø×Ñœ"Ÿ(™( Q¨ F 8Ó,Ô-ô 
�‰”zÓ	"ñ /Ø×ÑœbŸh™h¨¨ u›oÔ.÷/ä	�‰”zÓ	"ñ 5Ø×ÑœbŸh™hª	 {Ó3Ô4÷5ð 5÷2ñ 2ú÷/ð /ú÷5ð 5ús#   ¸(E/Ã6'E<Ä>(FÅ/E9Å<FÆFc                  ó`  — t        ddgg d¢¬«      } t        j                  g d¢g d¢g«      }t        | |«       t        ddgg d¢¬«      } t        j                  g d¢g d¢g«      }t        | |«       t        g d	¢g d
¢¬«      } t        j                  g d¢g d¢g d¢g d¢g«      }t        | |«       y )Nr-   rª   )r-   rS   rœ   rª   rs   r5   r2   )r-   rª   rœ   rS   r4   )r   r-   rS   rT   )rT   rS   r   r-   r3   )r   r6   r7   r   )Úoutr>   s     r$   Ú$test_label_binarize_with_class_orderr  t  s‹   € Ü
˜!˜Q˜ªÔ
6€CÜ�x‰xš¢|Ð4Ó5€HÜ�s˜HÔ%ô ˜!˜Q˜ªÔ
6€CÜ�x‰xš¢|Ð4Ó5€HÜ�s˜HÔ%ä
šª|Ô
<€CÜ�x‰xš¢|²\Â<ÐPÓQ€HÜ�s˜HÕ%r%   c           	      óÒ  — dD �]T  }|dk(  s|dk7  r5|r3t        j                  t        «      5  t        | ||||¬«       d d d «       ŒCt        | ||||¬«      }t	        t        |«      |«       t        |«      |k(  sJ ‚t        | «      }|dk(  rt        ||¬«      }nt        |||||z   dz  ¬«      }t	        t        |«      t        | «      «       t        |||¬«      }	|	j                  | «      }t	        t        |«      |«       t        |«      |k(  sJ ‚|	j                  |«      }
t	        t        |
«      t        | «      «       t        |
«      t        | «      k(  r�ŒUJ ‚ y # 1 sw Y   �Œ!xY w)	NrÌ   r   ©rq   rQ   rR   r)   Ú
multiclassrs   g       @)rp   rq   rr   rk   )r^   rt   ru   r   r   r    r   r   r	   r
   r   r9   r;   )ro   rq   rR   rQ   r>   r)   r–   Úy_typeÚinversedr=   Úinverse_outputs              r$   Úcheck_binarized_resultsr  ƒ  su  € Ø&ó /7ˆØ˜ŠN˜i¨1šn±-Ü—‘œzÓ*ñ ÜØØ#Ø'Ø'Ø"/õ÷ð ô #ØØØØØ'ô
ˆ	ô 	œ7 9Ó-¨xÔ8Ü˜	Ó" mÒ3Ð3Ð3ô   Ó"ˆØ�\Ò!Ü3°IÀwÔO‰Hô 6ØØ"ØØ%¨	Ñ1°SÑ8ô	ˆHô 	œ7 8Ó,¬g°a«jÔ9ô Ø¨9ÀMô
ˆð ×$Ñ$ QÓ'ˆ	Üœ7 9Ó-¨xÔ8Ü˜	Ó" mÒ3Ð3Ð3Ø×-Ñ-¨iÓ8ˆÜœ7 >Ó2´G¸A³JÔ?Ü˜Ó'¬8°A«;Ô6Ð6Ð6ñ_/7÷ñ ús   ¬EÅE&	c                  ó@  — g d¢} ddg}d}d}t        j                  ddgddgddgg«      d d …df   j                  d«      }t        | ||||«       g d¢} ddg}d}d}t        j                  ddgddgddgg«      d d …df   j                  d«      }t        | ||||«       y )NrD   r   r-   rS   r©   )r©   r-   rT   )r6   r7   Úreshaper  ©ro   rq   rR   rQ   r>   s        r$   Útest_label_binarize_binaryr  ¶  s¾   € Ú€AØ�!ˆf€GØ€IØ€IÜ�x‰x˜!˜R˜ 2 q '¨A¨r¨7Ð3Ó4²Q¸°TÑ:×BÑBÀ7ÓK€Hä˜A˜w¨	°9¸hÔGò 	€AØ�!ˆf€GØ€IØ€IÜ�x‰x˜!˜Q˜ ! Q ¨!¨Q¨Ð0Ó1²!°Q°$Ñ7×?Ñ?ÀÓH€Hä˜A˜w¨	°9¸hÕGr%   c                  óæ   — g d¢} g d¢}d}d}dt        j                  d«      z  }t        | ||||«       t        j                  t
        «      5  t        | |d|d¬«       d d d «       y # 1 sw Y   y xY w)N©r   r-   rS   rS   r   rT   r©   Tr  )r6   Úeyer  r^   rt   ru   r   r  s        r$   Útest_label_binarize_multiclassr  É  sl   € Ú€AÚ€GØ€IØ€IØ”2—6‘6˜!“9‰}€Hä˜A˜w¨	°9¸hÔGä	�‰”zÓ	"ñ 
ÜØ�w¨"¸	ÐQUõ	
÷
÷ 
ñ 
ús   ÁA'Á'A0Úarr_typec                 ó  — t        j                  g d¢g d¢g d¢g«      }g d¢}d}d}||z  } | |«      }t        |||||«       t        j                  t
        «      5  t        ||d|d¬	«       d d d «       y # 1 sw Y   y xY w)
NrD   rý   rI   r  rS   r   r©   Tr  )r6   r7   r  r^   rt   ru   r   )r  Úy_indrq   rR   rQ   r>   ro   s          r$   Útest_label_binarize_multilabelr  Ø  s€   € ô �H‰H’i¢ªIÐ6Ó7€EÚ€GØ€IØ€IØ˜5Ñ €HÙ�‹€Aä˜A˜w¨	°9¸hÔGä	�‰”zÓ	"ñ 
ÜØ�w¨"¸	ÐQUõ	
÷
÷ 
ñ 
ús   ÁA6Á6A?c                  óŒ  — t        j                  t        «      5  t        ddgddgdd¬«       d d d «       t        j                  t        d¬«      5  t        ddgddg¬	«       d d d «       t        j                  t        d
¬«      5  t        ddggg d¢¬	«       d d d «       y # 1 sw Y   ŒuxY w# 1 sw Y   ŒLxY w# 1 sw Y   y xY w)Nr   rS   r-   ©rq   rR   rQ   zcontinuous target data is not ri   g333333ó?gš™™™™™@rs   zmismatch with the labelsrT   rl   )r^   rt   ru   r   r¿   r%   r$   Ú!test_invalid_input_label_binarizer  ñ  s¬   € Ü	�‰”zÓ	"ñ IÜ˜˜1�v¨¨1 v¸ÀaÕH÷Iä	�‰”zÐ)IÔ	Jñ 3Ü˜˜S�z¨A¨q¨6Õ2÷3ä	�‰”zÐ)CÔ	Dñ 4Ü˜˜A˜�xªÕ3÷4ð 4÷	Ið Iú÷3ð 3ú÷4ð 4ús#   šB"ÁB.ÂB:Â"B+Â.B7Â:CÚyesÚno)ÚbirdÚcatÚdogrI   )r-   r   rS   r-   r  rD   rC   rE   c                 óò  — t        |||«      \  }}t        |«      }t        j                  t        j                  | «      j
                  t        j                  «      xrA t        j                  t        j                  |«      j
                  t        j                  «      }	t        d¬«      5  |j	                  | |¬«      } |	rÓ|s4d}
t        j                  t        |
¬«      5  t        | |d¬«       ddd«       t        | |¬«      }t        j                  |t        ¬	«      }t        |«      d
   j                  |j                  k(  sJ ‚t        |«      t        | «      k(  sJ ‚dt!        |j
                  «      v sJ ‚t#        t%        |t        d¬«      |«       |s5|	s3d}
t        j                  t        |
¬«      5  t        | |¬«       ddd«       ddd«       y# 1 sw Y   ŒæxY w# 1 sw Y   ŒxY w# 1 sw Y   yxY w)z›Test that :func:`label_binarize` works correctly with the array API for binary
    and multi-class inputs for numerical labels and non-sparse outputs.
    Tr‚   r   z4`sparse_output=True` is not supported for array API ri   )ro   rq   r)   Nrs   r]   r   r„   r…   r†   z3`classes` contains unsupported dtype for array API )ro   rq   )r   r   r6   Ú
issubdtyperˆ   rV   Úintegerr   r^   rt   ru   r   r„   r   rŠ   rŒ   r‹   r   r   )ro   rq   r>   r�   rŽ   r�   r‡   r   Úxp_is_numpyÚnumeric_dtyper¯   r–   s               r$   Ú(test_label_binarize_array_api_compliancer"  ú  s™  € ô. & o°{ÀJÓO�J€BˆÜ% bÓ)€KÜ—M‘M¤"§*¡*¨Q£-×"5Ñ"5´r·z±zÓBò ÄrÇ}Á}Ü
�
‰
�7Ó×!Ñ!¤2§:¡:óH€Mô 
¨4Ô	0ñ 5Ø�J‰J�q ˆJÓ(ˆááØL�Ü—]‘]¤:°SÔ9ñ MÜ" Q°ÀtÕL÷Mô ' q°'Ô:ˆIÜ—z‘z (´#Ô6ˆHä  Ó+¨AÑ.×7Ñ7¸2¿;¹;ÒFÐFÐFÜ# IÓ.Ô2BÀ1Ó2EÒEÐEÐEØœC 	§¡Ó0Ñ0Ð0Ð0Üœw y´RÀÔFÈÔQá¡=ØGˆCÜ—‘œz°Ô5ñ 5Ü ¨GÕ4÷5÷+5ð 5÷Mð Mú÷5ð 5ú÷+5ð 5ús=   Â,5G-Ã!GÃ0CG-Æ6G!ÇG-ÇG	ÇG-Ç!G*	Ç&G-Ç-G6rq   c           	      óü  — t        | |«      \  }}|dz  }t        d¬«      5  t        |«      }|j                  |||¬«      }t	        ||dd¬«      }	|j
                  g}
d|j                  vr&|
|j                  |j                  |j                  gz  }
|
D ]R  }|j                  |||¬«      }t	        ||dd¬«      }t        t        ||¬	«      t        |	|¬	«      t        |«      ¬
«       ŒT 	 ddd«       y# 1 sw Y   yxY w)zÄEnsure label_binarize does not overflow when y has unsigned integer dtype.

    In particular, verify that label_binarize does not wrap -1 to the maximum value
    of unsigned integer dtypes.
    é
   Tr‚   )rV   r   r-   r©   r  Útorch)r‡   )ÚatolN)r   r   r   rˆ   r   Úuint8rŠ   Úuint16Úuint32Úuint64r   r   r   )r�   rŽ   r�   rq   r‡   r   ro   Úsigned_dtypeÚy_signedÚdesiredÚuint_dtypesÚ
uint_dtypeÚy_uintÚactuals                 r$   Ú-test_label_binarize_unsigned_integer_overflowr2  0  sù   € ô & o°{ÓC�J€BˆØ�"‰€Aä	¨4Ô	0ñ ä% bÓ)ˆØ—:‘:˜a |¸F�:ÓCˆÜ  °7ÀaÐSUÔVˆð —x‘x�jˆð ˜"Ÿ+™+Ñ%Ø˜BŸI™I r§y¡y°"·)±)Ð<Ñ<ˆKà%ò 	ˆJØ—Z‘Z ¨¸F�ZÓCˆFÜ# F°GÀqÐTVÔWˆFäÜ! &¨RÔ0Ü! '¨bÔ1Ü# JÓ/öñ		÷÷ ñ ús   ¡CC2Ã2C;c                 ó¢   — t         | g d¢g d¢g d¢g«      t        j                  d«      «      }t        |t        j                  g d¢«      «       y )NrD   )r©   r   r©   rI   rT   rË   )r	   r6   Úaranger   r7   )r|   r?   s     r$   Ú test_inverse_binarize_multiclassr5  Y  s:   € ä
&Ù’y¢+ªyÐ9Ó:¼B¿I¹IÀa»Ló€Cô �sœBŸH™H¢YÓ/Õ0r%   c                  ó¸   — t        «       } | j                  dddt        j                  g«       | j	                  t        j                  g«      }t        |dg«       y)z]Check that label encoder encodes nans in transform.

    Non-regression test for #22628.
    r#   rF   rS   N)r   rb   r6   ÚnanrL   r   )r£   Úy_transs     r$   Útest_nan_label_encoderr9  a  sD   € ô
 
‹€BØ‡F�FˆC��cœ2Ÿ6™6Ð"Ô#à�l‰lœBŸF™F˜8Ó$€GÜ�w  Õ$r%   Úencoderc                 ó†   — t        | d«      rJ ‚| j                  g d¢¬«      }| j                  g d¢«      }t        ||«       y)zxCheck that label encoders do not define set_output and work with y as a kwarg.

    Non-regression test for #26854.
    Ú
set_outputr�   )ro   N)r!   r9   r   )r:  Úy_encoded_with_kwargÚy_encoded_positionals      r$   Ú*test_label_encoders_do_not_have_set_outputr?  m  sE   € ô �w Ô-Ð-Ð-Ø"×0Ñ0²?Ð0ÓCÐØ"×0Ñ0²ÓAÐÜÐ+Ð-AÕBr%   ro   r§   )rT   r¨   r€   r¨   r€   rT   c                 óà  — t        |||«      \  }}|j                  | |¬«      }t        d¬«      5  t        «       }t        «       }|j	                  |«      }|j                  |«      }	|j                  |	«      }
|j	                  | «      }|j                  | «      }t        |	«      d   j                  |j                  k(  sJ ‚t        |
«      d   j                  |j                  k(  sJ ‚t        |j                  «      d   j                  |j                  k(  sJ ‚t        t        |	t        d¬«      |«       t        t        |
t        d¬«      | «       t        t        |j                  t        d¬«      |j                  «       t        «       }t        «       }|j                  |«      }	|j                  | «      }t        |	«      d   j                  |j                  k(  sJ ‚t        |j                  «      d   j                  |j                  k(  sJ ‚t        t        |	t        d¬«      |«       t        t        |j                  t        d¬«      |j                  «       d d d «       y # 1 sw Y   y xY w)Nr   Tr‚   r   r…   r†   )r   rˆ   r   r   rb   rL   r;   r   rŠ   r:   r   r   r6   r9   )ro   r�   rŽ   r�   r‡   r   Úxp_yÚxp_labelÚnp_labelÚxp_transformedÚxp_inv_transformedÚnp_transformeds               r$   Ú'test_label_encoder_array_api_compliancerG  {  s  € ô & o°{ÀJÓO�J€BˆØ�:‰:�a ˆ:Ó'€DÜ	¨4Ô	0ñ 
Ü“>ˆÜ“>ˆØ—<‘< Ó%ˆØ!×+Ñ+¨DÓ1ˆØ%×7Ñ7¸ÓGÐØ—<‘< “?ˆØ!×+Ñ+¨AÓ.ˆÜ˜^Ó,¨QÑ/×8Ñ8¸B¿K¹KÒGÐGÐGÜÐ/Ó0°Ñ3×<Ñ<ÀÇÁÒKÐKÐKÜ˜X×.Ñ.Ó/°Ñ2×;Ñ;¸r¿{¹{ÒJÐJÐJÜœ7 >´bÀÔGÈÔXÜœ7Ð#5¼"ÀUÔKÈQÔOÜÜ�H×%Ñ%¬"°UÔ;¸X×=NÑ=Nô	
ô  “>ˆÜ“>ˆØ!×/Ñ/°Ó5ˆØ!×/Ñ/°Ó2ˆÜ˜^Ó,¨QÑ/×8Ñ8¸B¿K¹KÒGÐGÐGÜ˜X×.Ñ.Ó/°Ñ2×;Ñ;¸r¿{¹{ÒJÐJÐJÜœ7 >´bÀÔGÈÔXÜÜ�H×%Ñ%¬"°UÔ;¸X×=NÑ=Nô	
÷1
÷ 
ñ 
ús   °H+I$É$I-)QÚnumpyr6   r^   Úscipy.sparser   Úsklearnr   r   Úsklearn.preprocessing._labelr   r   r   r	   r
   r   Úsklearn.utils._array_apir   r   r   r   r   r   r   r   rŒ   Úsklearn.utils._testingr   r   r   Úsklearn.utils.fixesr   r   r   r   r   Úsklearn.utils.multiclassr   Úsklearn.utils.validationr   Ú	load_irisÚirisr    rA   rM   rU   ÚmarkÚparametrizerf   r{   r   rš   r7   rž   r¥   r«   r°   rµ   r¹   rÓ   rÕ   rÚ   rÝ   rã   rè   rë   rî   rø   rû   rþ   r  r  r  r  r  r  r"  r2  r5  r9  r?  rG  r¿   r%   r$   ú<module>rU     s�  ðÛ Û Ý !ç ,÷÷ ÷÷ ñ õ÷ñ ÷
õ õ 4Ý 5à€x×ÑÓ€òò&7òR&ò7ð8 ‡�×Ñ˜Ò"AÓBØ‡�×Ñ˜¨$°¨Ó7ñ*ó 8ó Cð*ò$7Fðt ‡�×Ñ˜¨.Ó9ñ
ó :ð
ð, ‡�×ÑØâ	˜˜1�v   a S¨1¨#°¨sÐ3Ð4âÚÚš<ª²|ÐDð	
ðó
ð ‡�×ÑØ.Ù-Ó/óñ=
ó	ó
ð=
ð@ ‡�×ÑØð ˆB�H‰H’_¨GÔ4ØˆB�H‰H’Y gÔ.ØˆB�H‰H�a�S Ô(ð	
ð ˆB�H‰HÒ.°fÔ=ØˆB�H‰H’_¨FÔ3ØˆB�H‰H�c�U &Ô)ð	
ð ˆB�H‰HÒ.Ó/ØˆB�H‰H’_Ó%ØˆB�H‰H�c�U‹Oð	
ðò" 	#ð' ó ñ*ó+ð*ò 	ð ‡�×Ñ˜ 5¨(Ð"3Ó4ñó 5ðò!ð. ‡�×ÑØàˆ�‰’¨Ô0Øˆ�‰Ò*°&Ô9Øˆ�‰Ò*Ó+ðò
 	#ð ó ñ:óð:ò"9ðJ ‡�×Ñ˜¨.Ó9ñ
ó :ð
ò5ò20ò"ò òF?òBò4ò:>ò5ò&&ò07òfHò&
ð ‡�×ÑØØ‡X�X€JØñàñð ñð ñ	ð
 ñóñ
óð
ò 4ð ‡�×ÑØâ	˜˜t�}¨ s¨Q¨C°!°°q°cÐ&:Ð;âÚ"Úš	¢9ªiÐ8ð	
ò
 
˜˜1�v   a S¨1¨#°¨sÐ3Ð4Ú	’y¢9ªiºÂIÐ"NÐOð	óð ‡�×ÑØ.Ù-Ó/óñ"5ó	óð""5ðJ ‡�×ÑØ.Ù-Ó/óð ‡�×Ñ˜ a¨ VªYÐ$7Ó8ñ!ó 9ó	ð
!ðH ‡�×Ñ˜¨.Ó9ñ1ó :ð1ò	%ð ‡�×ÑØ‘“¡Ó 0Ñ2EÓ2GÐHóñCóðCð ‡�×ÑØ.Ù-Ó/óð ‡�×ÑØàˆ�‰’Ó!Øˆ�‰Ò$Ó%Øˆ�‰Ò#Ó$ðóñ
óó	ñ
r%   