Ë
    uwj�x  ã                   óP	  — 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 d dlmZmZ d dlmZmZmZmZmZ d dlm Z  d d	l!m"Z"  ejF                  «       Z$d
„ Z%d„ Z&d„ Z'd„ Z(ejR                  jU                  dg d¢«      ejR                  jU                  dddg«      d„ «       «       Z+d„ Z,ejR                  jU                  de«      d„ «       Z-ejR                  jU                  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jR                  jU                  d  e«       «      d!„ «       «       Z.ejR                  jU                  d" ej^                  g d#¢d$¬%«       ej^                  g d&¢d$¬%«       ej^                  d'gd$¬%«      f ej^                  g d(¢e0¬%«       ej^                  g d)¢e0¬%«       ej^                  d*ge0¬%«      f ej^                  g d(¢«       ej^                  g d)¢«       ej^                  d*g«      fgg d+¢¬,«      d-„ «       Z1d.„ Z2ejR                  jU                  dd/d0g«      d1„ «       Z3d2„ Z4ejR                  jU                  d3 ej^                  g d#¢d$¬%«       ej^                  g d(¢e0¬%«       ej^                  g d(¢«      gg d+¢¬,«      d4„ «       Z5d5„ Z6ejR                  jU                  de«      d6„ «       Z7d7„ Z8d8„ Z9d9„ Z:d:„ Z;d;„ Z<d<„ Z=d=„ Z>d>„ Z?d?„ Z@d@„ ZAdA„ ZBdB„ ZCdC„ ZDejR                  jU                  dDej^                  gez   ez   ez   ez   ez   «      dE„ «       ZEdF„ ZFejR                  jU                  dg d¢dGdHgd gd gd gd gggg d¢g dI¢g dJ¢g dJ¢g dJ¢g dJ¢ggg d¢d dgdgd gd gdgggg dK¢g dL¢g dM¢g dN¢g dO¢g dM¢ggg«      ejR                  jU                  d  e«       «      dP„ «       «       ZGejR                  jU                  de«      dQ„ «       ZHdR„ ZIejR                  jU                  dS e
«        e	«        e«       g«      dT„ «       ZJejR                  jU                  dU e«       e¬,«      ejR                  jU                  dV ej^                  g d#¢«       ej^                  g dW¢«       ej^                  g dX¢«      g«      dY„ «       «       ZKy)Zé    N)Úissparse)Úconfig_contextÚdatasets)ÚLabelBinarizerÚLabelEncoderÚMultiLabelBinarizerÚ_inverse_binarize_multiclassÚ_inverse_binarize_thresholdingÚlabel_binarize)Ú_convert_to_numpyÚ_get_namespace_device_dtype_idsÚ_is_numpy_namespaceÚdeviceÚget_namespaceÚ)yield_namespace_device_dtype_combinations)Ú_array_api_for_testsÚ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    úk/var/www/html/newmanjeet/manjet/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   )r-   r,   r+   r*   )
r   ÚnpÚarrayÚTÚfit_transformr   Úclasses_Úinverse_transformr   r   )ÚinpÚlbÚexpectedÚgotÚ	to_inverts        r    Útest_label_binarizerr=   -   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   rB   ÚcrC   rD   Úf)r   r2   r3   r5   r   Ú	transform)r9   r:   r;   s      r    Ú"test_label_binarizer_unseen_labelsrI   V   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(   )rK   r   r   rK   é   )é   rO   r)   rO   r   )rK   rK   rK   rO   )rK   rK   rO   rK   )rK   rO   rK   rK   )rO   rK   rK   rK   )r   r2   r3   r4   r5   r   r7   )r9   r8   r:   r;   s       r    Ú'test_label_binarizer_set_label_encodingrQ   d   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)   ©rR   r)   r   N)ÚpytestÚimportorskipÚSeriesÚuniquer   ÚfitrH   r   )rR   rV   ÚpdÚy_truer9   Úy_outs         r    Ú$test_label_binarizer_pandas_nullablerb   €   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&   )©rO   rP   )r   )r   rO   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.rO   r)   rL   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©rM   rN   r%   rP   )r   r)   rP   z?You appear to be using a legacy multi-label data representationz!output_type='binary', but y.shape©r)   rO   rP   )rO   r)   rP   Úbinaryr   ©ÚyÚoutput_typeÚclassesÚ	thresholdz@Multioutput target data is not supported with label binarization©rm   )r2   r3   r   r^   rZ   ÚraisesÚ
ValueErrorrH   r7   r5   r
   r   )Ú	one_classr9   Úmulti_labelÚerr_msgÚinput_labelsÚy_seq_of_seqss         r    Útest_label_binarizer_errorsrw   ”   s‰  € ä—‘šÓ&€IÜ	Ó	×	Ñ	˜iÓ	(€Bâ(€KØP€GÜ	�‰”z¨Ö	1Ø
�‰�[Ô!÷ 
2ô 
Ó	€BØ>€GÜ	�‰”z¨Ö	1Ø
�‰�RÔ÷ 
2ä	�‰”z¨Ö	1Ø
×Ñ˜RÔ ÷ 
2ò  €LØC€GÜ	 !¨qÔ	1€BÜ	�‰”z¨Ö	1Ø
�‰ˆ|Ô÷ 
2àC€GÜ	 !¨qÔ	1€BÜ	�‰”z¨Ö	1Ø
�‰ˆ|Ô÷ 
2ð	5ð ô 
 !¨qÀÔ	E€BÜ	�‰”z¨Ö	1Ø
�‰ˆ|Ô÷ 
2ð ˜!˜Q˜ ! ¢i°!°Ð5€MØO€GÜ	�‰”z¨Ö	1ÜÓ×&Ñ& }Ô5÷ 
2ð 2€GÜ	�‰”z¨Ö	1Ü&Ü�h‰hš	¢9Ð-Ó.Ø ÚØõ		
÷ 
2ð Q€GÜ	�‰”z¨Ö	1ÜÓ×ÑœRŸX™X¨¨1 v°°1¨vÐ&6Ó7Ô8÷ 
2ä	�‰”z¨Ö	1Ü”r—x‘x ! Q ¨!¨Q¨Ð 0Ó1º9ÕE÷ 
2Ð	1÷_ 
2Ñ	1ú÷
 
2Ñ	1úç	1Ñ	1ú÷ 
2Ñ	1ú÷ 
2Ñ	1ú÷ 
2Ñ	1ú÷ 
2Ñ	1ú÷
 
2Ñ	1ú÷ 
2Ð	1úç	1Ð	1ú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 supportedre   r)   rO   Úfoor   rj   zAThe number of class is not equal to the number of dimension of y.rh   )rZ   rp   rq   r
   )rx   rt   s     r    Ú"test_label_binarizer_sparse_errorsr{   Î   sœ   € ð ,€GÜ	�‰”z¨Ö	1Ü&Ù˜a ˜V a¨ VÐ,Ó-ØØ˜�FØõ		
÷ 
2ð R€GÜ	�‰”z¨Ö	1Ü&Ù˜a ˜V a¨ VÐ,Ó-ØÚØõ		
÷ 
2Ð	1÷ 
2Ð	1ú÷ 
2Ð	1ús   žBÁ!BÂBÂBzy, classes, expected)r)   r   r   r)   r)   )r)   r   rO   é	   )r   r)   rO   r|   r0   r1   r/   r.   z$array_namespace, device_, 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        j                  |«      «       |j*                  }t        |«      d	   j                  |j                  k(  sJ ‚t%        |«      t%        | «      k(  sJ ‚d
t!        |j"                  «      v sJ ‚t'        t)        ||¬«      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dd«       y# 1 sw Y   �Œ—xY w# 1 sw Y   �ŒTx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_dispatch©r   z3`sparse_output=True` is not supported for array APIre   r$   NzD`LabelBinarizer` was fitted on a sparse matrix, and therefore cannotr   Úint©Úxp)r   r2   Úasarrayr   r   rZ   rp   rq   r   r^   rH   Úsparse_input_r7   r5   r   Ú__name__ÚstrrR   r   r   r   r6   )rk   rm   r:   Úarray_namespaceÚdevice_Ú
dtype_namerƒ   Ú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¨wÓ	7€Bä�:‰:�a‹=€Dä	¨4Ö	0Ø�J‰J�q ˆJÓ)ˆô
 # 2Ô&Ø UÐä—‘œzÐ1BÖCÜ¨TÔ2×6Ñ6°qÔ9÷ Dô #°Ô6×:Ñ:¸4Ó@ˆEÜ—‘œzÐ1BÖCØ—‘ Ô"÷ Dô 'Ó(×,Ñ,¨TÓ2ˆIØ&*ˆIÔ#àVð ô —‘œzÐ1AÖBØ×+Ñ+¨B¯J©J°xÈ¨JÓ,PÔQ÷ Cô Ó ˆà×'Ñ'¨Ó*ˆ	Ü˜YÓ'¨Ñ*×3Ñ3°r·{±{ÒBÐBÐBØœ˜IŸO™OÓ,Ñ,Ð,Ð,Ü�iÓ ¤F¨1£IÒ-Ð-Ð-ÜÔ,¨Y¸2Ô>ÄÇ
Á
È8Ó@TÔUàŸ™ˆÜ˜^Ó,¨QÑ/×8Ñ8¸B¿K¹KÒGÐGÐGÜ�nÓ%¬°«Ò2Ð2Ð2Øœ˜N×0Ñ0Ó1Ñ1Ð1Ð1ÜÜ˜n°Ô4´b·j±jÀÓ6Iô	
ð —j‘j °'�jÓ:ˆØ!×3Ñ3°KÓ@ÐÜÐ.Ó/°Ñ2×;Ñ;¸r¿{¹{ÒJÐJÐJØœÐ-×3Ñ3Ó4Ñ4Ð4Ð4ÜÐ'Ó(¬F°1«IÒ5Ð5Ð5ÜÜÐ/°BÔ7Ô9JÈ1ÐQSÔ9Tô	
÷] 
1Ð	0÷ DÑCú÷ DÑCú÷ CÑBú÷+ 
1Ð	0úsU   ®<MÁ*LÂ>MÃL(ÃAMÄ#L5Ä>GMÌL%	Ì MÌ(L2	Ì-MÌ5L?	Ì:MÍMzvalues, classes, unknown)rO   r)   rP   r)   rP   Úint64rY   rh   é   )rB   r   rF   r   rF   ©r   rB   rF   rC   )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   rO   r   rO   zunseen labelsre   )
r   r^   r   r6   rH   r7   r5   rZ   rp   rq   )Úvaluesrm   ÚunknownÚleÚrets        r    Útest_label_encoderr    0  s“   € ô0 
‹€BØ‡F�Fˆ6„NÜ�r—{‘{ GÔ,Ü�r—|‘| FÓ+ª_Ô=Ü�r×+Ñ+ªOÓ<¸fÔEÜ	‹€BØ
×
Ñ
˜6Ó
"€CÜ�sšOÔ,ä	�‰”z¨Ö	9Ø
�‰�WÔ÷ 
:×	9Ñ	9ú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)   rO   rP   rP   r—   r   r   r   é   )	r   r^   r   r6   rH   r7   rZ   rp   rq   )rž   s    r    Ú test_label_encoder_negative_intsr¦   U  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ÚorangerY   zshould be a 1d arrayre   )r   r^   r2   r3   rZ   rp   rq   rH   )rR   rž   Úmsgs      r    Ú test_label_encoder_str_bad_shaper«   a  sP   € ä	‹€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)   rO   rP   r¤   r)   z!contains previously unseen labelsre   rK   )rK   éýÿÿÿéüÿÿÿz should be a 1d array.+shape \(\)Ú )r   rZ   rp   rq   rH   r7   r^   )rž   rª   s     r    Útest_label_encoder_errorsr°   j  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   r^   rH   r   r2   r3   r7   )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©rd   ©r)   )r)   rO   © rº   r!   r    Ú<lambda>z9test_sparse_output_multilabel_binarizer.<locals>.<lambda>˜  ó   € Ó&r!   c                  ó   — ddhdhddhfS ©NrO   rP   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 ©Nrd   r¹   r)   rO   ©Úiterrº   r!   r    r»   z9test_sparse_output_multilabel_binarizer.<locals>.<lambda>š  ó   € ””d˜6“l¤D¨£J°°A°Ð7Ô8r!   ©r   r)   r)   r?   ©r)   r)   r   r   ©TFr$   rh   )r2   r3   r   r5   r   ÚindicesrR   Úindptrr   r   r6   r7   r^   rH   )ÚinputsÚindicator_matÚinverser%   r8   Úmlbr;   s          r    Ú'test_sparse_output_multilabel_binarizerrÎ   •  sv  € ñ 	'Ù%Ù8ð€Fô
 —H‘Hšiª²IÐ>Ó?€Màˆf�Q‰i‹k€GÜ&ˆÜˆ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ò/ ñ 'r!   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)
Nrd   r¹   r)   rO   Fr$   rÅ   )rO   r   r   rÆ   )	rÃ   r   r^   rZ   rp   rq   r7   r2   r3   )rx   r8   rÍ   s      r    Ú.test_sparse_output_multilabel_binarizer_errorsrÐ   º  sr   € ä
”�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Å   r?   rÆ   r   rh   )	r2   r3   r   r5   r   r6   r7   r^   rH   )rÊ   rË   rÌ   r8   rÍ   r;   s         r    Útest_multilabel_binarizerrÕ   Å  sä   € ñ 	'Ù%Ù8ð€Fô
 —H‘Hšiª²IÐ>Ó?€MØˆf�Q‰i‹k€GÛˆä!Ó#ˆØ×Ñ¡£Ó&ˆÜ˜=¨#Ô.Üš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ñ r!   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)   rO   r   )r   r2   r3   r   r5   )rÍ   rk   Ú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)   rO   r   zunknown class.* will be ignoredre   r—   r?   r@   rh   ro   )	r   r2   r3   rZ   ÚwarnsÚUserWarningr^   rH   r   )rÍ   rk   r×   Úwarning_messageÚmatrixs        r    Ú'test_multilabel_binarizer_unknown_classrÞ   å  sà   € Ü
Ó
€CØ
ˆQˆˆ€AÜ
�‰�1�a�&˜1˜a˜&Ð!Ó"€AØ7€OÜ	�‰”k¨Ö	9Ø—‘˜“×%Ñ%¨¨1 v°°1¨vÐ&6Ó7ˆ÷ 
:ô 	�‰’)šYÐ'Ó(€AÜ
¢iÔ
0€CÜ	�‰”k¨Ö	9Ø—‘˜“×%Ñ%¨¨1 v°°1¨vÐ&6Ó7ˆ÷ 
:ä�v˜qÕ!÷ 
:Ð	9ú÷
 
:Ð	9ú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Å   r?   ©r)   r   r)   ©r)   rP   rO   ro   )r—   r)   rP   rO   r   ztThe classes argument contains duplicate classes. Remove these duplicates before passing them to MultiLabelBinarizer.)r)   rP   rO   rP   re   )r2   r3   r   r   r5   r6   r^   rH   ÚhstackrÃ   rZ   rp   rq   )r8   rË   rÍ   rt   s       r    Ú'test_multilabel_binarizer_given_classesrã   ô  s<  € Ú
 €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Ø�‰�Œ÷ 
2×	1Ñ	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Å   r?   rà   rÆ   rá   ro   rh   )r2   r3   r   r   r5   rm   )r8   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   rO   r@   r?   rA   )r2   r3   r   r   r5   r7   r^   rH   ©r8   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¹   ©rO   ©rP   ))Ú2Ú3)Ú1)rï   rí   )rï   rí   rî   ))rB   rF   r   )r   rB   r˜   ))rë   rì   )r¹   )r¹   rë   rÅ   r?   rÆ   rY   r   rB   )r   r2   r3   r   r™   r   r5   r6   r7   r^   rH   rZ   rp   Ú	TypeError)Útuple_classesrÊ   rË   r8   rm   rÍ   Úindicator_mat_invs          r    Ú,test_multilabel_binarizer_non_integer_labelsró   4  sO  € Ü$Ò%7Ó8€Mâ	)ª?Ð;Ú	)ª?Ð;Ú	.°Ð>ð€Fô
 —H‘Hšiª²IÐ>Ó?€MÜ‰ˆˆ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ð ô  Ó
€CÜ	�‰”yÕ	!Ø×Ñ˜B " s¨C jÐ!1Ð2Ô3÷ 
"×	!Ñ	!ús   Å<FÆF&c                  ó„   — dg} t        j                  ddgg«      }t        «       }t        |j	                  | «      |«       y )N©r)   r)   r)   r   r)   )r2   r3   r   r   r5   rè   s      r    Ú$test_multilabel_binarizer_non_uniquerö   Q  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)   rP   r   ©r)   r)   r)   )r   r5   rZ   rp   rq   r7   r2   r3   )r8   rÍ   s     r    Ú,test_multilabel_binarizer_inverse_validationrù   X  s  € Øˆ.€CÜ
Ó
€CØ×Ñ�cÔä	�‰”zÕ	"Ø×ÑœbŸh™h¨¨A¨ xÓ0Ô1÷ 
#ð ×Ñœ"Ÿ(™( Q¨ F 8Ó,Ô-Ø×Ñœ"Ÿ(™( Q¨ F 8Ó,Ô-Ø×Ñœ"Ÿ(™( Q¨ F 8Ó,Ô-ô 
�‰”zÕ	"Ø×ÑœbŸh™h¨¨ u›oÔ.÷ 
#ä	�‰”zÕ	"Ø×ÑœbŸh™hª	 {Ó3Ô4÷ 
#Ð	"÷ 
#Ñ	"ú÷ 
#Ð	"úç	"Ð	"ú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)   rO   r—   r¥   ro   r1   r.   )r)   r¥   r—   rO   r0   )r   r)   rO   rP   )rP   rO   r   r)   r/   )r   r2   r3   r   )Úoutr:   s     r    Ú$test_label_binarize_with_class_orderrü   k  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   ©rm   rM   rN   r%   Ú
multiclassro   g       @)rl   rm   rn   rg   )rZ   rp   rq   r   r   r   r   r   r	   r
   r   r5   r7   )rk   rm   rN   rM   r:   r%   r‘   Úy_typeÚinversedr9   Úinverse_outputs              r    Úcheck_binarized_resultsr  z  sg  € Ü&ˆØ˜Š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ñ_ 'ç*Ñ*ú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 )Nr@   r   r)   rO   r¤   )r¤   r)   rP   )r2   r3   Úreshaper  ©rk   rm   rN   rM   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)   rO   rO   r   rP   r¤   Trþ   )r2   Úeyer  rZ   rp   rq   r   r  s        r    Útest_label_binarize_multiclassr  À  sc   € Ú€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)
Nr@   rø   rE   r	  rO   r   r¤   Trþ   )r2   r3   r  rZ   rp   rq   r   )r  Úy_indrm   rN   rM   r:   rk   s          r    Útest_label_binarize_multilabelr  Ï  sw   € ô �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   rO   r)   )rm   rN   rM   zcontinuous target data is not re   g333333ó?gš™™™™™@ro   zmismatch with the labelsrP   rh   )rZ   rp   rq   r   rº   r!   r    Ú!test_invalid_input_label_binarizer  è  s�   € Ü	�‰”zÕ	"Ü˜˜1�v¨¨1 v¸ÀaÕH÷ 
#ä	�‰”zÐ)IÖ	JÜ˜˜S�z¨A¨q¨6Õ2÷ 
Kä	�‰”zÐ)CÖ	DÜ˜˜A˜�xªÕ3÷ 
EÐ	D÷	 
#Ð	"úç	JÐ	Júç	DÐ	Dús#   šB"ÁB.ÂB:Â"B+Â.B7Â:CÚyesÚno)ÚbirdÚcatÚdogrE   )r)   r   rO   r)   r	  r@   r?   rA   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%        |
|¬«      |«       |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 re   )rk   rm   r%   Nro   rY   r   r�   r‚   z3`classes` contains unsupported dtype for array API )rk   rm   )r   r   r2   Ú
issubdtyper„   rR   Úintegerr   rZ   rp   rq   r   r�   r   r†   r   r‡   r   r   )rk   rm   r:   rˆ   r‰   rŠ   rƒ   Úxp_is_numpyÚnumeric_dtyperª   r‘   s              r    Ú(test_label_binarize_array_api_compliancer  ñ  su  € ô, 
˜o¨wÓ	7€BÜ% bÓ)€KÜ—M‘M¤"§*¡*¨Q£-×"5Ñ"5´r·z±zÓBò ÄrÇ}Á}Ü
�
‰
�7Ó×!Ñ!¤2§:¡:óH€Mô 
¨4Ö	0Ø�J‰J�q ˆJÓ)ˆááØL�Ü—]‘]¤:°SÖ9Ü" Q°ÀtÕL÷ :ô ' q°'Ô:ˆIÜ—z‘z (´#Ô6ˆHä  Ó+¨AÑ.×7Ñ7¸2¿;¹;ÒFÐFÐFÜ˜)Ó$¬¨q«	Ò1Ð1Ð1ØœC 	§¡Ó0Ñ0Ð0Ð0ÜÔ0°¸rÔBÀHÔMá¡=ØGˆCÜ—‘œz°Ö5Ü ¨GÕ4÷ 6÷+ 
1Ð	0÷ :Ð9ú÷ 6Ð5ú÷+ 
1Ð	0ús=   Â(5G$ÃGÃ,CG$Æ-GÆ;G$ÇG	ÇG$ÇG!	ÇG$Ç$G-c                 ó¢   — t         | g d¢g d¢g d¢g«      t        j                  d«      «      }t        |t        j                  g d¢«      «       y )Nr@   )r¤   r   r¤   rE   rP   rÆ   )r	   r2   Úaranger   r3   )rx   r;   s     r    Ú test_inverse_binarize_multiclassr  &  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   rB   rO   N)r   r^   r2   ÚnanrH   r   )rž   Úy_transs     r    Útest_nan_label_encoderr#  .  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˜   )rk   N)r   r5   r   )r$  Úy_encoded_with_kwargÚy_encoded_positionals      r    Ú*test_label_encoders_do_not_have_set_outputr)  :  sE   € ô �w Ô-Ð-Ð-Ø"×0Ñ0²?Ð0ÓCÐØ"×0Ñ0²ÓAÐÜÐ+Ð-AÕBr!   zarray_namespace, device, dtyperk   r¢   )rP   r£   r|   r£   r|   rP   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        t        |	|«      | «       t        t        |j                  |«      |j                  «       t        «       }t        «       }|j                  |«      }|j                  | «      }
t        |«      d   j                  |j                  k(  sJ ‚t        |j                  «      d   j                  |j                  k(  sJ ‚t        t        ||«      |
«       t        t        |j                  |«      |j                  «       d d d «       y # 1 sw Y   y xY w)Nr€   Tr~   r   )r   r„   r   r   r^   rH   r7   r   r†   r6   r   r   r5   )rk   rˆ   r   rR   rƒ   Úxp_yÚxp_labelÚnp_labelÚxp_transformedÚxp_inv_transformedÚnp_transformeds              r    Ú'test_label_encoder_array_api_compliancer1  H  sè  € ô 
˜o¨vÓ	6€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ÜÔ,¨^¸RÓ@À.ÔQÜÔ,Ð-?ÀÓDÀaÔHÜÔ,¨X×->Ñ->ÀÓCÀX×EVÑEVÔWä“>ˆÜ“>ˆØ!×/Ñ/°Ó5ˆØ!×/Ñ/°Ó2ˆÜ˜^Ó,¨QÑ/×8Ñ8¸B¿K¹KÒGÐGÐGÜ˜X×.Ñ.Ó/°Ñ2×;Ñ;¸r¿{¹{ÒJÐJÐJÜÔ,¨^¸RÓ@À.ÔQÜÔ,¨X×->Ñ->ÀÓCÀX×EVÑEVÔW÷- 
1×	0Ñ	0ús   ¬HIÉI)LÚnumpyr2   rZ   Úscipy.sparser   Úsklearnr   r   Úsklearn.preprocessing._labelr   r   r   r	   r
   r   Úsklearn.utils._array_apir   r   r   r   r   r   Úsklearn.utils._testingr   r   Úsklearn.utils.fixesr   r   r   r   r   Úsklearn.utils.multiclassr   Úsklearn.utils.validationr   Ú	load_irisÚirisr   r=   rI   rQ   ÚmarkÚparametrizerb   rw   r{   r•   r3   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)  r1  rº   r!   r    Ú<module>r?     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ð	
ðó
ð ‡�×ÑØ*Ñ,UÓ,Wóñ:
óó
ð:
ðz ‡�×ÑØð ˆ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ð	óð ‡�×ÑØ*Ñ,UÓ,Wóñ"5óóð "5ðJ ‡�×Ñ˜¨.Ó9ñ1ó :ð1ò	%ð ‡�×ÑØ‘“¡Ó 0Ñ2EÓ2GÐHóñCóðCð ‡�×ÑØ$Ù-Ó/Ø'ð ó ð
 ‡�×ÑØàˆ�‰’Ó!Øˆ�‰Ò$Ó%Øˆ�‰Ò#Ó$ðóñXóóñXr!   