
    -i)d                        S SK rS SKrS SKJr  S SKJrJr  S SKJ	r	J
r
JrJrJrJr  S SKJrJrJrJr  S SKJrJr  S SKJrJrJrJrJr  S SKJr  S S	KJ r   \RB                  " 5       r"S
 r#S r$S r%S r&\RN                  RQ                  S/ SQ5      \RN                  RQ                  SSS/5      S 5       5       r)S r*\RN                  RQ                  S\5      S 5       r+\RN                  RQ                  S\RX                  " / SQSS9\RX                  " / SQSS9\RX                  " S/SS94\RX                  " / SQ\-S9\RX                  " / SQ\-S9\RX                  " S/\-S94\RX                  " / SQ5      \RX                  " / SQ5      \RX                  " S/5      4// S QS!9S" 5       r.S# r/\RN                  RQ                  SS$S%/5      S& 5       r0S' r1\RN                  RQ                  S(\RX                  " / SQSS9\RX                  " / SQ\-S9\RX                  " / SQ5      // S QS!9S) 5       r2S* r3\RN                  RQ                  S\5      S+ 5       r4S, r5S- r6S. r7S/ r8S0 r9S1 r:S2 r;S3 r<S4 r=S5 r>S6 r?S7 r@S8 rA\RN                  RQ                  S9\RX                  /\-   \-   \-   \-   \-   5      S: 5       rBS; rC\RN                  RQ                  S\5      S< 5       rDS= rE\RN                  RQ                  S>\
" 5       \	" 5       \" 5       /5      S? 5       rF\RN                  RQ                  S@\" 5       \S!9\RN                  RQ                  SA\RX                  " / SQ5      \RX                  " / SBQ5      \RX                  " / SCQ5      /5      SD 5       5       rGg)E    N)issparse)config_contextdatasets)LabelBinarizerLabelEncoderMultiLabelBinarizer_inverse_binarize_multiclass_inverse_binarize_thresholdinglabel_binarize)_convert_to_numpy_get_namespace_device_dtype_ids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                 H    [        U S5      (       a  U R                  5       n U $ )Ntoarray)hasattrr   as    Y/var/www/html/venv/lib/python3.13/site-packages/sklearn/preprocessing/tests/test_label.pyr   r   %   s    q)IIKH    c                  <   / SQn [        SS9n[        R                  " / SQ/5      R                  nUR	                  U 5      n[        UR                  S/5        [        X#5        [        UR                  U5      U 5        [        SS9nUR	                  U 5      n[        U5      (       d   e[        UR                  S/5        [        X#R                  5       5        [        UR                  UR                  5       5      U 5        [        SS9n/ SQn [        R                  " / SQ/5      R                  nUR	                  U 5      n[        UR                  S	S/5        [        X#5        [        R                  " S
S/SS
/SS
/S
S//5      n[        UR                  U5      U 5        / SQn [        R                  " / SQ/ SQ/ SQ/ SQ/ SQ/5      nUR	                  U 5      n[        UR                  / SQ5        [        X#5        [        UR                  U5      U 5        g )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xx'))H


3
Cr{{UG,x%r++C0#6 
d	+B


3
CC===r{{UG,x/r++CKKM:C@	e	,B
&Cxx'))H


3
Cr{{UEN3x%1a&1a&1a&1a&9:Ir++I6< .Cxx	|\<NH 

3
Cr{{$@Ax%r++C0#6r   c            	         [        5       n [        R                  " / SQ/ SQ/ SQ/5      nU R                  / SQ5      n[	        X5        [        R                  " / SQ/ SQ/ SQ/ SQ/ SQ/ SQ/5      nU R                  / SQ5      n[	        X5        g )Nr'   r   r   r   r'   r   r   r   r'   )bder   r   r   )r   r@   crA   rB   f)r   r0   r1   r3   r   	transform)r7   r8   r9   s      r   "test_label_binarizer_unseen_labelsrG   T   sn    		BxxIy9:H


?
+Cx%xx	Iy)Y	JH ,,5
6Cx%r   c                     [        SSS9n [        R                  " / SQ5      n[        R                  " / SQ/5      R                  nU R	                  U5      n[        X#5        [        U R                  U5      U5        [        SSS9n [        R                  " / SQ5      n[        R                  " / SQ/ S	Q/ S
Q/ S	Q/ SQ/5      nU R	                  U5      n[        X#5        [        U R                  U5      U5        g )Nr   	neg_label	pos_labelr&   )rI   r   r   rI      )   rM   r'   rM   r   )rI   rI   rI   rM   )rI   rI   rM   rI   )rI   rM   rI   rI   )rM   rI   rI   rI   )r   r0   r1   r2   r3   r   r5   )r7   r6   r8   r9   s       r   'test_label_binarizer_set_label_encodingrO   b   s    	"	2B ((<
 Cxx()++H


3
Cx%r++C0#6	"	2B ((?
#Cxx	
H 

3
Cx%r++C0#6r   dtype)Int64Float64booleanunique_firstTFc                     [         R                  " S5      nUR                  / SQU S9nU(       a  UR                  5       n[	        5       R                  U5      nUR                  SS/5      n[        US/S//5        g)zaChecks that LabelBinarizer works with pandas nullable dtypes.

Non-regression test for gh-25637.
pandas)	r'   r   r   r'   r   r'   r'   r   r'   rP   r'   r   N)pytestimportorskipSeriesuniquer   fitrF   r   )rP   rT   pdy_truer7   y_outs         r   $test_label_binarizer_pandas_nullabler`   ~   sn     
		X	&BYY2%Y@F 				f	%BLL!Q EusQCj)r   c                     [         R                  " / SQ5      n [        5       R                  U 5      n/ SQnSn[        R
                  " [        US9   UR                  U5        S S S 5        [        5       nSn[        R
                  " [        US9   UR                  / 5        S S S 5        [        R
                  " [        US9   UR                  / 5        S S S 5        / SQnSn[        SS	S
9n[        R
                  " [        US9   UR                  U5        S S S 5        Sn[        SSS
9n[        R
                  " [        US9   UR                  U5        S S S 5        Sn[        S	SSS9n[        R
                  " [        US9   UR                  U5        S S S 5        / S	S/S// SQS//nSn[        R
                  " [        US9   [        5       R                  U5        S S S 5        Sn[        R
                  " [        US9   [        [         R                  " / SQ/ SQ/5      S/ SQSS9  S S S 5        Sn[        R
                  " [        US9   [        5       R                  [         R                  " S	S/SS	//5      5        S S S 5        [        R
                  " [        US9   [        [         R                  " S	S/SS	//5      / SQS9  S S S 5        g ! , (       d  f       GNy= f! , (       d  f       GNL= f! , (       d  f       GN+= f! , (       d  f       GN= f! , (       d  f       GN= f! , (       d  f       GN= f! , (       d  f       GNg= f! , (       d  f       GN-= f! , (       d  f       N= f! , (       d  f       g = f)Nr$   )rM   rN   )r   )r   rM   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.rM   r'   rJ   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rK   rL   r#   rN   )r   r'   rN   z?You appear to be using a legacy multi-label data representationz!output_type='binary', but y.shaper'   rM   rN   )rM   r'   rN   binaryr   youtput_typeclasses	thresholdz@Multioutput target data is not supported with label binarizationrk   )r0   r1   r   r\   rX   raises
ValueErrorrF   r5   r3   r
   r   )	one_classr7   multi_labelerr_msginput_labelsy_seq_of_seqss         r   test_label_binarizer_errorsru      s   &I				i	(B(KPG	z	1
[! 
2 
	B>G	z	1
R 
2	z	1
R  
2  LCG	!q	1B	z	1
| 
2CG	!q	1B	z	1
| 
2	5  
!q	EB	z	1
| 
2 !Q!i!5MOG	z	1&&}5 
2 2G	z	1&hh	9-. 		
 
2 QG	z	1RXX1v1v&678 
2	z	1rxx!Q!Q 019E 
2	1_ 
2	1
 
2	1	1	1 
2	1 
2	1 
2	1 
2	1
 
2	1 
2	1	1	1sx   KK'K9LLL/M)M4M%%'M6
K$'
K69
L
L
L,/
L>
M
M"%
M36
Ncsr_containerc                 @   Sn[         R                  " [        US9   [        U " SS/SS//5      SSS/SS9  S S S 5        Sn[         R                  " [        US9   [        U " SS/SS//5      S/ S	QSS9  S S S 5        g ! , (       d  f       NM= f! , (       d  f       g = f)
Nzfoo format is not supportedrc   r'   rM   foor   rh   zAThe number of class is not equal to the number of dimension of y.rf   )rX   rn   ro   r
   )rv   rr   s     r   "test_label_binarizer_sparse_errorsry      s     ,G	z	1&aVaV,-F		
 
2 RG	z	1&aVaV,-		
 
2	1 
2	1 
2	1s   A>B>
B
Bzvalues, classes, unknown)rM   r'   rN   r'   rN   int64rW   rf      )r@   r   rD   r   rD   r   r@   rD   rA   )rz   objectstr)idsc                    [        5       nUR                  U 5        [        UR                  U5        [        UR	                  U 5      / SQ5        [        UR                  / SQ5      U 5        [        5       nUR                  U 5      n[        U/ SQ5        [        R                  " [        SS9   UR	                  U5        S S S 5        g ! , (       d  f       g = f)N)r'   r   rM   r   rM   zunseen labelsrc   )
r   r\   r   r4   rF   r5   r3   rX   rn   ro   )valuesrk   unknownlerets        r   test_label_encoderr      s    0 
BFF6Nr{{G,r||F+_=r++O<fE	B


6
"CsO,	z	9
W 
:	9	9s   .C		
Cc                  x   [        5       n U R                  / SQ5        [        U R                  / SQ5        [        U R	                  / SQ5      / SQ5        [        U R                  / SQ5      / SQ5        [        R                  " [        5         U R	                  SS/5        S S S 5        g ! , (       d  f       g = f)Nr'   r'   r{      r   )r   r   r'   r{   r   )r   r'   r{   r{   r   r   r   )r'   rM   rN   rN   r{   r   r   r      )	r   r\   r   r4   rF   r5   rX   rn   ro   )r   s    r    test_label_encoder_negative_intsr     s~    	BFFr{{$45r||$;<>ST
235L 
z	"
aV 
#	"	"s   B++
B9r~   r}   c                     [        5       nUR                  [        R                  " SS/U S95        Sn[        R
                  " [        US9   UR                  S5        S S S 5        g ! , (       d  f       g = f)NappleorangerW   zshould be a 1d arrayrc   )r   r\   r0   r1   rX   rn   ro   rF   )rP   r   msgs      r    test_label_encoder_str_bad_shaper     sP    	BFF288Wh'u56
 C	z	-
W 
.	-	-s   A''
A5c                     [        5       n [        R                  " [        5         U R	                  / 5        S S S 5        [        R                  " [        5         U R                  / 5        S S S 5        [        5       n U R                  / SQ5        Sn[        R                  " [        US9   U R                  S/5        S S S 5        [        R                  " [        US9   U R                  / SQ5        S S S 5        Sn[        R                  " [        US9   U R                  S5        S S S 5        g ! , (       d  f       GN= f! , (       d  f       N= f! , (       d  f       N= f! , (       d  f       Nx= f! , (       d  f       g = f)N)r'   rM   rN   r   r'   z!contains previously unseen labelsrc   rI   )rI   z should be a 1d array.+shape \(\) )r   rX   rn   ro   rF   r5   r\   )r   r   s     r   test_label_encoder_errorsr     s    	B	z	"
R 
#	z	"
R  
# 
BFF
-C	z	-
bT" 
.	z	-
\* 
. .C	z	-
R  
.	-! 
#	"	"	" 
.	-	-	-
 
.	-s;   D1E+EE%E61
E 
E
E"%
E36
Fr   c                     [        5       nUR                  U 5        UR                  / 5      n[        [        R
                  " / 5      U5        UR                  / 5      n[        [        R
                  " / 5      U5        g )N)r   r\   rF   r   r0   r1   r5   )r   r   transformedinverse_transformeds       r   test_label_encoder_empty_arrayr   4  sZ     
BFF6N,,r"Krxx|[1..r2rxx|%89r   c                  ~   S S S /n [         R                  " / SQ/ SQ/ SQ/5      nU S   " 5       nS GH  nU  GHz  n[        US	9nUR                  U" 5       5      n[	        U5      U:X  d   eU(       a@  UR
                  R                  UR                  R                  :X  d   eUR                  5       n[        X5        [        / S
QUR                  5        UR                  U5      U:X  d   e[        US	9nUR                  U" 5       5      R                  U" 5       5      n[	        U5      U:X  d   eU(       a@  UR
                  R                  UR                  R                  :X  d   eUR                  5       n[        X5        [        / S
QUR                  5        UR                  U5      U:X  a  GM{   e   GM     g )Nc                  
    / SQ$ Nrb   r'   )r'   rM    r   r   r   <lambda>9test_sparse_output_multilabel_binarizer.<locals>.<lambda>K      &r   c                      SS1S1SS14$ NrM   rN   r'   r   r   r   r   r   r   L      !Q!q!f%r   c                  F    [        [        S5      [        S5      SS1/5      $ Nrb   r   r'   rM   iterr   r   r   r   r   M      d6lDJA78r   r   r'   r'   r=   r'   r'   r   r   TFr"   rf   )r0   r1   r   r3   r   indicesrP   indptrr   r   r4   r5   r\   rF   )inputsindicator_matinverser#   r6   mlbr9   s          r   'test_sparse_output_multilabel_binarizerr   H  sp    	'%8F
 HHiI>?MQikG&C%MBC##CE*CC=M111{{((CJJ,<,<<<<kkm}2y#,,7((-888 &MBC''#%.**351CC=M111{{((CJJ,<,<<<<kkm}2y#,,7((-888/  'r   c                 L   [        [        S5      [        S5      SS1/5      n[        SS9nUR                  U5        [        R                  " [
        5         UR                  U " [        R                  " / SQ/ SQ/ S	Q/5      5      5        S S S 5        g ! , (       d  f       g = f)
Nrb   r   r'   rM   Fr"   r   )rM   r   r   r   )	r   r   r\   rX   rn   ro   r5   r0   r1   )rv   r6   r   s      r   .test_sparse_output_multilabel_binarizer_errorsr   m  sr    
Vd4j1a&1
2C
E
2CGGCL	z	""((Iy)#DEF	
 
#	"	"s   5B
B#c                     S S S /n [         R                  " / SQ/ SQ/ SQ/5      nU S   " 5       nU  H  n[        5       nUR                  U" 5       5      n[	        X5        [	        / SQUR
                  5        UR                  U5      U:X  d   e[        5       nUR                  U" 5       5      R                  U" 5       5      n[	        X5        [	        / SQUR
                  5        UR                  U5      U:X  a  M   e   g )	Nc                  
    / SQ$ r   r   r   r   r   r   +test_multilabel_binarizer.<locals>.<lambda>{  r   r   c                      SS1S1SS14$ r   r   r   r   r   r   r   |  r   r   c                  F    [        [        S5      [        S5      SS1/5      $ r   r   r   r   r   r   r   }  r   r   r   r=   r   r   rf   )	r0   r1   r   r3   r   r4   r5   r\   rF   )r   r   r   r6   r   r9   s         r   test_multilabel_binarizerr   x  s     	'%8F
 HHiI>?MQikG!#&=.9cll3$$S)W444 "#ggcen&&su-=.9cll3$$S)W444 r   c                      [        5       n SS/S// /n[        R                  " SS/SS/SS//5      n[        U R	                  U5      U5        g )Nr'   rM   r   )r   r0   r1   r   r3   )r   ri   Ys      r   &test_multilabel_binarizer_empty_sampler     sR    

C
Q!bA
1a&1a&1a&)*As((+Q/r   c                  (   [        5       n SS//n[        R                  " SS/SS//5      nSn[        R                  " [
        US9   U R                  U5      R                  SS/SS//5      nS S S 5        [        R                  " / SQ/ SQ/5      n[        / S	QS
9n [        R                  " [
        US9   U R                  U5      R                  SS/SS//5      nS S S 5        [        WU5        g ! , (       d  f       N= f! , (       d  f       N,= f)Nr'   rM   r   zunknown class.* will be ignoredrc   r{   r=   r>   rf   rm   )	r   r0   r1   rX   warnsUserWarningr\   rF   r   )r   ri   r   warning_messagematrixs        r   'test_multilabel_binarizer_unknown_classr     s    

C
QA
1a&1a&!"A7O	k	9%%1v1v&67 
: 	)Y'(A
i
0C	k	9%%1v1v&67 
:vq! 
:	9
 
:	9s   'C26'D2
D 
Dc                  6   / SQn [         R                  " / SQ/ SQ/ SQ/5      n[        / SQS9n[        UR	                  U 5      U5        [        UR
                  / SQ5        [        / SQS9n[        UR                  U 5      R                  U 5      U5        [        UR
                  / SQ5        [        / SQS9n[        UR	                  U 5      [         R                  " S/S/S//U45      5        [        UR
                  / SQ5        [        U 5      n [        / SQS9n[        UR                  U 5      R                  U 5      U5        S	n[        / S
QS9n[        R                  " [        US9   UR                  U 5        S S S 5        g ! , (       d  f       g = f)Nr   r   r=   r'   r   r'   r'   rN   rM   rm   )r{   r'   rN   rM   r   ztThe classes argument contains duplicate classes. Remove these duplicates before passing them to MultiLabelBinarizer.)r'   rN   rM   rN   rc   )r0   r1   r   r   r3   r4   r\   rF   hstackr   rX   rn   ro   )r6   r   r   rr   s       r   'test_multilabel_binarizer_given_classesr     s<   
 CHHiI>?M
i
0Cs((-}=s||Y/ i
0Cswws|--c2MBs||Y/ l
3C#		QC!qc?M*J K s||\2 s)C
i
0Cswws|--c2MB	G  l
3C	z	1 
2	1	1s   /F


Fc                     / SQn [         R                  " / SQ/ SQ/ SQ/5      n[         R                  " / SQ/ SQ/ SQ/5      n[        / SQS9n[        UR	                  U 5      U5        / SQUl        [        UR	                  U 5      U5        g )	Nr   r   r=   r   r   r   rm   rf   )r0   r1   r   r   r3   rk   )r6   r   indicator_mat2r   s       r   (test_multilabel_binarizer_multiple_callsr     sn    
 CHHiI>?MXXy)Y?@N i
0Cs((-}=CKs((-~>r   c                  p   S/S/S//n [         R                  " / SQ/ SQ/ SQ/5      n[        5       n[        UR	                  U 5      U5        [        UR                  U5      U 5        [        5       n[        UR                  U 5      R                  U 5      U5        [        UR                  U5      U 5        g )Nr'   r   rM   r>   r=   r?   )r0   r1   r   r   r3   r5   r\   rF   r6   r   r   s      r   .test_multilabel_binarizer_same_length_sequencer     s    3aS/CHHiI>?M

Cs((-}=s,,];SA 
Cswws|--c2MBs,,];SAr   c                  R   [        / SQ5      n / SQ/ SQ4/ SQ/ SQ4/ SQU 4/n[        R                  " / SQ/ SQ/ S	Q/5      nU GH
  u  p4[        5       n[        R                  " U[        S
9n[        UR                  U5      U5        [        UR                  U5        [        R                  " UR                  U5      [        S
9n[        Xc5        [        5       n[        UR                  U5      R                  U5      U5        [        UR                  U5        [        R                  " UR                  U5      [        S
9n[        Xc5        GM     [        5       n[        R                  " [        5         UR                  0 0 SS04/5        S S S 5        g ! , (       d  f       g = f)N)r   rM   rN   ))23)1)r   r   )r   r   r   ))r@   rD   r   )r   r@   r|   ))r   r   )r   )r   r   r   r=   r   rW   r   r@   )r   r0   r1   r   r}   r   r3   r4   r5   r\   rF   rX   rn   	TypeError)tuple_classesr   r   r6   rk   r   indicator_mat_invs          r   ,test_multilabel_binarizer_non_integer_labelsr     sI   $%78M	)?;	)?;	.>F
 HHiI>?M!#hhs&)3,,S1=A3<<1HHS%:%:=%IQWX,2 "#3773<11#6F3<<1HHS%:%:=%IQWX,2   
C	y	!B"sCj!123 
"	!	!s   7F
F&c                      S/n [         R                  " SS//5      n[        5       n[        UR	                  U 5      U5        g )Nr'   r'   r'   r   r'   )r0   r1   r   r   r3   r   s      r   $test_multilabel_binarizer_non_uniquer     s:    .CHHq!fX&M

Cs((-}=r   c                  X   S/n [        5       nUR                  U 5        [        R                  " [        5         UR                  [        R                  " SS//5      5        S S S 5        UR                  [        R                  " SS//5      5        UR                  [        R                  " SS//5      5        UR                  [        R                  " SS//5      5        [        R                  " [        5         UR                  [        R                  " S//5      5        S S S 5        [        R                  " [        5         UR                  [        R                  " / SQ/5      5        S S S 5        g ! , (       d  f       GN= f! , (       d  f       Nl= f! , (       d  f       g = f)Nr   r'   rN   r   r'   r'   r'   )r   r3   rX   rn   ro   r5   r0   r1   )r6   r   s     r   ,test_multilabel_binarizer_inverse_validationr     s   .C

Cc	z	"bhhAx01 
# "((QF8,-"((QF8,-"((QF8,- 
z	"bhhuo. 
#	z	"bhh	{34 
#	" 
#	" 
#	"	"	"s#   )E8<(F
)F8
F

F
F)c                  N   [        SS// SQS9n [        R                  " / SQ/ SQ/5      n[        X5        [        SS// SQS9n [        R                  " / SQ/ SQ/5      n[        X5        [        / S	Q/ S
QS9n [        R                  " / SQ/ SQ/ SQ/ SQ/5      n[        X5        g )Nr'   r   )r'   rM   r{   r   rm   r/   r,   )r'   r   r{   rM   r.   )r   r'   rM   rN   )rN   rM   r   r'   r-   )r   r0   r1   r   )outr8   s     r   $test_label_binarize_with_class_orderr     s    
!Q
6Cxx|45Hs% !Q
6Cxx|45Hs%
|
<Cxx|\<PQHs%r   c           
         S GHP  nUS:X  d  US:w  a9  U(       a2  [         R                  " [        5         [        U UUUUS9  S S S 5        MI  [        U UUUUS9n[	        [        U5      U5        [        U5      U:X  d   e[        U 5      nUS:X  a
  [        XaS9nO[        UUUX2-   S-  S9n[	        [        U5      [        U 5      5        [        X2US9n	U	R                  U 5      n[	        [        U5      U5        [        U5      U:X  d   eU	R                  U5      n
[	        [        U
5      [        U 5      5        [        U
5      [        U 5      :X  a  GMQ   e   g ! , (       d  f       GN= f)	Nr   r   rk   rK   rL   r#   
multiclassrm   g       @)rj   rk   rl   re   )rX   rn   ro   r   r   r   r   r   r	   r
   r   r3   r5   )ri   rk   rL   rK   r8   r#   	binarizedy_typeinversedr7   inverse_outputs              r   check_binarized_resultsr   -  sa   &Ni1n-z*#''"/ +  #'
	 	79-x8	"m333  "\!3IOH 6"%1S8	H 	78,gaj9 M
 $$Q'	79-x8	"m333--i87>2GAJ?'8A;666_ '**s   E
E(	c                  <   / SQn SS/nSnSn[         R                  " SS/SS/SS//5      S S 2S4   R                  S5      n[        XX#U5        / SQn SS/nSnSn[         R                  " SS/SS/SS//5      S S 2S4   R                  S5      n[        XX#U5        g )Nr>   r   r'   rM   r   )r   r'   rN   )r0   r1   reshaper   ri   rk   rL   rK   r8   s        r   test_label_binarize_binaryr   `  s    A!fGIIxx!R2q'Ar734QT:BB7KHA	hG 	A!fGIIxx!Q!Q!Q01!Q$7??HHA	hGr   c            	          / SQn / SQnSnSnS[         R                  " S5      -  n[        XX#U5        [        R                  " [
        5         [        XSUSS9  S S S 5        g ! , (       d  f       g = f)Nr   r'   rM   rM   r   rN   r   Tr   )r0   eyer   rX   rn   ro   r   r   s        r   test_label_binarize_multiclassr   s  s]    AGII266!9}HA	hG	z	""	QU	
 
#	"	"s   A##
A1arr_typec           	         [         R                  " / SQ/ SQ/ SQ/5      n/ SQnSnSnX1-  nU " U5      n[        XbX4U5        [        R                  " [
        5         [        XbSUSS	9  S S S 5        g ! , (       d  f       g = f)
Nr>   r   rC   r   rM   r   r   Tr   )r0   r1   r   rX   rn   ro   r   )r   y_indrk   rL   rK   r8   ri   s          r   test_label_binarize_multilabelr     so     HHiI67EGII HAA	hG	z	""	QU	
 
#	"	"s   A11
A?c                     [         R                  " [        5         [        SS/SS/SSS9  S S S 5        [         R                  " [        SS9   [        SS/SS/S	9  S S S 5        [         R                  " [        S
S9   [        SS/// SQS	9  S S S 5        g ! , (       d  f       Np= f! , (       d  f       NQ= f! , (       d  f       g = f)Nr   rM   r'   )rk   rL   rK   zcontinuous target data is not rc   g333333?g@rm   zmismatch with the labelsrN   rf   )rX   rn   ro   r   r   r   r   !test_invalid_input_label_binarizer     s    	z	"1v1vaH 
#	z)I	JSzAq62 
K	z)C	DAx3 
E	D	 
#	"	J	J	D	Ds#   BB'=B8
B$'
B58
Cc                     [        U " / SQ/ SQ/ SQ/5      [        R                  " S5      5      n[        U[        R                  " / SQ5      5        g )Nr>   )r   r   r   rC   rN   r   )r	   r0   aranger   r1   )rv   r9   s     r    test_inverse_binarize_multiclassr     s:    
&y+y9:BIIaLC sBHHY/0r   c                      [        5       n U R                  SSS[        R                  /5        U R	                  [        R                  /5      n[        US/5        g)zUCheck that label encoder encodes nans in transform.

Non-regression test for #22628.
r   r@   rM   N)r   r\   r0   nanrF   r   )r   y_transs     r   test_nan_label_encoderr     sD    
 
BFFCc266"#llBFF8$Gw$r   encoderc                     [        U S5      (       a   eU R                  / SQS9nU R                  / SQ5      n[        X5        g)zpCheck that label encoders do not define set_output and work with y as a kwarg.

Non-regression test for #26854.

set_outputr|   )ri   N)r   r3   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+Br   zarray_namespace, device, dtyperi   r   )rN   r   	   r   r  rN   c                    [        X5      nUR                  XS9n[        SS9   [        5       n[        5       nUR	                  U5      nUR                  U5      nUR                  U5      n	UR	                  U 5      nUR                  U 5      n
[        U5      S   R                  UR                  :X  d   e[        U	5      S   R                  UR                  :X  d   e[        UR                  5      S   R                  UR                  :X  d   e[        [        X5      U
5        [        [        X5      U 5        [        [        UR                  U5      UR                  5        [        5       n[        5       nUR                  U5      nUR                  U 5      n
[        U5      S   R                  UR                  :X  d   e[        UR                  5      S   R                  UR                  :X  d   e[        [        X5      U
5        [        [        UR                  U5      UR                  5        S S S 5        g ! , (       d  f       g = f)N)deviceT)array_api_dispatchr   )r   asarrayr   r   r\   rF   r5   r   __name__r4   r   r   r3   )ri   array_namespacer	  rP   xpxp_yxp_labelnp_labelxp_transformedxp_inv_transformednp_transformeds              r   'test_label_encoder_array_api_compliancer    s    
o	6B::a:'D	4	0>><<%!++D1%77G<<?!++A.^,Q/88BKKGGG/03<<KKKX../2;;r{{JJJ,^@.Q,-?DaH,X->->CXEVEVW>>!//5!//2^,Q/88BKKGGGX../2;;r{{JJJ,^@.Q,X->->CXEVEVW- 
1	0	0s   HH<<
I
)Hnumpyr0   rX   scipy.sparser   sklearnr   r   sklearn.preprocessing._labelr   r   r   r	   r
   r   sklearn.utils._array_apir   r   r   r   sklearn.utils._testingr   r   sklearn.utils.fixesr   r   r   r   r   sklearn.utils.multiclassr   sklearn.utils.validationr   	load_irisirisr   r;   rG   rO   markparametrizer`   ru   ry   r1   r}   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r  r  r   r   r   <module>r#     s     ! ,    4 5&7R&78 "AB$7* 8 C*$7Ft .9
 :
,  HH_G4HHYg.HHaS(	
 HH.f=HH_F3HHcU&)	
 HH./HH_%HHcUO	
" 	#'  *+* 	 5("34 5!. 
0
*&9
*+
 	#  ::"9J .9
 :
520" F?B4:>5&&07fH&
 XXJ  	
 

 4 .91 :1	%  02E2GHCC $-/'  
 
!
$%
#$XXr   