
    Ug]\              
       H   d dl Zd dlZd dlmZ d dlmZ d dlmZm	Z	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j                    Zd	 Zd
 Zd Zd Z ej!        "                    dg d          ej!        "                    dddg          d                         Z#e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& Z+ej!        "                    d' ej&        g dd           ej&        g de'           ej&        g d          gg d           d(             Z,d) Z-ej!        "                    de          d*             Z.d+ Z/d, Z0d- Z1d. Z2d/ Z3d0 Z4d1 Z5d2 Z6d3 Z7d4 Z8d5 Z9d6 Z:d7 Z;ej!        "                    d8ej&        gez   ez   ez   ez   ez             d9             Z<d: Z=ej!        "                    de          d;             Z>d< Z?ej!        "                    d= e	             e             e
            g          d>             Z@dS )?    N)issparse)datasets)LabelBinarizerLabelEncoderMultiLabelBinarizer_inverse_binarize_multiclass_inverse_binarize_thresholdinglabel_binarize)assert_array_equalignore_warnings)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    e/var/www/surfInsights/venv3-11/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_binarizerr6   "   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<   r=   f)r   r+   r,   r.   r   	transform)r2   r3   r4   s      r   "test_label_binarizer_unseen_labelsrB   K   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!   )rD   r   r   rD      )   rH   r"   rH   r   )rD   rD   rD   rH   )rD   rD   rH   rD   )rD   rH   rD   rD   )rH   rD   rD   rD   )r   r+   r,   r-   r.   r   r0   )r2   r1   r3   r4   s       r   'test_label_binarizer_set_label_encodingrJ   Y   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"   rK   r"   r   N)pytestimportorskipSeriesuniquer   fitrA   r   )rK   rO   pdy_truer2   y_outs         r   $test_label_binarizer_pandas_nullabler[   u   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   )rH   rI   )r   )r   rH   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.rH   r"   rE   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rF   rG   r   rI   )r   r"   rI   z?You appear to be using a legacy multi-label data representationz!output_type='binary', but y.shaper"   rH   rI   )rH   r"   rI   binaryr   youtput_typeclasses	thresholdz@Multioutput target data is not supported with label binarizationrf   )r+   r,   r   rW   rS   raises
ValueErrorrA   r0   r.   r	   r
   )	one_classr2   multi_labelerr_msginput_labelsy_seq_of_seqss         r   test_label_binarizer_errorsrp      sI    &&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 supportedr^   r"   rH   foor   rc   zAThe number of class is not equal to the number of dimension of y.ra   )rS   ri   rj   r	   )rq   rm   s     r   "test_label_binarizer_sparse_errorsrt      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)rH   r"   rI   r"   rI   int64rR   ra      )r;   r   r?   r   r?   r   r;   r?   r<   )ru   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   rH   r   rH   zunseen labelsr^   )
r   rW   r   r/   rA   r0   r.   rS   ri   rj   )valuesrf   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"   rv      r   )r   r   r"   rv   r   )r   r"   rv   rv   r   r   r   )r"   rH   rI   rI   rv   r   r   r      )	r   rW   r   r/   rA   r0   rS   ri   rj   )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ry   rx   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orangerR   zshould be a 1d arrayr^   )r   rW   r+   r,   rS   ri   rj   rA   )rK   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"   rH   rI   r   r"   z!contains previously unseen labelsr^   rD   )rD   z should be a 1d array.+shape \(\) )r   rS   ri   rj   rA   r0   rW   )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   rW   rA   r   r+   r,   r0   )r|   r~   transformedinverse_transformeds       r   test_label_encoder_empty_arrayr   ,  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r]   r"   )r"   rH    r   r   r   <lambda>z9test_sparse_output_multilabel_binarizer.<locals>.<lambda>C      &&& r   c                      ddhdhddhfS NrH   rI   r"   r   r   r   r   r   z9test_sparse_output_multilabel_binarizer.<locals>.<lambda>D      !Q!q!f% r   c                  ^    t          t          d          t          d          ddhg          S Nr]   r   r"   rH   iterr   r   r   r   z9test_sparse_output_multilabel_binarizer.<locals>.<lambda>E  %    d6llDJJA788 r   r   r"   r"   r8   r"   r"   r   r   TFr   ra   )r+   r,   r   r.   r   indicesrK   indptrr   r   r/   r0   rW   rA   )inputsindicator_matinverser   r1   mlbr4   s          r   'test_sparse_output_multilabel_binarizerr   @  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 )
Nr]   r   r"   rH   Fr   r   )rH   r   r   r   )	r   r   rW   rS   ri   rj   r0   r+   r,   )rq   r1   r   s      r   .test_sparse_output_multilabel_binarizer_errorsr   e  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>s  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>t  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>u  r   r   r   r8   r   r   ra   )	r+   r,   r   r.   r   r/   r0   rW   rA   )r   r   r   r1   r   r4   s         r   test_multilabel_binarizerr   p  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"   rH   r   )r   r+   r,   r   r.   )r   rd   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"   rH   r   zunknown class.* will be ignoredr^   rv   r8   r9   ra   rh   )	r   r+   r,   rS   warnsUserWarningrW   rA   r   )r   rd   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   r8   r"   r   r"   r"   rI   rH   rh   )rv   r"   rI   rH   r   ztThe classes argument contains duplicate classes. Remove these duplicates before passing them to MultiLabelBinarizer.)r"   rI   rH   rI   r^   )r+   r,   r   r   r.   r/   rW   rA   hstackr   rS   ri   rj   )r1   r   r   rm   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   r8   r   r   r   rh   ra   )r+   r,   r   r   r.   rf   )r1   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   rH   r9   r8   r:   )r+   r,   r   r   r.   r0   rW   rA   r1   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   rH   rI   ))23)1)r   r   )r   r   r   ))r;   r?   r   )r   r;   rw   ))r   r   )r   )r   r   r   r8   r   rR   r   r;   )r   r+   r,   r   rx   r   r.   r/   r0   rW   rA   rS   ri   	TypeError)tuple_classesr   r   r1   rf   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+   r,   r   r   r.   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"   rI   r   r"   r"   r"   )r   r.   rS   ri   rj   r0   r+   r,   )r1   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"   rH   rv   r   rh   r*   r'   )r"   r   rv   rH   r)   )r   r"   rH   rI   )rI   rH   r   r"   r(   )r
   r+   r,   r   )outr3   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   rf   rF   rG   r   
multiclassrh   g       @)re   rf   rg   r`   )rS   ri   rj   r
   r   r   r   r   r   r	   r   r.   r0   )rd   rf   rG   rF   r3   r   	binarizedy_typeinversedr2   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 )Nr9   r   r"   rH   r   )r   r"   rI   )r+   r,   reshaper   rd   rf   rG   rF   r3   s        r   test_label_binarize_binaryr   X  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"   rH   rH   r   rI   r   Tr   )r+   eyer   rS   ri   rj   r
   r   s        r   test_label_binarize_multiclassr   k  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 )
Nr9   r   r>   r   rH   r   r   Tr   )r+   r,   r   rS   ri   rj   r
   )r   y_indrf   rG   rF   r3   rd   s          r   test_label_binarize_multilabelr   z  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   rH   r"   )rf   rG   rF   zcontinuous target data is not r^   g333333?g@rh   zmismatch with the labelsrI   ra   )rS   ri   rj   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 )Nr9   )r   r   r   r>   rI   r   )r   r+   aranger   r,   )rq   r4   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;   rH   N)r   rW   r+   nanrA   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_outputrw   )rd   N)r   r.   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   )Anumpyr+   rS   scipy.sparser   sklearnr   sklearn.preprocessing._labelr   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   r6   rB   rJ   markparametrizer[   rp   rt   r,   rx   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,        ! ! ! ! ! !                      G F F F F F F F              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 C Cr   