Ë
    ÜÍ:j¬\  ã                   ó0  — d dl Z d dlmZ 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 d dlmZ d dlmZmZmZ d dlmZmZmZmZmZmZ d d	lmZ d d
lmZmZmZm Z m!Z! d dl"m#Z# d dl$m%Z%m&Z&m'Z'm(Z(m)Z)m*Z*  ejV                  d dgdd gg«      Z,d e,dd…d f<    e-eez   ez   e z   e!z   «      e.e/ej`                  ejb                  e2ejf                  ffd„Z4g  e4ejj                  jm                  d«      jo                  dd¬«      ee/f¬«      ¢d dgdd gg‘d dgg‘ e4e,ee/f¬«      ¢ e4d dgdd gg«      ¢ e4d d gd d gg«      ¢ e4d dgg«      ¢ddgddgg‘ ejV                  ddgddgg«      ‘ ejV                  ddgddgg«      ‘ e ejV                  ddgddgg«      «      ‘g d¢ ejV                  g d¢«       ejV                  g d¢ej`                  ¬«       ejV                  g d¢ejb                  ¬«       ejV                  g d¢e2¬«       ejV                  g d¢ejf                  ¬«       ejV                  dgd gdgg«       e ejV                  g d¢«      «      g d¢g d¢ ejV                  g d¢«       ejV                  g d¢e8¬«       ejV                  g d¢e8¬«      gg d¢g d¢gddgd d!gg ejV                  g d¢g d¢g«       ejV                  g d¢g d¢gej`                  ¬«       ejV                  g d¢g d¢gejb                  ¬«       ejV                  g d¢g d¢ge2¬«       ejV                  g d¢g d¢gejf                  ¬«      g e4g d¢g d¢geez   e/ej`                  ejb                  e2ejf                  f¬«      ¢ ejV                  ddgd d!gg«      ‘ ejV                  ddgd d!gg«      ‘ ejV                  ddgd d!gge8¬«      ‘ ejV                  g d¢g«      ‘ e ejV                  g d¢g«      «      ‘d dgddgg d g ejV                  g d"¢«       ejV                  g d"¢e.¬«       ejV                  g d"¢ej`                  ¬«       ejV                  g d"¢ejb                  ¬«       ejV                  g d"¢e2¬«       ejV                  g d"¢ejf                  ¬«       ejV                  d gdgg«       e ejV                  d gdgg«      «      ddgdd#gdgddgd$d%g ejV                  d$d%g«      ddg ejV                  d$d%ge8¬«      gd&gd d'g ejV                  d gd'gg«       ejV                  d gd'ggejf                  ¬«      g ejV                  d d'gd'd gg«       ejV                  d d'gd'd ggejf                  ¬«       ejV                  d d'gg«      g e4d d'gd'd ggeez   e2ejf                  f¬«      ¢ e4d d'ggeez   e2ejf                  f¬«      ¢g g ejV                  g ge8¬«      d(g ejV                   ejV                  g «       ejV                  g d)¢«      ge8¬«       ejV                  g «       ejV                  g d)¢«      gh d*£ddhg e9g d)¢«       e9ddg«      gddd+œd dig ejV                  d «       ejV                  g g g«       ejV                  d dgddggd,d#gd-d.ggg«      gd/œZ:ejj                  jm                  d«      jo                  dd¬«      d dgdd ggd dgge,d d gd d ggddgddgg ejV                  ddgddgg«       ejV                  ddgddgg«       e ejV                  ddgddgg«      «      g	g d¢ ejV                  g d¢«       ejV                  g d¢ej`                  ¬«       ejV                  g d¢ejb                  ¬«       ejV                  g d¢e2¬«       ejV                  g d¢ejf                  ¬«       ejV                  dgd gdgg«       e ejV                  g d¢«      «      g d¢g	g d¢g d¢g ejV                  g d¢g d¢g«       ejV                  g d¢g d¢gej`                  ¬«       ejV                  g d¢g d¢gejb                  ¬«       ejV                  g d¢g d¢ge2¬«       ejV                  g d¢g d¢gejf                  ¬«       ejV                  g d¢g«       e ejV                  g d¢g«      «      gd dgddgg d g ejV                  g d"¢«       ejV                  g d"¢e.¬«       ejV                  g d"¢ej`                  ¬«       ejV                  g d"¢ejb                  ¬«       ejV                  g d"¢e2¬«       ejV                  g d"¢ejf                  ¬«       ejV                  d gdgg«       e ejV                  d gdgg«      «      ddgdd#ggd&gd d'g ejV                  d gd'gg«       ejV                  d gd'ggejf                  ¬«      g ejV                  d d'gd'd gg«       ejV                  d d'gd'd ggejf                  ¬«       ejV                  d d'gg«      gg gd(g ejV                  d «       ejV                  d dgddggd,d#gd-d.ggg«      gd/œZ;h d*£ddd+œd#gd#gd+œd$ e9g d)¢«      dgZ<dgdgd dggg d0¢ ejV                  g ddggd1¬«       e ejV                  g ddggd1¬«      «      gZ=d2„ Z>ed3„ «       Z?ej€                  jƒ                  d4 e«       «      d5„ «       ZBd6„ ZCd7„ ZDd8„ ZEd9„ ZFej€                  jƒ                  d: e«       «      d;„ «       ZGd<„ ZHd=„ ZId>„ ZJd?„ ZKej€                  jƒ                  d@g dA¢«      dB„ «       ZLej€                  jƒ                  dCe«      dD„ «       ZMdE„ ZNdF„ ZOej€                  jƒ                  dGdHdIg«      dJ„ «       ZPy)Ké    N)Úproduct)Úissparse)Úconfig_contextÚdatasets)ÚShuffleSplit)ÚSVC)Ú_atol_for_typeÚmove_toÚ)yield_namespace_device_dtype_combinations)Ú_array_api_for_testsÚ_convert_containerÚassert_allcloseÚassert_array_almost_equalÚassert_array_equalÚ'skip_if_array_api_compat_not_configured)Ú_NotAnArray)ÚCOO_CONTAINERSÚCSC_CONTAINERSÚCSR_CONTAINERSÚDOK_CONTAINERSÚLIL_CONTAINERS)Ú_safe_split)Ú_ovr_decision_functionÚcheck_classification_targetsÚclass_distributionÚis_multilabelÚtype_of_targetÚunique_labelsé   c           	      óP   — |D ��cg c]  }|D ]  } || |¬«      ‘Œ Œ c}}S c c}}w )N©Údtype© )ÚdataÚsparse_containersÚdtypesÚsparse_containerr"   s        úx/home/mcse/projects/srt_converter/srt-converter-venv/lib/python3.12/site-packages/sklearn/utils/tests/test_multiclass.pyÚ_generate_sparser)   .   s@   € ð !2÷àØòð ñ 	˜ UÖ+ðØ+óð ùó s   †"é*   é   )é
   r,   )Úsize)r%   r&   éÿÿÿÿéýÿÿÿé   )
r   r   r+   r+   r   é   r+   r1   r1   r1   ©r   r   r+   r!   ©r   r   r+   ©ÚaÚbÚc)r   r   r+   r+   )r   r1   r+   r1   r5   r6   r7   Úd)
r   r   r   r   r   r   r   r   r   r   é   ÚabcÚdefgñhãˆµøä>ç      à?r#   ©r   r+   r0   >   r   r+   r0   ©r   r   r1   é   é   )úmultilabel-indicatorÚ
multiclassúmulticlass-multioutputÚbinaryÚ
continuousúcontinuous-multioutputÚunknown)r#   r+   r>   Úobjectc            
      óÄ  — t        j                  t        d¬«      5  t        «        d d d «       t	        t        t        d«      «      t        j                  d«      «       t	        t        t        j                  d«      «      t        j                  d«      «       t	        t        g d¢«      t        j                  g d¢«      «       t	        t        t        j                  g d¢g d¢g d¢g«      «      t        j                  d	«      «       t	        t        t        j                  g d¢g d¢g«      «      t        j                  d	«      «       t	        t        g d¢t        d
«      «      t        j                  d
«      «       t	        t        ddd«      t        j                  d	«      «       t        j                  t        d¬«      5  t        g d¢t        j                  d«      «       d d d «       t        j                  t        d¬«      5  t        t        j                  d«      t        j                  d«      «       d d d «       t	        t        t        j                  d«      t        j                  d«      «      t        j                  d
«      «       t        j                  t        d¬«      5  t        g d¢g d¢«       d d d «       t        j                  t        d¬«      5  t        t        j                  g d¢«      t        j                  g d¢«      «       d d d «       y # 1 sw Y   �ŒþxY w# 1 sw Y   �ŒKxY w# 1 sw Y   �ŒxY w# 1 sw Y   Œ‹xY w# 1 sw Y   y xY w)NzNo argument has been passed©Úmatchr,   )r1   r   r+   )r   r+   r1   )r   r   r   )r   r   r   )r   r   r   r0   r9   r3   )r   )r+   r   zMix type of y not allowed)r9   r9   z'Multi-label binary indicator input with)r9   r1   )r1   r9   z.Mix of label input types \(string and number\)r4   )
ÚpytestÚraisesÚ
ValueErrorr   r   ÚrangeÚnpÚarangeÚarrayÚonesr#   ó    r(   Útest_unique_labelsrU     s6  € ä	�‰”zÐ)FÔ	Gñ ÜŒ÷ô ”}¤U¨2£YÓ/´·±¸2³Ô?Ü”}¤R§Y¡Y¨r£]Ó3´R·Y±Y¸r³]ÔCÜ”}¢YÓ/´·±º)Ó1DÔEô Ü”b—h‘h¢	ª9²iÐ@ÓAÓBÄBÇIÁIÈaÃLôô ”}¤R§X¡Xªyº)Ð.DÓ%EÓFÌÏ	É	ÐRSËÔUô ”}¢Y´°a³Ó9¼2¿9¹9ÀQ»<ÔHÜ”} Y°°fÓ=¼r¿y¹yÈ»|ÔLô 
�‰”zÐ)DÔ	Eñ 2Ü’i¤§¡¨£Ô1÷2ä	�‰”zÐ)RÔ	Sñ 8Ü”b—g‘g˜f“o¤r§w¡w¨v£Ô7÷8ô ”}¤R§W¡W¨V£_´b·g±g¸f³oÓFÌÏ	É	ÐRSËÔUô 
�‰ÜÐKô
ñ 2ô 	’i¢Ô1÷2ô 
�‰ÜÐKô
ñ Fô 	”b—h‘hšyÓ)¬2¯8©8²OÓ+DÔE÷	Fð F÷Añ ú÷(2ñ 2ú÷8ñ 8ú÷2ð 2ú÷Fð Fús;   œL#Ç"L0È
3L=Ê/M
Ë#7MÌ#L-Ì0L:Ì=MÍ
MÍMc                  óÌ  — t        j                  g d¢«      } t        j                  g d¢t        ¬«      }t        j                  g d¢«      }t        d¬«      5  t	        j
                  t        d¬«      5  t        | |«       ddd«       t	        j
                  t        d¬«      5  t        ||«       ddd«       ddd«       y# 1 sw Y   ŒBxY w# 1 sw Y   ŒxY w# 1 sw Y   yxY w)	zÄTest error is raised for mixed string and numerical input and dispatch enabled.

    Mixed string and numerical NumPy input with array API dispatch enabled should raise
    the correct error.
    )r5   r6   r5   r5   r!   ©r   r   r   r   T©Úarray_api_dispatchzMix of label input typesrJ   N)rP   rR   rH   r   rL   rM   rN   r   )Úy_stringÚy_objectÚy_numericals      r(   Ú0test_unique_labels_mixed_str_numerical_array_apir]   7  s°   € ô �x‰xÒ,Ó-€HÜ�x‰xÒ,´FÔ;€HÜ—(‘(š<Ó(€Kä	¨4Ô	0ñ 1Ü�]‰]œ:Ð-GÔHñ 	1Ü˜( KÔ0÷	1ä�]‰]œ:Ð-GÔHñ 	1Ü˜( KÔ0÷	1÷1ð 1÷	1ð 	1ú÷	1ð 	1ú÷1ð 1ús<   ÁCÁ4CÂ#CÂ$CÂ1CÃC	ÃCÃC	ÃCÃC#z#array_namespace, device, dtype_namec                 ó–  — t        | |«      \  }}t        j                  g d¢|¬«      }t        j                  g d¢|¬«      }|j                  ||¬«      }|j                  ||¬«      }t	        ||«      }	t        d¬«      5  t	        ||«      }
t        |
t        d¬«      }t        |	|t        |«      ¬	«       d
d
d
«       y
# 1 sw Y   y
xY w)z/Check `unique_labels` compliance for array API.r=   r!   )r+   r0   r1   ©ÚdeviceTrX   Úcpu)Úxpr`   ©ÚatolN)	r   rP   rR   Úasarrayr   r   r
   r   r	   )Úarray_namespacer`   Ú
dtype_namerb   Údevice_Úy1_npÚy2_npÚy1_xpÚy2_xpÚ	labels_npÚ	labels_xpÚlabels_xp_nps               r(   Útest_unique_labels_array_apirp   I  s°   € ô ' ¸Ó?�K€BˆÜ�H‰H’Y jÔ1€EÜ�H‰H’Y jÔ1€Eà�J‰J�u WˆJÓ-€EØ�J‰J�u WˆJÓ-€Eä˜e UÓ+€IÜ	¨4Ô	0ñ RÜ! %¨Ó/ˆ	Ü˜y¬R¸Ô>ˆÜ˜	 <´nÀZÓ6PÕQ÷R÷ Rñ Rús   Â 6B?Â?Cc                  ód  — t        j                  d«      } d}t        j                  t        |¬«      5  t        | «       ddd«       t        j                  d«      } t        j                  «       5  t        j                  d«       t        | «       ddd«       y# 1 sw Y   Œ\xY w# 1 sw Y   yxY w)zÁCheck that we raise a warning when the number of unique classes is greater than
    50% of the number of samples.

    We need to check that we don't raise if we have less than 20 samples.
    é   zJThe number of unique classes is greater than 50% of the number of samples.rJ   Nr,   Úerror)	rP   rQ   rL   ÚwarnsÚUserWarningr   ÚwarningsÚcatch_warningsÚsimplefilter)ÚyÚmsgs     r(   Ú9test_check_classification_targets_too_many_unique_classesr{   ]  sŒ   € ô 	�	‰	�"‹€AØ
W€CÜ	�‰”k¨Ô	-ñ (Ü$ QÔ'÷(ô 	�	‰	�"‹€AÜ	×	 Ñ	 Ó	"ñ (Ü×Ñ˜gÔ&Ü$ QÔ'÷(ð (÷(ð (ú÷
(ð (ús   ³BÁ0!B&ÂB#Â&B/c                  óh  — dD ]  } t         |    D ]  }t        |«       Œ Œ t        D ]/  }t        j                  t
        «      5  t        |«       d d d «       Œ1 dD ]=  }t         |   D ]/  }t        j                  t
        «      5  t        |«       d d d «       Œ1 Œ? y # 1 sw Y   Œ~xY w# 1 sw Y   ŒJxY w)N)rD   rB   rA   )rG   rE   rF   rC   )ÚEXAMPLESr   ÚNON_ARRAY_LIKE_EXAMPLESrL   rM   rN   )Úformatry   ÚexampleÚy_types       r(   Útest_unique_labels_non_specificr‚   q  sÄ   € ð Cò ˆÜ˜&Ñ!ò 	ˆAÜ˜!Õñ	ðô
 +ò #ˆÜ�]‰]œ:Ó&ñ 	#Ü˜'Ô"÷	#ð 	#ð#ðò 'ˆô   Ñ'ò 	'ˆGÜ—‘œzÓ*ñ 'Ü˜gÔ&÷'ð 'ñ	'ñ'÷	#ð 	#ú÷'ð 'ús   ÁBÂB(ÂB%	Â(B1c                  ó>  — t        t        d   t        d   t        d   z   «      } | D ]a  \  }}t        j                  t        «      5  t        ||«       d d d «       t        j                  t        «      5  t        ||«       d d d «       Œc t        j                  t        «      5  t        ddggddgg«       d d d «       t        j                  t        «      5  t        ddg«       d d d «       t        j                  t        «      5  t        ddgdd	gg«       d d d «       t        j                  t        «      5  t        dd
gdd	gg«       d d d «       y # 1 sw Y   �ŒxY w# 1 sw Y   �ŒExY w# 1 sw Y   Œ¹xY w# 1 sw Y   Œ–xY w# 1 sw Y   ŒoxY w# 1 sw Y   y xY w)NrA   rB   rD   r   r+   r5   r8   Ú1r0   Ú2)r   r}   rL   rM   rN   r   )Úmix_clf_formatÚy_multilabelÚy_multiclasss      r(   Útest_unique_labels_mixed_typesr‰   ‰  st  € äÜÐ'Ñ(¬(°<Ñ*@Ä8ÈHÑCUÑ*Uó€Nð '5ò 6Ñ"ˆ�lÜ�]‰]œ:Ó&ñ 	6Ü˜,¨Ô5÷	6ä�]‰]œ:Ó&ñ 	6Ü˜,¨Ô5÷	6ð 	6ð6ô 
�‰”zÓ	"ñ .Ü˜˜1�v�h # s  Ô-÷.ô 
�‰”zÓ	"ñ  Ü�s˜A�hÔ÷ ô 
�‰”zÓ	"ñ *Ü˜˜Q�x ! Q Ð(Ô)÷*ô 
�‰”zÓ	"ñ ,Ü˜˜S�z A q 6Ð*Ô+÷,ð ,÷	6ñ 	6ú÷	6ñ 	6ú÷.ð .ú÷ ð  ú÷*ð *ú÷,ð ,úsH   ÁEÁ4E"Â$E/ÃE;ÄFÄ:FÅE	Å"E,	Å/E8Å;FÆFÆFc                  ó°  — t         j                  «       D �]9  \  } }| dk(  }|D �](  }|xr t        |«      }t        |«      s~t        |d«      rÉt	        j
                  |«      j                  dk(  r§t	        j
                  |«      j                  j                  dv r|t	        j
                  |«      j                  d   dkD  rWt        t        z   t        z   t        z   t        z   D �cg c]
  } ||«      ‘Œ }}|D ]  }|t        |«      k(  rŒJ d|›d|› �«       ‚ t        |«      r|j!                  «       }|t        |«      k(  r�ŒJ d|›d|› �«       ‚ �Œ< y c c}w )	NrA   Ú	__array__r+   Úbiufr   r   úis_multilabel(ú) should be )r}   Úitemsr   ÚhasattrrP   re   Úndimr"   ÚkindÚshaper   r   r   r   r   r   Útoarray)ÚgroupÚgroup_examplesÚ	dense_expr€   Ú
sparse_expr'   Úexamples_sparseÚexmpl_sparses           r(   Útest_is_multilabelr›   ¢  ss  € Ü!)§¡Ó!1ó #Ñˆˆ~ØÐ3Ñ3ˆ	à%ó  	ˆGð #Ò8¤x°Ó'8ˆJä˜Ô Ü˜ Ô-Ü—J‘J˜wÓ'×,Ñ,°Ò1Ü—J‘J˜wÓ'×-Ñ-×2Ñ2°fÑ<Ü—J‘J˜wÓ'×-Ñ-¨aÑ0°1Ò4ô
 'Ü(ñ)ä(ñ)ô )ñ)ô )ñ	)ö	#à(ñ % WÕ-ð	#�ð 	#ð %4ò �LØ%¬°|Ó)DÓDð Ø(¨Ð(8¸ÀZÀLÐQóÐDðô ˜Ô Ø!Ÿ/™/Ó+�à¤¨gÓ 6Ô6ð Ø   ¨<¸	°{ÐCóÐ6ò= 	ñ#ùò	#s   Ã#Ez(array_namespace, device_name, dtype_namec                 óÆ  — t        | ||«      \  }}t        j                  «       D ]®  \  }}|dk(  }|D ]Ÿ  }t        j                  |«      j
                  j                  dk(  rt        j                  ||¬«      }nt        j                  |«      }|j	                  ||¬«      }t        d¬«      5  |t        |«      k(  sJ d|›d|› �«       ‚	 d d d «       Œ¡ Œ° y # 1 sw Y   Œ®xY w)	NrA   Úfr!   r_   TrX   r�   rŽ   )	r   ÚARRAY_API_EXAMPLESr�   rP   re   r"   r’   r   r   )	rf   Údevice_namerg   rb   r`   r•   r–   r—   r€   s	            r(   Ú'test_is_multilabel_array_api_compliancer    É  sæ   € ô
 & o°{ÀJÓO�J€Bˆä!3×!9Ñ!9Ó!;ò Ñˆˆ~ØÐ3Ñ3ˆ	Ø%ò 
	ˆGÜ�z‰z˜'Ó"×(Ñ(×-Ñ-°Ò4ÜŸ*™* W°JÔ?‘äŸ*™* WÓ-�Ø—j‘j °�jÓ8ˆGä°4Ô8ñ Ø ¤M°'Ó$:Ò:ð Ø$ W K¨|¸I¸;ÐGóÑ:÷ð ñ
	ñ÷ð ús   Â-CÃC c                  ó  — t         j                  «       D ]_  } | dv r@t         |    D ]3  }d}t        j                  t        |¬«      5  t        |«       d d d «       Œ5 ŒGt         |    D ]  }t        |«       Œ Œa y # 1 sw Y   Œ\xY w)N)rG   rE   rF   zUnknown label type: rJ   )r}   ÚkeysrL   rM   rN   r   )r�   r€   rz   s      r(   Ú!test_check_classification_targetsr£   ß  s‡   € Ü—-‘-“/ò 6ˆØÐHÑHÜ# FÑ+ò :�Ø,�Ü—]‘]¤:°SÔ9ñ :Ü0°Ô9÷:ð :ñ:ô
 $ FÑ+ò 6�Ü,¨WÕ5ñ6ñ6÷:ð :ús   ÁA8Á8Bc                  ó¸  — t         j                  «       D ]3  \  } }|D ])  }t        |«      | k(  rŒJ d|›d| ›dt        |«      ›�«       ‚ Œ5 t        D ]3  }d}t	        j
                  t        |¬«      5  t        |«       d d d «       Œ5 t        D ]3  }d}t	        j
                  t        |¬«      5  t        |«       d d d «       Œ5 y # 1 sw Y   Œ|xY w# 1 sw Y   ŒLxY w)Nztype_of_target(rŽ   z, got z6Expected array-like \(array or non-string sequence\).*rJ   zœYou appear to be using a legacy multi-label data representation. Sequence of sequences are no longer supported; use a binary array or sparse matrix instead.)r}   r�   r   r~   rL   rM   rN   ÚMULTILABEL_SEQUENCES)r•   r–   r€   Ú	msg_regexrz   s        r(   Útest_type_of_targetr§   ë  sî   € Ü!)§¡Ó!1ò 	Ñˆˆ~Ø%ò 	ˆGÜ! 'Ó*¨eÓ3ñ ò ÚÜ" 7Ô+ð	óÐ3ñ	ð	ô +ò $ˆØMˆ	Ü�]‰]œ:¨YÔ7ñ 	$Ü˜7Ô#÷	$ð 	$ð$ô
 (ò $ˆð<ð 	ô
 �]‰]œ:¨SÔ1ñ 	$Ü˜7Ô#÷	$ð 	$ñ$÷	$ð 	$ú÷	$ð 	$ús   Á1CÂ-CÃC	ÃC	c                  ó<  — t        j                  d«      } | j                  j                  dt        j
                  t        j
                  dt        j
                  g«      }d}t        j                  t        |¬«      5  t        |«       d d d «       y # 1 sw Y   y xY w)NÚpandasr   z1y cannot be class 'SparseSeries' or 'SparseArray'rJ   )	rL   ÚimportorskipÚarraysÚSparseArrayrP   ÚnanrM   rN   r   )Úpdry   rz   s      r(   Ú!test_type_of_target_pandas_sparser¯     sm   € Ü	×	Ñ	˜XÓ	&€Bà
�	‰	×Ñ˜q¤"§&¡&¬"¯&©&°!´R·V±VÐ<Ó=€AØ
=€CÜ	�‰”z¨Ô	-ñ Ü�qÔ÷÷ ñ ús   Á=BÂBc                  óÆ  — t        j                  d«      } dD ]L  }| j                  g d¢|¬«      }t        |«      dk(  sJ ‚| j                  g d¢|¬«      }t        |«      dk(  rŒLJ ‚ | j	                  dd	gd	dggd
¬«      }t        |«      dk(  sJ ‚| j	                  ddgddggd¬«      }t        |«      dk(  sJ ‚| j	                  ddgddggd¬«      }t        |«      dk(  sJ ‚y)z<Check that type_of_target works with pandas nullable dtypes.r©   )ÚInt32ÚFloat32)r   r   r+   r0   r1   r!   rB   )r   r   r   r   rD   gffffffö?gÍÌÌÌÌÌ@r²   rF   r   r   r±   rA   r+   r0   rC   N)rL   rª   ÚSeriesr   Ú	DataFrame)r®   r"   Úy_trues      r(   Ú#test_type_of_target_pandas_nullabler¶     s  € ä	×	Ñ	˜XÓ	&€Bà%ò 2ˆØ—‘š?°%�Ó8ˆÜ˜fÓ%¨Ò5Ð5Ð5à—‘š<¨u�Ó5ˆÜ˜fÓ%¨Ó1Ð1Ð1ð2ð �\‰\˜C ˜:¨¨S zÐ2¸)ˆ\ÓD€FÜ˜&Ó!Ð%=Ò=Ð=Ð=à�\‰\˜A˜q˜6 A q 6Ð*°'ˆ\Ó:€FÜ˜&Ó!Ð%;Ò;Ð;Ð;à�\‰\˜A˜q˜6 A q 6Ð*°'ˆ\Ó:€FÜ˜&Ó!Ð%=Ò=Ð=Ñ=rT   r"   )ÚInt64ÚFloat64Úbooleanc                 ó¶   — t        j                  d«      }|j                  g d¢| ¬«      }|j                  g d¢d¬«      }t        ||«      }t	        |ddg«       y)	zgChecks that unique_labels work with pandas nullable dtypes.

    Non-regression test for gh-25634.
    r©   )	r   r   r   r   r   r   r   r   r   r!   )	r   r   r   r   r   r   r   r   r   Úint64r   r   N)rL   rª   r³   r   r   )r"   r®   rµ   Úy_predictedÚlabelss        r(   Ú"test_unique_labels_pandas_nullabler¾   $  sT   € ô 
×	Ñ	˜XÓ	&€Bà�Y‰YÒ2¸%ˆYÓ@€FØ—)‘)Ò7¸w�)ÓG€Kä˜6 ;Ó/€FÜ�v  1˜vÕ&rT   Úcsc_containerc           	      óî  — t        j                  g d¢g d¢g d¢g d¢g d¢g d¢g«      }t        j                  g d¢«      }t        j                  g d¢«      }t        j                  g d¢«      } | |||fd	¬
«      }t        |«      \  }}}t        |«      \  }	}
}g d¢g d¢dgdgg}g d¢}g d¢g d¢dgdgg}t        |j                  d   «      D ]n  }t        ||   ||   «       t        ||   ||   «       t        ||   ||   «       t        |	|   ||   «       t        |
|   ||   «       t        ||   ||   «       Œp t        |g d¢«      \  }}}t        |g d¢«      \  }	}
}g d¢g d¢dgdgg}t        |j                  d   «      D ]n  }t        ||   ||   «       t        ||   ||   «       t        ||   ||   «       t        |	|   ||   «       t        |
|   ||   «       t        ||   ||   «       Œp y )NrW   )r+   r+   r   r   )r   r0   r   r   )r1   r+   r   r   )r+   r   r   r   )r   r+   r   r1   r+   r   r   r+   r0   r+   r0   r   r   r   r   r   r   )r   r   r+   r0   r1   r9   r   r   r+   r0   r9   r   r   r+   r0   r1   r9   )r   r?   é   rÁ   é   )r?   r1   )r“   )r   r+   r1   )r   r+   r0   r   r   )r0   r0   r   r   )r<   çUUUUUUÕ?gUUUUUUÅ?)rÃ   rÃ   rÃ   ç      ð?)rÄ   ç       @rÄ   rÅ   rÄ   rÅ   )çÇqÇqÜ?rÃ   çÇqÇqÌ?)rÇ   rÆ   rÃ   )rP   rR   r   rO   r“   r   )r¿   ry   r$   ÚindicesÚindptrÚy_spÚclassesÚ	n_classesÚclass_priorÚ
classes_spÚn_classes_spÚclass_prior_spÚclasses_expectedÚn_classes_expectedÚclass_prior_expectedÚks                   r(   Útest_class_distributionrÕ   3  s3  € ä
�‰âÚÚÚÚÚð	
ó		€Aô �8‰8ÒGÓH€DÜ�h‰hÒJÓK€GÜ�X‰XÒ(Ó)€FÙ˜$ ¨Ð0¸Ô?€Dä&8¸Ó&;Ñ#€GˆY˜Ü/AÀ$Ó/GÑ,€J�˜nÚ!¢9¨q¨c°A°3Ð7ÐÚ%ÐÚ1Ò3HÈ3È%ÐRUÐQVÐWÐä�1—7‘7˜1‘:Óò NˆÜ! '¨!¡*Ð.>¸qÑ.AÔBÜ! )¨A¡,Ð0BÀ1Ñ0EÔFÜ! +¨a¡.Ð2FÀqÑ2IÔJä! *¨Q¡-Ð1AÀ!Ñ1DÔEÜ! ,¨q¡/Ð3EÀaÑ3HÔIÜ! .°Ñ"3Ð5IÈ!Ñ5LÕMðNô );Ø	Ò)ó)Ñ%€Wˆi˜ô 2DØ	Ò)ó2Ñ.€Z�˜~ò 2Ò3HÈ3È%ÐRUÐQVÐWÐä�1—7‘7˜1‘:Óò NˆÜ! '¨!¡*Ð.>¸qÑ.AÔBÜ! )¨A¡,Ð0BÀ1Ñ0EÔFÜ! +¨a¡.Ð2FÀqÑ2IÔJä! *¨Q¡-Ð1AÀ!Ñ1DÔEÜ! ,¨q¡/Ð3EÀaÑ3HÔIÜ! .°Ñ"3Ð5IÈ!Ñ5LÕMñNrT   c                  ó’  — t        «       } t        d¬«      }t        j                  «       }|j                  |j                  }}t        j                  ||j                  «      }t        dd¬«      }t        t        |j                  |«      «      «      \  }}t        | |||«      \  }	}
t        ||||«      \  }}t        |t        j                  |	|	j                  «      «       t        |
|«       t        | ||||«      \  }}t        |||||«      \  }}t        |t        j                  ||	j                  «      «       t        ||«       y )NÚprecomputed)Úkernelg      Ð?r   )Ú	test_sizeÚrandom_state)r   r   Ú	load_irisr$   ÚtargetrP   ÚdotÚTr   ÚnextÚiterÚsplitr   r   )ÚclfÚclfpÚirisÚXry   ÚKÚcvÚtrainÚtestÚX_trainÚy_trainÚK_trainÚy_train2ÚX_testÚy_testÚK_testÚy_test2s                    r(   Ú'test_safe_split_with_precomputed_kernelrò   g  s  € Ü
‹%€CÜ�mÔ$€Dä×ÑÓ€DØ�9‰9�d—k‘k€q€AÜ
�‰ˆq�!—#‘#‹€Aä	 °1Ô	5€BÜ”t˜BŸH™H Q›KÓ(Ó)�K€Eˆ4ä" 3¨¨1¨eÓ4Ñ€GˆWÜ# D¨!¨Q°Ó6Ñ€GˆXÜ˜g¤r§v¡v¨g°w·y±yÓ'AÔBÜ˜g xÔ0ä   a¨¨D°%Ó8�N€FˆFÜ! $¨¨1¨d°EÓ:�O€FˆGÜ˜f¤b§f¡f¨V°W·Y±YÓ&?Ô@Ü˜f gÕ.rT   c            
      ó\  — t        j                  g d¢g d¢g d¢g d¢g«      } t        j                  g d¢g d¢g d¢g d¢g«      }d}t        | ||«      }t        j                  g d¢g d	¢g d¢g d¢g«      }t        ||d
¬«       t        j                  g d¢«      }t	        t        j
                  |d¬«      |«       |d   |d   kD  sJ ‚t        d«      D �cg c]@  }t        t        j                  | |   g«      t        j                  ||   g«      |«      d   ‘ŒB }}t        ||d¬«       y c c}w )N)r   r   r   )r   r   r   )ç €à7yÃAÃr   rô   )rÄ   rÅ   g      À)g      ÀrÅ   g      @)g      à¿gš™™™™™É?r<   r0   r2   )r   r   r   r<   rc   )r+   r   r+   r+   r   )Úaxis)r+   r+   )r0   r+   r1   r   g�íµ ÷Æ°>)rP   rR   r   r   r   ÚargmaxrO   )ÚpredictionsÚconfidencesrÌ   Ú
dec_valuesÚvotesÚexpected_predictionÚiÚdec_values_ones           r(   Útest_ovr_decision_functionrþ   }  s  € ô —(‘(šI¢y²)ºYÐGÓH€Kä—(‘(Ú	Ò,Ò.>Ò@PÐQó€Kð €Iä'¨°[À)ÓL€Jô �H‰H’i¢ªI²yÐAÓB€Eä�E˜:¨CÕ0ô
 Ÿ(™(¢<Ó0ÐÜ”r—y‘y °!Ô4Ð6IÔJð �dÑ˜j¨Ñ.Ò.Ð.Ð.ô �q“ö	ð ô 	Ü�H‰H�k !‘nÐ%Ó&¬¯©°+¸a±.Ð1AÓ(BÀIó	
à
ó	ð€Nð ô �J °TÖ:ùòs   ÃAD)Ú
input_typeÚlistrR   c                 óš   — t        ddg| «      }d}t        j                  t        |¬«      5  t	        |«       d d d «       y # 1 sw Y   y xY w)Nó   aó   bz8Support for labels represented as bytes is not supportedrJ   )r   rL   rM   Ú	TypeErrorr   )rÿ   rÜ   Úerr_msgs      r(   Ú!test_labels_in_bytes_format_errorr  ¤  sD   € ô
    t ¨jÓ9€FØH€GÜ	�‰”y¨Ô	0ñ Ü�vÔ÷÷ ñ ús   ¬AÁA
)Qrv   Ú	itertoolsr   ÚnumpyrP   rL   Úscipy.sparser   Úsklearnr   r   Úsklearn.model_selectionr   Úsklearn.svmr   Úsklearn.utils._array_apir	   r
   r   Úsklearn.utils._testingr   r   r   r   r   r   Úsklearn.utils.estimator_checksr   Úsklearn.utils.fixesr   r   r   r   r   Úsklearn.utils.metaestimatorsr   Úsklearn.utils.multiclassr   r   r   r   r   r   rR   Úmultilabel_explicit_zeroÚtupleÚboolÚintÚint8Úuint8ÚfloatÚfloat32r)   ÚrandomÚRandomStateÚrandintrH   Ú	frozensetr}   rž   r~   r¥   rU   r]   ÚmarkÚparametrizerp   r{   r‚   r‰   r›   r    r£   r§   r¯   r¶   r¾   rÕ   rò   rþ   r  r#   rT   r(   ú<module>r!     s�  ðÛ Ý ã Û Ý !ç ,Ý 0Ý ÷ñ ÷
÷ õ 7÷õ õ 5÷÷ ð $˜2Ÿ8™8 a¨ V¨a°¨VÐ$4Ó5Ð Ø!"Ð š˜A˜Ñ ñ
 ØØ
ñ	à
ñ	ð ñ	ð ñ		óð �#�r—w‘w §¡¨%°·±Ð<óð&ñ 
Ø�I‰I×!Ñ! "Ó%×-Ñ-¨a°hÐ-Ó?Ø,Ø�6ô

ðð ˆQˆ�!�Q�Ððð ˆQˆˆðñ 
Ø$¸ÐPSÈvô

ðñ 
˜A˜q˜6 A q 6Ð*Ó	+ðñ 
˜A˜q˜6 A q 6Ð*Ó	+ðñ 
˜A˜q˜6˜(Ó	#ðð" ˆaˆ�1�b�'Ðð#ð$ 	ˆ�‰�2�q�'˜A˜r˜7Ð#Ó$ð%ð& 	ˆ�‰�2�q�'˜A˜r˜7Ð#Ó$ð'ñ( 	�H�B—H‘H˜r 1˜g¨¨2 wÐ/Ó0Ó1ð)ò. 	'Øˆ�‰’ÓØˆ�‰’ "§'¡'Ô*Øˆ�‰’ "§(¡(Ô+Øˆ�‰’ %Ô(Øˆ�‰’ "§*¡*Ô-Øˆ�‰�1�#˜�s˜Q˜C�Ó!Ù�H�B—H‘HšYÓ'Ó(ÚÚØˆ�‰’Ó!Øˆ�‰’¨Ô/Øˆ�‰’¨Ô/ðò  
’|Ð$Ø
ˆsˆ�c˜3�ZÐ Øˆ�‰’,¢Ð-Ó.Øˆ�‰’,¢Ð-°R·W±WÔ=Øˆ�‰’,¢Ð-°R·X±XÔ>Øˆ�‰’,¢Ð-°UÔ;Øˆ�‰’,¢Ð-°R·Z±ZÔ@ðñ 
Úš<Ð(Ø,¨~Ñ=Ø˜Ÿ™ "§(¡(¨E°2·:±:Ð>ô

ðð 	ˆ�‰�3˜�*˜s C˜jÐ)Ó*ðð 	ˆ�‰�3˜�*˜s C˜jÐ)Ó*ðð 	ˆ�‰�3˜�*˜s C˜jÐ)°Ô8ðð  	ˆ�‰’)�Óð!ñ" 	�H�B—H‘Hši˜[Ó)Ó*ð#ð( 
ˆAˆØ	
ˆAˆØ
Ø	
ˆØˆ�‰Ò/Ó0Øˆ�‰Ò/°tÔ<Øˆ�‰Ò/°r·w±wÔ?Øˆ�‰Ò/°r·x±xÔ@Øˆ�‰Ò/°uÔ=Øˆ�‰Ò/°r·z±zÔBØˆ�‰�1�#˜�s�ÓÙ�H�B—H‘H˜q˜c A 3˜ZÓ(Ó)Ø	
ˆBˆØ	
ˆAˆØ	ˆØ	ˆcˆ
Ø	�ˆØˆ�‰�%˜�Ó Ø	ˆcˆ
Øˆ�‰�%˜� vÔ.ð)ð. 
ˆØ	
ˆCˆØˆ�‰�1�#˜�u�ÓØˆ�‰�1�#˜�u� R§Z¡ZÔ0ð	ð 	ˆ�‰�1�c�(˜S !˜HÐ%Ó&Øˆ�‰�1�c�(˜S !˜HÐ%¨R¯Z©ZÔ8Øˆ�‰�1�c�(�Óðñ 
Ø�ˆX˜˜Q�xÐ Ø,¨~Ñ=Ø˜2Ÿ:™:Ð&ô

ð	ñ 
Ø�ˆXˆJØ,¨~Ñ=Ø˜2Ÿ:™:Ð&ô

ðð  
ˆØˆ�‰�"�˜VÔ$Ø	ˆàˆ�‰�(�"—(‘(˜2“,  §¡ªÓ 3Ð4¸FÔCØ	ˆ�‰�"‹�x�r—x‘x¢	Ó*Ð+Ú	�Q˜�FÐÙ	’9Ó	™y¨!¨Q¨Ó0Ð1à�SÑ	˜A˜s˜8Ð$àˆ�‰�‹àˆ�‰�"�b�Óàˆ�‰�A�q�6˜A˜q˜6Ð" a¨ V¨a°¨VÐ$4Ð5Ó6ð!ñIv€ðt 	�	‰	×Ñ˜bÓ!×)Ñ)¨!°(Ð)Ó;Ø
ˆQˆ�!�Q�ÐØ
ˆQˆˆØ Ø
ˆQˆ�!�Q�ÐØ
ˆaˆ�1�b�'ÐØˆ�‰�2�q�'˜A˜r˜7Ð#Ó$Øˆ�‰�2�q�'˜A˜r˜7Ð#Ó$Ù�H�B—H‘H˜r 1˜g¨¨2 wÐ/Ó0Ó1ð
ò 	'Øˆ�‰’ÓØˆ�‰’ "§'¡'Ô*Øˆ�‰’ "§(¡(Ô+Øˆ�‰’ %Ô(Øˆ�‰’ "§*¡*Ô-Øˆ�‰�1�#˜�s˜Q˜C�Ó!Ù�H�B—H‘HšYÓ'Ó(Úð
ò 
’|Ð$Øˆ�‰’,¢Ð-Ó.Øˆ�‰’,¢Ð-°R·W±WÔ=Øˆ�‰’,¢Ð-°R·X±XÔ>Øˆ�‰’,¢Ð-°UÔ;Øˆ�‰’,¢Ð-°R·Z±ZÔ@Øˆ�‰’)�ÓÙ�H�B—H‘Hši˜[Ó)Ó*ð	ð 
ˆAˆØ	
ˆAˆØ
Ø	
ˆØˆ�‰Ò/Ó0Øˆ�‰Ò/°tÔ<Øˆ�‰Ò/°r·w±wÔ?Øˆ�‰Ò/°r·x±xÔ@Øˆ�‰Ò/°uÔ=Øˆ�‰Ò/°r·z±zÔBØˆ�‰�1�#˜�s�ÓÙ�H�B—H‘H˜q˜c A 3˜ZÓ(Ó)Ø	
ˆBˆØ	
ˆAˆðð" 
ˆØ	
ˆCˆØˆ�‰�1�#˜�u�ÓØˆ�‰�1�#˜�u� R§Z¡ZÔ0ð	ð 	ˆ�‰�1�c�(˜S !˜HÐ%Ó&Øˆ�‰�1�c�(˜S !˜HÐ%¨R¯Z©ZÔ8Øˆ�‰�1�c�(�Óðð 
ˆØ	ˆØˆ�‰�‹Øˆ�‰�A�q�6˜A˜q˜6Ð" a¨ V¨a°¨VÐ$4Ð5Ó6ð	ñyBÐ òL Ø�ÑØ	
ˆ��ÑØ	ÙŠiÓØðÐ ð €Sˆ1ˆ#��1ˆvÐÚØ€B‡H�Hˆb�1�a�&ˆ\ Ô*Ù��—‘˜"˜q !˜f˜¨XÔ6Ó7ð	Ð ò&FðR )ñ1ó )ð1ð" ‡�×ÑØ)Ù-Ó/óñRó	ðRò (ò('ò0,ò2$ðN ‡�×ÑØ.Ù-Ó/óñó	ðò$	6ò$ò6ò>ð* ‡�×Ñ˜Ò"AÓBñ'ó Cð'ð ‡�×Ñ˜¨.Ó9ñ0Nó :ð0Nòf/ò,$;ðN ‡�×Ñ˜¨°Ð'8Ó9ñó :ñrT   