
    e!hc              
       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jL                  jO                  dg d      ejL                  jO                  dddg      d               Z(d Z)ejL                  jO                  de      d        Z*ejL                  jO                  d ejV                  g dd       ejV                  g dd       ejV                  dgd      f ejV                  g de,       ejV                  g de,       ejV                  dge,      f ejV                  g d       ejV                  g d       ejV                  dg      fgg d !      d"        Z-d# Z.ejL                  jO                  dd$d%g      d&        Z/d' Z0ejL                  jO                  d( ejV                  g dd       ejV                  g de,       ejV                  g d      gg d !      d)        Z1d* Z2ejL                  jO                  de      d+        Z3d, Z4d- Z5d. Z6d/ Z7d0 Z8d1 Z9d2 Z:d3 Z;d4 Z<d5 Z=d6 Z>d7 Z?d8 Z@ejL                  jO                  d9ejV                  gez   ez   ez   ez   ez         d:        ZAd; ZBejL                  jO                  de      d<        ZCd= ZDejL                  jO                  d> e
        e	        e       g      d?        ZEejL                  jO                  d@ e             ejL                  jO                  dA ejV                  g d       ejV                  g dB       ejV                  g dC      g      dD               ZFy)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                 >    t        | d      r| j                         } | S )Ntoarray)hasattrr   as    n/var/www/html/diagnosisapp-backend/venv/lib/python3.12/site-packages/sklearn/preprocessing/tests/test_label.pyr   r   $   s    q)IIKH    c                  D   g d} t        d      }t        j                  g dg      j                  }|j	                  |       }t        |j                  dg       t        ||       t        |j                  |      |        t        d      }|j	                  |       }t        |      sJ t        |j                  dg       t        ||j                                t        |j                  |j                               |        t        d      }g d} t        j                  g dg      j                  }|j	                  |       }t        |j                  d	dg       t        ||       t        j                  d
dgdd
gdd
gd
dgg      }t        |j                  |      |        g d} t        j                  g dg dg dg dg dg      }|j	                  |       }t        |j                  g d       t        ||       t        |j                  |      |        y )N)posr    r    r    Fsparse_outputr   r   r   r   r    T)negr    r    r$   r      r&   r   r$   r&   r   )spamhameggsr(   0r   r   r   r&   r   r   r&   r   r   r&   r   r   r&   r   r   r   )r*   r)   r(   r'   )
r   nparrayTfit_transformr   classes_inverse_transformr   r   )inplbexpectedgot	to_inverts        r   test_label_binarizerr:   *   s    'C	e	,B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            	         t               } t        j                  g dg dg dg      }| j                  g d      }t	        ||       t        j                  g dg dg dg dg dg dg      }| j                  g d      }t	        ||       y )Nr&   r   r   r   r&   r   r   r   r&   )bder   r   r   )r   r?   cr@   rA   f)r   r/   r0   r2   r   	transform)r6   r7   r8   s      r   "test_label_binarizer_unseen_labelsrF   S   sr    		BxxIy9:H


?
+Cx%xx	Iy)Y	JH ,,5
6Cx%r   c                      t        dd      } t        j                  g d      }t        j                  g dg      j                  }| j	                  |      }t        ||       t        | j                  |      |       t        dd      } t        j                  g d      }t        j                  g dg d	g d
g d	g dg      }| j	                  |      }t        ||       t        | j                  |      |       y )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   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                     t        j                  d      }|j                  g d|       }|r|j                         }t	               j                  |      }|j                  ddg      }t        |dgdgg       y)ziChecks that LabelBinarizer works with pandas nullable dtypes.

    Non-regression test for gh-25637.
    pandas)	r&   r   r   r&   r   r&   r&   r   r&   rO   r&   r   N)pytestimportorskipSeriesuniquer   fitrE   r   )rO   rS   pdy_truer6   y_outs         r   $test_label_binarizer_pandas_nullabler_   }   sn     
		X	&BYY2%Y@F 				f	%BLL!Q EusQCj)r   c                     t        j                  g d      } t               j                  |       }g d}d}t	        j
                  t        |      5  |j                  |       d d d        t               }d}t	        j
                  t        |      5  |j                  g        d d d        t	        j
                  t        |      5  |j                  g        d d d        g d}d}t        dd	
      }t	        j
                  t        |      5  |j                  |       d d d        d}t        dd
      }t	        j
                  t        |      5  |j                  |       d d d        d}t        d	dd      }t	        j
                  t        |      5  |j                  |       d d d        g d	dgdgg ddgg}d}t	        j
                  t        |      5  t               j                  |       d d d        d}t	        j
                  t        |      5  t        t        j                  g dg dg      dg dd       d d d        d}t	        j
                  t        |      5  t               j                  t        j                  d	dgdd	gg             d d d        t	        j
                  t        |      5  t        t        j                  d	dgdd	gg      g d       d d d        y # 1 sw Y   xY w# 1 sw Y   ^xY w# 1 sw Y   6xY w# 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   MxY w# 1 sw Y   
xY w# 1 sw Y   xY w# 1 sw Y   y xY w)Nr#   )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      s   &I				i	(B(KPG	z	1 "
[!" 
	B>G	z	1 
R	z	1 !
R !  LCG	!q	1B	z	1 
|CG	!q	1B	z	1 
|	5  
!q	EB	z	1 
| !Q!i!5MOG	z	1 6&&}56 2G	z	1 
&hh	9-. 		

 QG	z	1 9RXX1v1v&6789	z	1 Frxx!Q!Q 019EF F_" "
 ! !   6 6

 
9 9F Fsx   K4LLLL(L5M+M,3M)M(4K>LLL%(L25L?MMM%(M1csr_containerc                 @   d}t        j                  t        |      5  t         | ddgddgg      dddgd       d d d        d}t        j                  t        |      5  t         | ddgddgg      dg d	d       d d d        y # 1 sw Y   MxY w# 1 sw Y   y xY w)
Nzfoo format is not 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      s     ,G	z	1 
&aVaV,-F		

 RG	z	1 
&aVaV,-		

 

 

 
s   B!BB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               }|j                  |        t        |j                  |       t        |j	                  |       g d       t        |j                  g d      |        t               }|j                  |       }t        |g d       t        j                  t        d      5  |j	                  |       d d d        y # 1 sw Y   y xY w)N)r&   r   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FF6Nr{{G,r||F+_=r++O<fE	B


6
"CsO,	z	9 
W  s   0CCc                  l   t               } | j                  g d       t        | j                  g d       t        | j	                  g d      g d       t        | j                  g d      g d       t        j                  t              5  | j	                  ddg       d d d        y # 1 sw Y   y xY w)Nr&   r&   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5r||$;<>ST
235L 
z	" 
aV  s   B**B3r}   r|   c                     t               }|j                  t        j                  ddg|              d}t	        j
                  t        |      5  |j                  d       d d d        y # 1 sw Y   y xY w)Napple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     sY    	BFF288Wh'u56
 C	z	- 
W  s   A++A4c                     t               } t        j                  t              5  | j	                  g        d d d        t        j                  t              5  | j                  g        d d d        t               } | j                  g d       d}t        j                  t        |      5  | j                  dg       d d d        t        j                  t        |      5  | j                  g d       d d d        d}t        j                  t        |      5  | j                  d       d d d        y # 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   fxY w# 1 sw Y   y xY w)N)r&   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 ! !! ! !# #+ +
! !s;   D5E+E!EE&5D?EEE#&E/r   c                     t               }|j                  |        |j                  g       }t        t	        j
                  g       |       |j                  g       }t        t	        j
                  g       |       y )N)r   r[   rE   r   r/   r0   r4   )r   r   transformedinverse_transformeds       r   test_label_encoder_empty_arrayr   3  sZ     
BFF6N,,r"Krxx|[1..r2rxx|%89r   c                  d   d d d g} t        j                  g dg dg dg      } | d          }dD ]z  }| D ]q  }t        |	      }|j                   |             }t	        |      |k(  sJ |r?|j
                  j                  |j                  j                  k(  sJ |j                         }t        ||       t        g d
|j                         |j                  |      |k(  sJ t        |	      }|j                   |             j                   |             }t	        |      |k(  sJ |r?|j
                  j                  |j                  j                  k(  sJ |j                         }t        ||       t        g d
|j                         |j                  |      |k(  rrJ  } y )Nc                  
    g dS N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                  F    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      d6lDJA7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F
 HHiI>?MfQikG& 9 	9C%MBC##CE*CC=M111{{((CJJ,<,<<<<kkm}c2y#,,7((-888 &MBC''#%.**351CC=M111{{((CJJ,<,<<<<kkm}c2y#,,7((-888/	99r   c                 D   t        t        d      t        d      ddhg      }t        d      }|j                  |       t        j                  t
              5  |j                   | t        j                  g dg dg d	g                   d d d        y # 1 sw Y   y xY w)
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d4j1a&1
2C
E
2CGGCL	z	" 
"((Iy)#DEF	

 
 
s   4BBc                     d d d g} t        j                  g dg dg dg      } | d          }| D ]  }t               }|j                   |             }t	        ||       t	        g d|j
                         |j                  |      |k(  sJ t               }|j                   |             j                   |             }t	        ||       t	        g d|j
                         |j                  |      |k(  rJ  y )	Nc                  
    g dS r   r   r   r   r   r   z+test_multilabel_binarizer.<locals>.<lambda>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                  F    t        t        d      t        d      ddhg      S r   r   r   r   r   r   z+test_multilabel_binarizer.<locals>.<lambda>|  r   r   r   r<   r   r   re   )	r/   r0   r   r2   r   r3   r4   r[   rE   )r   r   r   r5   r   r8   s         r   test_multilabel_binarizerr   w  s     	'%8F
 HHiI>?MfQikG 5!#&=#.9cll3$$S)W444 "#ggcen&&su-=#.9cll3$$S)W4445r   c                      t               } ddgdgg g}t        j                  ddgddgddgg      }t        | j	                  |      |       y )Nr&   rL   r   )r   r/   r0   r   r2   )r   rh   Ys      r   &test_multilabel_binarizer_empty_sampler     sR    

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  | j                  |      j                  ddgddgg      }d d d        t        j                  g dg dg      }t        g d	
      } t        j                  t
        |      5  | j                  |      j                  ddgddgg      }d d d        t        |       y # 1 sw Y   xY w# 1 sw Y   "xY w)Nr&   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 8%%1v1v&678 	)Y'(A
i
0C	k	9 8%%1v1v&678vq!8 8
8 8s   'C7;'D7D Dc                  J   g d} t        j                  g dg dg dg      }t        g d      }t        |j	                  |       |       t        |j
                  g d       t        g d      }t        |j                  |       j                  |       |       t        |j
                  g d       t        g d      }t        |j	                  |       t        j                  dgdgdgg|f             t        |j
                  g d       t        |       } t        g d      }t        |j                  |       j                  |       |       d	}t        g d
      }t        j                  t        |      5  |j                  |        d d d        y # 1 sw Y   y xY w)Nr   r   r<   r&   r   r&   r&   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     sE   
 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   s   >FF"c                     g d} t        j                  g dg dg dg      }t        j                  g dg dg dg      }t        g d      }t        |j	                  |       |       g d|_        t        |j	                  |       |       y )	Nr   r   r<   r   r   r   rl   re   )r/   r0   r   r   r2   rj   )r5   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                  n   dgdgdgg} t        j                  g dg dg dg      }t               }t        |j	                  |       |       t        |j                  |      |        t               }t        |j                  |       j                  |       |       t        |j                  |      |        y )Nr&   r   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HHiI>?M

Cs((-}=s,,];SA 
Cswws|--c2MBs,,];SAr   c                  R   t        g d      } g dg dfg dg dfg d| fg}t        j                  g dg dg d	g      }|D ]  \  }}t               }t        j                  |t        
      }t        |j                  |      |       t        |j                  |       t        j                  |j                  |      t        
      }t        ||       t               }t        |j                  |      j                  |      |       t        |j                  |       t        j                  |j                  |      t        
      }t        ||        t               }t        j                  t              5  |j                  i i ddifg       d d d        y # 1 sw Y   y xY w)N)r   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8M	)?;	)?;	.>F
 HHiI>?M 3W!#hhs&)3,,S1=A3<<1HHS%:%:=%IQWX,c2 "#3773<11#6F3<<1HHS%:%:=%IQWX,c23  
C	y	! 4B"sCj!1234 4 4s   <FF&c                      dg} t        j                  ddgg      }t               }t        |j	                  |       |       y )Nr&   r&   r&   r   r&   )r/   r0   r   r   r2   r   s      r   $test_multilabel_binarizer_non_uniquer     s:    .CHHq!fX&M

Cs((-}=r   c                  (   dg} t               }|j                  |        t        j                  t              5  |j                  t        j                  ddgg             d d d        |j                  t        j                  ddgg             |j                  t        j                  ddgg             |j                  t        j                  ddgg             t        j                  t              5  |j                  t        j                  dgg             d d d        t        j                  t              5  |j                  t        j                  g dg             d d d        y # 1 sw Y   xY w# 1 sw Y   `xY w# 1 sw Y   y xY w)Nr   r&   rM   r   r&   r&   r&   )r   r2   rW   rm   rn   r4   r/   r0   )r5   r   s     r   ,test_multilabel_binarizer_inverse_validationr   
  s2   .C

Cc	z	" 2bhhAx012 "((QF8,-"((QF8,-"((QF8,- 
z	" /bhhuo./	z	" 5bhh	{345 52 2/ /5 5s#   (E/6'E<>(F/E9<FFc                  `   t        ddgg d      } t        j                  g dg dg      }t        | |       t        ddgg d      } t        j                  g dg dg      }t        | |       t        g d	g d
      } t        j                  g dg dg dg dg      }t        | |       y )Nr&   r   )r&   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
6Cxx|45HsH% !Q
6Cxx|45HsH%
|
<Cxx|\<PQHsH%r   c           	         dD ]T  }|dk(  s|dk7  r5|r3t        j                  t              5  t        | ||||       d d d        Ct        | ||||      }t	        t        |      |       t        |      |k(  sJ t        |       }|dk(  rt        ||      }nt        |||||z   dz        }t	        t        |      t        |              t        |||      }	|	j                  |       }t	        t        |      |       t        |      |k(  sJ |	j                  |      }
t	        t        |
      t        |              t        |
      t        |       k(  rUJ  y # 1 sw Y   !xY w)	Nr   r   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   ,  su   & /7Ni1n-z* #''"/  #'
	 	79-x8	"m333  "\!3IwOH 6"%	1S8	H 	78,gaj9 9M
 $$Q'	79-x8	"m333--i87>2GAJ?'8A;666_/7 s   EE&	c                  @   g d} ddg}d}d}t        j                  ddgddgddgg      d d df   j                  d      }t        | ||||       g d} ddg}d}d}t        j                  ddgddgddgg      d d df   j                  d      }t        | ||||       y )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xx!R2q'Ar734QT:BB7KHAw	9hG 	A!fGIIxx!Q!Q!Q01!Q$7??HHAw	9hGr   c                      g d} g d}d}d}dt        j                  d      z  }t        | ||||       t        j                  t
              5  t        | |d|d       d d d        y # 1 sw Y   y xY w)Nr   r&   rL   rL   r   rM   r   Tr   )r/   eyer   rW   rm   rn   r   r   s        r   test_label_binarize_multiclassr   r  sl    AGII266!9}HAw	9hG	z	" 
w"	QU	

 
 
s   A''A0arr_typec                    t        j                  g dg dg dg      }g d}d}d}||z  } | |      }t        |||||       t        j                  t
              5  t        ||d|d	       d d d        y # 1 sw Y   y xY w)
Nr=   r   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     HHiI67EGII5 HAAw	9hG	z	" 
w"	QU	

 
 
s   A66A?c                     t        j                  t              5  t        ddgddgdd       d d d        t        j                  t        d      5  t        ddgddg	       d d d        t        j                  t        d
      5  t        ddggg d	       d d d        y # 1 sw Y   uxY w# 1 sw Y   LxY w# 1 sw Y   y xY w)Nr   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1v1vaHI	z)I	J 3SzAq623	z)C	D 4Ax34 4	I I3 34 4s#   B"B.B:"B+.B7:Cc                     t         | g dg dg dg      t        j                  d            }t        |t        j                  g d             y )Nr=   )r   r   r   rB   rM   r   )r	   r/   aranger   r0   )ru   r8   s     r    test_inverse_binarize_multiclassr     s:    
&y+y9:BIIaLC sBHHY/0r   c                      t               } | j                  dddt        j                  g       | j	                  t        j                  g      }t        |dg       y)z]Check that label encoder encodes nans in transform.

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

    Non-regression test for #26854.
    
set_outputr{   )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"00A+-ABr   zarray_namespace, device, dtyperh   r   )rM   r   	   r   r  rM   c                    t        ||      }|j                  | |      }t        d      5  t               }t               }|j	                  |      }|j                  |      }|j                  |      }	|j	                  |       }|j                  |       }
t        |      d   j                  |j                  k(  sJ t        |	      d   j                  |j                  k(  sJ t        |j                        d   j                  |j                  k(  sJ t        t        ||      |
       t        t        |	|      |        t        t        |j                  |      |j                         t               }t               }|j                  |      }|j                  |       }
t        |      d   j                  |j                  k(  sJ t        |j                        d   j                  |j                  k(  sJ t        t        ||      |
       t        t        |j                  |      |j                         d d d        y # 1 sw Y   y xY w)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	6B::a:'D	4	0 X>><<%!++D1%77G<<?!++A.^,Q/88BKKGGG/03<<KKKX../2;;r{{JJJ,^R@.Q,-?DaH,X->->CXEVEVW>>!//5!//2^,Q/88BKKGGGX../2;;r{{JJJ,^R@.Q,X->->CXEVEVW-X X Xs   HII)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 5x&7R&78 "AB$7* 8 C*$7Ft .9
 :
,  BHH_G4BHHYg.BHHaS(	
 BHH.f=BHH_F3BHHcU&)	
 BHH./BHH_%BHHcUO	
" 	#'  *+* 	 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 $&O&Q !$%#$XXr   