
    0Phc              
       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 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j                     Z!d
 Z"d Z#d Z$d Z%ej&        '                    dg d          ej&        '                    dddg          d                         Z(d Z)ej&        '                    de          d             Z*ej&        '                    d ej+        g dd           ej+        g dd           ej+        dgd          f ej+        g de,           ej+        g de,           ej+        dge,          f ej+        g d           ej+        g d           ej+        dg          fgg d !          d"             Z-d# Z.ej&        '                    dd$d%g          d&             Z/d' Z0ej&        '                    d( ej+        g dd           ej+        g de,           ej+        g d          gg d !          d)             Z1d* Z2ej&        '                    de          d+             Z3d, Z4d- Z5d. Z6d/ Z7d0 Z8d1 Z9d2 Z:d3 Z;d4 Z<d5 Z=d6 Z>d7 Z?d8 Z@ej&        '                    d9ej+        gez   ez   ez   ez   ez             d:             ZAd; ZBej&        '                    de          d<             ZCd= ZDej&        '                    d> e
             e	             e            g          d?             ZEej&        '                    d@ e                      ej&        '                    dA ej+        g d           ej+        g dB           ej+        g dC          g          dD                         ZFdS )E    N)issparse)config_contextdatasets)LabelBinarizerLabelEncoderMultiLabelBinarizer_inverse_binarize_multiclass_inverse_binarize_thresholdinglabel_binarize)_convert_to_numpy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                 N    t          | d          r|                                 } | S )Ntoarray)hasattrr   as    f/var/www/html/test/jupyter/venv/lib/python3.11/site-packages/sklearn/preprocessing/tests/test_label.pyr   r   $   s&    q) IIKKH    c                     g d} t          d          }t          j        g dg          j        }|                    |           }t          |j        dg           t          ||           t          |                    |          |            t          d          }|                    |           }t          |          sJ t          |j        dg           t          ||	                                           t          |                    |	                                          |            t          d          }g d} t          j        g dg          j        }|                    |           }t          |j        d	dg           t          ||           t          j        d
dgdd
gdd
gd
dgg          }t          |                    |          |            g d} t          j        g dg dg dg dg dg          }|                    |           }t          |j        g d           t          ||           t          |                    |          |            d S )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:   *   si    '
&
&C	e	,	,	,Bx'')H


3

Cr{UG,,,x%%%r++C00#666 
d	+	+	+B


3

CC==r{UG,,,x///r++CKKMM::C@@@	e	,	,	,B
&
&
&Cx'')H


3

Cr{UEN333x%%%1a&1a&1a&1a&9::Ir++I66<<< .
-
-Cx	|||\\\<<<N H 

3

Cr{$@$@$@AAAx%%%r++C00#66666r   c            	      D   t                      } t          j        g dg dg dg          }|                     g d          }t	          ||           t          j        g dg dg dg dg dg dg          }|                     g d          }t	          ||           d S )Nr&   r   r   r   r&   r   r   r   r&   )bder   r   r   )r   r?   cr@   rA   f)r   r/   r0   r2   r   	transform)r6   r7   r8   s      r   "test_label_binarizer_unseen_labelsrF   S   s    			BxIIIyyy9::H


???
+
+Cx%%%x	IIIyyy)))YYY			J H ,,555
6
6Cx%%%%%r   c                  @   t          dd          } t          j        g d          }t          j        g dg          j        }|                     |          }t          ||           t          |                     |          |           t          dd          } t          j        g d          }t          j        g dg d	g d
g d	g dg          }|                     |          }t          ||           t          |                     |          |           d S )Nr   	neg_label	pos_labelr%   )rH   r   r   rH      )   rL   r&   rL   r   )rH   rH   rH   rL   )rH   rH   rL   rH   )rH   rL   rH   rH   )rL   rH   rH   rH   )r   r/   r0   r1   r2   r   r4   )r6   r5   r7   r8   s       r   'test_label_binarizer_set_label_encodingrN   a   s6   	"	2	2	2B (<<<
 
 Cx())+H


3

Cx%%%r++C00#666	"	2	2	2B (???
#
#Cx	
 H 

3

Cx%%%r++C00#66666r   dtype)Int64Float64booleanunique_firstTFc                 $   t          j        d          }|                    g d|           }|r|                                }t	                                          |          }|                    ddg          }t          |dgdgg           dS )ziChecks that LabelBinarizer works with pandas nullable dtypes.

    Non-regression test for gh-25637.
    pandas)	r&   r   r   r&   r   r&   r&   r   r&   rO   r&   r   N)pytestimportorskipSeriesuniquer   fitrE   r   )rO   rS   pdy_truer6   y_outs         r   $test_label_binarizer_pandas_nullabler_   }   s     
	X	&	&BYY222%Y@@F ! 					f	%	%BLL!Q  EusQCj)))))r   c                     t          j        g d          } t                                          |           }g d}d}t	          j        t          |          5  |                    |           d d d            n# 1 swxY w Y   t                      }d}t	          j        t          |          5  |                    g            d d d            n# 1 swxY w Y   t	          j        t          |          5  |                    g            d d d            n# 1 swxY w Y   g d}d}t          dd	
          }t	          j        t          |          5  |                    |           d d d            n# 1 swxY w Y   d}t          dd
          }t	          j        t          |          5  |                    |           d d d            n# 1 swxY w Y   d}t          d	dd          }t	          j        t          |          5  |                    |           d d d            n# 1 swxY w Y   g d	dgdgg ddgg}d}t	          j        t          |          5  t                      	                    |           d d d            n# 1 swxY w Y   d}t	          j        t          |          5  t          t          j        g dg dg          dg dd           d d d            n# 1 swxY w Y   d}t	          j        t          |          5  t                                          t          j        d	dgdd	gg                     d d d            n# 1 swxY w Y   t	          j        t          |          5  t          t          j        d	dgdd	gg          g d           d d d            d S # 1 swxY w Y   d S )Nr#   )rL   rM   )r   )r   rL   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.rL   r&   rI   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rJ   rK   r"   rM   )r   r&   rM   z?You appear to be using a legacy multi-label data representationz!output_type='binary', but y.shaper&   rL   rM   )rL   r&   rM   binaryr   youtput_typeclasses	thresholdz@Multioutput target data is not supported with label binarizationrj   )r/   r0   r   r[   rW   raises
ValueErrorrE   r4   r2   r
   r   )	one_classr6   multi_labelerr_msginput_labelsy_seq_of_seqss         r   test_label_binarizer_errorsrt      sG   &&I					i	(	(B(((KPG	z	1	1	1 " "
[!!!" " " " " " " " " " " " " " " 
		B>G	z	1	1	1  
R              	z	1	1	1 ! !
R   ! ! ! ! ! ! ! ! ! ! ! ! ! ! !  <<LCG	!q	1	1	1B	z	1	1	1  
|              CG	!q	1	1	1B	z	1	1	1  
|              	5  
!q	E	E	EB	z	1	1	1  
|               !Q!iii!5MOG	z	1	1	1 6 6&&}5556 6 6 6 6 6 6 6 6 6 6 6 6 6 6 2G	z	1	1	1 
 
&h			999-.. II		
 	
 	
 	

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 QG	z	1	1	1 9 9RX1v1v&6778889 9 9 9 9 9 9 9 9 9 9 9 9 9 9	z	1	1	1 F Frx!Q!Q 011999EEEEF F F F F F F F F F F F F F F F F Fs   A;;A?A?1CCC9DD"DE::E>E>3GGGH11H58H5&"JJJ<.K66K:=K::M$$M(+M(
,OO
Ocsr_containerc                 l   d}t          j        t          |          5  t           | ddgddgg          dddgd           d d d            n# 1 swxY w Y   d}t          j        t          |          5  t           | ddgddgg          dg d	d           d d d            d S # 1 swxY w Y   d S )
Nzfoo format is not supportedrb   r&   rL   foor   rg   zAThe number of class is not equal to the number of dimension of y.re   )rW   rm   rn   r
   )ru   rq   s     r   "test_label_binarizer_sparse_errorsrx      sp    ,G	z	1	1	1 
 
&maVaV,--F		
 	
 	
 	

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 RG	z	1	1	1 
 
&maVaV,--II		
 	
 	
 	

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
s#   %AAA7%B))B-0B-zvalues, classes, unknown)rL   r&   rM   r&   rM   int64rV   re      )r?   r   rC   r   rC   r   r?   rC   r@   )ry   objectstr)idsc                    t                      }|                    |            t          |j        |           t          |                    |           g d           t          |                    g d          |            t                      }|                    |           }t          |g d           t          j        t          d          5  |                    |           d d d            d S # 1 swxY w Y   d S )N)r&   r   rL   r   rL   zunseen labelsrb   )
r   r[   r   r3   rE   r4   r2   rW   rm   rn   )valuesrj   unknownlerets        r   test_label_encoderr      s+   0 
BFF6NNNr{G,,,r||F++___===r++OOO<<fEEE	B


6
"
"CsOOO,,,	z	9	9	9  
W                 s   C66C:=C:c                     t                      } |                     g d           t          | j        g d           t          |                     g d          g d           t          |                     g d          g d           t          j        t                    5  |                     ddg           d d d            d S # 1 swxY w Y   d S )Nr&   r&   rz      r   )r   r   r&   rz   r   )r   r&   rz   rz   r   r   r   )r&   rL   rM   rM   rz   r   r   r      )	r   r[   r   r3   rE   r4   rW   rm   rn   )r   s    r    test_label_encoder_negative_intsr     s&   	BFFr{$4$4$4555r||$;$;$;<<>S>S>STTT
222335L5L5L   
z	"	"  
aV                 s   $C		CCr}   r|   c                    t                      }|                    t          j        ddg|                      d}t	          j        t          |          5  |                    d           d d d            d S # 1 swxY w Y   d S )NappleorangerV   zshould be a 1d arrayrb   )r   r[   r/   r0   rW   rm   rn   rE   )rO   r   msgs      r    test_label_encoder_str_bad_shaper     s    	BFF28Wh'u555666
 C	z	-	-	-  
W                 s   A::A>A>c                  D   t                      } t          j        t                    5  |                     g            d d d            n# 1 swxY w Y   t          j        t                    5  |                     g            d d d            n# 1 swxY w Y   t                      } |                     g d           d}t          j        t          |          5  |                     dg           d d d            n# 1 swxY w Y   t          j        t          |          5  |                     g d           d d d            n# 1 swxY w Y   d}t          j        t          |          5  |                     d           d d d            d S # 1 swxY w Y   d S )N)r&   rL   rM   r   r&   z!contains previously unseen labelsrb   rH   )rH   z should be a 1d array.+shape \(\) )r   rW   rm   rn   rE   r4   r[   )r   r   s     r   test_label_encoder_errorsr     s   	B	z	"	"  
R              	z	"	" ! !
R   ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! 
BFF
-C	z	-	-	- # #
bT"""# # # # # # # # # # # # # # #	z	-	-	- + +
\\\***+ + + + + + + + + + + + + + + .C	z	-	-	- ! !
R   ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! !sY   A

AA.BBBD  DD&E

EE2FFFr   c                 (   t                      }|                    |            |                    g           }t          t	          j        g           |           |                    g           }t          t	          j        g           |           d S )N)r   r[   rE   r   r/   r0   r4   )r   r   transformedinverse_transformeds       r   test_label_encoder_empty_arrayr   3  sx     
BFF6NNN,,r""Krx||[111..r22rx||%899999r   c                     d d d g} t          j        g dg dg dg          } | d                     }dD ]}| D ]}t          |	          }|                     |                      }t	          |          |k    sJ |r0|j        j        |j        j        k    sJ |                                }t          ||           t          g d
|j
                   |                    |          |k    sJ t          |	          }|                     |                                           |                      }t	          |          |k    sJ |r0|j        j        |j        j        k    sJ |                                }t          ||           t          g d
|j
                   |                    |          |k    sJ d S )Nc                  
    g dS Nra   r&   )r&   rL    r   r   r   <lambda>z9test_sparse_output_multilabel_binarizer.<locals>.<lambda>J      &&& r   c                      ddhdhddhfS NrL   rM   r&   r   r   r   r   r   z9test_sparse_output_multilabel_binarizer.<locals>.<lambda>K      !Q!q!f% r   c                  ^    t          t          d          t          d          ddhg          S Nra   r   r&   rL   iterr   r   r   r   z9test_sparse_output_multilabel_binarizer.<locals>.<lambda>L  %    d6llDJJA788 r   r   r&   r&   r<   r&   r&   r   r   TFr!   re   )r/   r0   r   r2   r   indicesrO   indptrr   r   r3   r4   r[   rE   )inputsindicator_matinverser"   r5   mlbr8   s          r   'test_sparse_output_multilabel_binarizerr   G  s    	'&%%88F
 HiiiIII>??MfQikkG& 9 9 	9 	9C%MBBBC##CCEE**CC==M1111 ${(CJ,<<<<<kkmm}c222yyy#,777((--8888 &MBBBC''##%%..**335511CC==M1111 ${(CJ,<<<<<kkmm}c222yyy#,777((--88888/	99 9r   c                    t          t          d          t          d          ddhg          }t          d          }|                    |           t          j        t
                    5  |                     | t          j        g dg dg d	g                               d d d            d S # 1 swxY w Y   d S )
Nra   r   r&   rL   Fr!   r   )rL   r   r   r   )	r   r   r[   rW   rm   rn   r4   r/   r0   )ru   r5   r   s      r   .test_sparse_output_multilabel_binarizer_errorsr   l  s    
Vd4jj1a&1
2
2C
E
2
2
2CGGCLLL	z	"	" 
 
M"(IIIyyy)))#DEEFF	
 	
 	

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
s   -:B44B8;B8c                  d   d d d g} t          j        g dg dg dg          } | d                     }| D ]}t                      }|                     |                      }t	          ||           t	          g d|j                   |                    |          |k    sJ t                      }|                     |                                           |                      }t	          ||           t	          g d|j                   |                    |          |k    sJ d S )	Nc                  
    g dS r   r   r   r   r   r   z+test_multilabel_binarizer.<locals>.<lambda>z  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                  ^    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   re   )	r/   r0   r   r2   r   r3   r4   r[   rE   )r   r   r   r5   r   r8   s         r   test_multilabel_binarizerr   w  sP    	'&%%88F
 HiiiIII>??MfQikkG 5 5!##&&=#...999cl333$$S))W4444 "##ggcceenn&&ssuu--=#...999cl333$$S))W444445 5r   c                      t                      } ddgdgg g}t          j        ddgddgddgg          }t          |                     |          |           d S )Nr&   rL   r   )r   r/   r0   r   r2   )r   rh   Ys      r   &test_multilabel_binarizer_empty_sampler     se    


C
Q!bA
1a&1a&1a&)**As((++Q/////r   c                  `   t                      } ddgg}t          j        ddgddgg          }d}t          j        t
          |          5  |                     |                              ddgddgg          }d d d            n# 1 swxY w Y   t          j        g dg dg          }t          g d	
          } t          j        t
          |          5  |                     |                              ddgddgg          }d d d            n# 1 swxY w Y   t          ||           d S )Nr&   rL   r   zunknown class.* will be ignoredrb   rz   r<   r=   re   rl   )	r   r/   r0   rW   warnsUserWarningr[   rE   r   )r   rh   r   warning_messagematrixs        r   'test_multilabel_binarizer_unknown_classr     s   


C
QA
1a&1a&!""A7O	k	9	9	9 8 8%%1v1v&6778 8 8 8 8 8 8 8 8 8 8 8 8 8 8 	)))YYY'((A
iii
0
0
0C	k	9	9	9 8 8%%1v1v&6778 8 8 8 8 8 8 8 8 8 8 8 8 8 8vq!!!!!s$   /BB
B
/DDDc                     g d} t          j        g dg dg dg          }t          g d          }t          |                    |           |           t          |j        g d           t          g d          }t          |                    |                               |           |           t          |j        g d           t          g d          }t          |                    |           t          j        dgdgdgg|f                     t          |j        g d           t          |           } t          g d          }t          |                    |                               |           |           d	}t          g d
          }t          j        t          |          5  |                    |            d d d            d S # 1 swxY w Y   d S )Nr   r   r<   r&   r   r&   r&   rM   rL   rl   )rz   r&   rM   rL   r   ztThe classes argument contains duplicate classes. Remove these duplicates before passing them to MultiLabelBinarizer.)r&   rM   rL   rM   rb   )r/   r0   r   r   r2   r3   r[   rE   hstackr   rW   rm   rn   )r5   r   r   rq   s       r   'test_multilabel_binarizer_given_classesr     s+   
 
 
 CHiiiIII>??M
iii
0
0
0Cs((--}===s|YYY/// iii
0
0
0Cswws||--c22MBBBs|YYY/// lll
3
3
3C#	QC!qc?M*J K K   s|\\\222 s))C
iii
0
0
0Cswws||--c22MBBB	G  lll
3
3
3C	z	1	1	1                   s   9GG #G c                  D   g d} t          j        g dg dg dg          }t          j        g dg dg dg          }t          g d          }t          |                    |           |           g d|_        t          |                    |           |           d S )	Nr   r   r<   r   r   r   rl   re   )r/   r0   r   r   r2   rj   )r5   r   indicator_mat2r   s       r   (test_multilabel_binarizer_multiple_callsr     s    
 
 
 CHiiiIII>??MXyyy)))YYY?@@N iii
0
0
0Cs((--}===))CKs((--~>>>>>r   c                     dgdgdgg} t          j        g dg dg dg          }t                      }t          |                    |           |           t          |                    |          |            t                      }t          |                    |                               |           |           t          |                    |          |            d S )Nr&   r   rL   r=   r<   r>   )r/   r0   r   r   r2   r4   r[   rE   r5   r   r   s      r   .test_multilabel_binarizer_same_length_sequencer     s    3aS/CHiiiIII>??M


Cs((--}===s,,];;SAAA 

Cswws||--c22MBBBs,,];;SAAAAAr   c                     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          |                    |          |           t          |j        |           t          j        |                    |          t          
          }t          ||           t                      }t          |	                    |          
                    |          |           t          |j        |           t          j        |                    |          t          
          }t          ||           >t                      }t          j        t                    5  |                    i i ddifg           d d d            d S # 1 swxY w Y   d S )N)r   rL   rM   ))23)1)r   r   )r   r   r   ))r?   rC   r   )r   r?   r{   ))r   r   )r   )r   r   r   r<   r   rV   r   r?   )r   r/   r0   r   r|   r   r2   r3   r4   r[   rE   rW   rm   	TypeError)tuple_classesr   r   r5   rj   r   indicator_mat_invs          r   ,test_multilabel_binarizer_non_integer_labelsr     s*   $%7%7%788M	)	)	)???;	)	)	)???;	.	.	.>F
 HiiiIII>??M 3 3W!##hs&)))3,,S11=AAA3<111HS%:%:=%I%IQWXXX,c222 "##3773<<11#66FFF3<111HS%:%:=%I%IQWXXX,c2222


C	y	!	! 4 4B"sCj!123334 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4s   +GGGc                      dg} t          j        ddgg          }t                      }t          |                    |           |           d S )Nr&   r&   r&   r   r&   )r/   r0   r   r   r2   r   s      r   $test_multilabel_binarizer_non_uniquer     sM    .CHq!fX&&M


Cs((--}=====r   c                  p   dg} t                      }|                    |            t          j        t                    5  |                    t          j        ddgg                     d d d            n# 1 swxY w Y   |                    t          j        ddgg                     |                    t          j        ddgg                     |                    t          j        ddgg                     t          j        t                    5  |                    t          j        dgg                     d d d            n# 1 swxY w Y   t          j        t                    5  |                    t          j        g dg                     d d d            d S # 1 swxY w Y   d S )Nr   r&   rM   r   r&   r&   r&   )r   r2   rW   rm   rn   r4   r/   r0   )r5   r   s     r   ,test_multilabel_binarizer_inverse_validationr   
  s>   .C


Cc	z	"	" 2 2bhAx001112 2 2 2 2 2 2 2 2 2 2 2 2 2 2 "(QF8,,---"(QF8,,---"(QF8,,--- 
z	"	" / /bhuoo.../ / / / / / / / / / / / / / /	z	"	" 5 5bh			{334445 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5s6    +A77A;>A;*EEE3+F++F/2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          | |           d S )Nr&   r   )r&   rL   rz   r   rl   r.   r+   )r&   r   rz   rL   r-   )r   r&   rL   rM   )rM   rL   r   r&   r,   )r   r/   r0   r   )outr7   s     r   $test_label_binarize_with_class_orderr     s    
!Q
6
6
6Cx|||455HsH%%% !Q
6
6
6Cx|||455HsH%%%
|||
<
<
<Cx|||\\\<<<PQQHsH%%%%%r   c           	         dD ]}|dk    s|dk    rH|rFt          j        t                    5  t          | ||||           d d d            n# 1 swxY w Y   Wt          | ||||          }t	          t          |          |           t          |          |k    sJ t          |           }|dk    rt          ||          }nt          |||||z   dz            }t	          t          |          t          |                      t          |||          }	|	                    |           }t	          t          |          |           t          |          |k    sJ |	                    |          }
t	          t          |
          t          |                      t          |
          t          |           k    sJ d S )	Nr   r   rj   rJ   rK   r"   
multiclassrl   g       @)ri   rj   rk   rd   )rW   rm   rn   r   r   r   r   r   r	   r
   r   r2   r4   )rh   rj   rK   rJ   r7   r"   	binarizedy_typeinversedr6   inverse_outputs              r   check_binarized_resultsr   ,  sI   & /7 /7NNi1nn-nz**  #''"/                   #'
 
 
	 	79--x888	""m3333  ""\!!3IwOOOHH 6"%	1S8	  H 	78,,gajj999 9M
 
 
 $$Q''	79--x888	""m3333--i887>22GAJJ???''8A;;66666_/7 /7s   AA	A	c                  j   g d} ddg}d}d}t          j        ddgddgddgg          d d df                             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                             d          }t          | ||||           d S )Nr=   r   r&   rL   r   )r   r&   rM   )r/   r0   reshaper   rh   rj   rK   rJ   r7   s        r   test_label_binarize_binaryr   _  s    		A!fGIIx!R2q'Ar7344QQQT:BB7KKHAw	9hGGG 			A!fGIIx!Q!Q!Q011!!!Q$7??HHHAw	9hGGGGGr   c                      g d} g d}d}d}dt          j        d          z  }t          | ||||           t          j        t
                    5  t          | |d|d           d d d            d S # 1 swxY w Y   d S )Nr   r&   rL   rL   r   rM   r   Tr   )r/   eyer   rW   rm   rn   r   r   s        r   test_label_binarize_multiclassr   r  s    		AiiGII26!99}HAw	9hGGG	z	"	" 
 
w"	QU	
 	
 	
 	

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
s   A22A69A6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            d S # 1 swxY w Y   d S )
Nr=   r   rB   r   rL   r   r   Tr   )r/   r0   r   rW   rm   rn   r   )r   y_indrj   rK   rJ   r7   rh   s          r   test_label_binarize_multilabelr     s     HiiiIII677EiiGII5 HAAw	9hGGG	z	"	" 
 
w"	QU	
 	
 	
 	

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
s   "BBBc                     t          j        t                    5  t          ddgddgdd           d d d            n# 1 swxY w Y   t          j        t          d          5  t          ddgddg	           d d d            n# 1 swxY w Y   t          j        t          d
          5  t          ddggg d	           d d d            d S # 1 swxY w Y   d S )Nr   rL   r&   )rj   rK   rJ   zcontinuous target data is not rb   g333333?g@rl   zmismatch with the labelsrM   re   )rW   rm   rn   r   r   r   r   !test_invalid_input_label_binarizer     s   	z	"	" I I1v1vaHHHHI I I I I I I I I I I I I I I	z)I	J	J	J 3 3SzAq622223 3 3 3 3 3 3 3 3 3 3 3 3 3 3	z)C	D	D	D 4 4Ax33334 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4s3   >AA$BB
B
,CCCc                     t           | g dg dg dg          t          j        d                    }t          |t          j        g d                     d S )Nr=   )r   r   r   rB   rM   r   )r	   r/   aranger   r0   )ru   r8   s     r    test_inverse_binarize_multiclassr     sa    
&yyy+++yyy9::BIaLL C sBHYYY//00000r   c                      t                      } |                     dddt          j        g           |                     t          j        g          }t          |dg           dS )z]Check that label encoder encodes nans in transform.

    Non-regression test for #22628.
    r   r?   rL   N)r   r[   r/   nanrE   r   )r   y_transs     r   test_nan_label_encoderr     sW    
 
BFFCc26"###llBF8$$Gw$$$$$r   encoderc                     t          | d          rJ |                     g d          }|                     g d          }t          ||           dS )zxCheck that label encoders do not define set_output and work with y as a kwarg.

    Non-regression test for #26854.
    
set_outputr{   )rh   N)r   r2   r   )r   y_encoded_with_kwargy_encoded_positionals      r   *test_label_encoders_do_not_have_set_outputr    se     w-----"00???0CC"00AA+-ABBBBBr   zarray_namespace, device, dtyperh   r   )rM   r   	   r   r  rM   c                    t          ||          }|                    | |          }t          d          5  t                      }t                      }|                    |          }|                    |          }|                    |          }	|                    |           }|                    |           }
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                      }|                    |          }|                    |           }
t          |          d         j        |j        k    sJ t          |j	                  d         j        |j        k    sJ t          t          ||          |
           t          t          |j	        |          |j	                   d d d            d S # 1 swxY w Y   d S )N)deviceT)array_api_dispatchr   )r   asarrayr   r   r[   rE   r4   r   __name__r3   r   r   r2   )rh   array_namespacer  rO   xpxp_yxp_labelnp_labelxp_transformedxp_inv_transformednp_transformeds              r   'test_label_encoder_array_api_compliancer    s    
ov	6	6B::a:''D	4	0	0	0 X X>>>><<%%!++D11%77GG<<??!++A..^,,Q/8BKGGGG/003<KKKKX.//2;r{JJJJ,^R@@.QQQ,-?DDaHHH,X->CCXEVWWW>>>>!//55!//22^,,Q/8BKGGGGX.//2;r{JJJJ,^R@@.QQQ,X->CCXEVWWW-X X X X X X X X X X X X X X X X X Xs   H9I>>JJ)Gnumpyr/   rW   scipy.sparser   sklearnr   r   sklearn.preprocessing._labelr   r   r   r	   r
   r   sklearn.utils._array_apir   r   r   sklearn.utils._testingr   r   sklearn.utils.fixesr   r   r   r   r   sklearn.utils.multiclassr   sklearn.utils.validationr   	load_irisirisr   r:   rF   rN   markparametrizer_   rt   rx   r0   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 3 3 3 3 3 5 5 5 5 5 5x  &7 &7 &7R& & &7 7 78 "A"A"ABB$77* * 87 CB*$7F 7F 7Ft .99
 
 :9
,  BH___G444BHYYYg...BHaS(((	
 BH...f===BH___F333BHcU&)))	
 BH...//BH___%%BHcUOO	
" 	#""'   * + * 	 	 	 5("344  54! ! !. 000***&999***++
 	#""   : : :"9 "9 "9J .99
 
 :9
5 5 520 0 0" " "     F? ? ?B B B4 4 4:> > >5 5 5&& & &07 07 07fH H H&
 
 
 XJ  	
  
 
 
 4 4 4 .991 1 :91	% 	% 	%  0 02E2E2G2GH C C C $&O&O&Q&Q  !!$$$%%###$$ X X  X X Xr   