Ë
    ÜÍ:j" ã                   ó^  — d dl Z d dlZd dlmZ d dlmZmZmZ d dlZ	d dl
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 d dlmZ d d	lm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$m%Z%m&Z&m'Z'm(Z(m)Z)m*Z*m+Z+m,Z,m-Z-m.Z.m/Z/m0Z0m1Z1m2Z2m3Z3 d dl4m5Z5m6Z6m7Z7 d dl8m9Z9 d dl:m;Z;m<Z< d dl=m>Z> d dl?m@ZA d dl?mBZBmCZC d dlDmEZE d dlFmGZGmHZHmIZImJZJmKZKmLZL d dlMmNZN d dlOmPZPmQZQ d dlRmSZS �d
d„ZTd„ ZUe
j¬                  j¯                  ddd de	j°                  g«      d„ «       ZYe
j¬                  j¯                  dd gd fd dgdfg d!¢dfg«      d"„ «       ZZd#„ Z[d$„ Z\e
j¬                  j»                  d%«      d&„ «       Z^e
j¬                  j»                  d%«      d'„ «       Z_e
j¬                  j»                  d%«      d(„ «       Z`d)„ Zae
j¬                  j¯                  d*g d+¢ e	jÄ                  g d,¢g d-¢g d.¢g d/¢g«      fg d0¢g d1¢fg«      d2„ «       Zce
j¬                  j¯                  d*g d3¢ e	jÄ                  g d/¢g d/¢g d4¢g d4¢g d5¢g«      fg d6¢g d7¢fg«      d8„ «       Zdd9„ Zed:„ Zfd;„ Zgd<„ Zhe
j¬                  j¯                  d=eP«      e
j¬                  j¯                  d>eQ«      d?„ «       «       Zid@„ Zje
j¬                  j¯                  dAg dB¢«      dC„ «       ZkdD„ ZldE„ Zme
j¬                  j¯                  dF e	jÄ                  g dG¢«       e	jÄ                  g dG¢«      dHœdIf e	jÄ                  g dG¢«       e	jÄ                  g dJ¢«      dHœdKf e	jÄ                  g dG¢«       e	jÄ                  g dL¢«      dHœdMf e	jÄ                  g dJ¢«       e	jÄ                  g dG¢«      dHœdNfg«      dO„ «       Zne
j¬                  j¯                  dP e	jÄ                  g dQ¢«       e	jÄ                  g dR¢«      dHœdSfg«      dT„ «       ZodU„ ZpdV„ Zqe
j¬                  j¯                  dWdXdYidZdYid[dYd\œd]d^d\œdYdYd\œd]d_d\œg«      d`„ «       Zre
j¬                  j¯                  dad]d]d\œd]fe	jæ                  dYd\œe	jæ                  fd_dYd\œd_fe	j°                  e	j°                  d\œe	j°                  fe	j°                  e	j°                  fg«      db„ «       Zte
j¬                  j¯                  dad]d]d\œd]fe	jæ                  dYd\œdYfe	jæ                  dcd\œdcfe	j°                  e	j°                  d\œe	j°                  fe	j°                  e	j°                  fg«      dd„ «       Zude„ Zv eLe¬f«      e
j¬                  j¯                  dgdgdhz  digdhz  z   djgdkz  ddigdfdjgdkz  djgdkz  ddfdgdhz  digdhz  z   dgdhz  djgdhz  z   ddigdfdgdhz  digdhz  z   dgdhz  djgdhz  z   ddigdlfg«      e
j¬                  j¯                  dWdYe	j°                  g«      dm„ «       «       «       Zwdn„ Zxdo„ Zye
j¬                  j¯                  dd de	j°                  g«      e
j¬                  j¯                  dpd gd gfg«      e
j¬                  j¯                  dqe' ee(d¬r«      e1e2g«      ds„ «       «       «       Zze
j¬                  j¯                  dpd gd gfg«      e
j¬                  j¯                  dqe' ee(d¬r«      e1e2g«      dt„ «       «       Z{du„ Z|dv„ Z}dw„ Z~dx„ Ze
j¬                  j¯                  dydzd{g«      d|„ «       Z€d}„ Z�e
j¬                  j¯                  d~g d¢«      d€„ «       Z‚d�„ Zƒd‚„ Z„dƒ„ Z…e
j¬                  j¯                  d„g d…fdjd†gd‡fgdˆd‰g¬Š«      d‹„ «       Z†dŒ„ Z‡e
j¬                  j¯                  d�g dŽ¢«      d�„ «       Zˆd�„ Z‰d‘„ ZŠd’„ Z‹d“„ ZŒd”„ Z�d•„ ZŽd–„ Z�d—„ Z�d˜„ Z‘e
j¬                  j»                  d%«      d™„ «       Z’dš„ Z“d›„ Z”dœ„ Z•d�„ Z–dž„ Z—dŸ„ Z˜d „ Z™e
j¬                  j¯                  d¡d¢d£g«      d¤„ «       Zše
j¬                  j»                  d%«      d¥„ «       Z›e
j¬                  j»                  d%«      d¦„ «       Zœe
j¬                  j»                  d%«      e
j¬                  j¯                  d§d¨d¢d©e	j°                  e	j°                  fg«      dª„ «       «       Z�e
j¬                  j¯                  d«dg«      e
j¬                  j¯                  d~g d¬¢«      e
j¬                  j¯                  dd de	j°                  g«      d­„ «       «       «       Zže
j¬                  j¯                  d~g d¬¢«      d®„ «       ZŸe
j¬                  j¯                  dd de	j°                  g«      d¯„ «       Z d°„ Z¡d±„ Z¢e
j¬                  j¯                  dd de	j°                  g«      d²„ «       Z£e
j¬                  j¯                  ddd de	j°                  g«      d³„ «       Z¤e
j¬                  j¯                  ddd de	j°                  g«      d´„ «       Z¥e
j¬                  j¯                  ddd de	j°                  g«      dµ„ «       Z¦d¶„ Z§d·„ Z¨d¸„ Z©d¹„ Zªe
j¬                  j¯                  dº e�jV                  dgd gdgd gg«      d»f e�jV                  d gdgdigdgg«      d¼f e�jV                  g d½¢g d¾¢g d¿¢g«      dÀfg«      dÁ„ «       Z¬dÂ„ Z­dÃ„ Z®dÄ„ Z¯dÅ„ Z°dÆ„ Z±dÇ„ Z²dÈ„ Z³dÉ„ Z´e
j¬                  j¯                  d�e	�jj                  e	�jl                  e	�jn                  g«      dÊ„ «       Z¸e
j¬                  j¯                  d�e	�jj                  e	�jl                  e	�jn                  g«      dË„ «       Z¹e
j¬                  j¯                  dÌg d¾¢g d¾¢fg d¾¢dd gd dgdd ggfg d!¢g dÍ¢g d¾¢g dÎ¢gfg«      dÏ„ «       ZºdÐ„ Z»dÑ„ Z¼dÒ„ Z½dÓ„ Z¾dÔ„ Z¿dÕ„ ZÀdÖ„ ZÁd×„ ZÂe
j¬                  j¯                  dØg dÙ¢g dÚ¢fg dÛ¢g dÚ¢fg dÚ¢g dÛ¢fg«      dÜ„ «       ZÃe
j¬                  j¯                  dqe+e' ee(dc¬r«      e0e1e2e"g«      e
j¬                  j¯                  dÝg dÞ¢«      dß„ «       «       ZÄe
j¬                  j¯                  dà e	jÄ                  d dg«       e	jÄ                  dd g«      dYf e	jÄ                  d dg«       e	jÄ                  d dg«      d]f e	jÄ                  d dg«       e	jÄ                  d d g«      dYf e	jÄ                  d d g«       e	jÄ                  d d g«      d]fg«      dá„ «       ZÅe
j¬                  �jŒ                  e
j¬                  j¯                  dâ e-e'e	j°                  ¬ã«       e-e(die	j°                  ¬ä«       e-e1e	j°                  ¬ã«       e-e2e	j°                  ¬ã«      g«      då„ «       «       ZÇdæ„ ZÈdç„ ZÉdè„ ZÊdé„ ZËdê„ ZÌdë„ ZÍdì„ ZÎe
j¬                  j¯                  díg dî¢g dï¢ddðfg dñ¢g dï¢ddòfg dó¢g dï¢ddôfg dõ¢g dö¢dd÷fg dõ¢g dø¢ddùfg dú¢dcdcgdcdcgdcdcggddûfg dü¢g dý¢gg dþ¢g dÿ¢gd�d fg �d¢g �d¢g �d¢g �d¢gd dig�dfg �d¢g �d¢g �d¢g �d¢gd g�dfg	«      �d„ «       ZÏ�d„ ZÐe
j¬                  j¯                  �d eC«       «      �d	„ «       ZÑy(  é    N)Úpartial)ÚchainÚpermutationsÚproduct)ÚlinalgÚsparse)Úhamming)Ú	bernoulli)ÚdatasetsÚsvm)Úconfig_context)ÚCalibratedClassifierCV)Úmake_multilabel_classification)ÚUndefinedMetricWarning)Úaccuracy_scoreÚaverage_precision_scoreÚbalanced_accuracy_scoreÚbrier_score_lossÚclass_likelihood_ratiosÚclassification_reportÚcohen_kappa_scoreÚconfusion_matrixÚf1_scoreÚfbeta_scoreÚhamming_lossÚ
hinge_lossÚjaccard_scoreÚlog_lossÚmake_scorerÚmatthews_corrcoefÚmultilabel_confusion_matrixÚprecision_recall_fscore_supportÚprecision_scoreÚrecall_scoreÚzero_one_loss)Ú_check_targetsÚd2_brier_scoreÚd2_log_loss_score)Úcross_val_score)ÚLabelBinarizerÚlabel_binarize)ÚDecisionTreeClassifier©Údevice)Úget_namespaceÚ)yield_namespace_device_dtype_combinations)ÚMockDataFrame)Ú_array_api_for_testsÚassert_allcloseÚassert_almost_equalÚassert_array_almost_equalÚassert_array_equalÚignore_warnings)Ú_nanaverage)ÚCSC_CONTAINERSÚCSR_CONTAINERS)Úcheck_random_stateFc                 ó¬  — | €t        j                  «       } | j                  }| j                  }|r||dk     ||dk     }}|j                  \  }}t        j                  |«      }t        d«      }|j                  |«       ||   ||   }}t        |dz  «      }t
        j                  j                  d«      }t
        j                  ||j                  |d|z  «      f   }t        t        j                   dd¬«      dd	¬
«      }	|	j#                  |d| |d| «      j%                  ||d «      }
|r	|
dd…df   }
|	j'                  ||d «      }||d }|||
fS )z½Make some classification predictions on a toy dataset using an SVC

    If binary is True restrict to a binary classification problem instead of a
    multiclass classification problem
    Né   é%   r   éÈ   Úlinear)ÚkernelÚrandom_stateFé   )ÚensembleÚcvé   )r   Ú	load_irisÚdataÚtargetÚshapeÚnpÚaranger;   ÚshuffleÚintÚrandomÚRandomStateÚc_Úrandnr   r   ÚSVCÚfitÚpredict_probaÚpredict)ÚdatasetÚbinaryÚXÚyÚ	n_samplesÚ
n_featuresÚpÚrngÚhalfÚclfÚy_pred_probaÚy_predÚy_trues                ú~/home/mcse/projects/srt_converter/srt-converter-venv/lib/python3.12/site-packages/sklearn/metrics/tests/test_classification.pyÚmake_predictionre   H   sZ  € ð €ä×$Ñ$Ó&ˆà�‰€AØ�‰€Aáà��Q‘‰x˜˜1˜q™5™ˆ1ˆàŸG™GÑ€IˆzÜ
�	‰	�)Ó€Aä
˜RÓ
 €CØ‡K�K�„NØˆQ‰4��1‘€q€AÜˆy˜1‰}Ó€Dô �)‰)×
Ñ
 Ó
"€CÜ
�‰ˆa�—‘˜9 c¨JÑ&6Ó7Ð7Ñ8€Aô !Ü�‰�x¨aÔ0¸5ÀQô€Cð —7‘7˜1˜U˜d˜8 Q u¨ XÓ.×<Ñ<¸Q¸t¸u¸XÓF€Láð $¢A q DÑ)ˆà�[‰[˜˜4˜5˜Ó"€FØˆtˆuˆX€FØ�6˜<Ð'Ð'ó    c            
      ó  — t        j                  «       } t        | d¬«      \  }}}dddddœdd	d
ddœdddddœdddddœddddddœdœ}t        ||t	        j
                  t        | j                  «      «      | j                  d¬«      }|j                  «       |j                  «       k(  sJ ‚|D ]u  }|dk(  r#t        ||   t        «      sJ ‚||   ||   k(  rŒ)J ‚||   j                  «       ||   j                  «       k(  sJ ‚||   D ]  }t        ||   |   ||   |   «       Œ Œw t        |d   d   t        «      sJ ‚t        |d   d   t        «      sJ ‚t        |d   d   t        «      sJ ‚t        |d   d   t        «      sJ ‚y ) NF©rW   rX   g§7½éMoê?gUUUUUUé?gh£¾³Qßé?é   )Ú	precisionÚrecallúf1-scoreÚsupportçUUUUUUÕ?gÆcŒ1Æ¸?g433333Ã?é   g³¦¬)kÊÚ?çÍÌÌÌÌÌì?ç“$I’$Iâ?é   gCÜFÁQà?g�¼cÕà?g¿��Æ¢ã?éK   )rl   rj   rk   rm   gá?gDÖ~WGÞ?g]žè3«pà?)ÚsetosaÚ
versicolorÚ	virginicaú	macro avgÚaccuracyzweighted avgT)ÚlabelsÚtarget_namesÚoutput_dictrx   rt   rj   rw   rm   )r   rG   re   r   rK   rL   Úlenrz   ÚkeysÚ
isinstanceÚfloatr4   rN   )Úirisrc   rb   Ú_Úexpected_reportÚreportÚkeyÚmetrics           rd   Ú,test_classification_report_dictionary_outputr†   z   së  € ä×ÑÓ€DÜ'°¸UÔCÑ€FˆF�Að
 -Ø)Ø*Øñ	
ð -Ø*Ø+Øñ	
ð -Ø)Ø+Øñ	
ð +Ø+Ø'Øñ	
ð 'à+Ø+Ø(Øñ	
ñ5 €OôD #ØØÜ�y‰yœ˜T×.Ñ.Ó/Ó0Ø×&Ñ&Øô€Fð �;‰;‹=˜O×0Ñ0Ó2Ò2Ð2Ð2Øò WˆØ�*ÒÜ˜f S™k¬5Ô1Ð1Ð1Ø˜#‘; /°#Ñ"6Ó6Ð6Ð6à˜#‘;×#Ñ#Ó%¨¸Ñ)=×)BÑ)BÓ)DÒDÐDÐDØ)¨#Ñ.ò W�Ü# O°CÑ$8¸Ñ$@À&ÈÁ+ÈfÑBUÕVñWðWô �o hÑ/°Ñ<¼eÔDÐDÐDÜ�o kÑ2°;Ñ?ÄÔGÐGÐGÜ�o hÑ/°	Ñ:¼CÔ@Ð@Ð@Ü�o kÑ2°9Ñ=¼sÔCÐCÑCrf   Úzero_divisionÚwarnrF   c                 ó.  — g d¢g d¢}}t        j                  d¬«      5 }t        j                  dd¬«       t        ||| d¬«       | d	k(  r3t	        |«      d
kD  sJ ‚|D ]  }d}|t        |j                  «      v rŒJ ‚ n|rJ ‚d d d «       y # 1 sw Y   y xY w)N©ÚaÚbÚc)r‹   rŒ   ÚdT©ÚrecordÚalwaysz.+Use `zero_division`)Úmessage)r‡   r{   rˆ   rF   z7Use `zero_division` parameter to control this behavior.)ÚwarningsÚcatch_warningsÚfilterwarningsr   r|   Ústrr’   )r‡   rc   rb   r�   ÚitemÚmsgs         rd   Ú0test_classification_report_zero_division_warningr™   »   s£   € â$¢oˆF€FÜ	×	 Ñ	 ¨Ô	-ð °ô 	×Ñ Ð2IÕJÜØ�F¨-ÀTõ	
ð ˜FÒ"Ü�v“; ’?Ð"�?Øò 0�ØO�Øœc $§,¡,Ó/Ò/Ð/Ð/ñ0ñ Ð�:÷÷ ñ ús   ŸABÁ:BÂBzlabels, show_micro_avgT©r   rF   r=   c                 óh   — ddgddg}}t        ||| d¬«      }|rd|v sJ ‚d|vsJ ‚yd|v sJ ‚d|vsJ ‚y)a3  Check the behaviour of passing `labels` as a superset or subset of the labels.
    WHen a superset, we expect to show the "accuracy" in the report while it should be
    the micro-averaging if this is a subset.

    Non-regression test for:
    https://github.com/scikit-learn/scikit-learn/issues/27927
    r   rF   T)ry   r{   z	micro avgrx   N©r   )ry   Úshow_micro_avgrc   rb   rƒ   s        rd   Ú1test_classification_report_labels_subset_supersetrž   Ï   s`   € ð ˜�V˜a ˜VˆF€Fä" 6¨6¸&ÈdÔS€FÙØ˜fÑ$Ð$Ð$Ø Ñ'Ð'Ñ'à˜VÑ#Ð#Ð#Ø &Ñ(Ð(Ñ(rf   c                  ó  — t        j                  g d¢g d¢g«      } t        j                  g d¢g d¢g«      }t        | |«      dk(  sJ ‚t        | | «      dk(  sJ ‚t        ||«      dk(  sJ ‚t        |t        j                  |«      «      dk(  sJ ‚t        | t        j                  | «      «      dk(  sJ ‚t        | t        j                  | j
                  «      «      dk(  sJ ‚t        |t        j                  | j
                  «      «      dk(  sJ ‚y )N©r   rF   rF   ©rF   r   rF   ©r   r   rF   ç      à?rF   r   )rK   Úarrayr   Úlogical_notÚzerosrJ   ©Úy1Úy2s     rd   Ú.test_multilabel_accuracy_score_subset_accuracyrª   æ   sç   € ä	�‰’9šiÐ(Ó	)€BÜ	�‰’9šiÐ(Ó	)€Bä˜"˜bÓ! SÒ(Ð(Ð(Ü˜"˜bÓ! QÒ&Ð&Ð&Ü˜"˜bÓ! QÒ&Ð&Ð&Ü˜"œbŸn™n¨RÓ0Ó1°QÒ6Ð6Ð6Ü˜"œbŸn™n¨RÓ0Ó1°QÒ6Ð6Ð6Ü˜"œbŸh™h r§x¡xÓ0Ó1°QÒ6Ð6Ð6Ü˜"œbŸh™h r§x¡xÓ0Ó1°QÒ6Ð6Ñ6rf   c            	      ó@  — t        d¬«      \  } }}t        | |d ¬«      \  }}}}t        |ddgd«       t        |ddgd«       t        |d	d
gd«       t        |ddg«       i ddifD ]«  }t	        j
                  «       5  t	        j                  d«       t        | |fi |¤Ž}t        |dd«       t        | |fi |¤Ž}	t        |	dd«       t        | |fi |¤Ž}
t        |
d
d«       t        t        | |fddi|¤Žd|z  |	z  d|z  |	z   z  d«       d d d «       Œ­ y # 1 sw Y   Œ¸xY w)NT©rX   ©Úaverageg\�Âõ(\ç?g333333ë?r=   g)\�Âõ(ì?gÃõ(\�Âå?çš™™™™™é?gR¸…ëQè?é   r®   rX   ÚerrorÚbetaé   é   )re   r"   r5   r6   r“   r”   Úsimplefilterr#   r$   r   r4   r   )rc   rb   r�   r]   ÚrÚfÚsÚkwargsÚpsÚrsÚfss              rd   Ú%test_precision_recall_f1_score_binaryr½   ô   sG  € ä'¨tÔ4Ñ€FˆF�Aô 1°¸ÈÔN�J€A€qˆ!ˆQÜ˜a $¨ ¨qÔ1Ü˜a $¨ ¨qÔ1Ü˜a $¨ ¨qÔ1Ü�q˜2˜r˜(Ô#ð
 ˜	 8Ð,Ð-ò ˆÜ×$Ñ$Ó&ñ 	Ü×!Ñ! 'Ô*ä  ¨Ñ:°6Ñ:ˆBÜ% b¨$°Ô2ä˜f fÑ7°Ñ7ˆBÜ% b¨$°Ô2ä˜& &Ñ3¨FÑ3ˆBÜ% b¨$°Ô2äÜ˜F FÑ=°Ð=°fÑ=Ø˜R‘ "Ñ$¨¨r©	°B©Ñ7Øô÷	ð 	ñ÷	ð 	ús   Á<BDÄD	z1ignore::sklearn.exceptions.UndefinedMetricWarningc                  óô  — dt        ddgddg«      k(  sJ ‚dt        ddgddg«      k(  sJ ‚dt        ddgddg«      k(  sJ ‚dt        ddgddgd¬«      k(  sJ ‚dt        ddgddg«      k(  sJ ‚dt        ddgddg«      k(  sJ ‚dt        ddgddg«      k(  sJ ‚dt        ddgddgt	        d«      ¬«      k(  sJ ‚t        ddgddgt	        d«      ¬«      t        j                  t        ddgddgd¬«      «      k(  sJ ‚y )	Nç      ð?rF   r   ©r²   ç        éÿÿÿÿÚinfg     jø@)r#   r$   r   r   r   ÚpytestÚapprox© rf   rd   Ú+test_precision_recall_f_binary_single_classrÇ     s;  € ð
 ”/ 1 a &¨1¨a¨&Ó1Ò1Ð1Ð1Ø”,  1˜v¨¨1 vÓ.Ò.Ð.Ð.Ø”(˜A˜q˜6 A q 6Ó*Ò*Ð*Ð*Ø”+˜q !˜f q¨! f°1Ô5Ò5Ð5Ð5à”/ 2 r (¨R°¨HÓ5Ò5Ð5Ð5Ø”,  B˜x¨"¨b¨Ó2Ò2Ð2Ð2Ø”(˜B ˜8 b¨" XÓ.Ò.Ð.Ð.Ø”+˜r 2˜h¨¨R¨´u¸U³|ÔDÒDÐDÐDÜ˜˜B�x " b ´°e³Ô=ÄÇÁÜ�R˜�H˜r 2˜h¨SÔ1óBò ð ñ rf   c                  ó>  — g d¢} g d¢}t        | t        j                  d«      ¬«      }t        |t        j                  d«      ¬«      }| |f||fg}t        |«      D ]“  \  }\  } }t	        | |g d¢d ¬«      }t        g d¢|«       t	        | |g d¢d¬«      }t        t        j                  g d¢«      |«       d	D ]5  }|d
k(  r|dk(  rŒt        t	        | |g d¢|¬«      t	        | |d |¬«      «       Œ7 Œ• dD ]‹  }t        j                  t        «      5  t	        ||t        j                  d«      |¬«       d d d «       t        j                  t        «      5  t	        ||t        j                  dd«      |¬«       d d d «       Œ� t        j                  g d¢g d¢g«      } t        j                  g d¢g d¢g«      }t        | |d
ddg¬«      \  }}	}
}t        t        j                  ||	|
g«      t        j                  g d¢«      «       y # 1 sw Y   ŒÔxY w# 1 sw Y   �Œ(xY w)N)rF   rC   rC   r=   )rF   rF   rC   r=   r³   ©Úclasses)r   rF   r=   rC   r´   ©ry   r®   )rÁ   r¿   r¿   r£   rÁ   Úmacro)ÚmicroÚweightedÚsamplesrÏ   r   )NrÌ   rÍ   rÏ   é   rÂ   r´   r    ©rF   r   r   ©rF   rF   rF   r¡   rF   ©r®   ry   )ç      è?rF   ç«ªªªªªê?)r+   rK   rL   Ú	enumerater$   r5   Úmeanr4   rÄ   ÚraisesÚ
ValueErrorr¤   r"   )rc   rb   Ú
y_true_binÚ
y_pred_binrH   ÚiÚactualr®   r]   r¶   r·   r�   s               rd   Ú$test_precision_recall_f_extra_labelsrÞ   )  sè  € ò €FÚ€FÜ ´·	±	¸!³Ô=€JÜ ´·	±	¸!³Ô=€JØ�VÐ˜z¨:Ð6Ð7€Dä(¨›ò ÑˆÑˆF�Fä˜f f²_ÈdÔSˆÜ!Ò";¸VÔDô ˜f f²_ÈgÔVˆÜ!¤"§'¡'Ò*CÓ"DÀfÔMð 8ò 	ˆGØ˜)Ò#¨¨QªØÜÜ˜V V²OÈWÔUÜ˜V V°DÀ'ÔJõñ	ðð( 7ò ˆÜ�]‰]œ:Ó&ñ 	WÜ˜ Z¼¿	¹	À!»ÈgÕV÷	Wä�]‰]œ:Ó&ñ 	ÜØ˜J¬r¯y©y¸¸QÓ/?Èõ÷	ð 	ðô �X‰X’y¢)Ð,Ó-€FÜ�X‰X’y¢)Ð,Ó-€FÜ0Ø� 	°1°a°&ô�J€A€qˆ!ˆQô œŸ™ ! Q¨ Ó+¬R¯X©XÒ6GÓ-HÕI÷	Wð 	Wú÷	ñ 	ús   Ä#HÅ$HÈH	ÈH	c                  óô  — g d¢} g d¢}t        | t        j                  d«      ¬«      }t        |t        j                  d«      ¬«      }| |f||fg}t        |«      D ]š  \  }\  } }t	        t
        | |ddg¬«      }t	        t
        | |d ¬«      }t        dd	g |d ¬
«      «       t        d |d¬
«      «       t        d |d¬
«      «       t        d |d¬
«      «       dD ]  } ||¬
«       ||¬
«      k7  rŒJ ‚ Œœ y )N)rF   rF   r=   rC   )rF   rC   rC   rC   r³   rÉ   rF   rC   ©ry   r£   r¿   r­   rÔ   rÌ   çUUUUUUå?rÎ   rÍ   )rÌ   rÎ   rÍ   )r+   rK   rL   rÖ   r   r$   r5   r4   )	rc   rb   rÚ   rÛ   rH   rÜ   Ú	recall_13Ú
recall_allr®   s	            rd   Ú&test_precision_recall_f_ignored_labelsrä   W  sù   € ò €FÚ€FÜ ´·	±	¸!³Ô=€JÜ ´·	±	¸!³Ô=€JØ�VÐ˜z¨:Ð6Ð7€Dä(¨›ò MÑˆÑˆF�FÜœL¨&°&À!ÀQÀÔHˆ	Üœ\¨6°6À$ÔGˆ
ä! 3¨ *©iÀÔ.EÔFÜ˜O©Y¸wÔ-GÔHÜÐ3±YÀzÔ5RÔSÜ˜G¡Y°wÔ%?Ô@ð 6ò 	MˆGÙ WÔ-±ÀGÔ1LÓLÐLÐLñ	MñMrf   c            	      ó   — t        j                  g d¢g d¢g d¢g d¢g d¢g d¢g«      } t        j                  g d¢g d¢g d¢g d	¢g d
¢g d¢g«      }d}t        j                  t        |¬«      5  t        | |d¬«       ddd«       y# 1 sw Y   yxY w)z:Test multiclass-multiouptut for `average_precision_score`.)r=   r=   rF   ©rF   r=   r   rš   ©rF   r=   rF   ©r=   r   rF   ©çffffffæ?çš™™™™™É?çš™™™™™¹?©çš™™™™™Ù?ç333333Ó?rï   ©rì   r¯   rì   ©rë   rï   r£   )rî   rî   rë   )rì   rë   rê   z.multiclass-multioutput format is not supported©Úmatchr=   ©Ú	pos_labelN)rK   r¤   rÄ   rØ   rÙ   r   )rc   Úy_scoreÚerr_msgs      rd   Ú-test_average_precision_score_non_binary_classrø   n  s„   € ä�X‰XâÚÚÚÚÚð	
ó	€Fô �h‰hâÚÚÚÚÚð	
ó	€Gð ?€GÜ	�‰”z¨Ô	1ñ >Ü ¨¸1Õ=÷>÷ >ñ >ús   Á,BÂBzy_true, y_score©r   r   rF   r=   ré   rí   rð   rñ   )r   r   r   r   rF   rF   rF   rF   rF   rF   rF   )r   rì   rì   rî   r£   ç333333ã?rú   rp   rp   rF   rF   c                 ó&   — t        | |«      dk(  sJ ‚y)a(  
    Duplicate values with precision-recall require a different
    processing than when computing the AUC of a ROC, because the
    precision-recall curve is a decreasing curve
    The following situation corresponds to a perfect
    test statistic, the average_precision_score should be 1.
    rF   N©r   ©rc   rö   s     rd   Ú-test_average_precision_score_duplicate_valuesrþ   ‰  s   € ô8 # 6¨7Ó3°qÒ8Ð8Ñ8rf   )r=   r=   rF   rF   r   )rî   r£   rï   )r¯   r£   rï   r    )r£   r£   rú   c                 ó&   — t        | |«      dk7  sJ ‚y )Nr¿   rü   rý   s     rd   Ú(test_average_precision_score_tied_valuesr   ¨  s   € ô: # 6¨7Ó3°sÒ:Ð:Ñ:rf   c                  óŽ   — d} t        j                  t        | ¬«      5  t        g d¢g d¢dd¬«       d d d «       y # 1 sw Y   y xY w)NzšNote that pos_label \(set to 2\) is ignored when average != 'binary' \(got 'macro'\). You may use labels=\[pos_label\] to specify a single positive class.rò   rç   ©rF   r=   r=   r=   rÌ   ©rõ   r®   )rÄ   ÚwarnsÚUserWarningr"   ©r˜   s    rd   Ú(test_precision_recall_f_unused_pos_labelr  È  sB   € ð
	ð ô 
�‰”k¨Ô	-ñ 
Ü'Ú’y¨A°wõ	
÷
÷ 
ñ 
ús	   ž;»Ac            	      ó¾   — t        d¬«      \  } }}d„ } || |«        || D �cg c]  }t        |«      ‘Œ c}|D �cg c]  }t        |«      ‘Œ c}«       y c c}w c c}w )NTr¬   c                 ó<  — t        | |«      }t        |ddgddgg«       |j                  «       \  }}}}||z  ||z  z
  }t        j                  ||z   ||z   z  ||z   z  ||z   z  «      }|dk(  rdn||z  }	t        | |«      }
t        |
|	d¬«       t        |
dd¬«       y )	Né   rC   é   é   r   r=   ©Údecimalç=
×£p=â?)r   r6   ÚflattenrK   Úsqrtr    r5   )rc   rb   ÚcmÚtpÚfpÚfnÚtnÚnumÚdenÚtrue_mccÚmccs              rd   Útestz*test_confusion_matrix_binary.<locals>.testÜ  s¬   € Ü˜f fÓ-ˆÜ˜2  Q ¨!¨R¨Ð1Ô2àŸ™›‰ˆˆB��BØ�2‰g˜˜R™ÑˆÜ�g‰g�r˜B‘w 2¨¡7Ñ+¨r°B©wÑ7¸2À¹7ÑCÓDˆà˜qš‘1 c¨C¡iˆÜ ¨Ó/ˆÜ! # x¸Õ;Ü! # t°QÖ7rf   ©re   r–   ©rc   rb   r�   r  rZ   s        rd   Útest_confusion_matrix_binaryr  Ø  sR   € ä'¨tÔ4Ñ€FˆF�Aò8ñ 	ˆ�ÔÙ˜&Ö	!�QŒ#ˆa�&Ò	!°FÖ#;¨q¤C¨¥FÒ#;Õ<ùÒ	!ùÒ#;ó
   £A»A
c            	      ó¾   — t        d¬«      \  } }}d„ } || |«        || D �cg c]  }t        |«      ‘Œ c}|D �cg c]  }t        |«      ‘Œ c}«       y c c}w c c}w )NTr¬   c                 óP   — t        | |«      }t        |ddgddggddgddggg«       y )Nr  r  rC   r
  ©r!   r6   )rc   rb   r  s      rd   r  z5test_multilabel_confusion_matrix_binary.<locals>.testñ  s7   € Ü(¨°Ó8ˆÜ˜2 " a ¨1¨b¨'Ð 2°b¸!°W¸qÀ"¸gÐ4FÐGÕHrf   r  r  s        rd   Ú'test_multilabel_confusion_matrix_binaryr#  í  sS   € ä'¨tÔ4Ñ€FˆF�AòIñ 	ˆ�ÔÙ˜&Ö	!�QŒ#ˆa�&Ò	!°FÖ#;¨q¤C¨¥FÒ#;Õ<ùÒ	!ùÒ#;r  c            	      óÄ   — t        d¬«      \  } }}dd„} || |«        || D �cg c]  }t        |«      ‘Œ c}|D �cg c]  }t        |«      ‘Œ c}d¬«       y c c}w c c}w )NFr¬   c           	      óP  — t        | |«      }t        |ddgddggddgddggd	d
gddggg«       |rg d¢ng d¢}t        | ||¬«      }t        |ddgddggd	d
gddggddgddggg«       |rg d¢ng d¢}t        | ||¬«      }t        |ddgddggd	d
gddggddgddggddgddggg«       y )Né/   r´   r³   é   é&   rÐ   é   rC   é   r°   r=   é   )Ú0Ú2Ú1©r   r=   rF   rà   )r,  r-  r.  Ú3)r   r=   rF   rC   rs   r   r"  )rc   rb   Ústring_typer  ry   s        rd   r  z9test_multilabel_confusion_matrix_multiclass.<locals>.testý  s  € ä(¨°Ó8ˆÜØ�2�q�'˜A˜r˜7Ð# r¨1 g°°A¨wÐ%7¸2¸r¸(ÀQÈÀGÐ9LÐMô	
ñ
 %0“²YˆÜ(¨°ÀÔGˆÜØ�2�q�'˜A˜r˜7Ð# r¨2 h°°B°Ð%8¸BÀ¸7ÀRÈÀGÐ:LÐMô	
ñ
 *5Ó%º,ˆÜ(¨°ÀÔGˆÜØà�a�˜1˜b˜'Ð"Ø�b�˜A˜r˜7Ð#Ø�a�˜2˜q˜'Ð"Ø�a�˜1˜a˜&Ð!ð	õ	
rf   T)r1  )Fr  r  s        rd   Ú+test_multilabel_confusion_matrix_multiclassr2  ù  sT   € ä'¨uÔ5Ñ€FˆF�Aó
ñ6 	ˆ�ÔÙ˜&Ö	!�QŒ#ˆa�&Ò	!°FÖ#;¨q¤C¨¥FÒ#;ÈÖNùÒ	!ùÒ#;s
   ¤A¼A
Úcsc_containerÚcsr_containerc                 óî  — t        j                  g d¢g d¢g d¢g«      }t        j                  g d¢g d¢g d¢g«      } ||«      } ||«      } | |«      } | |«      }t        j                  g d¢«      }dd	gddggdd	gddggd	d
gdd	ggg}	|||g}
|||g}|
D ]!  }|D ]  }t        ||«      }t        ||	«       Œ Œ# t        ||d¬«      }t        |dd	gddggddgd	dggd	dgd
d	ggg«       t        ||d
d	g¬«      }t        |d	d
gdd	ggdd	gddggg«       t        ||d
d	gd¬«      }t        |d	d	gddggddgd	d	ggd	dgdd	ggg«       t        |||d¬«      }t        |d
d	gd
d
ggddgd	dggd	dgdd	ggg«       y )Nr¡   ©r   rF   r   ©rF   rF   r   rÑ   r    r¢   )r=   rF   rC   rF   r   r=   T©Ú
samplewiserà   )ry   r9  )Úsample_weightr9  rC   rÐ   )rK   r¤   r!   r6   )r3  r4  rc   rb   Ú
y_true_csrÚ
y_pred_csrÚ
y_true_cscÚ
y_pred_cscr:  Úreal_cmÚtruesÚpredsÚ
y_true_tmpÚ
y_pred_tmpr  s                  rd   Ú+test_multilabel_confusion_matrix_multilabelrD    s  € ô
 �X‰X’y¢)ªYÐ7Ó8€FÜ�X‰X’y¢)ªYÐ7Ó8€FÙ˜vÓ&€JÙ˜vÓ&€JÙ˜vÓ&€JÙ˜vÓ&€Jô —H‘HšYÓ'€MØ�A�˜˜A˜Ð 1 a &¨1¨a¨&Ð!1°Q¸°F¸QÀ¸FÐ3CÐD€GØ�Z Ð,€EØ�Z Ð,€Eàò ,ˆ
Øò 	,ˆJÜ,¨Z¸ÓDˆBÜ˜r 7Õ+ñ	,ð,ô 
% V¨VÀÔ	E€BÜ�r˜a ˜V a¨ VÐ,°°1¨v¸¸1°vÐ.>À!ÀQÀÈ!ÈQÈÐ@PÐQÔRô 
% V¨V¸QÀ¸FÔ	C€BÜ�r˜a ˜V a¨ VÐ,°°1¨v¸¸1°vÐ.>Ð?Ô@ô 
% V¨V¸QÀ¸FÈtÔ	T€BÜ�r˜a ˜V a¨ VÐ,°°1¨v¸¸1°vÐ.>À!ÀQÀÈ!ÈQÈÐ@PÐQÔRô 
%Ø� mÀô
€Bô �r˜a ˜V a¨ VÐ,°°1¨v¸¸1°vÐ.>À!ÀQÀÈ!ÈQÈÐ@PÐQÕRrf   c            	      ó¨  — t        j                  g d¢g d¢g d¢g«      } t        j                  g d¢g d¢g d¢g«      }t        j                  t        d¬«      5  t        | |d	d
g¬«       d d d «       t        j                  t        d¬«      5  t        | |g d¢g d¢g d¢g¬«       d d d «       d}t        j                  t        |¬«      5  t        | |dg¬«       d d d «       d}t        j                  t        |¬«      5  t        | |dg¬«       d d d «       t        j                  t        d¬«      5  t        g d¢g d¢d¬«       d d d «       d}t        j                  t        |¬«      5  t        g d¢g d¢gg d¢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   ŒÌxY w# 1 sw Y   Œ£xY w# 1 sw Y   ŒyxY w# 1 sw Y   y xY w)Nr¡   r6  r7  rÑ   r    r¢   úinconsistent numbers of samplesrò   rF   r=   ©r:  z)Sample weights must be 1D array or scalar©rF   r=   rC   )r=   rC   r´   )rC   r´   r³   z%All labels must be in \[0, n labels\)rÂ   rà   rC   zSamplewise metricsrš   ræ   Tr8  z'multiclass-multioutput is not supported)r=   rF   r   ©rF   r   r=   )rK   r¤   rÄ   rØ   rÙ   r!   )rc   rb   r÷   s      rd   Ú'test_multilabel_confusion_matrix_errorsrJ  F  s”  € Ü�X‰X’y¢)ªYÐ7Ó8€FÜ�X‰X’y¢)ªYÐ7Ó8€Fô 
�‰”zÐ)JÔ	Kñ JÜ# F¨FÀ1ÀaÀ&ÕI÷Jä	�‰”zÐ)TÔ	Uñ 
Ü#Ø�Fª9²iÂÐ*Kõ	
÷
ð 7€GÜ	�‰”z¨Ô	1ñ AÜ# F¨F¸B¸4Õ@÷Aà6€GÜ	�‰”z¨Ô	1ñ @Ü# F¨F¸A¸3Õ?÷@ô 
�‰”zÐ)=Ô	>ñ KÜ#¢IªyÀTÕJ÷Kð 8€GÜ	�‰”z¨Ô	1ñ TÜ#¢Y²	Ð$:ºYÊ	Ð<RÔS÷Tð T÷+Jñ Jú÷
ð 
ú÷Að Aú÷@ð @ú÷Kð Kú÷
Tð TúsH   ÁFÂFÃ	F$Ã>F0Ä1F<Å)GÆFÆF!Æ$F-Æ0F9Æ<GÇGz%normalize, cm_dtype, expected_results))Útruer·   çµùTUUÕ?)Úpredr·   rL  )Úallr·   g��eÇq¼?)NrÜ   r=   c                 ó´   — g d¢dz  }t        t        t        g d¢«      Ž «      }t        ||| ¬«      }t	        ||«       |j
                  j                  |k(  sJ ‚y )Nrš   rÐ   ©Ú	normalize)Úlistr   r   r   r3   ÚdtypeÚkind)rQ  Úcm_dtypeÚexpected_resultsÚy_testrb   r  s         rd   Útest_confusion_matrix_normalizerX  d  sP   € ò ˜‰]€FÜ”%œ¢iÓ0Ð1Ó2€FÜ	˜& &°IÔ	>€BÜ�BÐ(Ô)Ø�8‰8�=‰=˜HÒ$Ð$Ñ$rf   c                  ó  — g d¢} g d¢}t        | |d¬«      }|j                  «       t        j                  d«      k(  sJ ‚t	        j
                  «       5  t	        j                  dt        «       t        | |d¬«      }d d d «       j                  «       t        j                  d«      k(  sJ ‚t	        j
                  «       5  t	        j                  dt        «       t        || d¬«       d d d «       y # 1 sw Y   ŒwxY w# 1 sw Y   y xY w)	N)r   r   r   r   rF   rF   rF   rF   )r   r   r   r   r   r   r   r   rK  rP  ç       @r±   rM  r¿   )r   ÚsumrÄ   rÅ   r“   r”   rµ   ÚRuntimeWarning)rW  rb   Úcm_trueÚcm_preds       rd   Ú,test_confusion_matrix_normalize_single_classr_  u  sÝ   € Ú%€FÚ%€Fä˜v v¸Ô@€GØ�;‰;‹=œFŸM™M¨#Ó.Ò.Ð.Ð.ô 
×	 Ñ	 Ó	"ñ EÜ×Ñ˜g¤~Ô6Ü" 6¨6¸VÔDˆ÷Eð �;‰;‹=œFŸM™M¨#Ó.Ò.Ð.Ð.ä	×	 Ñ	 Ó	"ñ ;Ü×Ñ˜g¤~Ô6Ü˜ °6Õ:÷;ð ;÷Eð Eú÷;ð ;ús   Á)C2Ã )C>Ã2C;Ã>Dc                  óŒ   — g d¢} g d¢}t        j                  t        d¬«      5  t        || «       ddd«       y# 1 sw Y   yxY w)z8Test `confusion_matrix` warns when only one label found.©r   r   r   r   zA single label was found inrò   N)rÄ   r  r  r   )rW  rb   s     rd   Ú"test_confusion_matrix_single_labelrb  ˆ  s:   € â€FÚ€Fä	�‰”kÐ)FÔ	Gñ )Ü˜ Ô(÷)÷ )ñ )ús	   ¤:ºAzparams, warn_msg)rF   rF   rF   r   r   r   ©rc   rb   z?`positive_likelihood_ratio` is ill-defined and set to `np.nan`.)r   r   r   r   r   r   zdNo samples were predicted for the positive class and `positive_likelihood_ratio` is set to `np.nan`.©r   r   r   rF   rF   rF   z?`negative_likelihood_ratio` is ill-defined and set to `np.nan`.z9No samples of the positive class are present in `y_true`.c                 óz   — t        j                  t        |¬«      5  t        di | ¤Ž d d d «       y # 1 sw Y   y xY w©Nrò   rÆ   )rÄ   r  r  r   )ÚparamsÚwarn_msgs     rd   Útest_likelihood_ratios_warningsri  ‘  s3   € ôX 
�‰”k¨Ô	2ñ *ÜÑ) &Ò)÷*÷ *ñ *úó   œ1±:zparams, err_msg)r   rF   r   rF   r   ©rF   rF   r   r   r=   zeclass_likelihood_ratios only supports binary classification problems, got targets of type: multiclassc                 óz   — t        j                  t        |¬«      5  t        di | ¤Ž d d d «       y # 1 sw Y   y xY wrf  )rÄ   rØ   rÙ   r   )rg  r÷   s     rd   Útest_likelihood_ratios_errorsrm  Á  s2   € ô$ 
�‰”z¨Ô	1ñ *ÜÑ) &Ò)÷*÷ *ñ *úrj  c                  ó  — t        j                  dgdz  dgdz  z   «      } t        j                  dgdz  dgdz  z   dgdz  z   «      }t        | |«      \  }}t        |d«       t        |d	«       t        | | «      \  }}t	        |t         j
                  dz  «       t        |t        j                  d«      d
¬«       t        j                  dgdz  dgdz  z   «      }t        | ||¬«      \  }}t        |d«       t        |d«       y )NrF   rC   r   r  r=   é
   r  g«ªªªªªö?g_B{	í%ä?gê-�™—q=)Úrtolr¿   é   rÁ   r³   rG  gUUUUUU@gÇqÇqÜ?)rK   r¤   r   r3   r6   Únanr¦   )rc   rb   ÚposÚnegr:  s        rd   Útest_likelihood_ratiosru  ×  sð   € ô �X‰X�q�c˜A‘g   b¡Ñ(Ó)€FÜ�X‰X�q�c˜A‘g   b¡Ñ(¨A¨3°©7Ñ2Ó3€Fä& v¨vÓ6�H€CˆÜ�C˜Ô!Ü�C˜Ô!ô ' v¨vÓ6�H€CˆÜ�sœBŸF™F Q™JÔ'Ü�CœŸ™ !›¨5Õ1ô
 —H‘H˜c˜U R™Z¨3¨%°!©)Ñ3Ó4€MÜ& v¨vÀ]ÔS�H€CˆÜ�C˜Ô Ü�C˜Õ!rf   c                  óh  — t        j                  g d¢«      } t        j                  g d¢«      }t        | |d¬«      \  }}|t        j                  d«      k(  sJ ‚t        j                  g d¢«      } t        j                  g d¢«      }t        | |d¬«      \  }}|t        j                  d«      k(  sJ ‚y)zTest that class_likelihood_ratios returns the worst scores `1.0` for both LR+ and
    LR- when `replace_undefined_by=1` is set.r7  rÑ   rF   ©Úreplace_undefined_byr¿   rÒ   N)rK   r¤   r   rÄ   rÅ   )rc   rb   Úpositive_likelihood_ratior�   Únegative_likelihood_ratios        rd   Ú1test_likelihood_ratios_replace_undefined_by_worstr{  ð  sž   € ô
 �X‰X’iÓ €FÜ�X‰X’iÓ €Fä#:Ø�¨Qô$Ñ Ð˜qð %¬¯©°cÓ(:Ò:Ð:Ð:ô �X‰X’iÓ €FÜ�X‰X’iÓ €Fä#:Ø�¨Qô$Ñ €AÐ ð %¬¯©°cÓ(:Ò:Ð:Ñ:rf   rx  úLR+rÁ   úLR-g      À)r|  r}  r¿   rr  rZ  c                 óà   — t        j                  ddg«      }t        j                  ddg«      }d}t        j                  t        |¬«      5  t        ||| ¬«       ddd«       y# 1 sw Y   yxY w)zžTest that class_likelihood_ratios raises a `ValueError` if the input dict for
    `replace_undefined_by` is in the wrong format or contains impossible values.rF   r   zGThe dictionary passed as `replace_undefined_by` needs to be in the formrò   rw  N)rK   r¤   rÄ   rØ   rÙ   r   )rx  rc   rb   r˜   s       rd   Ú6test_likelihood_ratios_wrong_dict_replace_undefined_byr    s`   € ô �X‰X�q˜!�fÓ€FÜ�X‰X�q˜!�fÓ€Fà
S€CÜ	�‰”z¨Ô	-ñ 
ÜØ�FÐ1Eõ	
÷
÷ 
ñ 
ús   ÁA$Á$A-zreplace_undefined_by, expectedc                 ó  — t        j                  g d¢«      }t        j                  g d¢«      }t        ||| ¬«      \  }}t        j                  |«      rt        j                  |«      sJ ‚y|t	        j
                  |«      k(  sJ ‚y)z€Test that the `replace_undefined_by` param returns the right value for the
    positive_likelihood_ratio as defined by the user.r7  rÑ   rw  N©rK   r¤   r   ÚisnanrÄ   rÅ   )rx  Úexpectedrc   rb   ry  r�   s         rd   Ú0test_likelihood_ratios_replace_undefined_by_0_fpr„     sp   € ô �X‰X’iÓ €FÜ�X‰X’iÓ €Fä#:Ø�Ð-Aô$Ñ Ð˜qô 
‡x�x�ÔÜ�x‰xÐ1Ô2Ð2Ñ2à(¬F¯M©M¸(Ó,CÒCÐCÑCrf   r£   c                 ó  — t        j                  g d¢«      }t        j                  g d¢«      }t        ||| ¬«      \  }}t        j                  |«      rt        j                  |«      sJ ‚y|t	        j
                  |«      k(  sJ ‚y)z€Test that the `replace_undefined_by` param returns the right value for the
    negative_likelihood_ratio as defined by the user.rÑ   rÒ   rw  Nr�  )rx  rƒ  rc   rb   r�   rz  s         rd   Ú0test_likelihood_ratios_replace_undefined_by_0_tnr†  <  sp   € ô �X‰X’iÓ €FÜ�X‰X’iÓ €Fä#:Ø�Ð-Aô$Ñ €AÐ ô 
‡x�x�ÔÜ�x‰xÐ1Ô2Ð2Ñ2à(¬F¯M©M¸(Ó,CÒCÐCÑCrf   c                  ó´  — t        j                  dgdz  dgdz  z   «      } t        j                  dgdz  dgdz  z   dgdz  z   dgdz  z   «      }t        | |«      }t        |dd	¬
«       |t        || «      k(  sJ ‚t        j                  | dgdz  «      } t        j                  |dgdz  «      }t        | |ddg¬«      |k(  sJ ‚t        t        | | «      d«       t        j                  dgdz  dgdz  z   dgdz  z   «      } t        j                  dgdz  dgdz  z   dgdz  z   «      }t        t        | |«      dd¬
«       t        j                  dgdz  dgdz  z   dgdz  z   «      } t        j                  dgdz  dgdz  z   dgdz  z   «      }t        t        | |«      dd¬
«       t        t        | |d¬«      dd¬
«       t        t        | |d¬«      dd¬
«       y )Nr   é(   rF   é<   rr   ro  é2   gƒÀÊ¡EÖ?rC   r  r=   r´   rà   r¿   é.   é,   é4   é    é   gÉå?¤é?g+‡ÙÎí?r@   ©Úweightsg®Ø_vOî?Ú	quadraticgœ¢#¹ü‡î?)rK   r¤   r   r4   Úappend)r¨   r©   Úkappas      rd   Útest_cohen_kappar•  X  sä  € ô 
�‰�1�#˜‘(˜a˜S 2™XÑ%Ó	&€BÜ	�‰�1�#˜‘(˜a˜S 2™XÑ%¨¨¨b©Ñ0°A°3¸±8Ñ;Ó	<€BÜ˜b "Ó%€EÜ˜˜u¨aÕ0ØÔ% b¨"Ó-Ò-Ð-Ð-ô 
�‰�2˜�s˜Q‘wÓ	€BÜ	�‰�2˜�s˜Q‘wÓ	€BÜ˜R ¨Q°¨FÔ3°uÒ<Ð<Ð<äÔ)¨"¨bÓ1°3Ô7ô 
�‰�1�#˜‘(˜a˜S 2™XÑ%¨¨¨b©Ñ0Ó	1€BÜ	�‰�1�#˜‘(˜a˜S 2™XÑ%¨¨¨b©Ñ0Ó	1€BÜÔ)¨"¨bÓ1°6À1ÕEô 
�‰�1�#˜‘(˜a˜S 2™XÑ%¨¨¨b©Ñ0Ó	1€BÜ	�‰�1�#˜‘(˜a˜S 2™XÑ%¨¨¨b©Ñ0Ó	1€BÜÔ)¨"¨bÓ1°6À1ÕEÜÔ)¨"¨b¸(ÔCÀVÐUVÕWÜÜ˜"˜b¨+Ô6¸Èörf   )ÚcategoryÚ	test_caser³   r=   rC   ro  r@   c                 ó¢   — | \  }}}}t        j                  |«      t        j                  |«      }}t        |||||¬«      }t        ||d¬«       y)aM  Test that cohen_kappa_score handles divisions by 0 correctly by returning the
    `replace_undefined_by` param. (The first test case covers the first possible
    location in the function for an occurrence of a division by zero, the last three
    test cases cover a zero division in the second possible location in the
    function.)ry   r‘  rx  T)Ú	equal_nanN)rK   r¤   r   r3   )r—  rx  r¨   r©   ry   r‘  Úscores          rd   Útest_cohen_kappa_undefinedr›  w  sS   € ð4 (Ñ€BˆˆF�GÜ�X‰X�b‹\œ2Ÿ8™8 B›<ˆ€BäØ
Ø
ØØØ1ô€Eô �EÐ/¸4Ö@rf   c                  óþ  — ddg} t        j                  dgdz  dgdz  z   «      }t        j                  dgdz  «      }t        j                  t        d¬«      5  t        ||| ¬«       d	d	d	«       ddg} t        j                  dgdz  dgdz  z   «      }t        j                  dgdz  dgdz  z   «      }t        j                  t        d
¬«      5  t        ||| ¬«       d	d	d	«       y	# 1 sw Y   Œ€xY w# 1 sw Y   y	xY w)zZTest that cohen_kappa_score raises UndefinedMetricWarning when a division by 0
    occurs.rF   r=   r³   rC   ro  zC`y2` contains no labels that are present in both `y1` and `labels`.rò   rà   Nz6`y1`, `y2` and `labels` have only one label in common.)rK   r¤   rÄ   r  r   r   ©ry   r¨   r©   s      rd   Ú&test_cohen_kappa_zero_division_warningrž  ž  sø   € ð �ˆV€FÜ	�‰�1�#˜‘'˜Q˜C !™GÑ#Ó	$€BÜ	�‰�1�#˜‘(Ó	€BÜ	�‰ÜØSô
ñ 1ô 	˜"˜b¨Õ0÷	1ð �ˆV€FÜ	�‰�1�#˜‘'˜Q˜C !™GÑ#Ó	$€BÜ	�‰�1�#˜‘'˜Q˜C !™GÑ#Ó	$€BÜ	�‰ÜØFô
ñ 1ô 	˜"˜b¨Õ0÷	1ð 1÷1ð 1ú÷1ð 1ús   ÁC'ÃC3Ã'C0Ã3C<c                  óú   — ddg} t        j                  dgdz  dgdz  z   «      }t        j                  dgdz  «      }t        j                  t        d¬«      5  t        ||| ¬	«       d
d
d
«       y
# 1 sw Y   y
xY w)zLTest that correct error is raised when users pass labels that are not in y1.rF   r=   r‹   r³   rŒ   ro  z6At least one label in `labels` must be present in `y1`rò   rà   N)rK   r¤   rÄ   rØ   rÙ   r   r�  s      rd   Ú(test_cohen_kappa_score_error_wrong_labelr   µ  ss   € à�ˆV€FÜ	�‰�3�%˜!‘)˜s˜e a™iÑ'Ó	(€BÜ	�‰�3�%˜"‘*Ó	€BÜ	�‰ÜÐRô
ñ 1ô 	˜"˜b¨Õ0÷1÷ 1ñ 1ús   ÁA1Á1A:zy_true, y_predr…   rÀ   c                 óþ   — t        j                  «       5  t        j                  d«        | |||¬«      }ddd«       t        j                  |«      rt        j                  «      sJ ‚y|k(  sJ ‚y# 1 sw Y   Œ>xY w)zmCheck the behaviour of `zero_division` when setting to 0, 1 or np.nan.
    No warnings should be raised.
    r±   ©r‡   N)r“   r”   rµ   rK   r‚  )r…   rc   rb   r‡   Úresults        rd   Ú!test_zero_division_nan_no_warningr¤  À  ss   € ô 
×	 Ñ	 Ó	"ñ EÜ×Ñ˜gÔ&Ù˜ °mÔDˆ÷Eô 
‡x�x�ÔÜ�x‰x˜ÔÐÑà˜Ò&Ð&Ñ&÷Eð Eús   •!A3Á3A<c                 ó„   — t        j                  t        «      5   | ||d¬«      }ddd«       dk(  sJ ‚y# 1 sw Y   ŒxY w)ztCheck the behaviour of `zero_division` when setting to "warn".
    A `UndefinedMetricWarning` should be raised.
    rˆ   r¢  NrÁ   )rÄ   r  r   )r…   rc   rb   r£  s       rd   Útest_zero_division_nan_warningr¦  Ù  s@   € ô 
�‰Ô,Ó	-ñ >Ù˜ °fÔ=ˆ÷>à�SŠ=Ð‰=÷>ð >ús   š6¶?c                 óî   — t         j                  j                  | «      }|j                  ddd¬«      }|j                  ddd¬«      }t	        t        ||«      t        j                  ||«      d   d«       y )Nr   r=   rr   ©Úsize©r   rF   ro  )rK   rO   rP   Úrandintr4   r    Úcorrcoef)Úglobal_random_seedr^   rc   rb   s       rd   Ú-test_matthews_corrcoef_against_numpy_corrcoefr®  ì  se   € Ü
�)‰)×
Ñ
Ð 2Ó
3€CØ�[‰[˜˜A Bˆ[Ó'€FØ�[‰[˜˜A Bˆ[Ó'€FäÜ˜& &Ó)¬2¯;©;°v¸vÓ+FÀtÑ+LÈbõrf   c                 ó‚  — t         j                  j                  | «      }|j                  ddd¬«      }|j                  ddd¬«      }|j	                  d«      }t        |||¬«      }t        |«      }t        t        |«      D ���	cg c]A  }t        |«      D ]1  }t        |«      D ]!  }	|||f   |||	f   z  ||	|f   |||f   z  z
  ‘Œ# Œ3 ŒC c}	}}«      }
t        t        |«      D ���cg c]c  }|d d …|f   j                  «       t        j                  t        |«      D ��cg c]  }t        |«      D ]  }||k7  sŒ	|||f   ‘Œ Œ! c}}«      z  ‘Œe c}}}«      }t        j                  t        |«      D ���cg c]c  }||d d …f   j                  «       t        j                  t        |«      D ��cg c]  }t        |«      D ]  }||k7  sŒ	|||f   ‘Œ Œ! c}}«      z  ‘Œe c}}}«      }|
t        j                  ||z  «      z  }t        |||¬«      }t        ||d«       y c c}	}}w c c}}w c c}}}w c c}}w c c}}}w )Nr   r=   rr   r¨  rG  ro  )rK   rO   rP   r«  Úrandr   r|   r[  Úranger  r    r4   )r­  r^   rc   rb   r:  ÚCÚNÚkÚmÚlÚcov_ytypr·   ÚgÚcov_ytytÚcov_ypypÚ
mcc_jurmanÚmcc_ourss                    rd   Ú%test_matthews_corrcoef_against_jurmanr½  ö  s<  € ô �)‰)×
Ñ
Ð 2Ó
3€CØ�[‰[˜˜A Bˆ[Ó'€FØ�[‰[˜˜A Bˆ[Ó'€FØ—H‘H˜R“L€Mä˜ °}ÔE€AÜˆA‹€AÜô ˜1“X÷	
ð 	
àÜ˜1“Xò	
ð Ü˜1“Xò		
ð ð ˆa�ˆd‰G�a˜˜1˜‘gÑ  ! Q $¡¨!¨A¨q¨D©'Ñ 1Ó1ð	
Ø1ð	
Ø1ô	
ó€Hô ô ˜1“X÷	
ð 	
ð ð Ša�ˆd‰G�K‰K‹MÜ�f‰f¤u¨Q£x×L !¼¸q»ÒL°AÀQÈ!ÃV�a˜˜1˜“gÐL�gÓLÓMóNô	
ó€Hô �v‰vô ˜1“X÷	
ð 	
ð ð ˆa’ˆd‰G�K‰K‹MÜ�f‰f¤u¨Q£x×L !¼¸q»ÒL°AÀQÈ!ÃV�a˜˜1˜“gÐL�gÓLÓMóNô	
ó€Hð œBŸG™G H¨xÑ$7Ó8Ñ8€JÜ  ¨¸}ÔM€Hä˜ *¨bÕ1ùô1	
ùó Mùô	
ùó Mùô	
sC   ÂAH Ã)8H-Ä!H'Ä:H'ÅH-Å88H:Æ0H4Ç	H4ÇH:È'H-È4H:c           	      óþ  — t         j                  j                  | «      }|j                  ddd¬«      D �cg c]  }|dk(  rdnd‘Œ }}t	        t        ||«      d«       |D �cg c]  }|dk(  rdnd‘Œ }}t	        t        ||«      d«       t        |ddg¬	«      }t        j                  |dd«      }t	        t        ||«      d«       t	        t        g d
¢g d
¢«      d«       t	        t        |dgt        |«      z  «      d«       g d¢}g d¢}t	        t        ||«      d«       dgdz  dgdz  z   }t        j                  t        «      5  t	        t        |||¬«      d«       d d d «       y c c}w c c}w # 1 sw Y   y xY w)Nr   r=   rr   r¨  r‹   rŒ   r¿   rÂ   rÉ   ra  rÁ   )rF   r   rF   rF   r   rF   rF   rF   r   rF   rF   rF   rF   rF   rF   rF   r   rF   rF   rF   )rF   rF   rF   r   r   rF   rF   rF   rF   r   rF   rF   rF   r   rF   rF   rF   r   rF   rF   rF   ro  rG  )rK   rO   rP   r«  r4   r    r+   Úwherer|   rÄ   rØ   ÚAssertionError)	r­  r^   rÜ   rc   Ú
y_true_invÚy_true_inv2Úy_1Úy_2Úmasks	            rd   Útest_matthews_corrcoefrÆ    st  € Ü
�)‰)×
Ñ
Ð 2Ó
3€CØ.1¯k©k¸!¸QÀR¨kÓ.HÖI¨�Q˜!’V‰c Ñ$ÐI€FÐIô Ô)¨&°&Ó9¸3Ô?ð 5;Ö;¨q˜˜cš‘# sÑ*Ð;€JÐ;ÜÔ)¨&°*Ó=¸rÔBä  °#°s°Ô<€KÜ—(‘(˜;¨¨SÓ1€KÜÔ)¨&°+Ó>ÀÔCô Ô)ª,ºÓEÀsÔKô Ô)¨&°3°%¼#¸f»+Ñ2EÓFÈÔLò G€CÚ
F€CÜÔ)¨#¨sÓ3°SÔ9ð ˆ3�‰8�q�c˜B‘hÑ€Dô 
�‰”~Ó	&ñ RÜÔ-¨c°3ÀdÔKÈSÔQ÷Rð Rùò; Jùò <÷.Rð Rús   ¶E)Á"E.ÅE3Å3E<c                 óÔ  — t         j                  j                  | «      }t        d«      }d}|j	                  d|d¬«      D �cg c]  }t        ||z   «      ‘Œ }}t        t        ||«      d«       g d¢}g d¢}t        t        ||«      d	«       g d¢}g d
¢}t        t        ||«      dt        j                  d«      z  «       g d¢}g d¢}t        t        ||«      d«       g d¢}g d¢}t        t        ||«      d«       g d¢}	g d¢}
t        t        |	|
«      d«       g d¢}g d¢}g d¢}t        t        |||¬«      d«       g d¢}g d¢}g d¢}t        t        |||¬«      d«       y c c}w )Nr‹   r´   r   rr   r¨  r¿   )r   r   rF   rF   r=   r=   )r=   r=   r   r   rF   rF   g      à¿)rF   rF   r   r   r   r   iôÿÿÿi€  rš   )rC   rC   rC   rÁ   ©	r   rF   r=   r   rF   r=   r   rF   r=   )	rF   rF   rF   r=   r=   r=   r   r   r   )r   r   rF   rF   r=   rk  ©rF   rF   rF   rF   r   rG  rÂ   rù   ©rF   rF   r   r   )	rK   rO   rP   Úordr«  Úchrr4   r    r  )r­  r^   Úord_aÚ	n_classesrÜ   rc   Ú
y_pred_badÚ
y_pred_minrb   rÃ  rÄ  r:  s               rd   Ú!test_matthews_corrcoef_multiclassrÑ  @  s\  € Ü
�)‰)×
Ñ
Ð 2Ó
3€CÜ�‹H€EØ€IØ&)§k¡k°!°YÀR kÓ&HÖI Œc�%˜!‘)�nÐI€FÐIô Ô)¨&°&Ó9¸3Ô?ò  €FÚ#€JÜÔ)¨&°*Ó=¸tÔDò  €FÚ#€JÜÔ)¨&°*Ó=¸sÄRÇWÁWÈWÓEUÑ?UÔVò €FÚ€FÜÔ)¨&°&Ó9¸3Ô?ò €FÚ€FÜÔ)¨&°&Ó9¸3Ô?ò &€CÚ
%€CÜÔ)¨#¨sÓ3°SÔ9ò €FÚ€FÚ#€MÜÜ˜& &¸ÔFÈôò €FÚ€FÚ €MÜÜ˜& &¸ÔFÈõùò_ Js   ÁE%Ún_pointséd   i'  c                 óˆ  ‡— t         j                  j                  |«      Šd„ }ˆfd„}t        j                  ddg| «      }t	        t        ||«      d«       t        j                  g d¢| «      }t	        t        ||«      d«        || «      \  }}t	        t        ||«      d«       t	        t        ||«       |||«      «       y )Nc                 óÖ   — t        | |«      }|d   }|d   }|d   }t        | «      }||z   |z  }||z   |z  }||z  ||z  z
  }	||z  d|z
  z  d|z
  z  }
|	t        j                  |
«      z  S )N©rF   rF   )rF   r   rª  rF   )r   r|   rK   r  )rc   rb   Úconf_matrixÚtrue_posÚ	false_posÚ	false_negrÒ  Úpos_rateÚactivityÚmcc_numeratorÚmcc_denominators              rd   Úmcc_safez1test_matthews_corrcoef_overflow.<locals>.mcc_safe}  s—   € Ü& v¨vÓ6ˆØ˜tÑ$ˆØ Ñ%ˆ	Ø Ñ%ˆ	Ü�v“;ˆØ˜yÑ(¨HÑ4ˆØ˜yÑ(¨HÑ4ˆØ  8Ñ+¨h¸Ñ.AÑAˆØ" XÑ-°°X±Ñ>À!ÀhÁ,ÑOˆØœrŸw™w Ó7Ñ7Ð7rf   c                 óv   •— ‰j                  | «      }|d‰j                  | «      dz
  z  z   }|dkD  }|dkD  }||fS )Nrë   r£   )Úrandom_sample)rÒ  Úx_trueÚx_predrc   rb   r^   s        €rd   Ú	random_ysz2test_matthews_corrcoef_overflow.<locals>.random_ys‰  sN   ø€ Ø×"Ñ" 8Ó,ˆØ˜# ×!2Ñ!2°8Ó!<¸sÑ!BÑCÑCˆØ˜#‘ˆØ˜#‘ˆØ�vˆ~Ðrf   rÁ   r¿   )rÁ   r¿   rZ  )rK   rO   rP   Úrepeatr4   r    )rÒ  r­  rß  rä  Úarrrc   rb   r^   s          @rd   Útest_matthews_corrcoef_overflowrç  x  s§   ø€ ô �)‰)×
Ñ
Ð 2Ó
3€Cò
8ôô �)‰)�S˜#�J Ó
)€CÜÔ)¨#¨sÓ3°SÔ9Ü
�)‰)’O XÓ
.€CÜÔ)¨#¨sÓ3°SÔ9á˜xÓ(�N€FˆFÜÔ)¨&°&Ó9¸3Ô?ÜÔ)¨&°&Ó9¹8ÀFÈFÓ;SÕTrf   c                  ó,  — t        d¬«      \  } }}t        | |d ¬«      \  }}}}t        |g d¢d«       t        |g d¢d«       t        |g d¢d«       t        |g d¢«       t	        | |d	d
¬«      }t        |dd«       t        | |d
¬«      }t        |dd«       t        | |d
¬«      }	t        |	dd«       t	        | |d¬«      }t        |dd«       t        | |d¬«      }t        |dd«       t        | |d¬«      }	t        |	dd«       t	        | |d¬«      }t        |dd«       t        | |d¬«      }t        |dd«       t        | |d¬«      }	t        |	dd«       t        j                  t        «      5  t	        | |d¬«       d d d «       t        j                  t        «      5  t        | |d¬«       d d d «       t        j                  t        «      5  t        | |d¬«       d d d «       t        j                  t        «      5  t        | |dd¬«       d d d «       t        | |g d¢d ¬«      \  }}}}t        |g d¢d«       t        |g d¢d«       t        |g d¢d«       t        |g 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   ŒxY w)NFr¬   r­   )ç�Âõ(\�ê?ç…ëQ¸Õ?gáz®GáÚ?r=   )çHáz®Gé?g
×£p=
·?rp   )çìQ¸…ëé?ç333333Ã?r  )ri   ro   rr   rF   rÍ   r  gö(\�Âõà?rÌ   rú   gR¸…ëQà?rÎ   g®GázÞ?rÏ   r£   ©r®   r²   r/  rË   )ré  g=
×£p=Ú?rê  )rë  rp   rì   )rì  r  rí  )ri   rr   ro   )re   r"   r5   r6   r#   r$   r   rÄ   rØ   rÙ   r   )
rc   rb   r�   r]   r¶   r·   r¸   rº   r»   r¼   s
             rd   Ú)test_precision_recall_f1_score_multiclassrï  š  sT  € ä'¨uÔ5Ñ€FˆF�Aô 1°¸ÈÔN�J€A€qˆ!ˆQÜ˜aÒ!3°QÔ7Ü˜aÒ!3°QÔ7Ü˜aÒ!3°QÔ7Ü�qš,Ô'ô 
˜ °1¸gÔ	F€BÜ˜b $¨Ô*ä	�f˜f¨gÔ	6€BÜ˜b $¨Ô*ä	�&˜&¨'Ô	2€BÜ˜b $¨Ô*ä	˜ °Ô	9€BÜ˜b $¨Ô*ä	�f˜f¨gÔ	6€BÜ˜b $¨Ô*ä	�&˜&¨'Ô	2€BÜ˜b $¨Ô*ä	˜ °Ô	<€BÜ˜b $¨Ô*ä	�f˜f¨jÔ	9€BÜ˜b $¨Ô*ä	�&˜&¨*Ô	5€BÜ˜b $¨Ô*ä	�‰”zÓ	"ñ ;Ü˜ °	Õ:÷;ä	�‰”zÓ	"ñ 8Ü�V˜V¨YÕ7÷8ä	�‰”zÓ	"ñ 4Ü�˜¨Õ3÷4ä	�‰”zÓ	"ñ AÜ�F˜F¨I¸CÕ@÷Aô 1Ø�šy°$ô�J€A€qˆ!ˆQô ˜aÒ!3°QÔ7Ü˜aÒ!3°QÔ7Ü˜aÒ!3°QÔ7Ü�qš,Õ'÷!;ð ;ú÷8ð 8ú÷4ð 4ú÷Að Aús0   Å,I&ÆI2ÇI>Ç<J
É&I/É2I;É>JÊ
Jr®   )rÏ   rÍ   rÌ   rÎ   Nc                 óü   — t        j                  g d¢g«      }t        j                  g d¢g«      }t        ||g d¢g | ¬«      \  }}}}t        |d«       t        |d«       t        |d«       | €t        |g d¢«       y y )NrÊ  ©r   r   rF   rF   )rC   r   rF   r=   )ry   Úwarn_forr®   r   ©r   rF   rF   r   )rK   r¤   r"   r6   )r®   rc   rb   r]   r¶   r·   r¸   s          rd   Ú;test_precision_refcall_f1_score_multilabel_unordered_labelsrô  Ô  su   € ô �X‰X’|�nÓ%€FÜ�X‰X’|�nÓ%€FÜ0Ø�š|°bÀ'ô�J€A€qˆ!ˆQô �q˜!ÔÜ�q˜!ÔÜ�q˜!ÔØ€Ü˜1šlÕ+ð rf   c                  ó@  — t        j                  g d¢«      } t        j                  g d¢«      }t        | |d ¬«      \  }}}}t        | |d¬«      \  }}}}|t        j                  |«      k(  sJ ‚|t        j                  |«      k(  sJ ‚|t        j                  |«      k(  sJ ‚t        | |d¬«      \  }}}}t        j                  | «      }	|t        j
                  ||	¬«      k(  sJ ‚|t        j
                  ||	¬«      k(  sJ ‚|t        j
                  ||	¬«      k(  sJ ‚y )N)r   rF   r   r   rF   rF   r   rF   r   r   rF   r   rF   r   rF   )rF   rF   r   rF   r   rF   rF   rF   rF   r   rF   r   rF   r   rF   r­   rÌ   rÎ   r�  )rK   r¤   r"   r×   Úbincountr®   )
rc   rb   rº   r»   r¼   r�   r]   r¶   r·   rm   s
             rd   Ú.test_precision_recall_f1_score_binary_averagedr÷  ã  sÿ   € Ü�X‰XÒCÓD€FÜ�X‰XÒCÓD€Fô 4°F¸FÈDÔQ�M€BˆˆB�Ü0°¸ÈÔQ�J€A€qˆ!ˆQØ”—‘˜“ÒÐÐØ”—‘˜“ÒÐÐØ”—‘˜“ÒÐÐÜ0°¸ÈÔT�J€A€qˆ!ˆQÜ�k‰k˜&Ó!€GØ”—
‘
˜2 wÔ/Ò/Ð/Ð/Ø”—
‘
˜2 wÔ/Ò/Ð/Ð/Ø”—
‘
˜2 wÔ/Ò/Ð/Ñ/rf   c                  ó‚  — t        j                  d¬«      } 	 t        j                  g d¢«      }t        j                  g d¢«      }t        t	        ||d¬«      dd«       t        t        ||d¬«      dd«       t        t        ||d¬«      dd«       t        j                  d	i | ¤Ž y # t        j                  d	i | ¤Ž w xY w)
NÚraise)rN  )r   rF   r=   r   rF   r=   )r=   r   rF   rF   r=   r   rÌ   r­   rÁ   r=   rÆ   )rK   Úseterrr¤   r4   r#   r$   r   )Úold_error_settingsrc   rb   s      rd   Útest_zero_precision_recallrü  ô  sš   € ô Ÿ™ wÔ/Ðð	(Ü—‘Ò,Ó-ˆÜ—‘Ò,Ó-ˆäœO¨F°FÀGÔLÈcÐSTÔUÜœL¨°ÀÔIÈ3ÐPQÔRÜœH V¨V¸WÔEÀsÈAÔNô 	�	‰	Ñ'Ð&Ó'øŒ�	‰	Ñ'Ð&Ó'ús   ˜A9B' Â'B>c                  ó   — t        d¬«      \  } }}t        | |ddg¬«      }t        |ddgddgg«       t        | |d	dg¬«      }t        |d
d	gddgg«       t        j                  | «      dz   }t        | |d	|g¬«      }t        |d
dgddgg«       y )NFr¬   r   rF   rà   r'  r´   rC   r=   r+  ri   )re   r   r6   rK   Úmax)rc   rb   r�   r  Úextra_labels        rd   Ú.test_confusion_matrix_multiclass_subset_labelsr     s§   € ä'¨uÔ5Ñ€FˆF�Aô 
˜& &°!°Q°Ô	8€BÜ�r˜R ˜G a¨ VÐ,Ô-ô 
˜& &°!°Q°Ô	8€BÜ�r˜R ˜G b¨! WÐ-Ô.ô —&‘&˜“. 1Ñ$€KÜ	˜& &°!°[Ð1AÔ	B€BÜ�r˜R ˜G a¨ VÐ,Õ-rf   zlabels, err_msgz+'labels' should contain at least one label.r´   z.At least one label specified must be in y_truez
empty listzunknown labels)Úidsc                 ó    — t        d¬«      \  }}}t        j                  t        |¬«      5  t	        ||| ¬«       d d d «       y # 1 sw Y   y xY w)NFr¬   rò   rà   )re   rÄ   rØ   rÙ   r   )ry   r÷   rc   rb   r�   s        rd   Útest_confusion_matrix_errorr    sD   € ô (¨uÔ5Ñ€FˆF�AÜ	�‰”z¨Ô	1ñ 8Ü˜ °Õ7÷8÷ 8ñ 8ús   ¬AÁAc            	      ó˜  — g d¢} t        j                  t        | «      «      }t        | | «      }|j                  t         j
                  k(  sJ ‚t         j                  t         j                  t         j                  fD ]@  }t        | | |j                  |d¬«      ¬«      }|j                  t         j
                  k(  rŒ@J ‚ t         j                  t         j                  d t        fD ]@  }t        | | |j                  |d¬«      ¬«      }|j                  t         j                  k(  rŒ@J ‚ t        j                  t        | «      dt         j                  ¬«      }t        | | |¬«      }|d   dk(  sJ ‚|d   d	k(  sJ ‚t        j                  t        | «      d
t         j
                  ¬«      }t        | | |¬«      }|d   d
k(  sJ ‚|d   dk(  sJ ‚y )Nr    F)ÚcopyrG  l   ÿÿ ©rS  ©r   r   rÖ  l   þÿ l   ÿÿÿÿ éþÿÿÿ)rK   Úonesr|   r   rS  Úint64Úbool_Úint32Úuint64ÚastypeÚfloat32Úfloat64ÚobjectÚfullÚuint32)rZ   Úweightr  rS  s       rd   Útest_confusion_matrix_dtyper  &  s|  € Ú€AÜ�W‰W”S˜“V‹_€Fä	˜!˜QÓ	€BØ�8‰8”r—x‘xÒÐÐä—(‘(œBŸH™H¤b§i¡iÐ0ò $ˆÜ˜a °&·-±-ÀÈE°-Ó2RÔSˆØ�x‰xœ2Ÿ8™8Ó#Ð#Ð#ð$ô —*‘*œbŸj™j¨$´Ð7ò &ˆÜ˜a °&·-±-ÀÈE°-Ó2RÔSˆØ�x‰xœ2Ÿ:™:Ó%Ð%Ð%ð&ô
 �W‰W”S˜“V˜Z¬r¯y©yÔ9€FÜ	˜!˜Q¨fÔ	5€BØˆd‰8�zÒ!Ð!Ð!Øˆd‰8�zÒ!Ð!Ð!ô �W‰W”S˜“VÐ0¼¿¹ÔA€FÜ	˜!˜Q¨fÔ	5€BØˆd‰8Ð*Ò*Ð*Ð*Øˆd‰8�rŠ>Ð‰>rf   rS  )ÚInt64ÚFloat64Úbooleanc                 óô   — t        j                  d«      }t        j                  g d¢«      }|j	                  || ¬«      }|j	                  g d¢d¬«      }t        ||«      }t        ||«      }t        ||«       y)zkChecks that confusion_matrix works with pandas nullable dtypes.

    Non-regression test for gh-25635.
    Úpandas)	rF   r   r   rF   r   rF   rF   r   rF   r  )	r   r   rF   rF   r   rF   rF   rF   rF   r
  N)rÄ   ÚimportorskiprK   r¤   ÚSeriesr   r6   )rS  ÚpdÚ	y_ndarrayrc   Úy_predictedÚoutputÚexpected_outputs          rd   Ú%test_confusion_matrix_pandas_nullabler"  A  sj   € ô 
×	Ñ	˜XÓ	&€Bä—‘Ò4Ó5€IØ�Y‰Y�y¨ˆYÓ.€FØ—)‘)Ò7¸w�)ÓG€Kä˜f kÓ2€FÜ& y°+Ó>€Oä�v˜Õ/rf   c            	      óÞ   — t        j                  «       } t        | d¬«      \  }}}d}t        ||t	        j
                  t        | j                  «      «      | j                  ¬«      }||k(  sJ ‚y )NFrh   a|                precision    recall  f1-score   support

      setosa       0.83      0.79      0.81        24
  versicolor       0.33      0.10      0.15        31
   virginica       0.42      0.90      0.57        20

    accuracy                           0.53        75
   macro avg       0.53      0.60      0.51        75
weighted avg       0.51      0.53      0.47        75
©ry   rz   ©r   rG   re   r   rK   rL   r|   rz   ©r€   rc   rb   r�   r‚   rƒ   s         rd   Ú%test_classification_report_multiclassr'  S  sl   € ä×ÑÓ€DÜ'°¸UÔCÑ€FˆF�Að
€Oô #ØØÜ�y‰yœ˜T×.Ñ.Ó/Ó0Ø×&Ñ&ô	€Fð �_Ò$Ð$Ñ$rf   c                  ó>   — g d¢g d¢}} d}t        | |«      }||k(  sJ ‚y )N)	r   r   r   rF   rF   rF   r=   r=   r=   rÈ  a|                precision    recall  f1-score   support

           0       0.33      0.33      0.33         3
           1       0.33      0.33      0.33         3
           2       0.33      0.33      0.33         3

    accuracy                           0.33         9
   macro avg       0.33      0.33      0.33         9
weighted avg       0.33      0.33      0.33         9
rœ   )rc   rb   r‚   rƒ   s       rd   Ú.test_classification_report_multiclass_balancedr)  m  s/   € Ú0Ò2MˆF€Fð
€Oô # 6¨6Ó2€FØ�_Ò$Ð$Ñ$rf   c                  óx   — t        j                  «       } t        | d¬«      \  }}}d}t        ||«      }||k(  sJ ‚y )NFrh   a|                precision    recall  f1-score   support

           0       0.83      0.79      0.81        24
           1       0.33      0.10      0.15        31
           2       0.42      0.90      0.57        20

    accuracy                           0.53        75
   macro avg       0.53      0.60      0.51        75
weighted avg       0.51      0.53      0.47        75
)r   rG   re   r   r&  s         rd   Ú:test_classification_report_multiclass_with_label_detectionr+    sF   € Ü×ÑÓ€DÜ'°¸UÔCÑ€FˆF�Að
€Oô # 6¨6Ó2€FØ�_Ò$Ð$Ñ$rf   c            	      óà   — t        j                  «       } t        | d¬«      \  }}}d}t        ||t	        j
                  t        | j                  «      «      | j                  d¬«      }||k(  sJ ‚y )NFrh   a|                precision    recall  f1-score   support

      setosa    0.82609   0.79167   0.80851        24
  versicolor    0.33333   0.09677   0.15000        31
   virginica    0.41860   0.90000   0.57143        20

    accuracy                        0.53333        75
   macro avg    0.52601   0.59615   0.50998        75
weighted avg    0.51375   0.53333   0.47310        75
r³   )ry   rz   Údigitsr%  r&  s         rd   Ú1test_classification_report_multiclass_with_digitsr.  “  so   € ä×ÑÓ€DÜ'°¸UÔCÑ€FˆF�Að
€Oô #ØØÜ�y‰yœ˜T×.Ñ.Ó/Ó0Ø×&Ñ&Øô€Fð �_Ò$Ð$Ñ$rf   c                  óè   — t        d¬«      \  } }}t        j                  g d¢«      |    } t        j                  g d¢«      |   }d}t        | |«      }||k(  sJ ‚d}t        | |g d¢¬«      }||k(  sJ ‚y )NFr¬   )ÚblueÚgreenÚreda|                precision    recall  f1-score   support

        blue       0.83      0.79      0.81        24
       green       0.33      0.10      0.15        31
         red       0.42      0.90      0.57        20

    accuracy                           0.53        75
   macro avg       0.53      0.60      0.51        75
weighted avg       0.51      0.53      0.47        75
a|                precision    recall  f1-score   support

           a       0.83      0.79      0.81        24
           b       0.33      0.10      0.15        31
           c       0.42      0.90      0.57        20

    accuracy                           0.53        75
   macro avg       0.53      0.60      0.51        75
weighted avg       0.51      0.53      0.47        75
rŠ   ©rz   ©re   rK   r¤   r   )rc   rb   r�   r‚   rƒ   s        rd   Ú7test_classification_report_multiclass_with_string_labelr5  ®  sƒ   € Ü'¨uÔ5Ñ€FˆF�Aä�X‰XÒ.Ó/°Ñ7€FÜ�X‰XÒ.Ó/°Ñ7€Fð
€Oô # 6¨6Ó2€FØ�_Ò$Ð$Ð$ð
€Oô # 6¨6ÂÔP€FØ�_Ò$Ð$Ñ$rf   c                  ó�   — t        d¬«      \  } }}t        j                  g d¢«      }||    } ||   }d}t        | |«      }||k(  sJ ‚y )NFr¬   )u   blueÂ¢u   greenÂ¢u   redÂ¢u                precision    recall  f1-score   support

       blueÂ¢       0.83      0.79      0.81        24
      greenÂ¢       0.33      0.10      0.15        31
        redÂ¢       0.42      0.90      0.57        20

    accuracy                           0.53        75
   macro avg       0.53      0.60      0.51        75
weighted avg       0.51      0.53      0.47        75
r4  ©rc   rb   r�   ry   r‚   rƒ   s         rd   Ú8test_classification_report_multiclass_with_unicode_labelr8  Ñ  sW   € Ü'¨uÔ5Ñ€FˆF�Aä�X‰XÒ:Ó;€FØ�F‰^€FØ�F‰^€Fð
€Oô # 6¨6Ó2€FØ�_Ò$Ð$Ñ$rf   c                  ó�   — t        d¬«      \  } }}t        j                  g d¢«      }||    } ||   }d}t        | |«      }||k(  sJ ‚y )NFr¬   )r0  Úgreengreengreengreengreenr2  a×                             precision    recall  f1-score   support

                     blue       0.83      0.79      0.81        24
greengreengreengreengreen       0.33      0.10      0.15        31
                      red       0.42      0.90      0.57        20

                 accuracy                           0.53        75
                macro avg       0.53      0.60      0.51        75
             weighted avg       0.51      0.53      0.47        75
r4  r7  s         rd   Ú<test_classification_report_multiclass_with_long_string_labelr;  ç  sW   € Ü'¨uÔ5Ñ€FˆF�Aä�X‰XÒ2Ó3€FØ�F‰^€FØ�F‰^€Fð
€Oô # 6¨6Ó2€FØ�_Ò$Ð$Ñ$rf   c                  ó¢   — g d¢} g d¢}g d¢}d}t        j                  t        |¬«      5  t        | |ddg|¬«       d d d «       y # 1 sw Y   y xY w)	N©r   r   r=   r   r   ©r   r=   r=   r   r   ©zclass 0zclass 1zclass 2z6labels size, 2, does not match size of target_names, 3rò   r   r=   r$  )rÄ   r  r  r   )rc   rb   rz   r˜   s       rd   Ú=test_classification_report_labels_target_names_unequal_lengthr@  þ  sO   € Ú€FÚ€FÚ4€Là
B€CÜ	�‰”k¨Ô	-ñ XÜ˜f f°a¸°VÈ,ÕW÷X÷ Xñ Xús   ªAÁAc                  óœ   — g d¢} g d¢}g d¢}d}t        j                  t        |¬«      5  t        | ||¬«       d d d «       y # 1 sw Y   y xY w)Nr=  r>  r?  zaNumber of classes, 2, does not match size of target_names, 3. Try specifying the labels parameterrò   r3  )rÄ   rØ   rÙ   r   )rc   rb   rz   r÷   s       rd   Ú@test_classification_report_no_labels_target_names_unequal_lengthrB    sP   € Ú€FÚ€FÚ4€Lð	.ð ô
 
�‰”z¨Ô	1ñ IÜ˜f f¸<ÕH÷I÷ Iñ Iús   ªAÁAc                  ó~   — d} d}t        d|| d¬«      \  }}t        d|| d¬«      \  }}d}t        ||«      }||k(  sJ ‚y )Nr´   rŠ  rF   r   )r\   r[   rÎ  rB   aè                precision    recall  f1-score   support

           0       0.50      0.67      0.57        24
           1       0.51      0.74      0.61        27
           2       0.29      0.08      0.12        26
           3       0.52      0.56      0.54        27

   micro avg       0.50      0.51      0.50       104
   macro avg       0.45      0.51      0.46       104
weighted avg       0.45      0.51      0.46       104
 samples avg       0.46      0.42      0.40       104
)r   r   )rÎ  r[   r�   rc   rb   r‚   rƒ   s          rd   Ú%test_multilabel_classification_reportrD    s_   € à€IØ€Iä.Ø 	°YÈQô�I€A€vô /Ø 	°YÈQô�I€A€vð€Oô # 6¨6Ó2€FØ�_Ò$Ð$Ñ$rf   c                  ó  — t        j                  g d¢g d¢g«      } t        j                  g d¢g d¢g«      }t        | |«      dk(  sJ ‚t        | | «      dk(  sJ ‚t        ||«      dk(  sJ ‚t        |t        j                  |«      «      dk(  sJ ‚t        | t        j                  | «      «      dk(  sJ ‚t        | t        j                  | j
                  «      «      dk(  sJ ‚t        |t        j                  | j
                  «      «      dk(  sJ ‚y )Nr    r¡   r¢   r£   r   rF   )rK   r¤   r%   r¥   r¦   rJ   r§   s     rd   Ú$test_multilabel_zero_one_loss_subsetrF  5  sç   € ä	�‰’9šiÐ(Ó	)€BÜ	�‰’9šiÐ(Ó	)€Bä˜˜RÓ  CÒ'Ð'Ð'Ü˜˜RÓ  AÒ%Ð%Ð%Ü˜˜RÓ  AÒ%Ð%Ð%Ü˜œRŸ^™^¨BÓ/Ó0°AÒ5Ð5Ð5Ü˜œRŸ^™^¨BÓ/Ó0°AÒ5Ð5Ð5Ü˜œRŸX™X b§h¡hÓ/Ó0°AÒ5Ð5Ð5Ü˜œRŸX™X b§h¡hÓ/Ó0°AÒ5Ð5Ñ5rf   c                  óø  — t        j                  g d¢g d¢g«      } t        j                  g d¢g d¢g«      }t        j                  ddg«      }t        | |«      dk(  sJ ‚t        | | «      dk(  sJ ‚t        ||«      dk(  sJ ‚t        |d|z
  «      dk(  sJ ‚t        | d| z
  «      dk(  sJ ‚t        | t        j                  | j                  «      «      dk(  sJ ‚t        |t        j                  | j                  «      «      d	k(  sJ ‚t        | ||¬
«      dk(  sJ ‚t        | d|z
  |¬
«      dk(  sJ ‚t        | t        j
                  | «      |¬
«      dk(  sJ ‚t        | d   |d   «      t        | d   |d   «      k(  sJ ‚y )Nr    r¡   r¢   rF   rC   çUUUUUUÅ?r   rá   r£   rG  gUUUUUUµ?gUUUUUUí?)rK   r¤   r   r¦   rJ   Ú
zeros_likeÚ
sp_hamming)r¨   r©   Úws      rd   Útest_multilabel_hamming_lossrL  C  sm  € ä	�‰’9šiÐ(Ó	)€BÜ	�‰’9šiÐ(Ó	)€BÜ
�‰�!�Q�Ó€Aä˜˜BÓ 5Ò(Ð(Ð(Ü˜˜BÓ 1Ò$Ð$Ð$Ü˜˜BÓ 1Ò$Ð$Ð$Ü˜˜A ™FÓ# qÒ(Ð(Ð(Ü˜˜A ™FÓ# qÒ(Ð(Ð(Ü˜œBŸH™H R§X¡XÓ.Ó/°5Ò8Ð8Ð8Ü˜œBŸH™H R§X¡XÓ.Ó/°3Ò6Ð6Ð6Ü˜˜B¨aÔ0°HÒ<Ð<Ð<Ü˜˜A ™F°!Ô4¸	ÒAÐAÐAÜ˜œBŸM™M¨"Ó-¸QÔ?À7ÒJÐJÐJä˜˜1™˜r !™uÓ%¬°B°q±E¸2¸a¹5Ó)AÒAÐAÑArf   c                  óÖ  — t        j                  g d¢«      } t        j                  g d¢«      }t        j                  d«      }t	        j
                  t        |¬«      5  t        | |dd¬«       d d d «       t        j                  g d¢g d¢g«      } t        j                  g d	¢g d
¢g«      }d}t	        j
                  t        |¬«      5  t        | |dd¬«       d d d «       t        j                  g d¢«      } t        j                  g d¢«      }d}t	        j
                  t        |¬«      5  t        | |d¬«       d d d «       d}t	        j
                  t        |¬«      5  t        | |d¬«       d d d «       d}t	        j                  t        |¬«      5  t        | |dd¬«       d d d «       y # 1 sw Y   �ŒAxY w# 1 sw Y   ŒâxY w# 1 sw Y   ŒŒxY w# 1 sw Y   ŒdxY w# 1 sw Y   y xY w)N)r   rF   r   rF   rF   z;pos_label=2 is not a valid label. It should be one of [0 1]rò   rX   r=   ©r®   rõ   r    rÑ   rÒ   r¡   ú•Target is multilabel-indicator but average='binary'. Please choose another average setting, one of \[None, 'micro', 'macro', 'weighted', 'samples'\].rÂ   )r   rF   rF   r   r=   rÉ  ú€Target is multiclass but average='binary'. Please choose another average setting, one of \[None, 'micro', 'macro', 'weighted'\].r­   zJSamplewise metrics are not available outside of multilabel classification.rÏ   zšNote that pos_label \(set to 3\) is ignored when average != 'binary' \(got 'micro'\). You may use labels=\[pos_label\] to specify a single positive class.rÍ   rC   )
rK   r¤   ÚreÚescaperÄ   rØ   rÙ   r   r  r  )rc   rb   r÷   Úmsg1Úmsg2Úmsg3r˜   s          rd   Útest_jaccard_score_validationrV  W  s   € Ü�X‰X’oÓ&€FÜ�X‰X’oÓ&€FÜ�i‰iÐUÓV€GÜ	�‰”z¨Ô	1ñ EÜ�f˜f¨hÀ!ÕD÷Eô �X‰X’y¢)Ð,Ó-€FÜ�X‰X’y¢)Ð,Ó-€Fð	6ð 	ô
 
�‰”z¨Ô	.ñ FÜ�f˜f¨hÀ"ÕE÷Fô �X‰X’oÓ&€FÜ�X‰X’oÓ&€Fð	ð 	ô
 
�‰”z¨Ô	.ñ 8Ü�f˜f¨hÕ7÷8àW€DÜ	�‰”z¨Ô	.ñ 9Ü�f˜f¨iÕ8÷9ð	ð ô 
�‰”k¨Ô	-ñ DÜ�f˜f¨gÀÕC÷Dð D÷AEñ Eú÷Fð Fú÷8ð 8ú÷9ð 9ú÷Dð Dús<   ÁF.Ã
F;Ä-GÅ!GÆGÆ.F8Æ;GÇGÇGÇG(c           	      óÀ  — t        j                  g d¢g d¢g«      }t        j                  g d¢g d¢g«      }t        ||d¬«      dk(  sJ ‚t        ||d¬«      dk(  sJ ‚t        ||d¬«      dk(  sJ ‚t        |t        j                  |«      d¬«      dk(  sJ ‚t        |t        j                  |«      d¬«      dk(  sJ ‚t        |t        j                  |j
                  «      d¬«      dk(  sJ ‚t        |t        j                  |j
                  «      d¬«      dk(  sJ ‚t        j                  g d¢g d	¢g«      }t        j                  g d
¢g d¢g«      }t        t        ||d¬«      d«       t        t        ||d¬«      d«       t        t        ||d¬«      d«       t        t        ||dddg¬«      d«       t        t        ||dddg¬«      d«       t        t        ||d ¬«      t        j                  g d¢«      «       t        j                  g d¢g d¢g«      }t        j                  g d
¢g d¢g«      }t        t        ||d¬«      d«       t        t        ||d¬«      d«       d}t        j                  t        |¬«      5  t        ||dgd¬«       d d d «       d}t        j                  t        |¬«      5  t        ||dgd¬«       d d d «       d}t        j                  t        |¬«      5  t        t        j                  ddgg«      t        j                  ddgg«      d¬«      dk(  sJ ‚	 d d d «       d}t        j                  t        |¬«      5  t        t        j                  ddgddgg«      t        j                  ddgddgg«      d¬«      dk(  sJ ‚	 d d d «       t        | «      rJ ‚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   Œ<xY w)Nr    r¡   r¢   rÏ   r­   rÔ   rF   r   rÑ   rÒ   rÌ   rá   rÍ   rú   g«ªªªªªâ?r=   rÓ   r£   )r£   r¿   r£   rÕ   rÎ   g      ì?z	Got 4 > 2rò   r´   rË   z
Got -1 < 0rÂ   zXJaccard is ill-defined and being set to 0.0 in labels with no true or predicted samples.zXJaccard is ill-defined and being set to 0.0 in samples with no true or predicted labels.)rK   r¤   r   r¥   r¦   rJ   r4   r6   rÄ   rØ   rÙ   r  r   rR  )Úrecwarnr¨   r©   rc   rb   rT  rU  r˜   s           rd   Útest_multilabel_jaccard_scorerY    sw  € ä	�‰’9šiÐ(Ó	)€BÜ	�‰’9šiÐ(Ó	)€Bô
 ˜˜R¨Ô3°tÒ;Ð;Ð;Ü˜˜R¨Ô3°qÒ8Ð8Ð8Ü˜˜R¨Ô3°qÒ8Ð8Ð8Ü˜œRŸ^™^¨BÓ/¸ÔCÀqÒHÐHÐHÜ˜œRŸ^™^¨BÓ/¸ÔCÀqÒHÐHÐHÜ˜œRŸX™X b§h¡hÓ/¸ÔCÀqÒHÐHÐHÜ˜œRŸX™X b§h¡hÓ/¸ÔCÀqÒHÐHÐHä�X‰X’y¢)Ð,Ó-€FÜ�X‰X’y¢)Ð,Ó-€Fäœ f¨f¸gÔFÈÔPäœ f¨f¸gÔFÈÔPäœ f¨f¸iÔHÈ(ÔSÜÜ�f˜f¨iÀÀAÀÔGÈôô Ü�f˜f¨iÀÀAÀÔGÈôô Ü�f˜f¨dÔ3´R·X±XÒ>UÓ5Vôô �X‰X’y¢)Ð,Ó-€FÜ�X‰X’y¢)Ð,Ó-€FÜœ f¨f¸gÔFÈÔPäœ f¨f¸jÔIÈ7ÔSà€DÜ	�‰”z¨Ô	.ñ CÜ�f˜f¨a¨S¸'ÕB÷Cà€DÜ	�‰”z¨Ô	.ñ DÜ�f˜f¨b¨T¸7ÕC÷Dð	-ð ô
 
�‰Ô,°CÔ	8ñ 
äœ"Ÿ(™( Q¨ F 8Ó,¬b¯h©h¸¸A¸°xÓ.@È'ÔRØòð	
ñ÷
ð	,ð ô
 
�‰Ô,°CÔ	8ñ 
äÜ—‘˜1˜a˜& 1 a &Ð)Ó*Ü—‘˜1˜a˜& 1 a &Ð)Ó*Ø!ôð
 òð	
ñ÷
ô �GŒ}ÐÐˆ}÷ACñ Cú÷Dð Dú÷
ð 
ú÷
ð 
ús2   Ê N/Ê6N<Ë,A OÍAOÎ/N9Î<OÏOÏOc           	      óˆ  — g d¢}g d¢}g d¢}t        «       }|j                  |«       |j                  |«      }|j                  |«      }t        t        ||«      }t        t        ||«      }ddgddgddgdgdgdgd g}	ddgdd	gd	dgdgdgd	gd g}
d
D ]2  }t        |	|
«      D ]!  \  }}t         |||¬«       |||¬«      «       Œ# Œ4 t        j                  ddgddgddgg«      }t        j                  ddgddgddgg«      }t        «       5  t	        ||d¬«      dk(  sJ ‚	 d d d «       t        | «      rJ ‚y # 1 sw Y   ŒxY w)N)Úantr[  Úcatr\  r[  r\  Úbirdr]  )r\  r[  r\  r\  r[  r]  r]  r\  )r[  r]  r\  r[  r]  r\  r   rF   r=   )rÌ   rÎ   rÍ   NrÓ   rÎ   r­   )r*   rT   Ú	transformr   r   Úzipr4   rK   r¤   r7   rR  )rX  rc   rb   ry   ÚlbrÚ   rÛ   Úmulti_jaccard_scoreÚbin_jaccard_scoreÚmulti_labels_listÚbin_labels_listr®   Úm_labelÚb_labels                 rd   Útest_multiclass_jaccard_scorerg  Ì  s‰  € ÚG€FÚG€FÚ#€FÜ	Ó	€BØ‡F�Fˆ6„NØ—‘˜fÓ%€JØ—‘˜fÓ%€JÜ!¤-°¸Ó@ÐÜ¤¨z¸:ÓFÐà	�ˆØ	�ˆØ	�ˆØ	ˆØ	ˆØ	ˆØðÐð ˜1�v  1˜v¨¨1 v°¨s°Q°C¸!¸¸dÐC€Oð 8ò ˆÜ #Ð$5°Ó Gò 	ÑˆG�WÜÙ#¨G¸GÔDÙ!¨'¸'ÔBõñ	ðô �X‰X˜˜1�v  1˜v¨¨1 vÐ.Ó/€FÜ�X‰X˜˜1�v  1˜v¨¨1 vÐ.Ó/€FÜ	Ó	ñ FÜ˜V V°ZÔ@ÀAÒEÐEÑE÷Fô �GŒ}ÐÐˆ}÷Fð Fús   ÄD8Ä8Ec                 óÆ  — t        dgdgd¬«      dk(  sJ ‚d}t        j                  t        |¬«      5  t        ddgddgd¬«      dk(  sJ ‚	 d d d «       t        dgdgdd¬«      d	k(  sJ ‚t	        j
                  g d
¢«      }t	        j
                  g d¢«      }t        t        ||d¬«      d«       t        t        ||dd¬«      d«       t        | «      rJ ‚y # 1 sw Y   ŒŒxY w)NrF   r   rX   r­   rÁ   zOJaccard is ill-defined and being set to 0.0 due to no true or predicted samplesrò   r  r¿   )rF   r   rF   rF   r   )rF   r   rF   rF   rF   rÔ   rN  r£   )r   rÄ   r  r   rK   r¤   r4   rR  )rX  r˜   rc   rb   s       rd   Ú!test_average_binary_jaccard_scoreri  ñ  sç   € ä˜!˜˜q˜c¨8Ô4¸Ò;Ð;Ð;ð	'ð ô 
�‰Ô,°CÔ	8ñ FÜ˜a ˜V a¨ V°XÔ>À#ÒEÐEÑE÷Fô ˜!˜˜q˜c¨Q¸ÔAÀSÒHÐHÐHÜ�X‰X’oÓ&€FÜ�X‰X’oÓ&€FÜœ f¨f¸hÔGÈÔQÜÜ�f˜f¨hÀ!ÔDÀgôô �GŒ}ÐÐˆ}÷Fð Fús   ³CÃC c                  ó(  — t        j                  g d¢g d¢g«      } t        j                  g d¢g d¢g«      }d}t        j                  t        |¬«      5  t        | |dd¬«      }|t        j                  d«      k(  sJ ‚	 d d d «       y # 1 sw Y   y xY w)	Nr¡   ©r   r   r   z�Jaccard is ill-defined and being set to 0.0 in samples with no true or predicted labels. Use `zero_division` parameter to control this behavior.rò   rÏ   rˆ   ©r®   r‡   rÁ   )rK   r¤   rÄ   r  r   r   rÅ   )rc   rb   r˜   rš  s       rd   Ú(test_jaccard_score_zero_division_warningrm    s‚   € ô �X‰X’y¢)Ð,Ó-€FÜ�X‰X’y¢)Ð,Ó-€Fð	Cð ô
 
�‰Ô,°CÔ	8ñ +Ü˜f f°iÈvÔVˆØœŸ™ cÓ*Ò*Ð*Ñ*÷+÷ +ñ +ús   Á*BÂBzzero_division, expected_scorer  )rF   r£   c                 óH  — t        j                  g d¢g d¢g«      }t        j                  g d¢g d¢g«      }t        j                  «       5  t        j                  dt
        «       t        ||d| ¬«      }d d d «       t        j                  |«      k(  sJ ‚y # 1 sw Y   Œ$xY w)Nr¡   rk  r±   rÏ   rl  )	rK   r¤   r“   r”   rµ   r   r   rÄ   rÅ   )r‡   Úexpected_scorerc   rb   rš  s        rd   Ú*test_jaccard_score_zero_division_set_valuerp    sˆ   € ô �X‰X’y¢)Ð,Ó-€FÜ�X‰X’y¢)Ð,Ó-€FÜ	×	 Ñ	 Ó	"ñ 
Ü×Ñ˜gÔ'=Ô>ÜØ�F I¸]ô
ˆ÷
ð
 ”F—M‘M .Ó1Ò1Ð1Ñ1÷
ð 
ús   Á*BÂB!c                  óh  — t        j                  g d¢g d¢g d¢g«      } t        j                  g d¢g d¢g d¢g«      }t        | |d ¬«      \  }}}}t        |g d¢d«       t        |g d¢d«       t        |g d	¢d«       t        |g d
¢d«       t	        | |dd ¬«      }|}t        |g d¢d«       t        | |d¬«      \  }}}}t        |d«       t        |d«       t        |d«       |�J ‚t        t	        | |dd¬«      t        j                  |«      «       t        | |d¬«      \  }}}}t        |d«       t        |d«       t        |d«       |�J ‚t        t	        | |dd¬«      d|z  |z  d|z  |z   z  «       t        | |d¬«      \  }}}}t        |d«       t        |d«       t        |d«       |�J ‚t        t	        | |dd¬«      t        j                  ||¬«      «       t        | |d¬«      \  }}}}t        |d«       t        |d«       t        |d«       |�J ‚t        t	        | |dd¬«      d«       y )N©rF   r   r   r   ©r   rF   r   r   rñ  ©rF   r   rF   r   r­   )rÁ   r£   r¿   rÁ   r=   )rÁ   r¿   r¿   rÁ   )rÁ   rá   rF   rÁ   )rF   rF   rF   rF   ©r²   r®   )r   ré  rF   r   rÌ   g      Ø?r£   g«ªªªªªÚ?rÍ   r³   r´   rÎ   r�  rÏ   ©rK   r¤   r"   r5   r   r4   r×   r®   ©rc   rb   r]   r¶   r·   r¸   Úf2rm   s           rd   Ú+test_precision_recall_f1_score_multilabel_1ry  $  s$  € ô
 �X‰X’|¢\²<Ð@ÓA€FÜ�X‰X’|¢\²<Ð@ÓA€Fä0°¸ÈÔN�J€A€qˆ!ˆQô ˜aÒ!5°qÔ9Ü˜aÒ!5°qÔ9Ü˜aÒ!7¸Ô;Ü˜a¢¨qÔ1ä	�V˜V¨!°TÔ	:€BØ€GÜ˜b¢/°1Ô5ô 1°¸ÈÔQ�J€A€qˆ!ˆQÜ˜˜7Ô#Ü˜˜3ÔÜ˜Ð+Ô,Øˆ9Ðˆ9ÜÜ�F˜F¨°GÔ<¼b¿g¹gÀb»kôô
 1°¸ÈÔQ�J€A€qˆ!ˆQÜ˜˜3ÔÜ˜˜3ÔÜ˜˜3ÔØˆ9Ðˆ9ÜÜ�F˜F¨°GÔ<Ø	�!‰�a‰˜1˜q™5 1™9Ñ%ôô 1°¸ÈÔT�J€A€qˆ!ˆQÜ˜˜7Ô#Ü˜˜3ÔÜ˜Ð+Ô,Øˆ9Ðˆ9ÜÜ�F˜F¨°JÔ?Ü
�
‰
�2˜wÔ'ôô 1°¸ÈÔS�J€A€qˆ!ˆQÜ˜˜3ÔÜ˜˜3ÔÜ˜˜3ÔØˆ9Ðˆ9Üœ F¨F¸ÀIÔNÐPSÕTrf   c                  ój  — t        j                  g d¢g d¢g d¢g«      } t        j                  g d¢g d¢g d¢g«      }t        | |d ¬«      \  }}}}t        |g d¢d«       t        |g d	¢d«       t        |g d
¢d«       t        |g d¢d«       t	        | |dd ¬«      }|}t        |g d¢d«       t        | |d¬«      \  }}}}t        |d«       t        |d«       t        |d«       |�J ‚t        t	        | |dd¬«      d|z  |z  d|z  |z   z  «       t        | |d¬«      \  }}}}t        |d«       t        |d«       t        |d«       |�J ‚t        t	        | |dd¬«      t        j                  |«      «       t        | |d¬«      \  }}}}t        |d«       t        |d«       t        |d«       |�J ‚t        t	        | |dd¬«      t        j                  ||¬«      «       t        | |d¬«      \  }}}}t        |d«       t        |d«       t        |d«       |�J ‚t        t	        | |dd¬«      dd«       y )Nrr  rs  ró  ©r   r   r   rF   rÊ  r­   )rÁ   r¿   rÁ   rÁ   r=   )rÁ   r£   rÁ   rÁ   )rÁ   g…ëQ¸å?rÁ   rÁ   ©rF   r=   rF   r   ru  )r   çš™™™™™á?r   r   rÍ   ç      Ð?r³   r´   rÌ   g      À?rH  rÎ   r£   rn   r�  rÏ   g¥½Á&SÅ?rv  rw  s           rd   Ú+test_precision_recall_f1_score_multilabel_2r  g  s'  € ô �X‰X’|¢\²<Ð@ÓA€FÜ�X‰X’|¢\²<Ð@ÓA€Fô 1°¸ÈÔN�J€A€qˆ!ˆQÜ˜aÒ!5°qÔ9Ü˜aÒ!5°qÔ9Ü˜aÒ!6¸Ô:Ü˜a¢¨qÔ1ä	�V˜V¨!°TÔ	:€BØ€GÜ˜b¢/°1Ô5ä0°¸ÈÔQ�J€A€qˆ!ˆQÜ˜˜4Ô Ü˜˜4Ô Ü˜Ð0Ô1Øˆ9Ðˆ9ÜÜ�F˜F¨°GÔ<Ø	�!‰�a‰˜1˜q™5 1™9Ñ%ôô
 1°¸ÈÔQ�J€A€qˆ!ˆQÜ˜˜4Ô Ü˜˜5Ô!Ü˜˜6Ô"Øˆ9Ðˆ9ÜÜ�F˜F¨°GÔ<¼b¿g¹gÀb»kôô 1°¸ÈÔT�J€A€qˆ!ˆQÜ˜˜5Ô!Ü˜˜5Ô!Ü˜˜=Ô)Øˆ9Ðˆ9ÜÜ�F˜F¨°JÔ?Ü
�
‰
�2˜wÔ'ôô
 1°¸ÈÔS�J€A€qˆ!ˆQô ˜˜5Ô!Ü˜˜5Ô!Ü˜˜=Ô)Øˆ9Ðˆ9ÜÜ�F˜F¨°IÔ>ÀÈõrf   z%zero_division, zero_division_expected)rˆ   r   rÖ  c           	      ó  — t        j                  g d¢g d¢g d¢g«      }t        j                  g d¢g d¢g d¢g«      }t        ||d | ¬«      \  }}}}t        ||dddgd	«       t        |dd
d|gd	«       d}t        ||dd|gd	«       t        |g d¢d	«       t	        ||d	d | ¬«      }	|}
t        |	|dd|gd	«       t        ||d| ¬«      \  }}}}t        j
                  |«      rdn|}dt        j
                  |«       z   }t        |d	|z   |z  «       t        |d|z   |z  «       d}t        ||«       |�J ‚t        t	        ||d	d| ¬«      t        |	d ¬«      «       t        ||d| ¬«      \  }}}}t        |d«       t        |d
«       t        |d«       |�J ‚t        t	        ||d	d| ¬«      d|z  |z  d|z  |z   z  «       t        ||d| ¬«      \  }}}}t        ||dk(  rdnd«       t        |d
«       d}t        |d|z  «       |�J ‚t        t	        ||d	d| ¬«      t        |	|
¬«      «       t        ||d¬«      \  }}}}t        |d«       t        |d«       t        |d«       |�J ‚d }t        t	        ||d	d| ¬«      |d	«       y )!Nrs  rr  ró  ra  r{  rl  r¿   rÁ   r=   r£   r   rá   rF   r|  ©r²   r®   r‡   r}  rÌ   rC   ç      ø?gªªªªªªÚ?r�  rÍ   rq   r³   r´   rÎ   rÔ   gªªªªªª@rÏ   r­   rn   gZd;ßOÕ?)rK   r¤   r"   r5   r   r‚  r4   r8   )r‡   Úzero_division_expectedrc   rb   r]   r¶   r·   r¸   Ú
expected_frx  rm   Úvalue_to_sumÚvalues_to_averageÚexpected_results                 rd   Ú7test_precision_recall_f1_score_with_an_empty_predictionrˆ  ¨  sí  € ô �X‰X’|¢\²<Ð@ÓA€FÜ�X‰X’|¢\²<Ð@ÓA€Fô 1Ø� °Mô�J€A€qˆ!ˆQô ˜aÐ"8¸#¸sÀCÐ!HÈ!ÔLÜ˜a # s¨CÐ1GÐ!HÈ!ÔLØ€JÜ˜a *¨g°q¸*Ð!EÀqÔIÜ˜a¢¨qÔ1ä	�V˜V¨!°TÈÔ	W€BØ€GÜ˜b :¨t°Q¸
Ð"CÀQÔGä0Ø� °}ô�J€A€qˆ!ˆQô Ÿ™Ð!7Ô8‘1Ð>T€LØ¤§¡Ð*@Ó!AÐAÑBÐä˜˜A Ñ,Ð0AÑAÔBÜ˜˜C ,Ñ.Ð2CÑCÔDØ €JÜ˜˜:Ô&Øˆ9Ðˆ9ÜÜØØØØØ'ô	
ô 	�B Ô%ô	ô 1Ø� °}ô�J€A€qˆ!ˆQô ˜˜5Ô!Ü˜˜3ÔÜ˜Ð0Ô1Øˆ9Ðˆ9ÜÜØ�F ¨GÀ=ô	
ð 
�!‰�a‰˜1˜q™5 1™9Ñ%ô	ô 1Ø� 
¸-ô�J€A€qˆ!ˆQô ˜Ð$:¸aÒ$?™5ÀSÔIÜ˜˜3ÔØÐÜ˜˜MÐ->Ñ>Ô?Øˆ9Ðˆ9ÜÜØ�F ¨JÀmô	
ô 	�B Ô(ô	ô 1°¸ÈÔS�J€A€qˆ!ˆQô ˜˜5Ô!Ü˜˜5Ô!Ü˜˜5Ô!Øˆ9Ðˆ9Ø€OÜÜØ�F ¨IÀ]ô	
ð 	Ø	õrf   r²   )rÌ   rÍ   rÎ   rÏ   c                 ó  — t        j                  d«      }t        j                  |«      }t        j                  «       5  t        j
                  d«       t        |||| |¬«      \  }}}}t        ||| ||¬«      }	d d d «       �J ‚t        j                  |«      r#	fD ]  }
t        j                  |
«      rŒJ ‚ y t        |«      }t        |«       t        |«       t        |«       t        	t        |«      «       y # 1 sw Y   ŒŠxY w)N©rr   rC   r±   ©r®   r²   r‡   r�  )rK   r¦   rI  r“   r”   rµ   r"   r   r‚  r   r4   )r²   r®   r‡   rc   rb   r]   r¶   r·   r¸   Úfbetar…   s              rd   Ú"test_precision_recall_f1_no_labelsr�    s	  € ô �X‰X�gÓ€FÜ�]‰]˜6Ó"€Fä	×	 Ñ	 Ó	"ñ 
Ü×Ñ˜gÔ&ä4ØØØØØ'ô
‰
ˆˆ1ˆa�ô ØØØØØ'ô
ˆ÷
ð" ˆ9Ðˆ9ô 
‡x�x�ÔØ˜!˜Q Ð&ò 	$ˆFÜ—8‘8˜FÕ#Ð#Ð#ð	$àä˜-Ó(€MÜ˜˜=Ô)Ü˜˜=Ô)Ü˜˜=Ô)ä˜œu ]Ó3Õ4÷=
ð 
ús   ¿;DÄDc                 óÄ  — t        j                  d«      }t        j                  |«      }t        }t	        j
                  t        «      5   |||| d¬«      \  }}}}d d d «       t        d«       t        d«       t        d«       �J ‚t	        j
                  t        «      5  t        ||| d¬«      }d d d «       t        d«       y # 1 sw Y   ŒoxY w# 1 sw Y   Œ"xY w)NrŠ  r¿   rî  r   )	rK   r¦   rI  r"   rÄ   r  r   r4   r   )	r®   rc   rb   Úfuncr]   r¶   r·   r¸   rŒ  s	            rd   Ú1test_precision_recall_f1_no_labels_check_warningsr�  3  sÍ   € ä�X‰X�gÓ€FÜ�]‰]˜6Ó"€Fä*€DÜ	�‰Ô,Ó	-ñ EÙ˜& &°'ÀÔD‰
ˆˆ1ˆa�÷Eô ˜˜1ÔÜ˜˜1ÔÜ˜˜1ÔØˆ9Ðˆ9ä	�‰Ô,Ó	-ñ GÜ˜F F°GÀ#ÔFˆ÷Gô ˜˜qÕ!÷Eð Eú÷Gð Gús   Á
C
Â%CÃ
CÃCc                 óæ  — t        j                  d«      }t        j                  |«      }t        j                  «       5  t        j
                  d«       t        ||d d| ¬«      \  }}}}t        ||dd | ¬«      }d d d «       t        j                  | «      } t        | | | gd«       t        | | | gd«       t        | | | gd«       t        g d¢d«       t        | | | gd«       y # 1 sw Y   ŒnxY w)NrŠ  r±   r¿   r‹  r�  r=   rk  )
rK   r¦   rI  r“   r”   rµ   r"   r   r  r5   )r‡   rc   rb   r]   r¶   r·   r¸   rŒ  s           rd   Ú/test_precision_recall_f1_no_labels_average_noner’  G  só   € ä�X‰X�gÓ€FÜ�]‰]˜6Ó"€Fô 
×	 Ñ	 Ó	"ñ 
Ü×Ñ˜gÔ&ä4ØØØØØ'ô
‰
ˆˆ1ˆa�ô Ø�F ¨dÀ-ô
ˆ÷
ô —J‘J˜}Ó-€MÜ˜a -°ÀÐ!NÐPQÔRÜ˜a -°ÀÐ!NÐPQÔRÜ˜a -°ÀÐ!NÐPQÔRÜ˜a¢¨AÔ.ä˜e m°]ÀMÐ%RÐTUÕV÷)
ð 
ús   ¿;C'Ã'C0c                  óì  — t        j                  d«      } t        j                  | «      }t        j                  t
        «      5  t        | |d d¬«      \  }}}}d d d «       t        g d¢d«       t        g d¢d«       t        g d¢d«       t        g d¢d«       t        j                  t
        «      5  t        | |dd ¬«      }d d d «       t        g d¢d«       y # 1 sw Y   Œ†xY w# 1 sw Y   Œ%xY w)NrŠ  rF   rî  rk  r=   ru  )	rK   r¦   rI  rÄ   r  r   r"   r5   r   )rc   rb   r]   r¶   r·   r¸   rŒ  s          rd   Ú4test_precision_recall_f1_no_labels_average_none_warnr”  k  sÓ   € Ü�X‰X�gÓ€FÜ�]‰]˜6Ó"€Fô 
�‰Ô,Ó	-ñ 
Ü4Ø�F D¨qô
‰
ˆˆ1ˆa�÷
ô
 ˜a¢¨AÔ.Ü˜a¢¨AÔ.Ü˜a¢¨AÔ.Ü˜a¢¨AÔ.ä	�‰Ô,Ó	-ñ BÜ˜F F°¸DÔAˆ÷Bô ˜e¢Y°Õ2÷
ð 
ú÷Bð Bús   ÁCÂ6C*ÃC'Ã*C3c            	      ó  — t         t        }} dD ]d  }d}t        j                  ||¬«      5   | g d¢g d¢|¬«       d d d «       d}t        j                  ||¬«      5   | g d¢g d¢|¬«       d d d «       Œf d}t        j                  ||¬«      5   | t	        j
                  d	d
gd	d
gg«      t	        j
                  d	d
gd
d
gg«      d¬«       d d d «       d}t        j                  ||¬«      5   | t	        j
                  d	d
gd
d
gg«      t	        j
                  d	d
gd	d
gg«      d¬«       d d d «       d}t        j                  ||¬«      5   | t	        j
                  d	d	gd	d	gg«      t	        j
                  d
d
gd
d
gg«      d¬«       d d d «       d}t        j                  ||¬«      5   | t	        j
                  d
d
gd
d
gg«      t	        j
                  d	d	gd	d	gg«      d¬«       d d d «       d}t        j                  ||¬«      5   | d	d	gddgd¬«       d d d «       d}t        j                  ||¬«      5   | ddgd	d	gd¬«       d d d «       t        j                  d¬«      5 }t        j                  d«       t        d
d
gd
d
gd¬«       d}t        |j                  «       j                  «      |k(  sJ ‚d}t        |j                  «       j                  «      |k(  sJ ‚d}t        |j                  «       j                  «      |k(  sJ ‚	 d d d «       y # 1 sw Y   �ŒáxY w# 1 sw Y   �Œ"xY w# 1 sw Y   �ŒixY w# 1 sw Y   �ŒxY w# 1 sw Y   �ŒÅxY w# 1 sw Y   �ŒsxY w# 1 sw Y   �ŒOxY w# 1 sw Y   �Œ+xY w# 1 sw Y   y xY w)N©NrÎ   rÌ   zŠPrecision is ill-defined and being set to 0.0 in labels with no predicted samples. Use `zero_division` parameter to control this behavior.rò   rš   ©rF   rF   r=   r­   z‚Recall is ill-defined and being set to 0.0 in labels with no true samples. Use `zero_division` parameter to control this behavior.zŠPrecision is ill-defined and being set to 0.0 in samples with no predicted labels. Use `zero_division` parameter to control this behavior.rF   r   rÏ   z‚Recall is ill-defined and being set to 0.0 in samples with no true labels. Use `zero_division` parameter to control this behavior.ú‚Precision is ill-defined and being set to 0.0 due to no predicted samples. Use `zero_division` parameter to control this behavior.rÍ   úzRecall is ill-defined and being set to 0.0 due to no true samples. Use `zero_division` parameter to control this behavior.rÂ   rX   Tr�   r‘   ú‰F-score is ill-defined and being set to 0.0 due to no true nor predicted samples. Use `zero_division` parameter to control this behavior.)r"   r   rÄ   r  rK   r¤   r“   r”   rµ   r–   Úpopr’   )r·   rK  r®   r˜   r�   s        rd   Útest_prf_warningsrœ  ‡  s˜  € ä*Ô,B€q€AØ.ò 5ˆðð 	ô �\‰\˜! 3Ô'ñ 	5ÙŠiš¨GÕ4÷	5ðð 	ô �\‰\˜! 3Ô'ñ 	5ÙŠiš¨GÕ4÷	5ð 	5ð!5ð*	ð ô 
�‰�a˜sÔ	#ñ UÙ	Œ"�(‰(�Q˜�F˜Q ˜FÐ#Ó
$¤b§h¡h°°A°¸¸A¸Ð/?Ó&@È)ÕT÷Uð	ð ô 
�‰�a˜sÔ	#ñ UÙ	Œ"�(‰(�Q˜�F˜Q ˜FÐ#Ó
$¤b§h¡h°°A°¸¸A¸Ð/?Ó&@È)ÕT÷Uð
	ð ô 
�‰�a˜sÔ	#ñ SÙ	Œ"�(‰(�Q˜�F˜Q ˜FÐ#Ó
$¤b§h¡h°°A°¸¸A¸Ð/?Ó&@È'ÕR÷Sð	ð ô 
�‰�a˜sÔ	#ñ SÙ	Œ"�(‰(�Q˜�F˜Q ˜FÐ#Ó
$¤b§h¡h°°A°¸¸A¸Ð/?Ó&@È'ÕR÷Sð
	ð ô 
�‰�a˜sÔ	#ñ .Ù	ˆ1ˆaˆ&�2�r�( HÕ-÷.ð	ð ô 
�‰�a˜sÔ	#ñ .Ù	ˆ2ˆrˆ(�Q˜�F HÕ-÷.ô 
×	 Ñ	 ¨Ô	-ð 0°Ü×Ñ˜hÔ'Ü'¨¨A¨°°A°ÀÕIðð 	ô
 �6—:‘:“<×'Ñ'Ó(¨CÒ/Ð/Ð/ðð 	ô �6—:‘:“<×'Ñ'Ó(¨CÒ/Ð/Ð/ðð 	ô �6—:‘:“<×'Ñ'Ó(¨CÒ/Ð/Ñ/÷-0ð 0÷K	5ñ 	5ú÷	5ñ 	5ú÷Uñ Uú÷Uñ Uú÷Sñ Sú÷Sñ Sú÷.ñ .ú÷.ñ .ú÷0ð 0úsl   «LÁL'Â>L4Ã.>MÅ>MÆ,>MÈM(È<M5É*B&NÌL$	Ì'L1	Ì4L>ÍMÍMÍM%Í(M2Í5M?ÎNc           	      óö  — t        j                  «       5  t        j                  d«       dD ](  }t        g d¢g d¢|| ¬«       t        g d¢g d¢|| ¬«       Œ* t        t	        j
                  ddgddgg«      t	        j
                  ddgddgg«      d| ¬«       t        t	        j
                  ddgddgg«      t	        j
                  ddgddgg«      d| ¬«       t        t	        j
                  ddgddgg«      t	        j
                  ddgddgg«      d	| ¬«       t        t	        j
                  ddgddgg«      t	        j
                  ddgddgg«      d	| ¬«       t        ddgd
d
gd| ¬«       t        d
d
gddgd| ¬«       d d d «       t        j                  d¬«      5 }t        j                  d«       t        ddgddgd| ¬«       t        |«      dk(  sJ ‚	 d d d «       y # 1 sw Y   ŒbxY w# 1 sw Y   y xY w)Nr±   r–  rš   r—  rl  rF   r   rÏ   rÍ   rÂ   rX   Tr�   r‘   )r“   r”   rµ   r"   rK   r¤   r|   )r‡   r®   r�   s      rd   Ú)test_prf_no_warnings_if_zero_division_setrž  ï  s  € ä	×	 Ñ	 Ó	"ñ 2
Ü×Ñ˜gÔ&ð 3ò 	ˆGÜ+Úš9¨gÀ]õô ,Úš9¨gÀ]öð	ô 	(Ü�H‰H�q˜!�f˜q !˜fÐ%Ó&Ü�H‰H�q˜!�f˜q !˜fÐ%Ó&ØØ'õ		
ô 	(Ü�H‰H�q˜!�f˜q !˜fÐ%Ó&Ü�H‰H�q˜!�f˜q !˜fÐ%Ó&ØØ'õ		
ô 	(Ü�H‰H�q˜!�f˜q !˜fÐ%Ó&Ü�H‰H�q˜!�f˜q !˜fÐ%Ó&ØØ'õ		
ô 	(Ü�H‰H�q˜!�f˜q !˜fÐ%Ó&Ü�H‰H�q˜!�f˜q !˜fÐ%Ó&ØØ'õ		
ô 	(Ø�ˆF�R˜�H h¸mõ	
ô 	(Ø�ˆH�q˜!�f h¸mõ	
÷a2
ôh 
×	 Ñ	 ¨Ô	-ð  °Ü×Ñ˜hÔ'Ü'Ø�ˆF�Q˜�F H¸Mõ	
ô �6‹{˜aÒÐÑ÷ ð  ÷i2
ð 2
ú÷h ð  ús   •E-G#Æ 9G/Ç#G,Ç/G8c           	      óø  — t        j                  «       5  t        j                  d«       t        t	        j
                  ddgddgg«      t	        j
                  ddgddgg«      d| ¬«       d d d «       t        j                  d¬«      5 }t        j                  d«       t        t	        j
                  ddgddgg«      t	        j
                  ddgddgg«      d| ¬«       | d	k(  r(t        |j                  «       j                  «      d
k(  sJ ‚t        |«      dk(  sJ ‚t        ddgddg«       | d	k(  r(t        |j                  «       j                  «      d
k(  sJ ‚d d d «       y # 1 sw Y   ŒùxY w# 1 sw Y   y xY w)Nr±   rF   r   rÍ   rl  Tr�   r‘   rˆ   r™  )
r“   r”   rµ   r$   rK   r¤   r–   r›  r’   r|   ©r‡   r�   s     rd   Útest_recall_warningsr¡  -	  ss  € ä	×	 Ñ	 Ó	"ñ 
Ü×Ñ˜gÔ&äÜ�H‰H�q˜!�f˜q !˜fÐ%Ó&Ü�H‰H�q˜!�f˜q !˜fÐ%Ó&ØØ'õ		
÷
ô 
×	 Ñ	 ¨Ô	-ð °Ü×Ñ˜hÔ'ÜÜ�H‰H�q˜!�f˜q !˜fÐ%Ó&Ü�H‰H�q˜!�f˜q !˜fÐ%Ó&ØØ'õ		
ð ˜FÒ"ä�F—J‘J“L×(Ñ(Ó)ð ."ò "ðð"ô �v“; !Ò#Ð#Ð#ä�a˜�V˜a ˜VÔ$Ø˜FÒ"ä�F—J‘J“L×(Ñ(Ó)ð ."ò "ðð"÷+ð ÷
ð 
ú÷ð ús   •AE$Â
CE0Å$E-Å0E9c           	      óø  — t        j                  d¬«      5 }t        j                  d«       t        t	        j
                  ddgddgg«      t	        j
                  ddgddgg«      d| ¬«       | dk(  r(t        |j                  «       j                  «      d	k(  sJ ‚t        |«      dk(  sJ ‚t        ddgddg«       | dk(  r(t        |j                  «       j                  «      d	k(  sJ ‚d d d «       t        j                  «       5  t        j                  d
«       t        t	        j
                  ddgddgg«      t	        j
                  ddgddgg«      d| ¬«       d d d «       y # 1 sw Y   Œ}xY w# 1 sw Y   y xY w)NTr�   r‘   rF   r   rÍ   rl  rˆ   r˜  r±   )
r“   r”   rµ   r#   rK   r¤   r–   r›  r’   r|   r   s     rd   Útest_precision_warningsr£  U	  ss  € ä	×	 Ñ	 ¨Ô	-ð °Ü×Ñ˜hÔ'ÜÜ�H‰H�q˜!�f˜q !˜fÐ%Ó&Ü�H‰H�q˜!�f˜q !˜fÐ%Ó&ØØ'õ		
ð ˜FÒ"ä�F—J‘J“L×(Ñ(Ó)ð ."ò "ðð"ô �v“; !Ò#Ð#Ð#ä˜˜A˜  A Ô'Ø˜FÒ"ä�F—J‘J“L×(Ñ(Ó)ð ."ò "ðð"÷+ô6 
×	 Ñ	 Ó	"ñ 
Ü×Ñ˜gÔ&äÜ�H‰H�q˜!�f˜q !˜fÐ%Ó&Ü�H‰H�q˜!�f˜q !˜fÐ%Ó&ØØ'õ		
÷
ð 
÷7ð ú÷6
ð 
ús   —CE$ÄAE0Å$E-Å0E9c           
      óô  — t        j                  d¬«      5 }t        j                  d«       t        t	        t
        d¬«      fD �]  } |t        j                  ddgddgg«      t        j                  ddgddgg«      d| ¬	«       t        |«      dk(  sJ ‚ |t        j                  ddgddgg«      t        j                  ddgddgg«      d| ¬	«       t        |«      dk(  sJ ‚ |t        j                  ddgddgg«      t        j                  ddgddgg«      d| ¬	«       | d
k(  r*t        |j                  «       j                  «      dk(  r�ŒJ ‚t        |«      dk(  r�ŒJ ‚ 	 d d d «       y # 1 sw Y   y xY w)NTr�   r‘   r=   rÀ   rF   r   rÍ   rl  rˆ   rš  )r“   r”   rµ   r   r   r   rK   r¤   r|   r–   r›  r’   )r‡   r�   rš  s      rd   Útest_fscore_warningsr¥  }	  s~  € ä	×	 Ñ	 ¨Ô	-ð "(°Ü×Ñ˜hÔ'ä¤¬¸!Ô <Ð=ó 	(ˆEÙÜ—‘˜1˜a˜& 1 a &Ð)Ó*Ü—‘˜1˜a˜& 1 a &Ð)Ó*ØØ+õ	ô �v“; !Ò#Ð#Ð#áÜ—‘˜1˜a˜& 1 a &Ð)Ó*Ü—‘˜1˜a˜& 1 a &Ð)Ó*ØØ+õ	ô �v“; !Ò#Ð#Ð#áÜ—‘˜1˜a˜& 1 a &Ð)Ó*Ü—‘˜1˜a˜& 1 a &Ð)Ó*ØØ+õ	ð  Ò&ä˜Ÿ
™
›×,Ñ,Ó-ð 2-ô -ðð-ô ˜6“{ aÔ'Ð'Ð'ñ?	(÷"(÷ "(ñ "(ús   —D6E.ÅE.Å!E.Å.E7c                  óx  — g d¢} g d¢}d}t        j                  g d¢g d¢g d¢g«      }t        j                  g d¢g d¢g d¢g«      }d}| ||f|||ffD ]Y  \  }}}t        t        t        t        t        d	¬
«      fD ]/  }	t        j                  t        |¬«      5   |	||«       d d d «       Œ1 Œ[ y # 1 sw Y   Œ>xY w)N)rF   r=   rC   rC   )rF   r=   rC   rF   rP  r    rÑ   r¢   r6  rO  r=   rÀ   rò   )
rK   r¤   r#   r$   r   r   r   rÄ   rØ   rÙ   )
Ú	y_true_mcÚ	y_pred_mcÚmsg_mcÚ
y_true_indÚ
y_pred_indÚmsg_indrc   rb   r˜   r…   s
             rd   Ú'test_prf_average_binary_data_non_binaryr­  ¤	  sÔ   € â€IÚ€Ið	1ð ô
 —‘š9¢i²Ð;Ó<€JÜ—‘š9¢i²Ð;Ó<€Jð	<ð ð 
�I˜vÐ&Ø	�Z Ð)ð ò 'Ñˆ�˜ô
 ÜÜÜ”K aÔ(ð	
ò 	'ˆFô —‘œz°Ô5ñ 'Ù�v˜vÔ&÷'ð 'ñ	'ñ	'÷'ð 'ús   Â
B0Â0B9c                  óØ  — d} d}d}d}d}d}| t        j                  ddgddgddgg«      f|g d	¢f|g d
¢f|g d¢f|t        j                  dgdgdgg«      f|t        j                  dgdgdgg«      f|t        j                  dgdgdgg«      f|t        j                  ddgddgddgg«      f|t        j                  ddgddgddgg«      fg	}i | | f| “||f|“||f|“|| fd “|| fd “||f|“||fd “||fd “||fd “| |fd “||fd “||fd “||fd “||fd “| |fd “||fd “||fd “||fd | |fd ||fd ||fd i¥}t        |d¬«      D �]‘  \  \  }}	\  }
}	 |||
f   }|€Àt	        j
                  t        «      5  t        |	|«       d d d «       ||
k7  rCdj                  ||
«      }t	        j
                  t        |¬«      5  t        |	|«       d d d «       Œ�|||| fvsŒ•dj                  |«      }t	        j
                  t        |¬«      5  t        |	|«       d d d «       Œ×t        |	|«      \  }}}}}||k(  sJ ‚|j                  d«      r"|j                  dk(  sJ ‚|j                  dk(  s@J ‚t        |t        j                  |	«      «       t        |t        j                  |«      «       t	        j
                  t        «      5  t        |	d d |«       d d d «       �Œ” ddg}	ddg}d }t	        j
                  t        |¬«      5  t        |	|«       d d d «       y # t        $ r ||
|f   }Y �ŒÎw x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   �ŒxY w# 1 sw Y   y xY w)!Númultilabel-indicatorÚ
multiclassrX   Ú
continuouszmulticlass-multioutputzcontinuous-multioutputr   rF   )r=   rC   rF   r    )rÁ   r‚  r¿   r=   rC   rÁ   r‚  r¿   r£   rZ  gš™™™™™ñ?g      @)rå  z@Classification metrics can't handle a mix of {0} and {1} targetsrò   z{0} is not supportedÚ
multilabelÚcsrrÂ   )rF   r=   )r   r=   rC   )r=   )r   r=   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 - the MultiLabelBinarizer transformer can convert to this format.)rK   r¤   r   ÚKeyErrorrÄ   rØ   rÙ   r&   ÚformatÚ
startswithr6   Úsqueeze)ÚINDÚMCÚBINÚCNTÚMMCÚMCNÚEXAMPLESÚEXPECTEDÚtype1r¨   Útype2r©   rƒ  r÷   Úmerged_typer�   Úy1outÚy2outr˜   s                      rd   Útest__check_targetsrÅ  Ã	  s|  € ð !€CØ	€BØ
€CØ
€CØ
"€CØ
"€Cð 
Œb�h‰h˜˜A˜  A ¨¨A¨Ð/Ó0Ð1Ø	ŠYˆØ	ŠiÐØ	ŠoÐØ	ŒR�X‰X˜�s˜Q˜C ! �oÓ&Ð'Ø	Œb�h‰h˜˜˜a˜S 1 #�Ó'Ð(Ø	Œb�h‰h˜˜ ˜u s eÐ,Ó-Ð.Ø	Œb�h‰h˜˜A˜  A ¨¨A¨Ð/Ó0Ð1Ø	Œb�h‰h˜˜c˜
 S¨# J°°c°
Ð;Ó<Ð=ð€HðØ	ˆcˆ
�Cðà	ˆRˆ�"ðð 
ˆcˆ
�Cðð 
ˆSˆ	�4ð	ð
 
ˆcˆ
�Dðð 
ˆbˆ	�2ðð 
ˆcˆ
�Dðð 
ˆcˆ
�Dðð 
ˆcˆ
�Dðð 
ˆcˆ
�Dðð 
ˆSˆ	�4ðð 
ˆcˆ
�Dðð 
ˆcˆ
�Dðð 
ˆcˆ
�Dðð  
ˆcˆ
�Dð!ð" 
ˆSˆ	�4ð#ð$ 
ˆcˆ
�Dð%ð& 
ˆcˆ
�DØ	ˆcˆ
�DØ	ˆSˆ	�4Ø	ˆcˆ
�Dñ-€Hô2 %,¨H¸QÔ$?ó !,Ñ ‰ˆ�‘[�e˜Rð	.Ø  u Ñ-ˆHð ÐÜ—‘œzÓ*ñ 'Ü˜r 2Ô&÷'ð ˜Š~ð-ß-3©V°E¸5Ó-Að ô —]‘]¤:°WÔ=ñ +Ü" 2 rÔ*÷+ð +ð   b¨# Ò.Ø4×;Ñ;¸EÓB�GÜŸ™¤z¸ÔAñ /Ü& r¨2Ô.÷/ð /ô /=¸RÀÓ.DÑ+ˆK˜˜E 5¨!Ø (Ò*Ð*Ð*Ø×%Ñ% lÔ3Ø—|‘| uÒ,Ð,Ð,Ø—|‘| uÒ,Ð,Ð,ä" 5¬"¯*©*°R«.Ô9Ü" 5¬"¯*©*°R«.Ô9Ü—‘œzÓ*ñ ,Ü˜r # 2˜w¨Ô+÷,ñ ,ðA!,ðH �)Ð	€BØ
�ˆ€Bð	3ð ô 
�‰”z¨Ô	-ñ Ü�r˜2Ô÷ð øôS ò 	.Ø  u Ñ-‹Hð	.ú÷'ñ 'ú÷+ñ +ú÷/ñ /ú÷,ñ ,ú÷ð úsN   ÅLÅ5L,Æ<L9ÈMÊ?MË?M ÌL)Ì(L)Ì,L6	Ì9M	ÍM	ÍM	Í M)c                  óò   — d} t        j                  t        t        j                  | «      ¬«      5  t        t        j                  g «      t        j                  g «      «       d d d «       y # 1 sw Y   y xY w)NzIFound empty input array (e.g., `y_true` or `y_pred`) while a minimum of 1rò   )rÄ   rØ   rÙ   rQ  rR  r&   rK   r¤   r  s    rd   Ú*test__check_targets_raises_on_empty_inputsrÇ  $
  sL   € Ø
U€CÜ	�‰”z¬¯©°3«Ô	8ñ 3Ü”r—x‘x “|¤R§X¡X¨b£\Ô2÷3÷ 3ñ 3ús   ±3A-Á-A6c                  ó<   — ddg} ddg}t        | |«      d   dk(  sJ ‚y )Nr   rF   rÂ   r°  )r&   rc  s     rd   ÚAtest__check_targets_multiclass_with_both_y_true_and_y_pred_binaryrÉ  *
  s.   € à�ˆV€FØ�ˆW€FÜ˜& &Ó)¨!Ñ,°Ò<Ð<Ñ<rf   zy, target_typerX   r°  r¡   r6  r7  r²  c                 óü   — |dv r1t        j                  t        d¬«      5  t        | | «       ddd«       yt        | | «      \  }}}}}|dk(  sJ ‚|j                  dk(  sJ ‚|j                  dk(  sJ ‚y# 1 sw Y   yxY w)z?Check correct behaviour when different target types are sparse.)rX   r°  z+Sparse input is only supported when targetsrò   Nr¯  r³  )rÄ   rØ   Ú	TypeErrorr&   rµ  )rZ   Útarget_typeÚy_typer�   Ú
y_true_outÚ
y_pred_outs         rd   Ú!test__check_targets_sparse_inputsrÐ  1
  s•   € ð Ð.Ñ.Ü�]‰]ÜÐJô
ñ 	!ô ˜1˜aÔ ÷	!ð 	!ô 0>¸aÀÓ/CÑ,ˆ��:˜z¨1àÐ/Ò/Ð/Ð/Ø× Ñ  EÒ)Ð)Ð)Ø× Ñ  EÒ)Ð)Ñ)÷	!ð 	!ús    A2Á2A;c                  ó   — t        j                  g d¢«      } t        j                  g d¢«      }t        | |«      dk(  sJ ‚t        j                  g d¢«      } t        j                  g d¢«      }t        | |«      dk(  sJ ‚y )N)rÂ   rF   rF   rÂ   )g      !Àr£   r‚  g333333Ó¿rï   )r   r=   r=   r   )rK   r¤   r   ©rc   Úpred_decisions     rd   Útest_hinge_loss_binaryrÔ  I
  sf   € Ü�X‰X’nÓ%€FÜ—H‘HÒ3Ó4€MÜ�f˜mÓ,°Ò7Ð7Ð7ä�X‰X’lÓ#€FÜ—H‘HÒ3Ó4€MÜ�f˜mÓ,°Ò7Ð7Ñ7rf   c            
      ó  — t        j                  g d¢g d¢g d¢g d¢g d¢g d¢g«      } t        j                  g d¢«      }t        j                  d| d   d   z
  | d   d   z   d| d   d   z
  | d   d	   z   d| d	   d	   z
  | d	   d
   z   d| d
   d   z
  | d
   d	   z   d| d   d
   z
  | d   d	   z   d| d   d	   z
  | d   d
   z   g«      }t        j                  |dd |¬«       t        j                  |«      }t	        || «      |k(  sJ ‚y )N©ç
×£p=
×?çÃõ(\�ÂÅ¿ç�Âõ(\�â¿g®Gáz®ï¿)çHáz®Gá¿g®Gáz®×¿ç¸…ëQ¸Þ¿rÙ  ©ç333333÷¿rÙ  çR¸…ëQØ¿rØ  )rÚ  rÞ  rÛ  rÙ  ©gáz®GáÀgHáz®Gé¿gHáz®GÑ¿g¸…ëQ¸Î?)r   rF   r=   rF   rC   r=   rF   r   r=   rC   r´   r³   ©Úout©rK   r¤   Úclipr×   r   )rÓ  rc   Údummy_lossesÚdummy_hinge_losss       rd   Útest_hinge_loss_multiclassræ  S
  sJ  € Ü—H‘Hâ(Ú(Ú(Ú(Ú(Ú(ð	
ó	€Mô �X‰XÒ(Ó)€FÜ—8‘8à�˜aÑ  Ñ#Ñ# m°AÑ&6°qÑ&9Ñ9Ø�˜aÑ  Ñ#Ñ# m°AÑ&6°qÑ&9Ñ9Ø�˜aÑ  Ñ#Ñ# m°AÑ&6°qÑ&9Ñ9Ø�˜aÑ  Ñ#Ñ# m°AÑ&6°qÑ&9Ñ9Ø�˜aÑ  Ñ#Ñ# m°AÑ&6°qÑ&9Ñ9Ø�˜aÑ  Ñ#Ñ# m°AÑ&6°qÑ&9Ñ9ð	
ó	€Lô ‡G�GˆL˜!˜T |Õ4Ü—w‘w˜|Ó,ÐÜ�f˜mÓ,Ð0@Ò@Ð@Ñ@rf   c                  óð   — t        j                  g d¢«      } t        j                  g d¢g d¢g d¢g d¢g«      }d}t        j                  t        |¬«      5  t        | |«       d d d «       y # 1 sw Y   y xY w)N)r   rF   r=   r=   )gR¸…ëQô?gœÄ °rh¡?gÃõ(\�Âå¿gffffffö¿rÜ  rß  zDPlease include all labels in y_true or pass labels as third argumentrò   )rK   r¤   rÄ   rØ   rÙ   r   )rc   rÓ  Úerror_messages      rd   Ú:test_hinge_loss_multiclass_missing_labels_with_labels_noneré  n
  si   € Ü�X‰X’lÓ#€FÜ—H‘Hâ(Ú(Ú(Ú(ð		
ó€Mð 	Oð ô 
�‰”z¨Ô	7ñ *Ü�6˜=Ô)÷*÷ *ñ *úó   ÁA,Á,A5c            
      ó  — t        j                  g d¢«      } t        j                  g d¢«      }d}t        j                  t        t        j                  |«      ¬«      5  t        | |¬«       d d d «       t        j                  ddgddgddgddgddgddgddgg«      }g d	¢}d
}t        j                  t        t        j                  |«      ¬«      5  t        | ||¬«       d d d «       y # 1 sw Y   ŒxY w# 1 sw Y   y xY w)N)r=   rF   r   rF   r   rF   rF   )r   rF   r=   rF   r   r=   rF   z”The shape of pred_decision cannot be 1d arraywith a multiclass target. pred_decision shape must be (n_samples, n_classes), that is (7, 3). Got: (7,)rò   rÒ  r   rF   r=   rš   z²The shape of pred_decision is not consistent with the number of classes. With a multiclass target, pred_decision shape must be (n_samples, n_classes), that is (7, 3). Got: (7, 2))rc   rÓ  ry   )rK   r¤   rÄ   rØ   rÙ   rQ  rR  r   )rc   rÓ  rè  ry   s       rd   Ú<test_hinge_loss_multiclass_no_consistent_pred_decision_shaperì  
  só   € ô �X‰XÒ+Ó,€FÜ—H‘HÒ2Ó3€Mð	ð ô 
�‰”z¬¯©°=Ó)AÔ	Bñ ?Ü˜&°Õ>÷?ô —H‘H˜q !˜f q¨! f¨q°!¨f°q¸!°f¸qÀ!¸fÀqÈ!ÀfÈqÐRSÈfÐUÓV€MÚ€Fð	ð ô 
�‰”z¬¯©°=Ó)AÔ	Bñ NÜ˜&°ÀfÕM÷Nð N÷?ð ?ú÷Nð Nús   ÁC+ÃC7Ã+C4Ã7D c            	      ó  — t        j                  g d¢g d¢g d¢g d¢g d¢g«      } t        j                  g d¢«      }t        j                  g d¢«      }t        j                  d| d   d   z
  | d   d   z   d| d   d   z
  | d   d   z   d| d   d   z
  | d   d	   z   d| d	   d   z
  | d	   d   z   d| d
   d   z
  | d
   d	   z   g«      }t        j                  |dd |¬«       t        j                  |«      }t	        || |¬«      |k(  sJ ‚y )NrÖ  ©çš™™™™™á¿rÞ  rÛ  rÙ  rÜ  )r   rF   r=   rF   r=   )r   rF   r=   rC   rF   r   r=   rC   r´   rà  rà   râ  ©rÓ  rc   ry   rä  rå  s        rd   Ú.test_hinge_loss_multiclass_with_missing_labelsrñ  ›
  s5  € Ü—H‘Hâ(Ú(Ú(Ú(Ú(ð	
ó€Mô �X‰X’oÓ&€FÜ�X‰X’lÓ#€FÜ—8‘8à�˜aÑ  Ñ#Ñ# m°AÑ&6°qÑ&9Ñ9Ø�˜aÑ  Ñ#Ñ# m°AÑ&6°qÑ&9Ñ9Ø�˜aÑ  Ñ#Ñ# m°AÑ&6°qÑ&9Ñ9Ø�˜aÑ  Ñ#Ñ# m°AÑ&6°qÑ&9Ñ9Ø�˜aÑ  Ñ#Ñ# m°AÑ&6°qÑ&9Ñ9ð	
ó€Lô ‡G�GˆL˜!˜T |Õ4Ü—w‘w˜|Ó,ÐÜ�f˜m°FÔ;Ð?OÒOÐOÑOrf   c            	      ó  — t        j                  g d¢g d¢g d¢g d¢g d¢g«      } t        j                  g d¢«      }t        j                  g d¢«      }t        j                  d| d   d   z
  | d   d   z   d| d   d	   z
  | d   d   z   d| d	   d	   z
  | d	   d   z   d| d
   d   z
  | d
   d	   z   d| d   d	   z
  | d   d   z   g«      }t        j                  |dd |¬«       t        j                  |«      }t	        t        || |¬«      |«       y )N)r×  rØ  rÙ  )g333333Ã¿rÙ  rÛ  )rÝ  rÙ  rÞ  )rï  gö(\�Âõè¿gáz®GáÚ¿)r   r=   r=   r   r=   rš   rF   r   r=   rC   r´   rà  rà   )rK   r¤   rã  r×   r4   r   rð  s        rd   Ú@test_hinge_loss_multiclass_missing_labels_only_two_unq_in_y_trueró  µ
  s6  € ô
 —H‘Hâ!Ú!Ú!Ú!Ú!ð	
ó€Mô �X‰X’oÓ&€FÜ�X‰X’iÓ €FÜ—8‘8à�˜aÑ  Ñ#Ñ# m°AÑ&6°qÑ&9Ñ9Ø�˜aÑ  Ñ#Ñ# m°AÑ&6°qÑ&9Ñ9Ø�˜aÑ  Ñ#Ñ# m°AÑ&6°qÑ&9Ñ9Ø�˜aÑ  Ñ#Ñ# m°AÑ&6°qÑ&9Ñ9Ø�˜aÑ  Ñ#Ñ# m°AÑ&6°qÑ&9Ñ9ð	
ó€Lô ‡G�GˆL˜!˜T |Õ4Ü—w‘w˜|Ó,ÐÜÜ�6˜=°Ô8Ð:Jõrf   c            
      óÀ  — g d¢} g d¢g d¢g d¢g d¢g d¢g d¢g}t        j                  d|d   d   z
  |d   d   z   d|d   d   z
  |d   d   z   d|d   d   z
  |d   d	   z   d|d	   d   z
  |d	   d   z   d|d
   d	   z
  |d
   d   z   d|d   d   z
  |d   d	   z   g«      }t        j                  |dd |¬«       t        j                  |«      }t	        | |«      |k(  sJ ‚y )N)r0  r1  r2  r1  Úwhiter2  rÖ  rî  rÜ  rß  rF   r   r=   rC   r´   r³   rà  râ  )rc   rÓ  rä  rå  s       rd   Ú+test_hinge_loss_multiclass_invariance_listsrö  Õ
  s6  € ò ?€Fâ$Ú$Ú$Ú$Ú$Ú$ð€Mô —8‘8à�˜aÑ  Ñ#Ñ# m°AÑ&6°qÑ&9Ñ9Ø�˜aÑ  Ñ#Ñ# m°AÑ&6°qÑ&9Ñ9Ø�˜aÑ  Ñ#Ñ# m°AÑ&6°qÑ&9Ñ9Ø�˜aÑ  Ñ#Ñ# m°AÑ&6°qÑ&9Ñ9Ø�˜aÑ  Ñ#Ñ# m°AÑ&6°qÑ&9Ñ9Ø�˜aÑ  Ñ#Ñ# m°AÑ&6°qÑ&9Ñ9ð	
ó	€Lô ‡G�GˆL˜!˜T |Õ4Ü—w‘w˜|Ó,ÐÜ�f˜mÓ,Ð0@Ò@Ð@Ñ@rf   c            	      ó&  — g d¢} t        j                  ddgddgddgddgddgd	d
gg«      }t        | |«      }t        j                  t	        j
                  t        j                  | «      dk(  |d d …df   «      «       }t        ||«       g d¢} g d¢g d¢g d¢g}t        | |d¬«      }t        |d«       | dz  } |dz  }t        | |d¬«      }t        |d«       g d¢} ddgddgddgg}t        j                  t        «      5  t        | |«       d d d «       g d¢} g d¢g d¢g d¢g}g d¢}d }t        j                  t        t        j                  |«      ¬!«      5  t        | ||¬"«       d d d «       g d#¢} ddgddgddgddgg}t        | |«      }t        |d$«       ddg} d%d&gddgg}t        j                  ddgddgg«      }d'}t        j                  t        t        j                  |«      ¬!«      5  t        | |«       d d d «       d%d&gddgddgg}d(}t        j                  t        t        j                  |«      ¬!«      5  t        | |«       d d d «       t        j                  t        j                  |d d …df   «      «       }t        | |ddg¬"«      }t        ||«       g d)¢} g d*¢g d¢g d+¢g}	t        | |	g d,¢¬"«      }t        |t        j                  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   Œ»xY w)-N©Únorù  rù  Úyesrú  rú  r£   rì   rp   ç{®Gáz„?ç®Gáz®ï?rÔ   r~  gü©ñÒMbP?g+‡ÙÎ÷ï?rú  rF   rI  ©rë   rê   rì   ©rú   rë   rë   ©rú   rì   rï   TrP  gèº•Ê€æ?r=   Fg.Lð—`’@rï   rê   rú   rî   rŠ   )rp   rì   rÁ   )rì   rp   rÁ   ©rì   rì   r¯   )r‹   r�   rŽ   zPy_true contains values {'b'} not belonging to the passed labels ['a', 'c', 'd'].rò   rà   ©ÚhamÚspamr  r  çCTáÏðæç?rë   r¯   z€y_true contains only one label (2). Please provide the list of all expected class labels explicitly through the labels argument.zBFound input variables with inconsistent numbers of samples: [3, 2]r  )rê   rì   rë   ©rì   rê   rë   rH  )rK   r¤   r   r×   r
   Úlogpmfr3   rÄ   rØ   rÙ   rQ  rR  Úlog)
rc   Úy_probaÚlossÚ	loss_truery   Ú	error_strrö   Útrue_log_lossÚcalculated_log_lossÚy_score2s
             rd   Útest_log_lossr  ñ
  s  € â4€FÜ�h‰hØ
ˆsˆ�c˜3�Z $¨ °°S¨z¸DÀ$¸<È%ÐQVÈÐXó€Gô �F˜GÓ$€DÜ—‘œ×)Ñ)¬"¯(©(°6Ó*:¸eÑ*CÀWÊQÐPQÈTÁ]ÓSÓTÐT€IÜ�D˜)Ô$ò €FÚ¢²ÐA€GÜ�F˜G¨tÔ4€DÜ�D˜)Ô$ð ˆa�K€FØˆq�L€GÜ�F˜G¨uÔ5€DÜ�D˜-Ô(ò €FØ�Sˆz˜C ˜:¨¨S zÐ2€GÜ	�‰”zÓ	"ñ "Ü�˜Ô!÷"ò €FÚ¢²ÐA€GÚ€Fð	"ð ô 
�‰”z¬¯©°9Ó)=Ô	>ñ 1Ü�˜¨Õ0÷1ò ,€FØ�Sˆz˜C ˜:¨¨S z°C¸°:Ð>€GÜ�F˜GÓ$€DÜ�D˜)Ô$ð �ˆV€FØ�Sˆz˜C ˜:Ð&€GÜ�h‰h˜˜c˜
 S¨# JÐ/Ó0€Gð	Hð ô 
�‰”z¬¯©°9Ó)=Ô	>ñ "Ü�˜Ô!÷"ð �Sˆz˜C ˜:¨¨S zÐ2€GØT€IÜ	�‰”z¬¯©°9Ó)=Ô	>ñ "Ü�˜Ô!÷"ô
 —W‘WœRŸV™V GªA¨q¨D¡MÓ2Ó3Ð3€MÜ" 6¨7¸A¸q¸6ÔBÐÜÐ'¨Ô7ò €FÚ¢²/ÐB€HÜ�F˜HªYÔ7€DÜ�Dœ2Ÿ6™6 #›;˜,Õ'÷_"ñ "ú÷1ñ 1ú÷$"ð "ú÷
"ð "ús0   Ä K!ÅK.Ç0K;É LË!K+Ë.K8Ë;LÌLc                 ó®   — t        j                  ddg| ¬«      }t        j                  ddg| ¬«      }t        ||«      }t        j                  |«      sJ ‚y)z¬Check the behaviour internal eps that changes depending on the input dtype.

    Non-regression test for:
    https://github.com/scikit-learn/scikit-learn/issues/24315
    r   rF   r  N)rK   r¤   r   Úisfinite)rS  rc   r  r	  s       rd   Útest_log_loss_epsr  =  sJ   € ô �X‰X�q˜!�f EÔ*€FÜ�h‰h˜˜1�v UÔ+€Gä�F˜GÓ$€DÜ�;‰;�tÔÐÑrf   c                 óð   — t        j                  g d¢«      }t        j                  ddgddgddgddgg| ¬«      }t        j                  t        d	¬
«      5  t        ||«       ddd«       y# 1 sw Y   yxY w)zHCheck that log_loss raises a warning when y_proba values don't sum to 1.ró  rë   rê   rú   rï   rî   r¯   r  z$The y_prob values do not sum to one.rò   N)rK   r¤   rÄ   r  r  r   )rS  rc   r  s      rd   Ú'test_log_loss_not_probabilities_warningr  K  si   € ô �X‰X’lÓ#€FÜ�h‰h˜˜c˜
 S¨# J°°c°
¸SÀ#¸JÐGÈuÔU€Gä	�‰”kÐ)OÔ	Pñ "Ü�˜Ô!÷"÷ "ñ "úrê  zy_true, y_probarÑ   r¢   c                 óL   — t        | |«      t        j                  d«      k(  sJ ‚y)z6Check that log_loss returns 0 for perfect predictions.r   N)r   rÄ   rÅ   ©rc   r  s     rd   Ú!test_log_loss_perfect_predictionsr  U  s"   € ô �F˜GÓ$¬¯©°aÓ(8Ò8Ð8Ñ8rf   c                  óH  — t        j                  g d¢«      } t        j                  ddgddgddgddgg«      }t        t        fg}	 ddlm}m} |j                  ||f«       |D ]-  \  }} || «       ||«      }}t        ||«      }	t        |	d«       Œ/ y # t        $ r Y Œ>w xY w)	Nr  rï   rê   rú   rî   r   )Ú	DataFramer  r  )
rK   r¤   r1   r  r  r  r“  ÚImportErrorr   r3   )
Úy_trÚy_prÚtypesr  r  ÚTrueInputTypeÚPredInputTyperc   r  r	  s
             rd   Útest_log_loss_pandas_inputr   c  s±   € ä�8‰8Ò2Ó3€DÜ�8‰8�c˜3�Z # s ¨c°3¨Z¸#¸s¸ÐDÓE€DÜœ]Ð+Ð,€Eðß,à�‰�f˜iÐ(Ô)ð ).ò )Ñ$ˆ�}á'¨Ó-©}¸TÓ/B�ˆÜ˜ Ó(ˆÜ˜˜iÕ(ñ	)øô ò Ùðús   ÁB Â	B!Â B!c                  óÄ   — t        j                  d«      } t        j                  t        | ¬«      5  t        g d¢g d¢g d¢g d¢gg d¢¬«       d d d «       y # 1 sw Y   y xY w©	NzÞLabels passed were ['spam', 'eggs', 'ham']. But this function assumes labels are ordered lexicographically. Pass the ordered labels=['eggs', 'ham', 'spam'] and ensure that the columns of y_prob correspond to this ordering.rò   ©Úeggsr  r  rÑ   r6  r¢   )r  r$  r  rà   )rQ  rR  rÄ   r  r  r   ©Úexpected_messages    rd   Útest_log_loss_warningsr'  u  sT   € Ü—y‘yð	=óÐô 
�‰”kÐ)9Ô	:ñ 
ÜÚ#Úš	¢9Ð-Ú*õ	
÷
÷ 
ñ 
úó   ±AÁAc                  óÖ  — t        j                  g d¢«      } t        j                  ddgddgddgddgg«      }t        | |«       d}t        j                  t
        t        j                  |«      ¬	«      5  t        | |¬
«       ddd«       d}t        j                  t        t        j                  |«      ¬	«      5  t        | ||¬«       ddd«       y# 1 sw Y   ŒQxY w# 1 sw Y   yxY w)z?Test `y_pred` deprecation in favor of `y_proba` for `log_loss`.ró  rì   rp   r¯   rë   çffffffÖ?çÍÌÌÌÌÌä?úE`y_pred` was renamed to `y_proba` in version 1.9 and will be removed rò   ©rb   Nú@Cannot use both `y_pred` and `y_proba`. `y_pred` is deprecated, ©rb   r  )
rK   r¤   r   rÄ   r  ÚFutureWarningrQ  rR  rØ   rÙ   ©rc   r  r˜   s      rd   Ú test_log_loss_y_pred_deprecationr2  …  sÁ   € ä�X‰X’lÓ#€FÜ�h‰h˜˜c˜
 S¨# J°°c°
¸TÀ4¸LÐIÓJ€Gô ˆV�WÔà
Q€CÜ	�‰”m¬2¯9©9°S«>Ô	:ñ )Ü� Õ(÷)ð M€CÜ	�‰”z¬¯©°3«Ô	8ñ :Ü� °Õ9÷:ð :÷	)ð )ú÷:ð :úó   Á5CÂ;CÃCÃC(c                  ó¾  — t        j                  g d¢«      } t        j                  g d¢«      }t        j                  | |z
  «      dz  t	        | «      z  }t        t        | | «      d«       t        t        | |«      |«       t        t        d| z   |«      |«       t        t        d| z  dz
  |«      |«       t        j                  d|z
  |f«      }t        j                  d| z
  | f«      }t        t        | |«      |«       t        t        ||«      |«       t        t        | |d¬«      |«       t        t        | |d	¬«      |«       t        t        | |d
¬«      d|z  «       t        t        dgdg«      d«       t        t        dgdg«      d«       t        t        dgdg«      d«       t        t        dgdgd¬«      d«       t        t        dgdgd¬«      d«       y )N©r   rF   rF   r   rF   rF   ©rì   r¯   rp   rï   r¿   gffffffî?r=   rÁ   r¿   rF   Úauto)Úscale_by_halfTFrÂ   rî   g|®GázÄ?r   r×  ÚfooÚbarrô   )rK   r¤   r   Únormr|   r4   r   Úcolumn_stack)rc   Úy_probÚ
true_scoreÚy_prob_reshapedÚy_true_reshapeds        rd   Útest_brier_score_loss_binaryrA  –  s«  € ä�X‰XÒ(Ó)€FÜ�X‰XÒ5Ó6€FÜ—‘˜V f™_Ó-°Ñ2´S¸³[Ñ@€JäÔ(¨°Ó8¸#Ô>ÜÔ(¨°Ó8¸*ÔEÜÔ(¨¨v©°vÓ>À
ÔKÜÔ(¨¨V©°a©¸Ó@À*ÔMô —o‘o q¨6¡z°6Ð&:Ó;€OÜ—o‘o q¨6¡z°6Ð&:Ó;€OÜÔ(¨°ÓAÀ:ÔNÜÔ(¨¸/ÓJÈJÔWô Ü˜ °vÔ>À
ôô Ü˜ °tÔ<¸jôô Ü˜ °uÔ=¸qÀ:¹~ôô
 Ô(¨"¨°¨uÓ5°vÔ>ÜÔ(¨!¨¨s¨eÓ4°fÔ=ÜÔ(¨!¨¨s¨eÓ4°nÔEÜÔ(¨%¨°3°%À5ÔIÈ6ÔRÜÜ˜%˜ 3 %°5Ô9Øõrf   c            	      ó  — t        t        g d¢g d¢g d¢g d¢gg d¢¬«      d«       t        t        g d¢g d¢g d	¢g d
¢g«      d«       t        t        g d¢g d¢g d¢g d¢g«      d«       t        t        g d¢g d¢g d¢g d¢g«      d«       y )Nr#  rr  rs  )r$  r  r  Úyamsrà   rá   rI  rý  rþ  rÿ  gù—¬£tÚ?rš   )r¿   rÁ   rÁ   )rÁ   r¿   rÁ   )rÁ   rÁ   r¿   r   r=   )r4   r   rÆ   rf   rd   Ú test_brier_score_loss_multiclassrD  ½  s�   € äÜÚ#Úš<ªÐ6Ú2ô	
ð
 	ôô ÜÚšªº/ÐJó	
ð 	ô	ô ÜÚšªº/ÐJó	
ð 	
ô	ô ÜÚšªº/ÐJó	
ð 	
õ	rf   c                  ó&  — t        j                  g d¢«      } t        j                  g d¢«      }t        j                  t        «      5  t        | |dd  «       d d d «       t        j                  t        «      5  t        | |dz   «       d d d «       t        j                  t        «      5  t        | |dz
  «       d d d «       t        j                  g d¢«      } t        j                  g d¢g d¢g d¢g«      }t        j                  t        «      5  t        | |dd  «       d d d «       t        j                  t        «      5  t        | |dz   «       d d d «       t        j                  t        «      5  t        | |dz
  «       d d d «       t        j                  g d	¢«      } t        j                  g d
¢«      }t        j                  d«      }t        j                  t        |¬«      5  t        | |«       d d d «       g d¢} ddgddgddgg}d}t        j                  t        t        j                  |«      ¬«      5  t        | |«       d d d «       g d¢} g d¢g d¢g d¢g}g d¢}d}t        j                  t        t        j                  |«      ¬«      5  t        | ||¬«       d d d «       dg} ddgg}d}t        j                  t        t        j                  |«      ¬«      5  t        | |«       d d d «       t        t        | |ddg¬«      d«       y # 1 sw Y   �Œ½xY w# 1 sw Y   �Œ™xY w# 1 sw Y   �Œux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   �ŒnxY w# 1 sw Y   �Œ'xY w# 1 sw Y   ŒÙxY w# 1 sw Y   Œ˜xY w)Nr5  r6  rF   r¿   rI  rý  rþ  rÿ  )r   rF   r=   r   ©r¯   rú   rî   rë   zpThe type of the target inferred from y_true is multiclass but should be binary according to the shape of y_prob.rò   rš   r   z¦y_true and y_prob contain different number of classes: 3 vs 2. Please provide the true labels explicitly through the labels argument. Classes found in y_true: [0 1 2]r#  rÑ   r6  )r$  r  r  rC  zwThe number of classes in labels is different from that in y_prob. Classes found in labels: ['eggs' 'ham' 'spam' 'yams']rà   r$  rp   rì   zƒy_true contains only one label (eggs). Please provide the list of all expected class labels explicitly through the labels argument.r  rû  )	rK   r¤   rÄ   rØ   rÙ   r   rQ  rR  r4   )rc   r=  rè  ry   s       rd   Ú$test_brier_score_loss_invalid_inputsrG  à  sü  € ä�X‰XÒ(Ó)€FÜ�X‰XÒ5Ó6€FÜ	�‰”zÓ	"ñ -ä˜ ¨¨ Ô,÷-ô 
�‰”zÓ	"ñ /ä˜ ¨#¡Ô.÷/ô 
�‰”zÓ	"ñ /ä˜ ¨#¡Ô.÷/ô
 �X‰X’iÓ €FÜ�X‰X’ªºÐIÓJ€FÜ	�‰”zÓ	"ñ -ä˜ ¨¨ Ô,÷-ô 
�‰”zÓ	"ñ /ä˜ ¨#¡Ô.÷/ô 
�‰”zÓ	"ñ /ä˜ ¨#¡Ô.÷/ô
 �X‰X’lÓ#€FÜ�X‰XÒ*Ó+€FÜ—I‘Ið	Aó€Mô 
�‰”z¨Ô	7ñ )Ü˜ Ô(÷)ò €FØ�!ˆf�q˜!�f˜q !˜fÐ%€Fð	ð ô 
�‰”z¬¯©°=Ó)AÔ	Bñ )Ü˜ Ô(÷)ò %€FÚš¢IÐ.€FÚ,€Fð	/ð ô
 
�‰”z¬¯©°=Ó)AÔ	Bñ 8Ü˜ °Õ7÷8ð ˆX€FØ�Cˆjˆ\€Fð	ð ô
 
�‰”z¬¯©°=Ó)AÔ	Bñ )Ü˜ Ô(÷)ô Ô(¨°ÀÈÀÔPÐRVÕW÷K-ñ -ú÷/ñ /ú÷/ñ /ú÷-ñ -ú÷/ñ /ú÷/ñ /ú÷)ñ )ú÷)ñ )ú÷8ð 8ú÷)ð )úsx   ÁLÁ9L Â*L-ÄL:ÅMÅ2MÇ(M!È<M.ÊM;Ë#NÌLÌ L*Ì-L7Ì:MÍMÍMÍ!M+Í.M8Í;NÎNc                  óÄ   — t        j                  d«      } t        j                  t        | ¬«      5  t        g d¢g d¢g d¢g d¢gg d¢¬«       d d d «       y # 1 sw Y   y xY wr"  )rQ  rR  rÄ   r  r  r   r%  s    rd   Útest_brier_score_loss_warningsrI  ,  sZ   € Ü—y‘yð	=óÐô 
�‰”kÐ)9Ô	:ñ 	
ÜÚ#âÚÚðò
 +õ	
÷	
÷ 	
ñ 	
úr(  c                  óˆ   — d} t        j                  t        | ¬«      5  t        g d¢g d¢«       d d d «       y # 1 sw Y   y xY w)Nz%y_pred contains classes not in y_truerò   rk  r¢   )rÄ   r  r  r   r  s    rd   Ú#test_balanced_accuracy_score_unseenrK  ?  s4   € Ø
1€CÜ	�‰”k¨Ô	-ñ 6Ü¢	ª9Ô5÷6÷ 6ñ 6ús	   ž8¸Azy_true,y_pred)r‹   rŒ   r‹   rŒ   )r‹   r‹   r‹   rŒ   )r‹   rŒ   r�   rŒ   c                 óT  — t        | |dt        j                  | «      ¬«      }t        «       5  t	        | |«      }d d d «       t        j                  |«      k(  sJ ‚t	        | |d¬«      }t	        | t        j                  | | d   «      «      }|||z
  d|z
  z  k(  sJ ‚y # 1 sw Y   ŒexY w)NrÌ   rÓ   T)Úadjustedr   rF   )r$   rK   Úuniquer7   r   rÄ   rÅ   Ú	full_like)rc   rb   Úmacro_recallÚbalancedrM  Úchances         rd   Útest_balanced_accuracy_scorerS  E  s§   € ô  Ø� ´·	±	¸&Ó0Aô€Lô 
Ó	ñ ;ä*¨6°6Ó:ˆ÷;ð ”v—}‘} \Ó2Ò2Ð2Ð2Ü& v¨vÀÔE€HÜ$ V¬R¯\©\¸&À&ÈÁ)Ó-LÓM€FØ˜ 6Ñ)¨a°&©jÑ9Ò9Ð9Ñ9÷;ð ;ús   ­BÂB'rÊ   ))FTrª  )rÁ   r¿   )ÚzeroÚonec                 ó8  — t         j                  j                  d«      }d|d   }}|j                  ||d¬«      }| t        u r|j                  |¬«      }n|j                  «       } | |||¬«      }t        j                  t        j                  |«      «      rJ ‚y)	zÀCheck that the metric works with different types of `pos_label`.

    We can expect `pos_label` to be a bool, an integer, a float, a string.
    No error should be raised for those types.
    é*   ro  rÂ   T)r©  Úreplacer¨  rô   N)	rK   rO   rP   Úchoicer   Úuniformr  Úanyr‚  )r…   rÊ   r^   r[   rõ   rc   rb   r£  s           rd   Ú*test_classification_metric_pos_label_typesr\  Z  s‰   € ô* �)‰)×
Ñ
 Ó
#€CØ˜w r™{ˆy€IØ�Z‰Z˜ i¸ˆZÓ>€FØÔ!Ñ!à—‘ )�Ó,‰à—‘“ˆÙ�F˜F¨iÔ8€FÜ�v‰v”b—h‘h˜vÓ&Ô'Ð'Ð'Ð'rf   zy_true, y_pred, expected_scorec                 óP   — t        | |d¬«      t        j                  |«      k(  sJ ‚y)z•Check the behaviour of `zero_division` for f1-score.

    Non-regression test for:
    https://github.com/scikit-learn/scikit-learn/issues/26965
    r¿   r¢  N)r   rÄ   rÅ   )rc   rb   ro  s      rd   Ú2test_f1_for_small_binary_inputs_with_zero_divisionr^  {  s$   € ô �F˜F°#Ô6¼&¿-¹-ÈÓ:WÒWÐWÑWrf   Úscoringr¢  )r²   r‡   c                 ó’   — t        j                  d¬«      \  }}t        dd¬«      j                  ||«      }t	        |||| dd¬«       y)	aZ  Check that we validate `np.nan` properly for classification metrics.

    With `n_jobs=2` in cross-validation, the `np.nan` used for the singleton will be
    different in the sub-process and we should not use the `is` operator but
    `math.isnan`.

    Non-regression test for:
    https://github.com/scikit-learn/scikit-learn/issues/27563
    r   )rB   rC   )Ú	max_depthrB   r=   rù  )r_  Ún_jobsÚerror_scoreN)r   Úmake_classificationr,   rT   r)   )r_  rY   rZ   Ú
classifiers       rd   Ú:test_classification_metric_division_by_zero_nan_validationrf  �  sC   € ô( ×'Ñ'°QÔ7�D€A€qÜ'°!À!ÔD×HÑHÈÈAÓN€JÜ�J  1¨g¸aÈWÖUrf   c            	      ó  — g d¢} g d¢}t        j                  ddgddgddgddgdd	gd
dgg«      }t        j                  ddgddgddgddgddgddgg«      }t        | |¬«      }t        | |d¬«      }t        | |d¬«      }d||z  z
  }|t	        j
                  |«      k(  sJ ‚t        j                  g d¢«      }|d d j                  «       |j                  «       z  |d d …df<   |dd  j                  «       |j                  «       z  |d d …df<   t        | ||¬«      }t        | ||d¬«      }t        | ||d¬«      }d||z  z
  }|t	        j
                  |«      k(  sJ ‚t        j                  ddgddgddgddgddgddgg«      }t        | |«      }d|cxk  rdk  sJ ‚ J ‚t        ||«      }	|	t	        j
                  |«      k(  sJ ‚t        j                  ddgddgddgddgddgddgg«      }t        | |«      }|dk  sJ ‚t        ||«      }	|	t	        j
                  |«      k(  sJ ‚g d¢} t        j                  ddgddgddgddgddgddgg«      }t        | |«      }|dk(  sJ ‚t        ||«      }	|	dk(  sJ ‚g d¢} g d¢}t        j                  ddgddgddgddgg«      }t        | |«      }|dk(  sJ ‚t        ||«      }	|	dk(  sJ ‚g d¢}t        | ||¬«      }
|
dk(  sJ ‚g d¢} g d¢}t        j                  g d ¢g d ¢g d!¢g d"¢g«      }t        | |«      }d|cxk  rdk  sJ ‚ J ‚t        | ||¬«      }d|cxk  rdk  sJ ‚ J ‚t        j                  g d#¢g d$¢g d"¢g d%¢g«      }t        | |«      }|dk  sJ ‚t        | ||¬«      }|dk  sJ ‚y )&Nrd  rø  r£   rp   rì   rî   rú   r*  r+  rû  rü  r  F)rc   r  rQ  rF   )r=   rF   rC   r´   rC   rF   rC   r   ©rc   r  r:  )rc   r  r:  rQ  r¯   rë   r¿   rÔ   r~  )r   rF   rF   rF   )rù  rú  rú  rú  )r=   r=   r=   r=   rG  )Úhighri  ÚlowÚneutral)çffffffö?rú   r¯   rë   )r¯   rì   rì   rð   r   )rë   r£   rï   r  rý  )rK   r¤   r(   r   rÄ   rÅ   r[  )rc   Úy_true_stringr  Úy_proba_nullÚd2_scoreÚlog_likelihoodÚlog_likelihood_nullÚd2_score_truer:  Úd2_score_stringÚd2_score_with_sample_weights              rd   Útest_d2_log_loss_scoreru  ¨  s„  € Ú€FÚ;€MÜ�h‰hà�#ˆJØ�#ˆJØ�#ˆJØ�#ˆJØ�4ˆLØ�4ˆLð	
ó	€Gô —8‘8à�#ˆJØ�#ˆJØ�#ˆJØ�#ˆJØ�#ˆJØ�#ˆJð	
ó	€Lô !¨¸Ô@€HÜ V°WÈÔN€NÜ"¨&¸,ÐRWÔXÐØ˜Ð)<Ñ<Ñ<€MØ”v—}‘} ]Ó3Ò3Ð3Ð3ô —H‘HÒ/Ó0€MØ& r¨Ð*×.Ñ.Ó0°=×3DÑ3DÓ3FÑF€L’�A�ÑØ& q rÐ*×.Ñ.Ó0°=×3DÑ3DÓ3FÑF€L’�A�ÑÜ Ø˜w°mô€Hô ØØØ#Øô	€Nô #ØØØ#Øô	Ðð ˜Ð)<Ñ<Ñ<€MØ”v—}‘} ]Ó3Ò3Ð3Ð3ô �h‰hà�#ˆJØ�#ˆJØ�#ˆJØ�#ˆJØ�#ˆJØ�#ˆJð	
ó	€Gô ! ¨Ó1€HØ�Ô˜CÒÐÑÐÐä'¨°wÓ?€OØœfŸm™m¨HÓ5Ò5Ð5Ð5ô �h‰hà�#ˆJØ�#ˆJØ�#ˆJØ�#ˆJØ�4ˆLØ�#ˆJð	
ó	€Gô ! ¨Ó1€HØ�aŠ<Ðˆ<ä'¨°wÓ?€OØœfŸm™m¨HÓ5Ò5Ð5Ð5ò  €FÜ�h‰hà�#ˆJØ�#ˆJØ�#ˆJØ�#ˆJØ�#ˆJØ�#ˆJð	
ó	€Gô ! ¨Ó1€HØ�qŠ=Ðˆ=Ü'¨°wÓ?€OØ˜aÒÐÐò €FÚ/€MÜ�h‰h˜˜t˜ t¨T l°T¸4°LÀ4ÈÀ,ÐOÓP€GÜ  ¨Ó1€HØ�qŠ=Ðˆ=Ü'¨°wÓ?€OØ˜aÒÐÐÚ €MÜ"3Ø� }ô#Ðð '¨!Ò+Ð+Ð+ò 0€FÚ(€Mä�h‰hâÚÚÚð		
ó€Gô ! ¨Ó1€HØ�Ô˜CÒÐÑÐÐÜ  ¨ÀÔN€HØ�Ô˜CÒÐÑÐÐä�h‰hâÚÚÚð		
ó€Gô ! ¨Ó1€HØ�aŠ<Ðˆ<Ü  ¨ÀÔN€HØ�aŠ<Ð‰<rf   c                  óþ   — g d¢} g d¢}g d¢}t        j                  g d¢d«      }t        | |||¬«      }t        j                  g d¢d«      }t        | |||¬«      }d||z  z
  }t        | |||¬«      }t	        ||«       y	)
z¨Check that d2_log_loss_score works when not all labels are present in y_true

    non-regression test for https://github.com/scikit-learn/scikit-learn/issues/30713
    ©r=   r   r=   r   rš   )rl  rú   rê   rï   rÑ   ©r´   rF   )r:  ry   )rï   r   rê   rF   N)rK   Útiler   r(   r3   )	rc   ry   r:  r  Úlog_loss_obsrn  Úlog_loss_nullÚexpected_d2_scorero  s	            rd   Ú%test_d2_log_loss_score_missing_labelsr}  >  s‹   € ò
 €FÚ€FÚ(€MÜ�g‰g’i Ó(€Gä˜F G¸=ÐQWÔX€Lô —7‘7š=¨&Ó1€LÜØ�¨MÀ&ô€Mð ˜L¨=Ñ8Ñ8ÐÜ Ø� }¸Vô€Hô �HÐ/Õ0rf   c                  ó”   — g d¢} t        j                  g d¢d«      }t        | |g d¢¬«      }t        | |g d¢¬«      }t        ||«       y)zGCheck that d2_log_loss_score doesn't depend on the order of the labels.rw  rÑ   rx  rš   rà   r/  N)rK   ry  r(   r3   )rc   r  ro  Úd2_score_others       rd   Ú"test_d2_log_loss_score_label_orderr€  [  s=   € â€FÜ�g‰g’i Ó(€Gä  ¨ºÔC€HÜ& v¨wºyÔI€Nä�H˜nÕ-rf   c                  ó¦  — g d¢} ddgddgddgg}d}t        j                  t        |¬«      5  t        | |«       d	d	d	«       g d¢} ddgddgddgg}g d¢}d
}t        j                  t        |¬«      5  t        | ||¬«       d	d	d	«       g d¢} g d¢g d¢g}d}t        j                  t        |¬«      5  t        | |«       d	d	d	«       dg} ddgg}d}t        j                  t
        |¬«      5  t        | |«       d	d	d	«       g d¢} ddgddgddgg}d}t        j                  t        |¬«      5  t        | |«       d	d	d	«       g d¢} dg}ddgddgddgg}d}t        j                  t        |¬«      5  t        | ||¬«       d	d	d	«       y	# 1 sw Y   �ŒQx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   Œ‚xY w# 1 sw Y   y	xY w)zPTest that d2_log_loss_score raises the appropriate errors on
    invalid inputs.rš   rë   r¯   r£   rî   rú   z#contain different number of classesrò   Nz(number of classes in labels is differentrà   )r£   r£   r£   )rú   rï   rì   rF  rF   zscore is not well-definedrÒ   úy_true contains only one labelz.The labels array needs to contain at least two)rÄ   rØ   rÙ   r(   r  r   )rc   r  Úerrry   s       rd   Útest_d2_log_loss_score_raisesr„  f  sæ  € ò €FØ�Sˆz˜C ˜:¨¨S zÐ2€GØ
/€CÜ	�‰”z¨Ô	-ñ +Ü˜& 'Ô*÷+ò
 €FØ�Sˆz˜C ˜:¨¨S zÐ2€GÚ€FØ
4€CÜ	�‰”z¨Ô	-ñ :Ü˜& '°&Õ9÷:ò €FÚ¢Ð0€GØ
+€CÜ	�‰”z¨Ô	-ñ +Ü˜& 'Ô*÷+ð ˆS€FØ�Sˆzˆl€GØ
%€CÜ	�‰Ô,°CÔ	8ñ +Ü˜& 'Ô*÷+ò €FØ�Sˆz˜C ˜:¨¨S zÐ2€GØ
*€CÜ	�‰”z¨Ô	-ñ +Ü˜& 'Ô*÷+ò
 €FØˆS€FØ�Sˆz˜C ˜:¨¨S zÐ2€GØ
:€CÜ	�‰”z¨Ô	-ñ :Ü˜& '°&Õ9÷:ð :÷O+ñ +ú÷:ñ :ú÷+ð +ú÷+ð +ú÷+ð +ú÷:ð :úsG   ­F	Á2FÂ2F#Ã,F/Ä-F;Å1GÆ	FÆF Æ#F,Æ/F8Æ;GÇGc                  óÖ  — t        j                  g d¢«      } t        j                  ddgddgddgddgg«      }t        | |«       d}t        j                  t
        t        j                  |«      ¬	«      5  t        | |¬
«       ddd«       d}t        j                  t        t        j                  |«      ¬	«      5  t        | ||¬«       ddd«       y# 1 sw Y   ŒQxY w# 1 sw Y   yxY w)zHTest `y_pred` deprecation in favor of `y_proba` for `d2_log_loss_score`.ró  rì   rp   r¯   rë   r*  r+  r,  rò   r-  Nr.  r/  )
rK   r¤   r(   rÄ   r  r0  rQ  rR  rØ   rÙ   r1  s      rd   Ú)test_d2_log_loss_score_y_pred_deprecationr†  ˜  sÆ   € ä�X‰X’lÓ#€FÜ�h‰h˜˜c˜
 S¨# J°°c°
¸TÀ4¸LÐIÓJ€Gô �f˜gÔ&à
Q€CÜ	�‰”m¬2¯9©9°S«>Ô	:ñ 2Ü˜&¨Õ1÷2ð M€CÜ	�‰”z¬¯©°3«Ô	8ñ CÜ˜&¨¸'ÕB÷Cð C÷	2ð 2ú÷Cð Cúr3  c                  ó¶  — g d¢} g d¢}g d¢}g d¢}g d¢}t        ||¬«      }t        ||¬«      }t        ||¬«      }d||z  z
  }t        j                  |«      |k(  sJ ‚g d¢}t        ||¬«      }|dk(  sJ ‚t        ||d	¬
«      }|dk(  sJ ‚g d¢}t        ||| ¬«      }|dk(  sJ ‚t        ||| d	¬«      }|dk(  sJ ‚g d¢} g d¢}g d¢}g d¢g d¢g d¢g d¢g d¢g d¢g d¢g d¢g d¢g d¢g
}t        ||| ¬«      }|dk(  sJ ‚t        ||| ¬«      }|dk(  sJ ‚g d¢g d¢g d¢g d¢g d¢g d¢g d¢g d¢g d¢g d¢g
}t        ||| ¬«      }|dkD  sJ ‚t        ||| ¬«      }|dkD  sJ ‚y)zeTest that d2_brier_score gives expected outcomes in both the binary and
    multiclass settings.
    )r=   r=   rC   rF   rF   rF   )r   rF   rF   r   r   rF   )rù  rú  rú  rù  rù  rú  )rï   r£   rú   rê   rp   r¯   )r£   r£   r£   r£   r£   r£   r  rF   r   rú  )rc   r  rõ   )rú   rú   rú   rú   rú   rú   rh  )rc   r  r:  rõ   )
r=   rF   rC   rF   rF   r=   rF   r´   rF   r´   )
rC   rC   r=   r=   r=   rF   rF   rF   rF   r   )
Úddrˆ  Úccr‰  r‰  ÚbbrŠ  rŠ  rŠ  Úaa)rë   rî   r~  rí  )rì   rë   rë   r£   )rì   rë   r£   rë   )rë   r£   rë   rì   )r£   rë   rë   rì   r£   N)r'   r   rÄ   rÅ   )	r:  rc   rm  r  Úy_proba_refro  Úbrier_score_modelÚbrier_score_refÚd2_score_expecteds	            rd   Útest_d2_brier_scorer�  ©  sÓ  € ò
 '€MÚ€FÚ;€Mò -€GÚ0€KÜ V°WÔ=€HÜ(°ÀÔHÐÜ&¨f¸kÔJ€OØÐ-°Ñ?Ñ?ÐÜ�=‰=˜Ó"Ð&7Ò7Ð7Ð7ò -€GÜ V°WÔ=€HØ�qŠ=Ðˆ=Ü ]¸GÈuÔU€HØ�qŠ=Ðˆ=ò
 -€GÜØ˜w°mô€Hð �qŠ=Ðˆ=ÜØØØ#Øô	€Hð �qŠ=Ðˆ=ò 3€MÚ+€FÚP€Mò 	ÚÚÚÚÚÚÚÚÚð€Gô Ø˜w°mô€Hð �qŠ=Ðˆ=ÜØØØ#ô€Hð
 �qŠ=Ðˆ=ò
 	ÚÚÚÚÚÚÚÚÚð€Gô Ø˜w°mô€Hð �cŠ>Ðˆ>ÜØØØ#ô€Hð
 �cŠ>Ð‰>rf   c                  ó  — g d¢} g d¢}g d¢g d¢g d¢g d¢g}t        | ||¬«      }|dk(  sJ ‚g d¢}t        | ||¬«      }|t        j                  |«      k(  sJ ‚g d¢g d¢g d¢g d¢g}t        | ||¬«      }t        j                  |«      d	k(  sJ ‚y
)zGTest that d2_brier_score gives expected outcomes when labels are passed)r   r=   r   r=   rš   )r£   r   r£   )rc   r  ry   r   rè   r¢   rÑ   éýÿÿÿN)r'   rÄ   rÅ   )rc   ry   r  ro  Únew_d2_scoreÚneg_d2_scores         rd   Útest_d2_brier_score_with_labelsr•    s¥   € ò
 €FÚ€FâÚÚÚð	€Gô  V°WÀVÔL€HØ�qŠ=Ðˆ=ò €FÜ!¨¸ÈÔP€LØœ6Ÿ=™=¨Ó2Ò2Ð2Ð2ò 	ÚÚÚð	€Gô "¨¸ÈÔP€LÜ�=‰=˜Ó&¨"Ò,Ð,Ñ,rf   z!y_true, y_pred, labels, error_msg)rF   r=   rF   rC   rF  z7inferred from y_true is multiclass but should be binary)rú  rù  rú  rù  zpos_label is not specified)r   rF   r   r   rF   rF   r   z.variables with inconsistent numbers of samples)r   rF   r   rF   )gÍÌÌÌÌÌü?rú   rî   rë   z%y_prob contains values greater than 1)gš™™™™™é¿rú   rî   rë   z"y_prob contains values less than 0rÒ   r‚  rt  )r=   rC   rC   r=   )rï   rï   rë   rë   )rî   rì   rï   rë   z(Multioutput target data is not supportedræ   )r£   rï   rë   z"not belonging to the passed labelsrk  z*labels array needs to contain at least twoc                 óÔ   — t        j                  | «      } t        j                  |«      }t        j                  t        |¬«      5  t        | ||¬«       ddd«       y# 1 sw Y   yxY w)zMTest that d2_brier_score raises the appropriate errors
    on invalid inputs.rò   rà   N)rK   ÚasarrayrÄ   rØ   rÙ   r'   )rc   rb   ry   Ú	error_msgs       rd   Útest_d2_brier_score_raisesr™  ,  sP   € ô| �Z‰Z˜Ó€FÜ�Z‰Z˜Ó€FÜ	�‰”z¨Ô	3ñ 6Ü�v˜v¨fÕ5÷6÷ 6ñ 6ús   ÁAÁA'c                  óØ   — t        j                  dg«      } t        j                  dg«      }d}t        j                  t        |¬«      5  t        | |«       ddd«       y# 1 sw Y   yxY w)zQTest that d2_brier_score emits a warning when there are less than
    two samplesrF   r¯   z+not well-defined with less than two samplesrò   N)rK   r¤   rÄ   r  r   r'   )rc   rb   Úwarning_messages      rd   Ú4test_d2_brier_score_warning_on_less_than_two_samplesrœ  p  sU   € ô �X‰X�q�c‹]€FÜ�X‰X�s�e‹_€FØC€OÜ	�‰Ô,°OÔ	Dñ 'Ü�v˜vÔ&÷'÷ 'ñ 'ús   Á
A Á A)z(array_namespace, device_name, dtype_namec                 ór  — t        | ||«      \  }}|j                  g d¢|¬«      }|j                  g d¢|¬«      }|j                  g d¢|¬«      }t        d¬«      5  t        |||¬«      }t	        |«      d   t	        |«      d   k(  sJ ‚t        |«      t        |«      k(  sJ ‚	 ddd«       y# 1 sw Y   yxY w)	zœTest that `confusion_matrix` works for all array types when `labels` are passed
    such that the inner boolean `need_index_conversion` evaluates to `True`.rH  r-   )r´   r³   rÐ   T)Úarray_api_dispatchrà   r   N)r2   r—  r   r   r/   Úarray_api_device)	Úarray_namespaceÚdevice_nameÚ
dtype_nameÚxpr.   rc   rb   ry   r£  s	            rd   Útest_confusion_matrix_array_apir¤  z  s¶   € ô & o°{ÀJÓO�J€Bˆà�Z‰Zš	¨&ˆZÓ1€FØ�Z‰Zš	¨&ˆZÓ1€FØ�Z‰Zš	¨&ˆZÓ1€Fä	¨4Ô	0ñ DÜ! &¨&¸Ô@ˆÜ˜VÓ$ QÑ'¬=¸Ó+@ÀÑ+CÒCÐCÐCÜ Ó'Ô+;¸FÓ+CÒCÐCÑC÷D÷ Dñ Dús   ÁAB-Â-B6)NF)ÒrQ  r“   Ú	functoolsr   Ú	itertoolsr   r   r   ÚnumpyrK   rÄ   Úscipyr   r   Úscipy.spatial.distancer	   rJ  Úscipy.statsr
   Úsklearnr   r   Úsklearn.baser   Úsklearn.calibrationr   Úsklearn.datasetsr   Úsklearn.exceptionsr   Úsklearn.metricsr   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r    r!   r"   r#   r$   r%   Úsklearn.metrics._classificationr&   r'   r(   Úsklearn.model_selectionr)   Úsklearn.preprocessingr*   r+   Úsklearn.treer,   Úsklearn.utils._array_apir.   rŸ  r/   r0   Úsklearn.utils._mockingr1   Úsklearn.utils._testingr2   r3   r4   r5   r6   r7   Úsklearn.utils.extmathr8   Úsklearn.utils.fixesr9   r:   Úsklearn.utils.validationr;   re   r†   ÚmarkÚparametrizerr  r™   rž   rª   r½   r•   rÇ   rÞ   rä   rø   r¤   rþ   r   r  r  r#  r2  rD  rJ  rX  r_  rb  ri  rm  ru  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.  r5  r8  r;  r@  rB  rD  rF  rL  rV  rY  rg  ri  rm  rp  ry  r  rˆ  r�  r�  r’  r”  rœ  rž  r¡  r£  r¥  r­  rÅ  rÇ  rÉ  Ú
csr_matrixrÐ  rÔ  ræ  ré  rì  rñ  ró  rö  r  r  r  Úfloat16r  r  r  r   r'  r2  rA  rD  rG  rI  rK  rS  r\  r^  Úthread_unsaferf  ru  r}  r€  r„  r†  r�  r•  r™  rœ  r¤  rÆ   rf   rd   ú<module>rÀ     s¬  ðÛ 	Û Ý ß 2Ñ 2ã Û ß  Ý 8Ý !ç !Ý 'Ý 6Ý ;Ý 5÷÷ ÷ ÷ ÷ õ ÷.ñ õ
 4ß @Ý /õ÷õ 1÷÷ õ .ß >Ý 7ô+(òd>DðB ‡�×Ñ˜¨6°1°a¸¿¹Ð*@ÓAñó Bðð& ‡�×ÑØ   T˜{¨a°¨V°U¨OºiÈÐ=OÐPóñ)óð)ò(7òðD ‡�×ÑÐPÓQñó Rðð$ ‡�×ÑÐPÓQñ*Jó Rð*JðZ ‡�×ÑÐPÓQñMó RðMò,>ð6 ‡�×ÑØò ØˆB�H‰Hâ#Ú#Ú#Ú#ð	óð
	
ò .Ú=ð	
ðóñ(9ó)ð(9ð ‡�×ÑØò ØˆB�H‰Hâ#Ú#Ú#Ú#Ú#ðóð	
ò Úð	
ðóñ*;ó+ð*;ò
ò =ò*	=ò OðF ‡�×Ñ˜¨.Ó9Ø‡�×Ñ˜¨.Ó9ñ%Só :ó :ð%SòPTð< ‡�×ÑØ+òóñ%óð%ò;ò&)ð ‡�×ÑØð
 #˜"Ÿ(™(Ò#5Ó6Ø"˜"Ÿ(™(Ò#5Ó6ñð Nð	
ð #˜"Ÿ(™(Ò#5Ó6Ø"˜"Ÿ(™(Ò#5Ó6ñð
Bð		
ð #˜"Ÿ(™(Ò#5Ó6Ø"˜"Ÿ(™(Ò#5Ó6ñð Nð	
ð #˜"Ÿ(™(Ò#5Ó6Ø"˜"Ÿ(™(Ò#5Ó6ñð Hð	
ð;$ó'ñP*óQ'ðP*ð ‡�×ÑØð #˜"Ÿ(™(¢?Ó3Ø"˜"Ÿ(™(¢?Ó3ñð
<ð		
ðóñ*óð*ò"ò2;ð0 ‡�×ÑØà	�ˆØ	�ˆØ˜SÑ!Ø˜EÑ"Ø˜CÑ Ø˜CÑ ðó
ñ

ó
ð

ð ‡�×ÑØ$à˜SÑ	! 3Ð'Ø—‘ Ñ	$ b§f¡fÐ-Ø˜SÑ	! 3Ð'Ø—‘ §¡Ñ	'¨¯©Ð0Ø	�‰�—‘Ððó	ñDó	ðDð$ ‡�×ÑØ$à˜SÑ	! 3Ð'Ø—‘ Ñ	$ cÐ*Ø—‘ Ñ	$ cÐ*Ø—‘ §¡Ñ	'¨¯©Ð0Ø	�‰�—‘Ððó	ñDó	ðDò$ñ> Ð0Ô1Ø‡�×ÑØð
 ˆˆq‰�A�3˜‘7Ñ	˜Q˜C "™H q¨! f¨dÐ3à
ˆˆr‰�A�3˜‘8˜T 4Ð(à
ˆˆq‰�A�3˜‘7Ñ	˜Q˜C !™G q c¨A¡gÑ-°°1¨v°tÐ<ð ˆˆq‰�A�3˜‘7Ñ	˜Q˜C !™G q c¨A¡gÑ-°°1¨v°xÐ@ðóð" ‡�×ÑÐ/°#°r·v±v°Ó?ñAó @ó#ó 2ð&Aò(1ò.1ð ‡�×Ñ˜¨1¨a°·±¨.Ó9Ø‡�×ÑÐ)¨a¨S°1°#¨J¨<Ó8Ø‡�×ÑØàÙ� !Ô$ØØð	óñ'óó 9ó :ð'ð ‡�×ÑÐ)¨a¨S°1°#¨J¨<Ó8Ø‡�×ÑØàÙ� !Ô$ØØð	óñóó 9ðòò$2òN RòF5ðp ‡�×Ñ˜ c¨5 \Ó2ñUó 3ðUòB7(ðt ‡�×Ñ˜Ò$SÓTñ,ó Uð,ò0ò"(ò".ð& ‡�×ÑØà	Ð:Ð;Ø
ˆQˆÐAÐBðð 
Ð'Ð(ð ó ñ8óð8òð6 ‡�×Ñ˜Ò"AÓBñ0ó Cð0ò"%ò4%ò$%ò(%ò6 %òF%ò,%ò.XòIð ‡�×ÑÐPÓQñ%ó Rð%ò<6òBò(%DòPJòZ"òJò.+ð ‡�×ÑÐ8¸6À8Ð:LÓMñ	2ó Nð	2ð ‡�×ÑÐPÓQñ?Uó Rð?UðD ‡�×ÑÐPÓQñ=ó Rð=ð@ ‡�×ÑÐPÓQØ‡�×ÑØ+Ø�&˜& 2§6¡6¨2¯6©6Ð"2Ð3óñ[ó	ó Rð
[ð| ‡�×Ñ˜ ! Ó%Ø‡�×Ñ˜Ò$MÓNØ‡�×Ñ˜¨1¨a°·±¨.Ó9ñ"5ó :ó Oó &ð"5ðJ ‡�×Ñ˜Ò$MÓNñ"ó Oð"ð& ‡�×Ñ˜¨1¨a°·±¨.Ó9ñ Wó :ð WòF3ò8e0ðP ‡�×Ñ˜¨1¨a°·±¨.Ó9ñ: ó :ð: ðz ‡�×Ñ˜¨6°1°a¸¿¹Ð*@ÓAñ$ó Bð$ðN ‡�×Ñ˜¨6°1°a¸¿¹Ð*@ÓAñ$
ó Bð$
ðN ‡�×Ñ˜¨6°1°a¸¿¹Ð*@ÓAñ#(ó Bð#(òL'ò>^òB3ò=ð ‡�×ÑØà	ˆ×	Ò	˜Q˜C !  q c¨A¨3Ð/Ó	0°(Ð;Ø	ˆ×	Ò	˜Q˜C !  q c¨A¨3Ð/Ó	0°,Ð?Ø	ˆ×	Ò	šI¢y²)Ð<Ó	=¸|ÐLðóñ*óð*ò 8òAò6*ò"Nò8Pò4ò@Aò8I(ðX ‡�×Ñ˜ 2§:¢:¨r¯zªz¸2¿:º:Ð"FÓGñ
ó Hð
ð ‡�×Ñ˜ 2§:¢:¨r¯zªz¸2¿:º:Ð"FÓGñ"ó Hð"ð ‡�×ÑØâ	’IÐÚ	�a˜�V˜a ˜V a¨ VÐ,Ð-Ú	’Y¢	ª9Ð5Ð6ðóñ9óð9ò)ò$
ò :ò"$òN òFIXòX
ò&6ð ‡�×ÑØâ	Ò3Ð4Ú	Ò3Ð4Ú	Ò3Ð4ðóñ
:óð
:ð ‡�×ÑØàØÙ� #Ô&Ø'ØØØðóð ‡�×ÑØÒCóñ(óóð(ð$ ‡�×ÑØ$à	ˆ�‰�1�a�&Ó	˜8˜2Ÿ8™8 Q¨ FÓ+¨SÐ1Ø	ˆ�‰�1�a�&Ó	˜8˜2Ÿ8™8 Q¨ FÓ+¨SÐ1Ø	ˆ�‰�1�a�&Ó	˜8˜2Ÿ8™8 Q¨ FÓ+¨SÐ1Ø	ˆ�‰�1�a�&Ó	˜8˜2Ÿ8™8 Q¨ FÓ+¨SÐ1ð	óñXóðXð ‡�×ÒØ‡�×ÑØá�H¨B¯F©FÔ3Ù�K a°r·v±vÔ>Ù�O°2·6±6Ô:Ù�L°·±Ô7ð	óñVóó ðVòSòl1ò:.ò.:òdCò"`òF-ð@ ‡�×ÑØ'ò Ú ØØEð		
ò 'Ú ØØ(ð		
ò "Ú ØØ<ð		
ò Ú ØØ3ð		
ò Ú!ØØ0ð		
ò Ø�3ˆZ˜#˜s˜ c¨3 ZÐ0ØØ,ð		
ò š<Ð(Ú!Ò#7Ð8ØÙ6ð		
ó Û›o«Ð?Ø�ˆFÙ0ð		
ó Û›o«Ð?ØˆCÙ8ð		
ðc7ó:òv6ów:ðv6ó'ð ‡�×ÑÙ.Ù-Ó/óòDó	ñDrf   