§
    ¥˜ºh‘A ã                   óp  — d dl Z d dlZd dlZd dlZd dlmZ d dlmZ d dl	m
Z
mZ 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 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*m+Z+m,Z,m-Z- d dl.m/Z/ d dl0m1Z1m2Z2m3Z3 eeegZ4dâd„Z5d„ Z6d„ Z7d„ Z8d„ Z9ej:         ;                    dddg¦  «        d„ ¦   «         Z<d„ Z=d„ Z>d„ Z?d„ Z@d„ ZAd„ ZBd„ ZCd „ ZDd!„ ZEd"„ ZFd#„ ZGej:         ;                    d$ ejH        g d%¢¦  «        g d&¢f ejH        g d%¢¦  «        dfg d'¢g d(¢fg d'¢dfg¦  «        d)„ ¦   «         ZIej:         ;                    d$ ejH        g d*¢¦  «        g d&¢f ejH        g d+¢¦  «        g d,¢fg¦  «        d-„ ¦   «         ZJej:         ;                    d$ ejH        g d.¢¦  «        dfg d/¢dfg d.¢g d&¢fg d/¢g d(¢fg¦  «        d0„ ¦   «         ZKej:         ;                    d1g d2¢¦  «        d3„ ¦   «         ZLd4„ ZMej:         ;                    d5d6 ejH        g d.¢¦  «        g d7¢fd6 ejH        g d/¢¦  «        g d8¢fd9 ejH        g d*¢¦  «        dfd: ejH        g d/¢¦  «        g d;¢fd< ejH        g d.¢¦  «        d d=gfd< ejH        g d/¢¦  «        d>d?gfd@ ejH        g d.¢¦  «        g dA¢fd@ ejH        g d/¢¦  «        g dB¢fdC ejH        g dD¢¦  «        g d(¢fdC ejH        g dB¢¦  «        g d(¢fdC ejH        g dA¢¦  «        g d&¢fg¦  «        ej:         ;                    dEdFdGg¦  «        dH„ ¦   «         ¦   «         ZNej:         ;                    dIdJdKdFdLœfdMdKdGdLœfdNdFg dOœfdPdFdQdRœfdSi fg¦  «        dT„ ¦   «         ZOdU„ ZPej:         ;                    dVe4¦  «        dW„ ¦   «         ZQej:         ;                    dVe4¦  «        dX„ ¦   «         ZRej:         ;                    dVe4¦  «        dY„ ¦   «         ZSej:         ;                    dddg¦  «        dZ„ ¦   «         ZTd[„ ZUej:         ;                    dddg¦  «        d\„ ¦   «         ZVd]„ ZWd^„ ZXd_„ ZYd`„ ZZda„ Z[db„ Z\ej:         ;                    dcg dd¢g de¢d gd gfg dd¢g df¢d gd gfg dd¢g dg¢d gd gfg dd¢g dh¢d gd gfg di¢g de¢dQgd gfg di¢g df¢dQgd gfg di¢g dg¢dQgd gfg di¢g dh¢dQgd gfg dj¢g de¢dkgd gfg dj¢g df¢d gd gfg dj¢g dg¢d gd gfg dj¢g dh¢d gd gfg dl¢g de¢g dm¢g dj¢fg dl¢g df¢g dm¢g dj¢fg dl¢g dg¢g dm¢g dj¢fg dl¢g dh¢g dm¢g dj¢fg dn¢g de¢g do¢g dp¢fg dn¢g df¢g do¢g dp¢fg dn¢g dg¢g do¢g dp¢fg dn¢g dh¢g do¢g dp¢fg¦  «        dq„ ¦   «         Z]ej:         ;                    dcd=d gdQdQgd=gd gfd d=gdQdQgd=gd gfg dd¢g dr¢dQgd gfg di¢g dr¢dQgd gfg dj¢g dr¢d gd gfg dl¢g dr¢d=gd gfg dn¢g dr¢d=gd gfg do¢g dr¢d=gd gfg¦  «        ds„ ¦   «         Z^dt„ Z_ej:         ;                    dug dv¢¦  «        dw„ ¦   «         Z`ej:         ;                    dxg dy¢g dz¢g d{¢g d|¢g d}¢g¦  «        d~„ ¦   «         Zaej:         ;                    dd d=gg de¢d€fg dj¢d dQgd€fg d�¢g de¢d‚fg dƒ¢g de¢d‚fg d„¢g d…¢d†fg¦  «        d‡„ ¦   «         Zbdˆ„ Zcd‰„ ZddŠ„ Zed‹„ ZfdŒ„ Zgd�„ ZhdŽ„ Zi	 dãd‘„Zjej:         ;                    d’edehegeef¦  «        ej:         ;                    d“eeif¦  «        d”„ ¦   «         ¦   «         Zkd•„ Zlej:         ;                    d–d—¦  «        ej:         ;                    d˜d™¦  «        ej:         ;                    dš emd=¦  «        ¦  «        d›„ ¦   «         ¦   «         ¦   «         Zndœ„ Zod�„ Zpdž„ Zqej:         ;                    dŸg dn¢g dr¢fg dn¢g dr¢gfg dn¢gg dr¢fg¦  «        d „ ¦   «         Zrd¡„ Zsd¢„ Ztd£„ Zud¤„ Zvd¥„ Zwd¦„ Zxd§„ Zyd¨„ Zzd©„ Z{ej:         ;                    dªddg¦  «        d«„ ¦   «         Z|d¬„ Z}d­„ Z~d®„ Zd¯„ Z€ej:         ;                    d°g dA¢d=d±fg dA¢d²dQfg dA¢d³d´fg¦  «        dµ„ ¦   «         Z�ej:         ;                    d¶ ejH        g d·¢¦  «        d=d=f ejH        g d¸¢¦  «        d=dQf ejH        g d¸¢¦  «        d²d=f ejH        g d¹¢¦  «        d=d=f ejH        g dº¢¦  «        d=dQf ejH        g dº¢¦  «        d²d=fg¦  «        d»„ ¦   «         Z‚ej:         ;                    d¼ ejH        g d½¢¦  «        d´g dA¢f ejH        g d¾¢¦  «        dQg dA¢f ejH        g d¿¢¦  «        dQg dA¢f ejH        g dÀ¢¦  «        d´g dÁ¢fg¦  «        ej:         ;                    dÂddg¦  «        dÃ„ ¦   «         ¦   «         ZƒdÄ„ Z„ej:         ;                    d°g dA¢d=d±fg dA¢d²dQfg dA¢d³d=fg¦  «        dÅ„ ¦   «         Z…ej:         ;                    dÆg dA¢dÇfg dA¢d�fg¦  «        dÈ„ ¦   «         Z†ej:         ;                    dÉg dÊ¢g dË¢g dÌ¢g dÍ¢g dÎ¢gddÏfg dA¢g dË¢g dÌ¢g dÍ¢g dÎ¢gddÐfg dÑ¢g dË¢g dÌ¢g dÍ¢g dÎ¢gg d/¢dÒfg dÑ¢g dË¢g dÌ¢g dÍ¢g dÎ¢gg d;¢dÓfg dÔ¢g dË¢g dÌ¢g dÍ¢g dÎ¢gg dA¢dÕfg dÔ¢g dË¢g dÌ¢g dÍ¢g dÎ¢gg dÖ¢d×fd d=gg dØ¢g dÙ¢gddÚfg¦  «        dÛ„ ¦   «         Z‡dÜ„ Zˆej:         ;                    dÝeeeeg¦  «        ej:         ;                    dÞg dß¢¦  «        dà„ ¦   «         ¦   «         Z‰dá„ ZŠdS )äé    N)Ústats)Ú
csr_matrix)ÚdatasetsÚsvm)Úmake_multilabel_classification)ÚUndefinedMetricWarning)ÚLogisticRegression)Úaccuracy_scoreÚaucÚaverage_precision_scoreÚcoverage_errorÚ	dcg_scoreÚ	det_curveÚ%label_ranking_average_precision_scoreÚlabel_ranking_lossÚ
ndcg_scoreÚprecision_recall_curveÚroc_auc_scoreÚ	roc_curveÚtop_k_accuracy_score)Ú_dcg_sample_scoresÚ_ndcg_sample_scores)Útrain_test_split)Úlabel_binarize)Ú_sparse_random_matrix)Úassert_allcloseÚassert_almost_equalÚassert_array_almost_equalÚassert_array_equal)Úsoftmax)Úcheck_arrayÚcheck_consistent_lengthÚcheck_random_stateFc                 óü  — | €t          j        ¦   «         } | j        }| j        }|r||dk              ||dk              }}|j        \  }}t          j        |¦  «        }t          d¦  «        }|                     |¦  «         ||         ||         }}t          |dz  ¦  «        }t
          j
                             d¦  «        }t
          j        ||                     |d|z  ¦  «        f         }t          j        ddd¬¦  «        }	|	                     |d|…         |d|…         ¦  «                             ||d…         ¦  «        }
|r|
dd…d	f         }
|	                     ||d…         ¦  «        }||d…         }|||
fS )
z¼Make some classification predictions on a toy dataset using a SVC

    If binary is True restrict to a binary classification problem instead of a
    multiclass classification problem
    Né   é%   r   éÈ   ÚlinearT)ÚkernelÚprobabilityÚrandom_stateé   )r   Ú	load_irisÚdataÚtargetÚshapeÚnpÚaranger#   ÚshuffleÚintÚrandomÚRandomStateÚc_Úrandnr   ÚSVCÚfitÚpredict_probaÚpredict)ÚdatasetÚbinaryÚXÚyÚ	n_samplesÚ
n_featuresÚpÚrngÚhalfÚclfÚy_scoreÚy_predÚy_trues                új/var/www/html/services/rag-service/venv/lib/python3.11/site-packages/sklearn/metrics/tests/test_ranking.pyÚmake_predictionrK   7   sy  € ð €åÔ$Ñ&Ô&ˆàŒ€AØŒ€Aàð "à��Q’Œx˜˜1˜qš5œˆ1ˆàœGÑ€IˆzÝ
Œ	�)ÑÔ€Aå
˜RÑ
 Ô
 €CØ‡K‚K��N„N€NØˆQŒ4��1”€q€AÝˆy˜1‰}ÑÔ€Dõ Œ)×
Ò
 Ñ
"Ô
"€CÝ
Œˆa�—’˜9 c¨JÑ&6Ñ7Ô7Ð7Ô8€Aõ Œ'˜¨tÀ!Ð
DÑ
DÔ
D€CØ�gŠg�a˜˜˜”h  % 4 %¤Ñ)Ô)×7Ò7¸¸$¸%¸%¼ÑAÔA€Gàð  ð ˜!˜!˜!˜Q˜$”-ˆà�[Š[˜˜4˜5˜5œÑ"Ô"€FØˆtˆuˆuŒX€FØ�6˜7Ð"Ð"ó    c                 óN  — t          j        | ¦  «        d         }|| |k             }|| |k             }|                     dd¦  «        |                     dd¦  «        z
  }t          j        |dk    ¦  «        }|t	          t          |¦  «        t          |¦  «        z  ¦  «        z  S )zKAlternative implementation to check for correctness of
    `roc_auc_score`.r,   éÿÿÿÿr   )r1   ÚuniqueÚreshapeÚsumÚfloatÚlen)rI   rG   Ú	pos_labelÚposÚnegÚdiff_matrixÚ	n_corrects          rJ   Ú_aucrY   g   s•   € õ ”	˜&Ñ!Ô! !Ô$€Ið �&˜IÒ%Ô
&€CØ
�&˜IÒ%Ô
&€CØ—+’+˜a Ñ$Ô$ s§{¢{°2°qÑ'9Ô'9Ñ9€KÝ”�{ Q’Ñ'Ô'€Ià•u�S ™XœX­¨C©¬Ñ0Ñ1Ô1Ñ1Ð1rL   c                 ó�  — t          j        | ¦  «        d         }t          j        | |k    ¦  «        }t          j        |¦  «        ddd…         }||         }| |         } d}t	          t          |¦  «        ¦  «        D ]D}| |         |k    r6d}t	          d|dz   ¦  «        D ]}| |         |k    r|dz  }Œ||dz   z  }||z  }ŒE||z  S )a>  Alternative implementation to check for correctness of
    `average_precision_score`.

    Note that this implementation fails on some edge cases.
    For example, for constant predictions e.g. [0.5, 0.5, 0.5],
    y_true = [1, 0, 0] returns an average precision of 0.33...
    but y_true = [0, 0, 1] returns 1.0.
    r,   NrN   r   ç      ð?)r1   rO   rQ   ÚargsortÚrangerS   )	rI   rG   rT   Ún_posÚorderÚscoreÚiÚprecÚjs	            rJ   Ú_average_precisionrd   v   så   € õ ”	˜&Ñ!Ô! !Ô$€IÝŒF�6˜YÒ&Ñ'Ô'€EÝŒJ�wÑÔ   " Ô%€EØ�eŒn€GØ�EŒ]€Fà€EÝ•3�w‘<”<Ñ Ô ð 	ð 	ˆØ�!Œ9˜	Ò!Ð!ð ˆDÝ˜1˜a !™e‘_”_ð  ð  �Ø˜!”9 	Ò)Ð)Ø˜C‘K�DøØ�A˜‘G‰OˆDØ�T‰MˆEøà�5‰=ÐrL   c                 ó"  — t          | |¦  «        \  }}}t          t          |¦  «        ¦  «        }t          t          |¦  «        ¦  «        }d}t          dt	          |¦  «        ¦  «        D ]"}|||         ||         ||dz
           z
  z  z  }Œ#|S )ao  A second alternative implementation of average precision that closely
    follows the Wikipedia article's definition (see References). This should
    give identical results as `average_precision_score` for all inputs.

    References
    ----------
    .. [1] `Wikipedia entry for the Average precision
       <https://en.wikipedia.org/wiki/Average_precision>`_
    r   r,   )r   ÚlistÚreversedr]   rS   )rI   rG   Ú	precisionÚrecallÚ	thresholdÚaverage_precisionra   s          rJ   Ú_average_precision_slowrl   ”   s™   € õ $:¸&À'Ñ#JÔ#JÑ €Iˆv�yÝ•X˜iÑ(Ô(Ñ)Ô)€IÝ•(˜6Ñ"Ô"Ñ#Ô#€FØÐÝ�1•c˜)‘n”nÑ%Ô%ð Hð HˆØ˜Y qœ\¨V°A¬Y¸ÀÀAÁ¼Ñ-FÑGÑGÐÐØÐrL   c                 ó˜   — d„ } || ||¦  «        \  }}t          ||¦  «        }d}|}d||z
  z  ||z   z  }	||z
  }
dd||	z
  |
|	z
  z  z   z  S )zcAlternative implementation to check for correctness of `roc_auc_score`
    with `max_fpr` set.
    c                 óX  — t          | |¦  «        \  }}}|||k             }t          j        ||¦  «        }|||k             }t          j        ||k    ¦  «        }|dz
  }	||	         ||         g}
||	         ||         g}t          j        |t          j        ||
|¦  «        ¦  «        }||fS )Nr,   )r   r1   ÚappendÚargmaxÚinterp)rI   Ú	y_predictÚmax_fprÚfprÚtprÚ_Únew_fprÚnew_tprÚidx_outÚidx_inÚx_interpÚy_interps               rJ   Ú_partial_rocz,_partial_roc_auc_score.<locals>._partial_roc¬   s®   € Ý ¨	Ñ2Ô2‰ˆˆS�!Ø�c˜W’nÔ%ˆÝ”)˜G WÑ-Ô-ˆØ�c˜W’nÔ%ˆÝ”)˜C 'šMÑ*Ô*ˆØ˜1‘ˆØ˜”K  W¤Ð.ˆØ˜”K  W¤Ð.ˆÝ”)˜G¥R¤Y¨w¸À(Ñ%KÔ%KÑLÔLˆØ˜Ð!Ð!rL   r   ç      à?r,   )r   )rI   rr   rs   r}   rw   rx   Úpartial_aucÚfpr1Úfpr2Úmin_areaÚmax_areas              rJ   Ú_partial_roc_auc_scorer„   §   s…   € ð

"ð 
"ð 
"ð $�| F¨I°wÑ?Ô?Ñ€GˆWÝ�g˜wÑ'Ô'€Kð €DØ€DØ�d˜T‘kÑ" d¨T¡kÑ2€HØ�d‰{€HØ�!�{ XÑ-°(¸XÑ2EÑFÑFÑGÐGrL   ÚdropTc                 óB  — t          d¬¦  «        \  }}}t          ||¦  «        }t          ||| ¬¦  «        \  }}}t          ||¦  «        }t	          ||d¬¦  «         t          |t          ||¦  «        ¦  «         |j        |j        k    sJ ‚|j        |j        k    sJ ‚d S )NT©r>   ©Údrop_intermediater%   ©Údecimal)rK   rY   r   r   r   r   r   r0   )	r…   rI   rv   rG   Úexpected_aucrt   ru   Ú
thresholdsÚroc_aucs	            rJ   Útest_roc_curver�   Ã   s²   € õ )°Ð5Ñ5Ô5Ñ€FˆAˆwÝ˜ Ñ(Ô(€Lå$ V¨WÈÐMÑMÔMÑ€CˆˆjÝ�#�s‰mŒm€GÝ˜g |¸QÐ?Ñ?Ô?Ð?Ý˜¥¨v°wÑ!?Ô!?Ñ@Ô@Ð@ØŒ9˜œ	Ò!Ð!Ð!Ð!ØŒ9˜
Ô(Ò(Ð(Ð(Ð(Ð(Ð(rL   c                  ó\  — t           j                             d¦  «        } t          j        dgdz  dgdz  z   ¦  «        }|                      dd¬¦  «        }t          ||d¬¦  «        \  }}}|d         dk    sJ ‚|d	         dk    sJ ‚|j        |j        k    sJ ‚|j        |j        k    sJ ‚d S )
Nr   é2   r,   é   éd   ©ÚsizeTrˆ   rN   )r1   r5   r6   ÚarrayÚrandintr   r0   )rD   rI   rH   rt   ru   Úthrs         rJ   Útest_roc_curve_end_pointsr™   Ñ   sº   € õ Œ)×
Ò
 Ñ
"Ô
"€CÝŒX�q�c˜B‘h !  r¡Ñ)Ñ*Ô*€FØ�[Š[˜ ˆ[Ñ%Ô%€FÝ˜f fÀÐEÑEÔE�M€CˆˆcØˆqŒ6�QŠ;ˆ;ˆ;ˆ;ØˆrŒ7�aŠ<ˆ<ˆ<ˆ<ØŒ9˜œ	Ò!Ð!Ð!Ð!ØŒ9˜œ	Ò!Ð!Ð!Ð!Ð!Ð!rL   c                  ód  — t          d¬¦  «        \  } }}t          | |¦  «        \  }}}g }|D ]L}t          j        ||k    | z  ¦  «        }t          j        | ¦  «        }	|                     d|z  |	z  ¦  «         ŒMt          ||d¬¦  «         |j        |j        k    sJ ‚|j        |j        k    sJ ‚d S )NTr‡   r[   r%   rŠ   )rK   r   r1   rQ   ro   r   r0   )
rI   rv   rG   rt   ru   r�   Útpr_correctÚtÚtprC   s
             rJ   Útest_roc_returns_consistencyrž   Þ   sÓ   € õ )°Ð5Ñ5Ô5Ñ€FˆAˆwÝ$ V¨WÑ5Ô5Ñ€Cˆˆjð €KØð )ð )ˆÝŒV�W ’\ VÑ+Ñ,Ô,ˆÝŒF�6‰NŒNˆØ×Ò˜3 ™8 a™<Ñ(Ô(Ð(Ð(õ ˜c ;¸Ð:Ñ:Ô:Ð:ØŒ9˜œ	Ò!Ð!Ð!Ð!ØŒ9˜
Ô(Ò(Ð(Ð(Ð(Ð(Ð(rL   c                  ó²   — t          d¬¦  «        \  } }}t          j        t          ¦  «        5  t	          | |¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )NFr‡   )rK   ÚpytestÚraisesÚ
ValueErrorr   )rI   rv   rG   s      rJ   Útest_roc_curve_multir£   ñ   s�   € å(°Ð6Ñ6Ô6Ñ€FˆAˆwå	Œ•zÑ	"Ô	"ð #ð #Ý�&˜'Ñ"Ô"Ð"ð#ð #ð #ñ #ô #ð #ð #ð #ð #ð #ð #ð #øøøð #ð #ð #ð #ð #ð #s   ®AÁAÁAc                  óè   — t          d¬¦  «        \  } }}t          | |dz
  ¦  «        \  }}}t          ||¦  «        }t          |dd¬¦  «         |j        |j        k    sJ ‚|j        |j        k    sJ ‚d S )NTr‡   r~   çÍÌÌÌÌÌì?r%   rŠ   )rK   r   r   r   r0   )rI   rv   rG   rt   ru   r�   rŽ   s          rJ   Útest_roc_curve_confidencer¦   ù   s†   € å(°Ð5Ñ5Ô5Ñ€FˆAˆwå$ V¨W°s©]Ñ;Ô;Ñ€CˆˆjÝ�#�s‰mŒm€GÝ˜g t°QÐ7Ñ7Ô7Ð7ØŒ9˜œ	Ò!Ð!Ð!Ð!ØŒ9˜
Ô(Ò(Ð(Ð(Ð(Ð(Ð(rL   c                  ó®  — t          d¬¦  «        \  } }}t          j        | j        ¦  «        }t	          | |¦  «        \  }}}t          ||¦  «        }t          |dd¬¦  «         |j        |j        k    sJ ‚|j        |j        k    sJ ‚t          j        | j        ¦  «        }t	          | |¦  «        \  }}}t          ||¦  «        }t          |dd¬¦  «         |j        |j        k    sJ ‚|j        |j        k    sJ ‚t	          | |¦  «        \  }}}t          ||¦  «        }t          |dd¬¦  «         |j        |j        k    sJ ‚|j        |j        k    sJ ‚d S )NTr‡   r~   r%   rŠ   gö(\�Âõè?)rK   r1   Úonesr0   r   r   r   Úzeros)rI   ÚpredrG   Útrivial_predrt   ru   r�   rŽ   s           rJ   Útest_roc_curve_hardr¬     sp  € å+°4Ð8Ñ8Ô8Ñ€FˆD�'õ ”7˜6œ<Ñ(Ô(€LÝ$ V¨\Ñ:Ô:Ñ€CˆˆjÝ�#�s‰mŒm€GÝ˜g t°QÐ7Ñ7Ô7Ð7ØŒ9˜œ	Ò!Ð!Ð!Ð!ØŒ9˜
Ô(Ò(Ð(Ð(Ð(õ ”8˜FœLÑ)Ô)€LÝ$ V¨\Ñ:Ô:Ñ€CˆˆjÝ�#�s‰mŒm€GÝ˜g t°QÐ7Ñ7Ô7Ð7ØŒ9˜œ	Ò!Ð!Ð!Ð!ØŒ9˜
Ô(Ò(Ð(Ð(Ð(õ % V¨TÑ2Ô2Ñ€CˆˆjÝ�#�s‰mŒm€GÝ˜g t°QÐ7Ñ7Ô7Ð7ØŒ9˜œ	Ò!Ð!Ð!Ð!ØŒ9˜
Ô(Ò(Ð(Ð(Ð(Ð(Ð(rL   c                  óÆ  — g d¢} g d¢}d}t          j        t          |¬¦  «        5  t          | |¦  «        \  }}}d d d ¦  «         n# 1 swxY w Y   t	          |t          j        t          |¦  «        t
          j        ¦  «        ¦  «         |j	        |j	        k    sJ ‚|j	        |j	        k    sJ ‚d}t          j        t          |¬¦  «        5  t          d„ | D ¦   «         |¦  «        \  }}}d d d ¦  «         n# 1 swxY w Y   t	          |t          j        t          |¦  «        t
          j        ¦  «        ¦  «         |j	        |j	        k    sJ ‚|j	        |j	        k    sJ ‚d S )N)
r,   r,   r,   r,   r,   r,   r,   r,   r,   r,   )
r   r,   r   r,   r   r,   r   r,   r   r,   úINo negative samples in y_true, false positive value should be meaningless©ÚmatchúHNo positive samples in y_true, true positive value should be meaninglessc                 ó   — g | ]}d |z
  ‘ŒS )r,   © )Ú.0Úxs     rJ   ú
<listcomp>z,test_roc_curve_one_label.<locals>.<listcomp>4  s   € Ð)@Ð)@Ð)@°A¨!¨a©%Ð)@Ð)@Ð)@rL   )
r    Úwarnsr   r   r   r1   ÚfullrS   Únanr0   )rI   rH   Úexpected_messagert   ru   r�   s         rJ   Útest_roc_curve_one_labelr»      sþ  € Ø+Ð+Ð+€FØ+Ð+Ð+€Fð 	Tð õ 
ŒÕ,Ð4DÐ	EÑ	EÔ	Eð 9ð 9Ý(¨°Ñ8Ô8ÑˆˆS�*ð9ð 9ð 9ñ 9ô 9ð 9ð 9ð 9ð 9ð 9ð 9øøøð 9ð 9ð 9ð 9õ �s�BœG¥C¨
¡O¤OµR´VÑ<Ô<Ñ=Ô=Ð=ØŒ9˜œ	Ò!Ð!Ð!Ð!ØŒ9˜
Ô(Ò(Ð(Ð(Ð(ð 	Sð õ 
ŒÕ,Ð4DÐ	EÑ	EÔ	Eð Jð JÝ(Ð)@Ð)@¸Ð)@Ñ)@Ô)@À&ÑIÔIÑˆˆS�*ðJð Jð Jñ Jô Jð Jð Jð Jð Jð Jð Jøøøð Jð Jð Jð Jõ �s�BœG¥C¨
¡O¤OµR´VÑ<Ô<Ñ=Ô=Ð=ØŒ9˜œ	Ò!Ð!Ð!Ð!ØŒ9˜
Ô(Ò(Ð(Ð(Ð(Ð(Ð(s#   ¦AÁAÁAÃC8Ã8C<Ã?C<c                  óÒ  — ddg} ddg}t          | |¦  «        \  }}}t          | |¦  «        }t          |g d¢¦  «         t          |g d¢¦  «         t          |d¦  «         ddg} ddg}t          | |¦  «        \  }}}t          | |¦  «        }t          |g d¢¦  «         t          |g d¢¦  «         t          |d¦  «         ddg} ddg}t          | |¦  «        \  }}}t          | |¦  «        }t          |ddg¦  «         t          |ddg¦  «         t          |d¦  «         ddg} ddg}t          | |¦  «        \  }}}t          | |¦  «        }t          |g d¢¦  «         t          |g d¢¦  «         t          |d¦  «         ddg} ddg}t          | |¦  «        \  }}}t          | |¦  «        }t          |ddg¦  «         t          |ddg¦  «         t          |d¦  «         ddg} dd	g}d
}t	          j        t          |¬¦  «        5  t          | |¦  «        \  }}}d d d ¦  «         n# 1 swxY w Y   t	          j        t          ¦  «        5  t          | |¦  «         d d d ¦  «         n# 1 swxY w Y   t          |g d¢¦  «         t          |t          j
        t          j
        t          j
        g¦  «         ddg} dd	g}d}t	          j        t          |¬¦  «        5  t          | |¦  «        \  }}}d d d ¦  «         n# 1 swxY w Y   t	          j        t          ¦  «        5  t          | |¦  «         d d d ¦  «         n# 1 swxY w Y   t          |t          j
        t          j
        t          j
        g¦  «         t          |g d¢¦  «         t          j        ddgddgg¦  «        } t          j        ddgddgg¦  «        }t	          j        t          ¦  «        5  t          | |d¬¦  «         d d d ¦  «         n# 1 swxY w Y   t	          j        t          ¦  «        5  t          | |d¬¦  «         d d d ¦  «         n# 1 swxY w Y   t          t          | |d¬¦  «        d¦  «         t          t          | |d¬¦  «        d¦  «         t          j        ddgddgg¦  «        } t          j        ddgddgg¦  «        }t	          j        t          ¦  «        5  t          | |d¬¦  «         d d d ¦  «         n# 1 swxY w Y   t	          j        t          ¦  «        5  t          | |d¬¦  «         d d d ¦  «         n# 1 swxY w Y   t          t          | |d¬¦  «        d¦  «         t          t          | |d¬¦  «        d¦  «         t          j        ddgddgg¦  «        } t          j        ddgddgg¦  «        }t          t          | |d¬¦  «        d¦  «         t          t          | |d¬¦  «        d¦  «         t          t          | |d¬¦  «        d¦  «         t          t          | |d¬¦  «        d¦  «         t          j        ddgddgg¦  «        } t          j        ddgddgg¦  «        }t          t          | |d¬¦  «        d¦  «         t          t          | |d¬¦  «        d¦  «         t          t          | |d¬¦  «        d¦  «         t          t          | |d¬¦  «        d¦  «         d S )Nr   r,   ©r   r   r,   ©r   r,   r,   r[   ç        r~   ç      Ð?ç      è?r±   r¯   ©r¿   r~   r[   r®   Úmacro©ÚaverageÚweightedÚsamplesÚmicro)r   r   r   r   r    r·   r   r¡   r¢   r1   r¹   r–   )rI   rG   ru   rt   rv   rŽ   rº   s          rJ   Útest_roc_curve_toydatarÉ   ;  sü  € à�ˆV€FØ�!ˆf€GÝ˜F GÑ,Ô,�K€CˆˆaÝ˜F GÑ,Ô,€GÝ˜c 9 9 9Ñ-Ô-Ð-Ý˜c 9 9 9Ñ-Ô-Ð-Ý˜ Ñ%Ô%Ð%à�ˆV€FØ�!ˆf€GÝ˜F GÑ,Ô,�K€CˆˆaÝ˜F GÑ,Ô,€GÝ˜c 9 9 9Ñ-Ô-Ð-Ý˜c 9 9 9Ñ-Ô-Ð-Ý˜ Ñ%Ô%Ð%à�ˆV€FØ�!ˆf€GÝ˜F GÑ,Ô,�K€CˆˆaÝ˜F GÑ,Ô,€GÝ˜c A q 6Ñ*Ô*Ð*Ý˜c A q 6Ñ*Ô*Ð*Ý˜ Ñ%Ô%Ð%à�ˆV€FØ�!ˆf€GÝ˜F GÑ,Ô,�K€CˆˆaÝ˜F GÑ,Ô,€GÝ˜c 9 9 9Ñ-Ô-Ð-Ý˜c 9 9 9Ñ-Ô-Ð-Ý˜ Ñ%Ô%Ð%à�ˆV€FØ�Cˆj€GÝ˜F GÑ,Ô,�K€CˆˆaÝ˜F GÑ,Ô,€GÝ˜c A q 6Ñ*Ô*Ð*Ý˜c A q 6Ñ*Ô*Ð*Ý˜ Ñ%Ô%Ð%à�ˆV€FØ�Tˆl€Gð 	Sð õ 
ŒÕ,Ð4DÐ	EÑ	EÔ	Eð 1ð 1Ý ¨Ñ0Ô0‰ˆˆS�!ð1ð 1ð 1ñ 1ô 1ð 1ð 1ð 1ð 1ð 1ð 1øøøð 1ð 1ð 1ð 1õ 
Œ•zÑ	"Ô	"ð 'ð 'Ý�f˜gÑ&Ô&Ð&ð'ð 'ð 'ñ 'ô 'ð 'ð 'ð 'ð 'ð 'ð 'øøøð 'ð 'ð 'ð 'å˜c ? ? ?Ñ3Ô3Ð3Ý˜c¥B¤F­B¬FµB´FÐ#;Ñ<Ô<Ð<à�ˆV€FØ�Tˆl€Gð 	Tð õ 
ŒÕ,Ð4DÐ	EÑ	EÔ	Eð 1ð 1Ý ¨Ñ0Ô0‰ˆˆS�!ð1ð 1ð 1ñ 1ô 1ð 1ð 1ð 1ð 1ð 1ð 1øøøð 1ð 1ð 1ð 1õ 
Œ•zÑ	"Ô	"ð 'ð 'Ý�f˜gÑ&Ô&Ð&ð'ð 'ð 'ñ 'ô 'ð 'ð 'ð 'ð 'ð 'ð 'øøøð 'ð 'ð 'ð 'å˜c¥B¤F­B¬FµB´FÐ#;Ñ<Ô<Ð<Ý˜c ? ? ?Ñ3Ô3Ð3õ ŒX˜˜1�v  1˜vÐ&Ñ'Ô'€FÝŒh˜˜A˜  A Ð'Ñ(Ô(€GÝ	Œ•zÑ	"Ô	"ð 8ð 8Ý�f˜g¨wÐ7Ñ7Ô7Ð7ð8ð 8ð 8ñ 8ô 8ð 8ð 8ð 8ð 8ð 8ð 8øøøð 8ð 8ð 8ð 8å	Œ•zÑ	"Ô	"ð ;ð ;Ý�f˜g¨zÐ:Ñ:Ô:Ð:ð;ð ;ð ;ñ ;ô ;ð ;ð ;ð ;ð ;ð ;ð ;øøøð ;ð ;ð ;ð ;å� f¨g¸yÐIÑIÔIÈ3ÑOÔOÐOÝ� f¨g¸wÐGÑGÔGÈÑMÔMÐMåŒX˜˜1�v  1˜vÐ&Ñ'Ô'€FÝŒh˜˜A˜  A Ð'Ñ(Ô(€GÝ	Œ•zÑ	"Ô	"ð 8ð 8Ý�f˜g¨wÐ7Ñ7Ô7Ð7ð8ð 8ð 8ñ 8ô 8ð 8ð 8ð 8ð 8ð 8ð 8øøøð 8ð 8ð 8ð 8å	Œ•zÑ	"Ô	"ð ;ð ;Ý�f˜g¨zÐ:Ñ:Ô:Ð:ð;ð ;ð ;ñ ;ô ;ð ;ð ;ð ;ð ;ð ;ð ;øøøð ;ð ;ð ;ð ;å� f¨g¸yÐIÑIÔIÈ3ÑOÔOÐOÝ� f¨g¸wÐGÑGÔGÈÑMÔMÐMåŒX˜˜1�v  1˜vÐ&Ñ'Ô'€FÝŒh˜˜A˜  A Ð'Ñ(Ô(€GÝ� f¨g¸wÐGÑGÔGÈÑKÔKÐKÝ� f¨g¸zÐJÑJÔJÈAÑNÔNÐNÝ� f¨g¸yÐIÑIÔIÈ1ÑMÔMÐMÝ� f¨g¸wÐGÑGÔGÈÑKÔKÐKåŒX˜˜1�v  1˜vÐ&Ñ'Ô'€FÝŒh˜˜c˜
 S¨# JÐ/Ñ0Ô0€GÝ� f¨g¸wÐGÑGÔGÈÑMÔMÐMÝ� f¨g¸zÐJÑJÔJÈCÑPÔPÐPÝ� f¨g¸yÐIÑIÔIÈ3ÑOÔOÐOÝ� f¨g¸wÐGÑGÔGÈÑMÔMÐMÐMÐMs�   ÈH'È'H+È.H+ÉI(É(I,É/I,ËK<Ë<L ÌL Ì L=Ì=MÍMÏO7Ï7O;Ï>O;ÐP:Ð:P>ÑP>ÓS1Ó1S5Ó8S5ÔT4Ô4T8Ô;T8c            	      óú   — g d¢} g d¢}t          | |d¬¦  «        \  }}}t          |t          j        dddg¦  «         g d¢} g d	¢}t          | |d¬¦  «        \  }}}t          |t          j        dd
dddg¦  «         d S )N©r   r   r   r   r,   r,   ©r¿   çš™™™™™É?r~   ç333333ã?çffffffæ?r[   Trˆ   r[   rÏ   r¿   ©r   r   r   r   r   r   r   r,   r,   r,   r,   r,   r,   ©r¿   çš™™™™™¹?rÎ   rÎ   rÏ   çš™™™™™é?r¥   rÎ   rÏ   rÓ   r¥   r¥   r[   r¥   rÎ   )r   r   r1   Úinf)rI   rG   ru   rt   r�   s        rJ   Ú test_roc_curve_drop_intermediaterÕ   £  s¦   € àÐÐ€FØ,Ð,Ð,€GÝ$ V¨WÈÐMÑMÔMÑ€CˆˆjÝ˜j­2¬6°3¸¸SÐ*AÑBÔBÐBð 5Ð4Ð4€FØOÐOÐO€GÝ$ V¨WÈÐMÑMÔMÑ€CˆˆjÝ˜j­2¬6°3¸¸SÀ#ÀsÐ*KÑLÔLÐLÐLÐLrL   c                  ó,  — g d¢} g d¢}t          j        dd¦  «        }t          | ||¬¦  «        \  }}}t          j        |¦  «        dk                          ¦   «         dk    sJ ‚t          j        |¦  «        dk                          ¦   «         dk    sJ ‚d S )N©r   r   r,   r,   r,   )rÒ   rÏ   ç333333Ó?çš™™™™™Ù?r~   rÍ   é   ©Úsample_weightr   )r1   Úrepeatr   ÚdiffrQ   )rI   rG   rÜ   rt   ru   rv   s         rJ   Ú!test_roc_curve_fpr_tpr_increasingrß   ±  s�   € ð ˆ_ˆ_€FØ'Ð'Ð'€GÝ”I˜c 1Ñ%Ô%€MÝ˜F G¸=ÐIÑIÔI�K€CˆˆaÝŒG�C‰LŒL˜1Ò×!Ò!Ñ#Ô# qÒ(Ð(Ð(Ð(ÝŒG�C‰LŒL˜1Ò×!Ò!Ñ#Ô# qÒ(Ð(Ð(Ð(Ð(Ð(rL   c                  ó‚  — ddg} ddg}t          t          | |¦  «        d¦  «         ddg} ddg}t          t          | |¦  «        d¦  «         g d¢} g d¢}t          t          | |¦  «        d¦  «         ddg} ddg}t          t          | |¦  «        d¦  «         g d¢} g d¢}t          t          | |¦  «        d¦  «         d S )Nr   r,   r~   ©r,   r   r   r¾   ©r   r~   r,   )r   r   )rµ   r@   s     rJ   Útest_aucrã   ½  sÚ   € à	
ˆAˆ€AØ	
ˆAˆ€AÝ�c ! Q™iœi¨Ñ-Ô-Ð-Ø	
ˆAˆ€AØ	
ˆAˆ€AÝ�c ! Q™iœi¨Ñ-Ô-Ð-Øˆ	ˆ	€AØˆ	ˆ	€AÝ�c ! Q™iœi¨Ñ-Ô-Ð-Ø	
ˆAˆ€AØ	
ˆAˆ€AÝ�c ! Q™iœi¨Ñ+Ô+Ð+Øˆˆ€AØˆˆ€AÝ�c ! Q™iœi¨Ñ-Ô-Ð-Ð-Ð-rL   c                  ó   — t          j        t          ¦  «        5  t          g d¢ddg¦  «         d d d ¦  «         n# 1 swxY w Y   t          j        t          ¦  «        5  t          dgdg¦  «         d d d ¦  «         n# 1 swxY w Y   g d¢} g d¢}d                     t          j        | ¦  «        ¦  «        }t          j        t          t          j        |¦  «        ¬¦  «        5  t          | |¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )	NrÂ   rÒ   rÍ   r¿   )r%   r,   r’   é   )rÚ   é   é   é   z+x is neither increasing nor decreasing : {}r¯   )	r    r¡   r¢   r   Úformatr1   r–   ÚreÚescape)rµ   r@   Úerror_messages      rJ   Útest_auc_errorsrí   Ð  sº  € å	Œ•zÑ	"Ô	"ð )ð )ÝˆOˆOˆO˜c 3˜ZÑ(Ô(Ð(ð)ð )ð )ñ )ô )ð )ð )ð )ð )ð )ð )øøøð )ð )ð )ð )õ 
Œ•zÑ	"Ô	"ð ð ÝˆSˆE�C�5ÑÔÐðð ð ñ ô ð ð ð ð ð ð øøøð ð ð ð ð 	ˆˆ€AØˆˆ€AØA×HÒHÍÌÐRSÉÌÑUÔU€MÝ	Œ•z­¬°=Ñ)AÔ)AÐ	BÑ	BÔ	Bð ð ÝˆAˆq‰	Œ	ˆ	ðð ð ñ ô ð ð ð ð ð ð ð øøøð ð ð ð ð ð s1   š;»?Á?ÁA>Á>BÂBÃ%DÄDÄ
Dzy_true, labels)r   r,   r   r%   ©r   r,   r%   )ÚaÚbrï   Úc)rï   rð   rñ   c           	      óÔ  — t          j        g d¢g d¢g d¢g d¢g¦  «        }t          g d¢g d¢¦  «        }t          g d¢g d¢¦  «        }||z   d	z  }t          g d
¢g d¢¦  «        }t          g d¢g d¢¦  «        }||z   d	z  }t          ddgddg¦  «        }	t          ddgddg¦  «        }
|	|
z   d	z  }||z   |z   dz  }t          t          | ||d¬¦  «        |¦  «         |||g}g d¢}t          j        ||¬¦  «        }t          t          | ||dd¬¦  «        |¦  «         d}t          j        t          |¬¦  «        5  t          | ||dd ¬¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )N©rÒ   rÓ   rÒ   ©rØ   rÙ   rØ   ©çffffffÖ?r~   ç333333Ã?©r   rÍ   rÓ   ©r,   r   r,   )rÒ   rØ   rö   ©r   r,   r   )rÓ   rÙ   r~   r%   ©r,   r,   r   )rÒ   rö   r   r½   )rÒ   r÷   rÓ   r,   r   rÙ   rÍ   rØ   rÓ   r’   Úovo©ÚlabelsÚmulti_class)rÁ   rÁ   r~   )ÚweightsrÆ   ©rþ   rÿ   rÅ   z6average=None is not implemented for multi_class='ovo'.r¯   )r1   r–   r   r   rÅ   r    r¡   ÚNotImplementedError)rI   rþ   Úy_scoresÚscore_01Úscore_10Úaverage_score_01Úscore_02Úscore_20Úaverage_score_02Úscore_12Úscore_21Úaverage_score_12Úovo_unweighted_scoreÚpair_scoresÚ
prevalenceÚovo_weighted_scorerì   s                    rJ   Ú#test_multiclass_ovo_roc_auc_toydatar  á  sQ  € õ ŒxØ	ˆˆ˜/˜/˜/Ð+<Ð+<Ð+<¸m¸m¸mÐLñô €Hõ ˜Y˜Y˜YÐ(8Ð(8Ð(8Ñ9Ô9€Hå˜Y˜Y˜Y¨¨¨Ñ8Ô8€HØ  8Ñ+¨qÑ0Ðõ ˜Y˜Y˜Y¨¨¨Ñ7Ô7€HÝ˜Y˜Y˜YÐ(8Ð(8Ð(8Ñ9Ô9€HØ  8Ñ+¨qÑ0Ðõ ˜a ˜V c¨3 ZÑ0Ô0€HÝ˜a ˜V c¨3 ZÑ0Ô0€HØ  8Ñ+¨qÑ0Ðð -Ð/?Ñ?ÐBRÑRÐVWÑWÐÝÝ�f˜h¨vÀ5ÐIÑIÔIØñô ð ð $Ð%5Ð7GÐH€KØ#Ð#Ð#€JÝœ K¸ÐDÑDÔDÐÝÝØ�H V¸È
ð	
ñ 	
ô 	
ð 	ñ	ô ð ð M€MÝ	ŒÕ*°-Ð	@Ñ	@Ô	@ð Xð XÝ�f˜h¨vÀ5ÐRVÐWÑWÔWÐWðXð Xð Xñ Xô Xð Xð Xð Xð Xð Xð Xð Xøøøð Xð Xð Xð Xð Xð Xs   Ä;EÅE!Å$E!)r   r%   r   r%   )rï   Údrï   r  )rï   rð   r  c           	      ó,  — t          j        g d¢g d¢g d¢g d¢g¦  «        }t          g d¢g d¢¦  «        }t          g d¢g d¢¦  «        }||z   d	z  }t          t          | ||d
¬¦  «        |¦  «         t          t          | ||d
d¬¦  «        |¦  «         d S )N)rÍ   r¿   rÓ   )rÎ   r¿   rÙ   )çš™™™™™á?r¿   çÍÌÌÌÌÌÜ?)rÙ   r¿   rÎ   )r,   r   r,   r   )rÍ   rÎ   r  rÙ   )r   r,   r   r,   )rÓ   rÙ   r  rÎ   r%   rü   rý   rÆ   r  ©r1   r–   r   r   )rI   rþ   r  r  r  Ú	ovo_scores         rJ   Ú*test_multiclass_ovo_roc_auc_toydata_binaryr    sá   € õ ŒxØ	ˆˆ˜/˜/˜/Ð+<Ð+<Ð+<¸o¸o¸oÐNñô €Hõ ˜\˜\˜\Ð+@Ð+@Ð+@ÑAÔA€Hå˜\˜\˜\Ð+@Ð+@Ð+@ÑAÔA€HØ˜HÑ$¨Ñ)€IåÝ�f˜h¨vÀ5ÐIÑIÔIÈ9ñô ð õ
 ÝØ�H V¸È
ð	
ñ 	
ô 	
ð 	ñ	ô ð ð ð rL   )r   r,   r%   r%   )rï   rð   rñ   rñ   c           	      óö  — t          j        g d¢g d¢g d¢g d¢g¦  «        }t          g d¢|d d …df         ¦  «        }t          g d¢|d d …df         ¦  «        }t          g d	¢|d d …d
f         ¦  «        }t          t          | |d|d ¬¦  «        |||g¦  «         ||z   |z   dz  }t          t          | |d|¬¦  «        |¦  «         |dz  |dz  z   |dz  z   }t          t          | |d|d¬¦  «        |¦  «         d S )N©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%   Úovr)rÿ   rþ   rÅ   g      @)rÿ   rþ   rÀ   r~   rÆ   r  )rI   rþ   r  Úout_0Úout_1Úout_2Úresult_unweightedÚresult_weighteds           rJ   Ú#test_multiclass_ovr_roc_auc_toydatar#  @  s]  € õ ŒxØ	ˆˆ˜/˜/˜/¨?¨?¨?¸O¸O¸OÐLñô €Hõ
 ˜,˜,˜,¨°°°°A°¬Ñ7Ô7€EÝ˜,˜,˜,¨°°°°A°¬Ñ7Ô7€EÝ˜,˜,˜,¨°°°°A°¬Ñ7Ô7€EÝÝ�f˜h°EÀ&ÐRVÐWÑWÔWØ	��uÐñô ð ð  ™¨Ñ.°#Ñ5ÐÝÝ�f˜h°EÀ&ÐIÑIÔIØñô ð ð ˜d‘l U¨T¡\Ñ1°E¸C±KÑ?€OÝÝØ�H¨%¸È
ð	
ñ 	
ô 	
ð 	ñ	ô ð ð ð rL   zmulti_class, average))r  rÃ   )r  rÈ   )rü   rÃ   c                 ób  — t          j        g d¢¦  «        }g d¢g d¢g d¢g d¢g}t          t          ||| |¬¦  «        d¦  «         g d¢g d¢g d¢g d¢g}t          ||| |¬¦  «        dk     sJ ‚dt          j        d	¦  «        z  }t          ||| |¬¦  «        t          j        d
¦  «        k    sJ ‚d S )N)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~   )r1   r–   r   r   r¨   r    Úapprox)rÿ   rÅ   rI   Ú	y_perfectÚy_imperfectÚy_chances         rJ   Ú0test_perfect_imperfect_chance_multiclass_roc_aucr+  k  s#  € õ ŒX�l�l�lÑ#Ô#€Fð 	ÐÐØÐÐØÐÐØ Ð Ð ð	€Iõ Ý�f˜i°[È'ÐRÑRÔRØñô ð ð 	ÐÐØÐÐØÐÐØÐÐð	€Kõ 	�f˜k°{ÈGÐTÑTÔTØ
ò	ð 	ð 	ð 	ð
 •b”g˜f‘o”oÑ%€HÝØ� k¸7ðñ ô å	Œ�sÑ	Ô	òð ð ð ð ð rL   c                 ó¤  ‡	— | Š	t           j                             g d¢d‰	¬¦  «        }t          j        ˆ	fd„|D ¦   «         ¦  «        }t          |g d¢¬¦  «        }t          |                     ¦   «         |                     ¦   «         ¦  «        \  }}}t          ||¦  «        }t          ||dd¬	¦  «        }|t          j        |¦  «        k    sJ ‚d S )
N)ç       @r[   r~   éè  )r•   r+   c                 óx   •— g | ]6}t           j                             d |‰¬¦  «                             ¦   «         ‘Œ7S )r,   )ÚnrC   r+   )r   ÚmultinomialÚrvsrp   )r´   Úy_pred_iÚseeds     €rJ   r¶   z3test_micro_averaged_ovr_roc_auc.<locals>.<listcomp>�  sM   ø€ ð 	
ð 	
ð 	
àõ Ô×!Ò! A¨ÀÐ!ÑEÔE×LÒLÑNÔNð	
ð 	
ð 	
rL   rî   )Úclassesr  rÈ   r&  )r   Ú	dirichletr2  r1   Úasarrayr   r   Úravelr   r   r    r'  )
Úglobal_random_seedrH   rI   Úy_onehotrt   ru   rv   Úroc_auc_by_handÚroc_auc_autor4  s
            @rJ   Útest_micro_averaged_ovr_roc_aucr=  •  sä   ø€ Ø€Dõ
 Œ_× Ò    °tÈ$Ð ÑOÔO€FÝŒZð	
ð 	
ð 	
ð 	
à"ð	
ñ 	
ô 	
ñô €Fõ ˜f¨i¨i¨iÐ8Ñ8Ô8€HÝ˜HŸNšNÑ,Ô,¨f¯lªl©n¬nÑ=Ô=�K€CˆˆaÝ˜#˜s‘m”m€OÝ  ¨¸UÈGÐTÑTÔT€LØ�fœm¨LÑ9Ô9Ò9Ð9Ð9Ð9Ð9Ð9rL   zmsg, y_true, labelsz!Parameter 'labels' must be unique©r   r%   r   )rï   rï   rð   zKNumber of classes in y_true not equal to the number of columns in 'y_score'z"Parameter 'labels' must be ordered)rï   rñ   rð   zMNumber of given labels, 2, not equal to the number of columns in 'y_score', 3r,   rï   rð   zMNumber of given labels, 4, not equal to the number of columns in 'y_score', 3)r   r,   r%   r’   )rï   rð   rñ   r  z2'y_true' contains labels not in parameter 'labels')rï   rð   rñ   Úerÿ   rü   r  c                 óÔ   — t          j        g d¢g d¢g d¢g d¢g¦  «        }t          j        t          | ¬¦  «        5  t          ||||¬¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )Nró   rô   rõ   rø   r¯   rý   )r1   r–   r    r¡   r¢   r   )ÚmsgrI   rþ   rÿ   r  s        rJ   Ú*test_roc_auc_score_multiclass_labels_errorrB  ©  sÛ   € õR ŒxØ	ˆˆ˜/˜/˜/Ð+<Ð+<Ð+<¸m¸m¸mÐLñô €Hõ 
Œ•z¨Ð	-Ñ	-Ô	-ð Pð PÝ�f˜h¨vÀ;ÐOÑOÔOÐOðPð Pð Pñ Pô Pð Pð Pð Pð Pð Pð Pð Pøøøð Pð Pð Pð Pð Pð Ps   ¼AÁA!Á$A!zmsg, kwargszLaverage must be one of \('macro', 'weighted', None\) for multiclass problemsrÇ   )rÅ   rÿ   zUaverage must be one of \('micro', 'macro', 'weighted', None\) for multiclass problemszksample_weight is not supported for multiclass one-vs-one ROC AUC, 'sample_weight' must be None in this case)rÿ   rÜ   z|Partial AUC computation not available in multiclass setting, 'max_fpr' must be set to `None`, received `max_fpr=0.5` insteadr~   )rÿ   rs   z'multi_class must be in \('ovo', 'ovr'\)c                 ó"  — t          d¦  «        }|                     dd¦  «        }t          |¦  «        }|                     ddd¬¦  «        }t	          j        t          | ¬¦  «        5  t          ||fi |¤Ž d d d ¦  «         d S # 1 swxY w Y   d S )Né”  é   r’   r   r”   r¯   )r#   Úrandr    r—   r    r¡   r¢   r   )rA  ÚkwargsrD   rG   Úy_probrI   s         rJ   Ú#test_roc_auc_score_multiclass_errorrI  ú  sØ   € õN ˜SÑ
!Ô
!€CØ�hŠh�r˜1‰oŒo€GÝ�WÑÔ€FØ�[Š[˜˜A Bˆ[Ñ'Ô'€FÝ	Œ•z¨Ð	-Ñ	-Ô	-ð 0ð 0Ý�f˜fÐ/Ð/¨Ð/Ð/Ð/ð0ð 0ð 0ñ 0ô 0ð 0ð 0ð 0ð 0ð 0ð 0ð 0øøøð 0ð 0ð 0ð 0ð 0ð 0s   Á(BÂBÂBc                  ó&  — t          d¦  «        } |                      d¦  «        }t          j        dd¬¦  «        }d}t	          j        t          |¬¦  «        5  t          ||¦  «         d d d ¦  «         n# 1 swxY w Y   t          j        dd¬¦  «        }t	          j        t          |¬¦  «        5  t          ||¦  «         d d d ¦  «         n# 1 swxY w Y   t          j	        ddd¬¦  «        }t	          j        t          |¬¦  «        5  t          ||¦  «         d d d ¦  «         n# 1 swxY w Y   t          j        d¬	¦  «        5  t          d¦  «        } |                      d¦  «        }t          j        dd¬¦  «        }t	          j        t          |¬¦  «        5  t          ||¦  «         d d d ¦  «         n# 1 swxY w Y   t          j        dd¬¦  «        }t	          j        t          |¬¦  «        5  t          ||¦  «         d d d ¦  «         n# 1 swxY w Y   t          j	        ddd¬¦  «        }t	          j        t          |¬¦  «        5  t          ||¦  «         d d d ¦  «         n# 1 swxY w Y   d d d ¦  «         d S # 1 swxY w Y   d S )
NrD  é
   r4   ©ÚdtypezROC AUC score is not definedr¯   rN   T)Úrecord)r#   rF  r1   r©   r    r¡   r¢   r   r¨   r¸   ÚwarningsÚcatch_warnings)rD   rH   rI   Úerr_msgs       rJ   Útest_auc_score_non_binary_classrR  )  s  € õ ˜SÑ
!Ô
!€CØ�XŠX�b‰\Œ\€FåŒX�b Ð&Ñ&Ô&€FØ,€GÝ	Œ•z¨Ð	1Ñ	1Ô	1ð &ð &Ý�f˜fÑ%Ô%Ð%ð&ð &ð &ñ &ô &ð &ð &ð &ð &ð &ð &øøøð &ð &ð &ð &åŒW�R˜uÐ%Ñ%Ô%€FÝ	Œ•z¨Ð	1Ñ	1Ô	1ð &ð &Ý�f˜fÑ%Ô%Ð%ð&ð &ð &ñ &ô &ð &ð &ð &ð &ð &ð &øøøð &ð &ð &ð &åŒW�R˜ 5Ð)Ñ)Ô)€FÝ	Œ•z¨Ð	1Ñ	1Ô	1ð &ð &Ý�f˜fÑ%Ô%Ð%ð&ð &ð &ñ &ô &ð &ð &ð &ð &ð &ð &øøøð &ð &ð &ð &õ 
Ô	 ¨Ð	-Ñ	-Ô	-ð *ð *Ý  Ñ%Ô%ˆØ—’˜"‘”ˆå”˜" EÐ*Ñ*Ô*ˆÝŒ]�:¨WÐ5Ñ5Ô5ð 	*ð 	*Ý˜& &Ñ)Ô)Ð)ð	*ð 	*ð 	*ñ 	*ô 	*ð 	*ð 	*ð 	*ð 	*ð 	*ð 	*øøøð 	*ð 	*ð 	*ð 	*å”˜ 5Ð)Ñ)Ô)ˆÝŒ]�:¨WÐ5Ñ5Ô5ð 	*ð 	*Ý˜& &Ñ)Ô)Ð)ð	*ð 	*ð 	*ñ 	*ô 	*ð 	*ð 	*ð 	*ð 	*ð 	*ð 	*øøøð 	*ð 	*ð 	*ð 	*å”˜˜R uÐ-Ñ-Ô-ˆÝŒ]�:¨WÐ5Ñ5Ô5ð 	*ð 	*Ý˜& &Ñ)Ô)Ð)ð	*ð 	*ð 	*ñ 	*ô 	*ð 	*ð 	*ð 	*ð 	*ð 	*ð 	*øøøð 	*ð 	*ð 	*ð 	*ð*ð *ð *ñ *ô *ð *ð *ð *ð *ð *ð *ð *øøøð *ð *ð *ð *ð *ð *sµ   ÁA5Á5A9Á<A9Â1CÃCÃCÄD(Ä(D,Ä/D,ÅAJÆF;Æ/JÆ;F?	Æ?JÇF?	Ç4JÇ7HÈJÈH	ÈJÈH	È5JÉI.É"JÉ.I2	É2JÉ5I2	É6JÊJ
ÊJ
Ú
curve_funcc                 ó  — t          d¦  «        }|                     ddd¬¦  «        }|                     d¦  «        }d}t          j        t
          |¬¦  «        5   | ||¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )NrD  r   r’   rK  r”   z"multiclass format is not supportedr¯   )r#   r—   rF  r    r¡   r¢   )rS  rD   rI   rH   rA  s        rJ   Ú&test_binary_clf_curve_multiclass_errorrU  I  sÅ   € å
˜SÑ
!Ô
!€CØ�[Š[˜˜A Bˆ[Ñ'Ô'€FØ�XŠX�b‰\Œ\€FØ
.€CÝ	Œ•z¨Ð	-Ñ	-Ô	-ð #ð #Øˆ
�6˜6Ñ"Ô"Ð"ð#ð #ð #ñ #ô #ð #ð #ð #ð #ð #ð #ð #øøøð #ð #ð #ð #ð #ð #s   ÁA4Á4A8Á;A8c                 óÎ  — d}t          j        t          |¬¦  «        5   | t          j        ddgd¬¦  «        ddg¦  «         d d d ¦  «         n# 1 swxY w Y   t          j        t          |¬¦  «        5   | t          j        ddgt
          ¬¦  «        ddg¦  «         d d d ¦  «         n# 1 swxY w Y   d	}t          j        t          |¬¦  «        5   | t          j        d
dgd¬¦  «        ddg¦  «         d d d ¦  «         n# 1 swxY w Y   g d¢} | g d¢|¦  «        } | g d¢|¦  «        }t          ||¦  «        D ]%\  }}t          j                             ||¦  «         Œ&d S )Nz‘y_true takes value in {'a', 'b'} and pos_label is not specified: either make y_true take value in {0, 1} or {-1, 1} or pass pos_label explicitly.r¯   rï   rð   z<U1rL  r¿   r[   z“y_true takes value in {b'a', b'b'} and pos_label is not specified: either make y_true take value in {0, 1} or {-1, 1} or pass pos_label explicitly.ó   aó   bz<S1)r¿   r[   rÍ   gáz®GáÚ?)r   r,   r,   r   )r¿   r[   r[   r¿   )	r    r¡   r¢   r1   r–   ÚobjectÚzipÚtestingr   )rS  rA  rH   Ú	int_curveÚfloat_curveÚint_curve_partÚfloat_curve_parts          rJ   Ú(test_binary_clf_curve_implicit_pos_labelr`  S  s‹  € ð
	ð õ 
Œ•z¨Ð	-Ñ	-Ô	-ð Bð BØˆ
•2”8˜S #˜J¨eÐ4Ñ4Ô4°s¸C°jÑAÔAÐAðBð Bð Bñ Bô Bð Bð Bð Bð Bð Bð Bøøøð Bð Bð Bð Bõ 
Œ•z¨Ð	-Ñ	-Ô	-ð Cð CØˆ
•2”8˜S #˜J­fÐ5Ñ5Ô5¸¸S°zÑBÔBÐBðCð Cð Cñ Cô Cð Cð Cð Cð Cð Cð Cøøøð Cð Cð Cð Cð	ð õ 
Œ•z¨Ð	-Ñ	-Ô	-ð Dð DØˆ
•2”8˜T 4˜L°Ð6Ñ6Ô6¸¸c¸
ÑCÔCÐCðDð Dð Dñ Dô Dð Dð Dð Dð Dð Dð Døøøð Dð Dð Dð Dð
 #Ð"Ð"€FØ�
˜<˜<˜<¨Ñ0Ô0€IØ�*Ð1Ð1Ð1°6Ñ:Ô:€KÝ,/°	¸;Ñ,GÔ,Gð Eð EÑ(ˆÐ(Ý
Œ
×"Ò" >Ð3CÑDÔDÐDÐDðEð Es5   ž%AÁAÁAÁ5*B+Â+B/Â2B/Ã%DÄDÄDc                 óÒ   — g d¢}g d¢}g d¢} | |||¬¦  «        } | |d d…         |d d…         |d d…         ¬¦  «        }t          ||¦  «        D ]\  }}t          ||¦  «         Œd S )Nr×   )rÒ   rÍ   rØ   rÙ   r~   )r,   r,   r,   r~   r   rÛ   rN   )rZ  r   )rS  rI   rG   rÜ   Úresult_1Úresult_2Úarr_1Úarr_2s           rJ   Ú(test_binary_clf_curve_zero_sample_weightrf  w  s£   € àˆ_ˆ_€FØ'Ð'Ð'€GØ%Ð%Ð%€Màˆz˜& '¸ÐGÑGÔG€HØˆz˜&  " œ+ w¨s°¨s¤|À=ÐQTÐRTÐQTÔCUÐVÑVÔV€Hå˜H hÑ/Ô/ð &ð &‰ˆˆuÝ˜˜uÑ%Ô%Ð%Ð%ð&ð &rL   c                 ó  — t          d¬¦  «        \  }}}t          ||| ¦  «         t          |dd …         |dd …         | ¬¦  «        \  }}}|d         dk    sJ ‚|d         |dd …                              ¦   «         k    sJ ‚d|t	          j        |dk    ¦  «        <   |                     ¦   «         }t          ||| ¦  «         t          ||¦  «         g d¢}g d	¢}	t          ||	| ¬¦  «        \  }}}| r7t          |g d
¢¦  «         t          |g d¢¦  «         t          |g d¢¦  «         n6t          |g d¢¦  «         t          |g d¢¦  «         t          |g d	¢¦  «         |j	        |j	        k    sJ ‚|j	        |j	        dz   k    sJ ‚d S )NTr‡   r,   rˆ   r   r[   rN   ©r,   r   r   r,   )r,   r%   r’   rå   )r~   çÚÁQUUÕ?r[   r[   )r[   r~   r~   r¿   )r,   r%   rå   )r~   ri  r~   r[   r[   )r[   r~   r~   r~   r¿   )
rK   Ú_test_precision_recall_curver   Úmeanr1   ÚwhereÚcopyr   r   r•   )
r…   rI   rv   rG   rC   Úrrœ   Úy_true_copyrþ   Úpredict_probass
             rJ   Útest_precision_recall_curverq  „  sÈ  € å(°Ð5Ñ5Ô5Ñ€FˆAˆwÝ  ¨°$Ñ7Ô7Ð7õ % V¨A¨B¨B¤Z°¸¸¸´ÐPTÐUÑUÔU�G€A€qˆ!ØˆQŒ4�3Š;ˆ;ˆ;ˆ;ØˆQŒ4�6˜!˜"˜"”:—?’?Ñ$Ô$Ò$Ð$Ð$Ð$ð %'€F�2Œ8�F˜a’KÑ Ô Ñ!Ø—+’+‘-”-€KÝ  ¨°$Ñ7Ô7Ð7Ý�{ FÑ+Ô+Ð+àˆ\ˆ\€FØ!�\�\€NÝ$ V¨^ÈtÐTÑTÔT�G€A€qˆ!Øð )Ý˜Ð6Ð6Ð6Ñ7Ô7Ð7Ý˜Ð/Ð/Ð/Ñ0Ô0Ð0Ý˜˜9˜9˜9Ñ%Ô%Ð%Ð%å˜Ð;Ð;Ð;Ñ<Ô<Ð<Ý˜Ð4Ð4Ð4Ñ5Ô5Ð5Ý˜˜<˜<˜<Ñ(Ô(Ð(ØŒ6�Q”VÒÐÐÐØŒ6�Q”V˜a‘ZÒÐÐÐÐÐrL   c                 óÜ  — t          | ||¬¦  «        \  }}}t          | |¦  «        }t          |dd¦  «         t          |t          | |¦  «        ¦  «         t	          t          | |¦  «        |d¬¦  «         |j        |j        k    sJ ‚|j        |j        dz   k    sJ ‚t          | t          j        |¦  «        |¬¦  «        \  }}}|j        |j        k    sJ ‚|j        |j        dz   k    sJ ‚d S )Nrˆ   g°rh‘í|ë?r’   r%   rŠ   r,   )	r   rl   r   r   r   rd   r•   r1   Ú
zeros_like)rI   rG   r…   rC   rn  r�   Úprecision_recall_aucs          rJ   rj  rj  ¤  s"  € å-¨f°gÐQUÐVÑVÔVÑ€A€qˆ*Ý2°6¸7ÑCÔCÐÝÐ2°E¸1Ñ=Ô=Ð=ÝØÕ5°f¸gÑFÔFñô ð õ Ý˜6 7Ñ+Ô+Ð-AÈ1ðñ ô ð ð Œ6�Q”VÒÐÐÐØŒ6�Z”_ qÑ(Ò(Ð(Ð(Ð(å-Ø•”˜gÑ&Ô&¸$ðñ ô Ñ€A€qˆ*ð Œ6�Q”VÒÐÐÐØŒ6�Z”_ qÑ(Ò(Ð(Ð(Ð(Ð(Ð(rL   c           	      ó(  — t          j        d¬¦  «        5  ddg}ddg}t          ||| ¬¦  «        \  }}}t          ||¦  «        }t	          |g d¢¦  «         t	          |g d¢¦  «         t          |d¦  «         ddg}ddg}t          ||| ¬¦  «        \  }}}t          ||¦  «        }t	          |g d	¢¦  «         t	          |g d
¢¦  «         t          |d¦  «         ddg}ddg}t          ||| ¬¦  «        \  }}}t          ||¦  «        }t	          |ddg¦  «         t	          |ddg¦  «         t          |d¦  «         ddg}ddg}t          ||| ¬¦  «        \  }}}t          ||¦  «        }t	          |g d¢¦  «         t	          |g d¢¦  «         t          |d¦  «         ddg}ddg}t          ||| ¬¦  «        \  }}}t          ||¦  «        }t	          |ddg¦  «         t	          |ddg¦  «         t          |d¦  «         ddg}ddg}t          j        t          d¬¦  «        5  t          ||| ¬¦  «        \  }}}d d d ¦  «         n# 1 swxY w Y   t          j        t          d¬¦  «        5  t          ||¦  «        }d d d ¦  «         n# 1 swxY w Y   t          |g d¢¦  «         t          |g d¢¦  «         t          |d¦  «         ddg}ddg}t          ||| ¬¦  «        \  }}}t          t          ||¦  «        d¦  «         t	          |g d¢¦  «         t	          |g d¢¦  «         t          j
        ddgddgg¦  «        }t          j
        ddgddgg¦  «        }t          j        t          d¬¦  «        5  t          t          ||d¬¦  «        d¦  «         d d d ¦  «         n# 1 swxY w Y   t          j        t          d¬¦  «        5  t          t          ||d¬¦  «        d¦  «         d d d ¦  «         n# 1 swxY w Y   t          t          ||d¬¦  «        d¦  «         t          t          ||d¬¦  «        d¦  «         t          j
        ddgddgg¦  «        }t          j
        ddgddgg¦  «        }t          j        t          d¬¦  «        5  t          t          ||d¬¦  «        d¦  «         d d d ¦  «         n# 1 swxY w Y   t          j        t          d¬¦  «        5  t          t          ||d¬¦  «        d¦  «         d d d ¦  «         n# 1 swxY w Y   t          t          ||d¬¦  «        d¦  «         t          t          ||d¬¦  «        d¦  «         t          j
        ddgddgg¦  «        }t          j
        ddgddgg¦  «        }t          t          ||d¬¦  «        d¦  «         t          t          ||d¬¦  «        d¦  «         t          t          ||d¬¦  «        d¦  «         t          t          ||d¬¦  «        d¦  «         t          j
        ddgddgg¦  «        }t          j
        ddgddgg¦  «        }t          j        t          d¬¦  «        5  t          t          ||d¬¦  «        d¦  «         d d d ¦  «         n# 1 swxY w Y   t          t          ||d¬¦  «        d¦  «         t          j        t          d¬¦  «        5  t          t          ||d¬¦  «        d¦  «         d d d ¦  «         n# 1 swxY w Y   t          j        t          d¬¦  «        5  t          t          ||d¬¦  «        d¦  «         d d d ¦  «         n# 1 swxY w Y   t          j
        ddgddgg¦  «        }t          j
        ddgddgg¦  «        }t          t          ||d¬¦  «        d¦  «         t          t          ||d¬¦  «        d¦  «         t          t          ||d¬¦  «        d¦  «         t          t          ||d¬¦  «        d¦  «         t          j
        ddgddgg¦  «        }t          j
        ddgddgg¦  «        }t          t          ||d¬¦  «        d¦  «         t          t          ||d¬¦  «        d¦  «         t          t          ||d¬¦  «        d¦  «         t          t          ||d¬¦  «        d¦  «         d d d ¦  «         n# 1 swxY w Y   t          j        d¬¦  «        5  t          j
        ddgddgg¦  «        }t          j
        ddgddgg¦  «        }t          j        t          d¬¦  «        5  t          t          ||d¬¦  «        d¦  «         d d d ¦  «         n# 1 swxY w Y   d d d ¦  «         d S # 1 swxY w Y   d S )NÚraise)Úallr   r,   rˆ   )r~   r,   r,   rû   r[   )r~   r¿   r[   r  r~   r¿   rÀ   rÁ   z!No positive class found in y_truer¯   r½   )r[   r[   r[   )r,   r~   r¿   rÃ   rÄ   rÆ   rÇ   rÈ   Úignore)r1   Úerrstater   r   r   r   r    r·   ÚUserWarningr   r–   )r…   rI   rG   rC   rn  rv   Úauc_prcs          rJ   Ú#test_precision_recall_curve_toydatar|  º  s«  € å	Œ˜Ð	!Ñ	!Ô	!ð V
ð V
à�Q�ˆØ�a�&ˆÝ(¨°ÈDÐQÑQÔQ‰ˆˆ1ˆaÝ)¨&°'Ñ:Ô:ˆÝ! ! [ [ [Ñ1Ô1Ð1Ý! ! Y Y YÑ/Ô/Ð/Ý˜G SÑ)Ô)Ð)à�Q�ˆØ�a�&ˆÝ(¨°ÈDÐQÑQÔQ‰ˆˆ1ˆaÝ)¨&°'Ñ:Ô:ˆÝ! ! _ _ _Ñ5Ô5Ð5Ý! ! _ _ _Ñ5Ô5Ð5õ 	˜G SÑ)Ô)Ð)à�Q�ˆØ�a�&ˆÝ(¨°ÈDÐQÑQÔQ‰ˆˆ1ˆaÝ)¨&°'Ñ:Ô:ˆÝ! ! c¨1 XÑ.Ô.Ð.Ý! ! c¨1 XÑ.Ô.Ð.Ý˜G SÑ)Ô)Ð)à�Q�ˆØ�a�&ˆÝ(¨°ÈDÐQÑQÔQ‰ˆˆ1ˆaÝ)¨&°'Ñ:Ô:ˆÝ! ! [ [ [Ñ1Ô1Ð1Ý! ! Y Y YÑ/Ô/Ð/Ý˜G SÑ)Ô)Ð)à�Q�ˆØ˜�*ˆÝ(¨°ÈDÐQÑQÔQ‰ˆˆ1ˆaÝ)¨&°'Ñ:Ô:ˆÝ! ! c¨1 XÑ.Ô.Ð.Ý! ! a¨ XÑ.Ô.Ð.Ý˜G SÑ)Ô)Ð)à�Q�ˆØ˜�,ˆÝŒ\�+Ð-PÐQÑQÔQð 	Vð 	VÝ,¨V°WÐPTÐUÑUÔU‰GˆAˆq�!ð	Vð 	Vð 	Vñ 	Vô 	Vð 	Vð 	Vð 	Vð 	Vð 	Vð 	Vøøøð 	Vð 	Vð 	Vð 	VåŒ\�+Ð-PÐQÑQÔQð 	?ð 	?Ý-¨f°gÑ>Ô>ˆGð	?ð 	?ð 	?ñ 	?ô 	?ð 	?ð 	?ð 	?ð 	?ð 	?ð 	?øøøð 	?ð 	?ð 	?ð 	?å˜˜9˜9˜9Ñ%Ô%Ð%Ý˜˜9˜9˜9Ñ%Ô%Ð%Ý˜ Ñ#Ô#Ð#à�Q�ˆØ˜�,ˆÝ(¨°ÈDÐQÑQÔQ‰ˆˆ1ˆaÝÕ3°F¸GÑDÔDÀcÑJÔJÐJÝ! ! _ _ _Ñ5Ô5Ð5Ý! ! ] ] ]Ñ3Ô3Ð3õ ”˜A˜q˜6 A q 6Ð*Ñ+Ô+ˆÝ”(˜Q ˜F Q¨ FÐ+Ñ,Ô,ˆÝŒ\�+Ð-PÐQÑQÔQð 	ð 	ÝÝ'¨°ÀÐIÑIÔIÈ3ñô ð ð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	õ Œ\�+Ð-PÐQÑQÔQð 	ð 	ÝÝ'¨°ÀÐLÑLÔLÈcñô ð ð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	õ 	Ý# F¨G¸YÐGÑGÔGÈñ	
ô 	
ð 	
õ 	Õ/°¸ÈÐQÑQÔQÐSVÑWÔWÐWå”˜A˜q˜6 A q 6Ð*Ñ+Ô+ˆÝ”(˜Q ˜F Q¨ FÐ+Ñ,Ô,ˆÝŒ\�+Ð-PÐQÑQÔQð 	ð 	ÝÝ'¨°ÀÐIÑIÔIÈ3ñô ð ð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	õ Œ\�+Ð-PÐQÑQÔQð 	ð 	ÝÝ'¨°ÀÐLÑLÔLÈcñô ð ð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	õ 	Ý# F¨G¸YÐGÑGÔGÈñ	
ô 	
ð 	
õ 	Õ/°¸ÈÐQÑQÔQÐSVÑWÔWÐWå”˜A˜q˜6 A q 6Ð*Ñ+Ô+ˆÝ”(˜Q ˜F Q¨ FÐ+Ñ,Ô,ˆÝÝ# F¨G¸WÐEÑEÔEÀsñ	
ô 	
ð 	
õ 	Ý# F¨G¸ZÐHÑHÔHÈ#ñ	
ô 	
ð 	
õ 	Ý# F¨G¸YÐGÑGÔGÈñ	
ô 	
ð 	
õ 	Ý# F¨G¸WÐEÑEÔEÀsñ	
ô 	
ð 	
õ ”˜A˜q˜6 A q 6Ð*Ñ+Ô+ˆÝ”(˜Q ˜F Q¨ FÐ+Ñ,Ô,ˆÝŒ\�+Ð-PÐQÑQÔQð 	ð 	ÝÝ'¨°ÀÐIÑIÔIÈ3ñô ð ð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	õ 	Ý# F¨G¸ZÐHÑHÔHÈ#ñ	
ô 	
ð 	
õ Œ\�+Ð-PÐQÑQÔQð 	ð 	ÝÝ'¨°ÀÐKÑKÔKÈSñô ð ð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	õ Œ\�+Ð-PÐQÑQÔQð 	ð 	ÝÝ'¨°ÀÐIÑIÔIÈ3ñô ð ð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	õ
 ”˜A˜q˜6 A q 6Ð*Ñ+Ô+ˆÝ”(˜Q ˜F Q¨ FÐ+Ñ,Ô,ˆÝÕ/°¸ÈÐQÑQÔQÐSVÑWÔWÐWÝÝ# F¨G¸ZÐHÑHÔHÈ#ñ	
ô 	
ð 	
õ 	Ý# F¨G¸YÐGÑGÔGÈñ	
ô 	
ð 	
õ 	Õ/°¸ÈÐQÑQÔQÐSVÑWÔWÐWå”˜A˜q˜6 A q 6Ð*Ñ+Ô+ˆÝ”(˜S #˜J¨¨c¨
Ð3Ñ4Ô4ˆÝÝ# F¨G¸WÐEÑEÔEÀsñ	
ô 	
ð 	
õ 	Ý# F¨G¸ZÐHÑHÔHÈ#ñ	
ô 	
ð 	
õ 	Ý# F¨G¸YÐGÑGÔGÈñ	
ô 	
ð 	
õ 	Ý# F¨G¸WÐEÑEÔEÀsñ	
ô 	
ð 	
ðiV
ð V
ð V
ñ V
ô V
ð V
ð V
ð V
ð V
ð V
ð V
øøøð V
ð V
ð V
ð V
õp 
Œ˜Ð	"Ñ	"Ô	"ð ð å”˜A˜q˜6 A q 6Ð*Ñ+Ô+ˆÝ”(˜Q ˜F Q¨ FÐ+Ñ,Ô,ˆÝŒ\�+Ð-PÐQÑQÔQð 	ð 	ÝÝ'¨°ÀÐLÑLÔLÈañô ð ð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	ð	ð ð ñ ô ð ð ð ð ð ð ð øøøð ð ð ð ð ð s‘  –HcÈ$IÈ;cÉI	ÉcÉI	ÉcÉ-J
É>cÊ
J	ÊcÊJ	ÊC&cÍ8!N%ÎcÎ%N)	Î)cÎ,N)	Î-cÏ!O8Ï,cÏ8O<	Ï<cÏ?O<	Ð BcÒ!R?Ò3cÒ?S	ÓcÓS	ÓcÓ%!TÔcÔT	ÔcÔT	ÔEcÙ !ZÚcÚZ	ÚcÚZ	Ú>cÛ!\ Û4cÜ \	ÜcÜ\	ÜcÜ&!]ÝcÝ]	ÝcÝ]	ÝE+cãcãcã2Afå!e/å#få/e3	å3få6e3	å7fæfæfc                  ó†  — g d¢} g d¢}t          | |d¬¦  «        \  }}}t          |g d¢¦  «         g d¢} g d¢}t          | |d¬¦  «        \  }}}t          |g d¢¦  «         g d	¢} g d
¢}t          | |d¬¦  «        \  }}}t          |ddg¦  «         g d¢} g d
¢}t          | |d¬¦  «        \  }}}t          |g d
¢¦  «         dS )z9Check the behaviour of the `drop_intermediate` parameter.rË   rÌ   Trˆ   )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,   N)r   r   )rI   rG   rh   ri   r�   s        rJ   Ú-test_precision_recall_curve_drop_intermediater€  ^  sH  € àÐÐ€FØ,Ð,Ð,€GÝ$:Ø�¨4ð%ñ %ô %Ñ!€Iˆv�zõ �J   Ñ0Ô0Ð0ð 5Ð4Ð4€FØOÐOÐO€GÝ$:Ø�¨4ð%ñ %ô %Ñ!€Iˆv�zõ �JÐ >Ð >Ð >Ñ?Ô?Ð?ð ˆ\ˆ\€FØ"Ð"Ð"€GÝ$:Ø�¨4ð%ñ %ô %Ñ!€Iˆv�zõ �J  c 
Ñ+Ô+Ð+ð ˆ\ˆ\€FØ"Ð"Ð"€GÝ$:Ø�¨4ð%ñ %ô %Ñ!€Iˆv�zõ �JÐ 4Ð 4Ð 4Ñ5Ô5Ð5Ð5Ð5rL   c                  ó    — t          j        dt          ¬¦  «        } d| d d d…<   t          j        d¦  «        }t	          | |¦  «        dk    sJ ‚d S )Nr“   rL  r,   rå   rÀ   )r1   r©   r4   r¨   r   ©rI   rG   s     rJ   Ú&test_average_precision_constant_valuesrƒ  €  sW   € õ
 ŒX�c¥Ð%Ñ%Ô%€FØ€Fˆ3ˆ3ˆQˆ3�KåŒg�c‰lŒl€Gõ # 6¨7Ñ3Ô3°tÒ;Ð;Ð;Ð;Ð;Ð;rL   c                  óî   — t          j        ddg¦  «        } t          j        ddg¦  «        }d}t          j        t          |¬¦  «        5  t          | |d¬¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )Nr   r,   z>pos_label=2 is not a valid label. It should be one of \[0, 1\]r¯   r%   ©rT   ©r1   r–   r    r¡   r¢   r   ©rI   rH   rQ  s      rJ   Ú4test_average_precision_score_binary_pos_label_errorsrˆ  Ž  s»   € åŒX�q˜!�fÑÔ€FÝŒX�q˜!�fÑÔ€FØO€GÝ	Œ•z¨Ð	1Ñ	1Ô	1ð =ð =Ý ¨¸!Ð<Ñ<Ô<Ð<ð=ð =ð =ñ =ô =ð =ð =ð =ð =ð =ð =ð =øøøð =ð =ð =ð =ð =ð =s   Á
A*Á*A.Á1A.c                  ó  — t          j        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g¦  «        }d}t          j        t          |¬¦  «        5  t          | |d¬	¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )
Nr,   r   r¥   rÒ   rÓ   rÍ   znParameter pos_label is fixed to 1 for multilabel-indicator y_true. Do not set pos_label or set pos_label to 1.r¯   r…  r†  r‡  s      rJ   Ú8test_average_precision_score_multilabel_pos_label_errorsrŠ  —  sî   € õ ŒX˜˜1�v  1˜v¨¨1 v°°1¨vÐ6Ñ7Ô7€FÝŒX˜˜S�z C¨ :°°S¨z¸CÀ¸:ÐFÑGÔG€Fð	6ð õ 
Œ•z¨Ð	1Ñ	1Ô	1ð =ð =Ý ¨¸!Ð<Ñ<Ô<Ð<ð=ð =ð =ñ =ô =ð =ð =ð =ð =ð =ð =ð =øøøð =ð =ð =ð =ð =ð =s   ÁA>Á>BÂBc            	      ó  — t          j        g d¢¦  «        } 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 ¦  «         d S # 1 swxY w Y   d S )
N)r   r,   r%   r   r,   r%   )r~   rÍ   rÒ   )rÙ   r~   rØ   )rÒ   rÍ   rÎ   )rÍ   rØ   r~   zdParameter pos_label is fixed to 1 for multiclass y_true. Do not set pos_label or set pos_label to 1.r¯   r’   r…  r†  r‡  s      rJ   Ú8test_average_precision_score_multiclass_pos_label_errorsrŒ  ¤  sò   € åŒXÐ(Ð(Ð(Ñ)Ô)€FÝŒXàˆOˆOØˆOˆOØˆOˆOØˆOˆOØˆOˆOØˆOˆOð	
ñ	ô 	€Fð	6ð õ 
Œ•z¨Ð	1Ñ	1Ô	1ð =ð =Ý ¨¸!Ð<Ñ<Ô<Ð<ð=ð =ð =ñ =ô =ð =ð =ð =ð =ð =ð =ð =øøøð =ð =ð =ð =ð =ð =s   ÁA:Á:A>ÂA>c                  ó²  — t          d¬¦  «        \  } }}t          | |¦  «        }t          | d|z  ¦  «        }t          | d|z  ¦  «        }t          | |dz
  ¦  «        }||k    sJ ‚||k    sJ ‚||k    sJ ‚t          | |¦  «        }t          | d|z  ¦  «        }t          | d|z  ¦  «        }	t          | |dz
  ¦  «        }
||k    sJ ‚||	k    sJ ‚||
k    sJ ‚d S )NTr‡   r“   g�íµ ÷Æ°>rK  )rK   r   r   )rI   rv   rG   rŽ   Úroc_auc_scaled_upÚroc_auc_scaled_downÚroc_auc_shiftedÚpr_aucÚpr_auc_scaled_upÚpr_auc_scaled_downÚpr_auc_shifteds              rJ   Útest_score_scale_invariancer•  ¹  s  € õ )°Ð5Ñ5Ô5Ñ€FˆAˆwå˜F GÑ,Ô,€GÝ% f¨c°G©mÑ<Ô<ÐÝ'¨°°w±Ñ?Ô?ÐÝ# F¨G°b©LÑ9Ô9€OØÐ'Ò'Ð'Ð'Ð'ØÐ)Ò)Ð)Ð)Ð)Ø�oÒ%Ð%Ð%Ð%å$ V¨WÑ5Ô5€FÝ.¨v°s¸W±}ÑEÔEÐÝ0°¸À¹ÑHÔHÐÝ,¨V°W¸r±\ÑBÔB€NØÐ%Ò%Ð%Ð%Ð%ØÐ'Ò'Ð'Ð'Ð'Ø�^Ò#Ð#Ð#Ð#Ð#Ð#rL   z(y_true,y_score,expected_fpr,expected_fnrr½   râ   )r   rÀ   r~   )r~   rÁ   r,   ©rÀ   r~   rÁ   rú   r¾   r¿   rá   )r,   r,   r~   rù   rû   )r   r~   r~   c                 ón   — t          | |¦  «        \  }}}t          ||¦  «         t          ||¦  «         d S ©N©r   r   ©rI   rG   Úexpected_fprÚexpected_fnrrt   Úfnrrv   s          rJ   Útest_det_curve_toydatarž  Ò  s?   € õ6 ˜F GÑ,Ô,�K€Cˆˆaå�C˜Ñ&Ô&Ð&Ý�C˜Ñ&Ô&Ð&Ð&Ð&rL   ©rÀ   r~   r~   c                 ón   — t          | |¦  «        \  }}}t          ||¦  «         t          ||¦  «         d S r˜  r™  rš  s          rJ   Útest_det_curve_tie_handlingr¡  ó  s?   € õ ˜F GÑ,Ô,�K€Cˆˆaå�C˜Ñ&Ô&Ð&Ý�C˜Ñ&Ô&Ð&Ð&Ð&rL   c                  ón   — t          t          g d¢g d¢¦  «        t          g d¢g d¢¦  «        ¦  «         d S )Nr½   râ   rË   )r   r   r~   r~   r,   r,   )r   r   r³   rL   rJ   Útest_det_curve_sanity_checkr£    sN   € åÝ�)�)�)˜[˜[˜[Ñ)Ô)ÝÐ$Ð$Ð$Ð&<Ð&<Ð&<Ñ=Ô=ñô ð ð ð rL   rG   )r   rÀ   r~   rÁ   r,   c                 óÀ   — t          g d¢t          j        d| ¦  «        ¬¦  «        \  }}}t          |dg¦  «         t          |dg¦  «         t          || g¦  «         d S )N)r   r,   r   r,   r   r,   ræ   r‚  r,   r   )r   r1   r¸   r   )rG   rt   r�  rj   s       rJ   Útest_det_curve_constant_scoresr¥    sr   € å#Ø!Ð!Ð!­2¬7°1°gÑ+>Ô+>ðñ ô Ñ€Cˆˆiõ �C˜!˜ÑÔÐÝ�C˜!˜ÑÔÐÝ�I ˜yÑ)Ô)Ð)Ð)Ð)rL   rI   )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,   c                 ót   — t          | | ¬¦  «        \  }}}t          |dg¦  «         t          |dg¦  «         d S )Nr‚  r   r™  )rI   rt   r�  rv   s       rJ   Útest_det_curve_perfect_scoresr§    sF   € õ  6°6Ð:Ñ:Ô:�K€Cˆˆaå�C˜!˜ÑÔÐÝ�C˜!˜ÑÔÐÐÐrL   zy_true, y_pred, err_msgzinconsistent numbers of samples©r   r   r   z Only one class present in y_true©r,   r,   r,   )Úcancerrª  ú
not cancer)rÍ   rØ   rÓ   zpos_label is not specifiedc                 óŽ   — t          j        t          |¬¦  «        5  t          | |¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )Nr¯   )r    r¡   r¢   r   r‡  s      rJ   Útest_det_curve_bad_inputr­  +  s�   € õ  
Œ•z¨Ð	1Ñ	1Ô	1ð "ð "Ý�&˜&Ñ!Ô!Ð!ð"ð "ð "ñ "ô "ð "ð "ð "ð "ð "ð "ð "øøøð "ð "ð "ð "ð "ð "ó   œ:º>Á>c                  ó’  — dgdz  dgdz  z   } t          j        g d¢¦  «        }d|z
  }t          | |d¬¦  «        \  }}}t          | |d¬¦  «        \  }}}|d         t          j        d	¦  «        k    sJ ‚|d         t          j        d
¦  «        k    sJ ‚t          ||d d d…         ¦  «         t          ||d d d…         ¦  «         d S )Nrª  r’   r«  rç   )
rÒ   rÙ   rÎ   rÍ   rØ   rÙ   r~   rÎ   rÏ   r¥   r,   r…  r   rÙ   rÍ   rN   )r1   r–   r   r    r'  r   )	rI   Úy_pred_pos_not_cancerÚy_pred_pos_cancerÚfpr_pos_cancerÚfnr_pos_cancerÚth_pos_cancerÚfpr_pos_not_cancerÚfnr_pos_not_cancerÚth_pos_not_cancers	            rJ   Útest_det_curve_pos_labelr¸  ?  s  € ØˆZ˜!‰^˜|˜n¨qÑ0Ñ0€FÝœHÐ%WÐ%WÐ%WÑXÔXÐØÐ1Ñ1Ðå4=ØØØð5ñ 5ô 5Ñ1€N�N Mõ
 AJØØØðAñ Aô AÑ=ÐÐ*Ð,=ð ˜Ô�vœ}¨SÑ1Ô1Ò1Ð1Ð1Ð1Ø˜QÔ¥6¤=°Ñ#5Ô#5Ò5Ð5Ð5Ð5õ �NÐ$6°t°t¸°tÔ$<Ñ=Ô=Ð=Ý�NÐ$6°t°t¸°tÔ$<Ñ=Ô=Ð=Ð=Ð=rL   c                 óÆ  — t           | ddggddgg¦  «        d¦  «         t           | ddggddgg¦  «        d¦  «         t           | ddggddgg¦  «        d¦  «         t           | g d¢gg d¢g¦  «        d¦  «         t           | g d¢gg d¢g¦  «        d¦  «         t           | g d	¢gg d¢g¦  «        d¦  «         t           | g d
¢gg d¢g¦  «        d¦  «         t           | g d¢gg d¢g¦  «        d¦  «         t           | g d¢gg d¢g¦  «        d¦  «         t           | g d¢gg d¢g¦  «        d¦  «         t           | g d¢gg d¢g¦  «        d¦  «         t           | g d	¢gg d¢g¦  «        d¦  «         t           | g d
¢gg d¢g¦  «        d¦  «         t           | g d¢gg d¢g¦  «        d¦  «         t           | g d¢gg d¢g¦  «        d¦  «         t           | g d¢gg d¢g¦  «        d¦  «         t           | g d¢gg d¢g¦  «        d¦  «         t           | g d¢gg d¢g¦  «        d¦  «         t           | g d	¢gg d¢g¦  «        d¦  «         t           | g d
¢gg d¢g¦  «        d¦  «         t           | g d¢gg d¢g¦  «        d¦  «         t           | g d¢gg d¢g¦  «        d¦  «         t           | g d¢gg d¢g¦  «        d¦  «         t           | ddggddgg¦  «        d¦  «         t           | ddggddgg¦  «        d¦  «         t           | ddggddgg¦  «        d¦  «         t           | g d¢gg d¢g¦  «        d¦  «         t           | g d¢gg d¢g¦  «        d¦  «         t           | g d	¢gg d¢g¦  «        d¦  «         t           | g d
¢gg d¢g¦  «        d¦  «         t           | g d¢gg d¢g¦  «        d¦  «         t           | g d¢gg d¢g¦  «        d¦  «         t           | g d¢gg d¢g¦  «        d¦  «         t           | g d¢gg d¢g¦  «        d¦  «         t           | g d¢gg d¢g¦  «        d¦  «         d S )Nr   r,   rÀ   rÁ   r~   r½   r–  rú   r¾   rá   gUUUUUUÕ?rù   gªªªªªªê?rû   gªªªªªªâ?©rÁ   r~   rÀ   r©  ©r~   rÁ   rÀ   rŸ  )r~   r~   r~   çUUUUUUå?)r,   r,   r,   r   )r~   r~   r~   r~   )r   ©Ú
lrap_scores    rJ   Úcheck_lrap_toyr¿  Y  s/  € å˜
˜
 Q¨ F 8¨t°T¨l¨^Ñ<Ô<¸aÑ@Ô@Ð@Ý˜
˜
 Q¨ F 8¨t°T¨l¨^Ñ<Ô<¸eÑDÔDÐDÝ˜
˜
 Q¨ F 8¨t°T¨l¨^Ñ<Ô<¸aÑ@Ô@Ð@å˜
˜
 I I I ;Ð1BÐ1BÐ1BÐ0CÑDÔDÀaÑHÔHÐHÝ˜
˜
 I I I ;Ð1BÐ1BÐ1BÐ0CÑDÔDÀeÑLÔLÐLÝ˜
˜
 I I I ;Ð1BÐ1BÐ1BÐ0CÑDÔDÀaÑHÔHÐHÝ˜
˜
 I I I ;Ð1BÐ1BÐ1BÐ0CÑDÔDÀeÑLÔLÐLÝØˆ
�I�I�I�;Ð!2Ð!2Ð!2Ð 3Ñ4Ô4Ð6Iñô ð õ Øˆ
�I�I�I�;Ð!2Ð!2Ð!2Ð 3Ñ4Ô4Ð6Iñô ð õ ˜
˜
 I I I ;Ð1BÐ1BÐ1BÐ0CÑDÔDÀeÑLÔLÐLÝ˜
˜
 I I I ;Ð1BÐ1BÐ1BÐ0CÑDÔDÀeÑLÔLÐLÝØˆ
�I�I�I�;Ð!2Ð!2Ð!2Ð 3Ñ4Ô4Ð6Iñô ð õ ˜
˜
 I I I ;Ð1BÐ1BÐ1BÐ0CÑDÔDÀaÑHÔHÐHÝ˜
˜
 I I I ;Ð1BÐ1BÐ1BÐ0CÑDÔDÀoÑVÔVÐVÝ˜
˜
 I I I ;Ð1BÐ1BÐ1BÐ0CÑDÔDÀaÑHÔHÐHÝ˜
˜
 I I I ;Ð1BÐ1BÐ1BÐ0CÑDÔDÀaÑHÔHÐHå˜
˜
 I I I ;Ð1BÐ1BÐ1BÐ0CÑDÔDÀeÑLÔLÐLÝ˜
˜
 I I I ;Ð1BÐ1BÐ1BÐ0CÑDÔDÀaÑHÔHÐHÝ˜
˜
 I I I ;Ð1BÐ1BÐ1BÐ0CÑDÔDÀoÑVÔVÐVÝ˜
˜
 I I I ;Ð1BÐ1BÐ1BÐ0CÑDÔDÀeÑLÔLÐLÝØˆ
�I�I�I�;Ð!2Ð!2Ð!2Ð 3Ñ4Ô4Ð6Iñô ð õ ˜
˜
 I I I ;Ð1BÐ1BÐ1BÐ0CÑDÔDÀaÑHÔHÐHÝ˜
˜
 I I I ;Ð1BÐ1BÐ1BÐ0CÑDÔDÀaÑHÔHÐHõ ˜
˜
 Q¨ F 8¨s°C¨j¨\Ñ:Ô:¸CÑ@Ô@Ð@Ý˜
˜
 Q¨ F 8¨s°C¨j¨\Ñ:Ô:¸CÑ@Ô@Ð@Ý˜
˜
 Q¨ F 8¨s°C¨j¨\Ñ:Ô:¸AÑ>Ô>Ð>å˜
˜
 I I I ;Ð1AÐ1AÐ1AÐ0BÑCÔCÀSÑIÔIÐIÝ˜
˜
 I I I ;Ð1AÐ1AÐ1AÐ0BÑCÔCÀSÑIÔIÐIÝ˜
˜
 I I I ;Ð1AÐ1AÐ1AÐ0BÑCÔCÀQÑGÔGÐGÝ˜
˜
 I I I ;Ð1AÐ1AÐ1AÐ0BÑCÔCÀUÑKÔKÐKÝØˆ
�I�I�I�;Ð!1Ð!1Ð!1Ð 2Ñ3Ô3Ð5Hñô ð õ Øˆ
�I�I�I�;Ð!1Ð!1Ð!1Ð 2Ñ3Ô3Ð5Hñô ð õ ˜
˜
 I I I ;Ð1AÐ1AÐ1AÐ0BÑCÔCÀQÑGÔGÐGå˜
˜
 I I I ;°°°Ð0AÑBÔBÀEÑJÔJÐJå˜
˜
 L L L >Ð4HÐ4HÐ4HÐ3IÑJÔJÈEÑRÔRÐRÐRÐRrL   c           	      óÞ  — t          d¦  «        }t          dd¦  «        D ]¢}|                     d|f¬¦  «        }t          j        |¦  «        }t          j        d|f¦  «        } | ||¦  «        dk    sJ ‚ | ||¦  «        dk    sJ ‚t          j        d|f¦  «        } | ||¦  «        dk    sJ ‚ | ||¦  «        dk    sJ ‚Œ£t           | dgdgdgdggdgdgdgdgg¦  «        d¦  «         d S )Nr   r%   rÚ   r,   r”   r[   r~   )r#   r]   Úuniformr1   rs  r©   r¨   r   )r¾  r+   Ún_labelsrG   Úy_score_tiesrI   s         rJ   Ú!check_zero_or_all_relevant_labelsrÄ  ”  sA  € Ý% aÑ(Ô(€Lå˜!˜Q‘K”Kð 7ð 7ˆØ×&Ò&¨Q°¨MÐ&Ñ:Ô:ˆÝ”} WÑ-Ô-ˆõ ”˜1˜h˜-Ñ(Ô(ˆØˆz˜& 'Ñ*Ô*¨cÒ1Ð1Ð1Ð1Øˆz˜& ,Ñ/Ô/°3Ò6Ð6Ð6Ð6õ ”˜!˜X˜Ñ'Ô'ˆØˆz˜& 'Ñ*Ô*¨cÒ1Ð1Ð1Ð1Øˆz˜& ,Ñ/Ô/°3Ò6Ð6Ð6Ð6Ð6õ Øˆ
�Q�C˜!˜˜q˜c A 3Ð'¨3¨%°#°¸¸À¸uÐ)EÑFÔFÈñô ð ð ð rL   c                 óö  — t          j        t          ¦  «        5   | g d¢g d¢¦  «         d d d ¦  «         n# 1 swxY w Y   t          j        t          ¦  «        5   | g d¢g d¢g d¢g d¢g¦  «         d d d ¦  «         n# 1 swxY w Y   t          j        t          ¦  «        5   | g d¢g d¢g d¢g d¢g¦  «         d d d ¦  «         n# 1 swxY w Y   t          j        t          ¦  «        5   | ddgddggddg¦  «         d d d ¦  «         n# 1 swxY w Y   t          j        t          ¦  «        5   | ddgddggddgg¦  «         d d d ¦  «         n# 1 swxY w Y   t          j        t          ¦  «        5   | ddgddggdgdgg¦  «         d d d ¦  «         n# 1 swxY w Y   t          j        t          ¦  «        5   | ddggddgddgg¦  «         d d d ¦  «         n# 1 swxY w Y   t          j        t          ¦  «        5   | dgdggddgddgg¦  «         d d d ¦  «         n# 1 swxY w Y   t          j        t          ¦  «        5   | ddgddggdgdgg¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )	Nrú   )rÀ   rØ   rÍ   rî   )rÀ   rÁ   r¿   )rÏ   rØ   r¿   )rÓ   rÍ   r¿   r   r,   )r    r¡   r¢   r½  s    rJ   Úcheck_lrap_error_raisedrÆ  «  s  € å	Œ•zÑ	"Ô	"ð 0ð 0Øˆ
�9�9�9Ð.Ð.Ð.Ñ/Ô/Ð/ð0ð 0ð 0ñ 0ô 0ð 0ð 0ð 0ð 0ð 0ð 0øøøð 0ð 0ð 0ð 0å	Œ•zÑ	"Ô	"ð Uð UØˆ
�9�9�9Ð0Ð0Ð0°/°/°/À?À?À?ÐSÑTÔTÐTðUð Uð Uñ Uô Uð Uð Uð Uð Uð Uð Uøøøð Uð Uð Uð Uå	Œ•zÑ	"Ô	"ð 
ð 
Øˆ
ØˆOˆOÐ/Ð/Ð/°°°À/À/À/ÐRñ	
ô 	
ð 	
ð
ð 
ð 
ñ 
ô 
ð 
ð 
ð 
ð 
ð 
ð 
øøøð 
ð 
ð 
ð 
õ 
Œ•zÑ	"Ô	"ð -ð -Øˆ
�Q˜�F˜Q ˜FÐ# a¨ VÑ,Ô,Ð,ð-ð -ð -ñ -ô -ð -ð -ð -ð -ð -ð -øøøð -ð -ð -ð -å	Œ•zÑ	"Ô	"ð /ð /Øˆ
�Q˜�F˜Q ˜FÐ# q¨! f XÑ.Ô.Ð.ð/ð /ð /ñ /ô /ð /ð /ð /ð /ð /ð /øøøð /ð /ð /ð /å	Œ•zÑ	"Ô	"ð 1ð 1Øˆ
�Q˜�F˜Q ˜FÐ# q c¨A¨3 ZÑ0Ô0Ð0ð1ð 1ð 1ñ 1ô 1ð 1ð 1ð 1ð 1ð 1ð 1øøøð 1ð 1ð 1ð 1å	Œ•zÑ	"Ô	"ð /ð /Øˆ
�Q˜�F�8˜q !˜f q¨! fÐ-Ñ.Ô.Ð.ð/ð /ð /ñ /ô /ð /ð /ð /ð /ð /ð /øøøð /ð /ð /ð /å	Œ•zÑ	"Ô	"ð 1ð 1Øˆ
�Q�C˜!˜�:  A ¨¨A¨Ð/Ñ0Ô0Ð0ð1ð 1ð 1ñ 1ô 1ð 1ð 1ð 1ð 1ð 1ð 1øøøð 1ð 1ð 1ð 1å	Œ•zÑ	"Ô	"ð 1ð 1Øˆ
�Q˜�F˜Q ˜FÐ# q c¨A¨3 ZÑ0Ô0Ð0ð1ð 1ð 1ñ 1ô 1ð 1ð 1ð 1ð 1ð 1ð 1ð 1øøøð 1ð 1ð 1ð 1ð 1ð 1sœ   š7·;¾;ÁA?Á?BÂBÂ#CÃCÃCÃ+DÄDÄDÄ0EÅEÅEÅ6FÆFÆ FÆ=GÇG#Ç&G#ÈH&È&H*È-H*É
I.É.I2É5I2c           	      ó&  — t          dd¦  «        D ]}t          j        d|f¦  «        }t          d|¦  «        D ]V}t          ||z
  ¦  «        D ]A}t          j        d|f¦  «        }d|d|||z   …f<   t	           | ||¦  «        ||z  ¦  «         ŒBŒWŒ€d S )Nr%   rK  r,   r   )r]   r1   r¨   r©   r   )r¾  rÂ  rG   Ú
n_relevantrU   rI   s         rJ   Úcheck_lrap_only_tiesrÉ  Å  sÓ   € õ ˜!˜R‘L”Lð 	Xð 	XˆÝ”'˜1˜h˜-Ñ(Ô(ˆõ    8Ñ,Ô,ð 	Xð 	XˆJå˜X¨
Ñ2Ñ3Ô3ð Xð X�Ýœ 1 h -Ñ0Ô0�Ø45��q˜#  jÑ 0Ð0Ð0Ñ1Ý# J J¨v°wÑ$?Ô$?ÀÈhÑAVÑWÔWÐWÐWðXð	Xð		Xð 	XrL   c                 ó.  ‡‡— t          dd¦  «        D �] }|t          j        |¦  «                             d|f¦  «        dz   z
  }t          j        d|f¦  «        }d|d<   d|d<   t           | ||¦  «        d|z  dz   dz  ¦  «         t          d|¦  «        D ]zŠt          |‰z
  ¦  «        D ]eŠt          j        d|f¦  «        }d|d‰‰‰z   …f<   t           | ||¦  «        t          ˆˆfd„t          ‰¦  «        D ¦   «         ¦  «        ¦  «         ŒfŒ{�Œd S )Nr%   rK  r,   )r   r   )r   rN   r   c              3   ó:   •K  — | ]}|d z   ‰|z   d z   ‰z  z  V — ŒdS )r,   Nr³   )r´   rn  rÈ  rU   s     €€rJ   ú	<genexpr>z>check_lrap_without_tie_and_increasing_score.<locals>.<genexpr>è  sM   øè è € ð ð àð ˜Q™ C¨!¡G¨a¡K°:Ñ#=Ñ>ðð ð ð ð ð rL   )r]   r1   r2   rP   r©   r   rQ   )r¾  rÂ  rG   rI   rÈ  rU   s       @@rJ   Ú+check_lrap_without_tie_and_increasing_scorerÍ  Ô  sv  øø€ õ ˜!˜R‘L”Lð ñ ˆØ�bœi¨Ñ1Ô1×9Ò9¸1¸h¸-ÑHÔHÈ1ÑLÑMˆõ ”˜1˜h˜-Ñ(Ô(ˆØˆˆt‰Øˆˆu‰Ý˜J˜J v¨wÑ7Ô7¸!¸h¹,ÈÑ:JÈaÑ9OÑPÔPÐPõ    8Ñ,Ô,ð 	ð 	ˆJå˜X¨
Ñ2Ñ3Ô3ð 	ð 	�Ýœ 1 h -Ñ0Ô0�Ø45��q˜#  jÑ 0Ð0Ð0Ñ1Ý#Ø�J˜v wÑ/Ô/Ýð ð ð ð ð å!& zÑ!2Ô!2ðñ ô ñ ô ñô ð ð ð	ñ	ðð rL   c                 óÈ  ‡‡— t          | |¦  «         t          | ¦  «        } t          |¦  «        }| j        \  }}t          j        |f¦  «        }t          |¦  «        D ]ð}t          j        ||         d¬¦  «        \  }}|j        }||z
  Št          j        ‰|dz   ¬¦  «         	                    ¦   «         }	|	‰         Š| |          
                    ¦   «         d         }
|
j        dk    s|
j        |k    rd||<   Œœd||<   |
D ]7Št          ˆˆfd„|
D ¦   «         ¦  «        }||xx         |‰‰         z  z  cc<   Œ8||xx         |
j        z  cc<   Œñ|                     ¦   «         S )z8Simple implementation of label ranking average precisionT)Úreturn_inverser,   )Ú	minlengthr   r¿   c              3   ó<   •K  — | ]}‰|         ‰‰         k    V — Œd S r˜  r³   )r´   rn  ÚlabelÚranks     €€rJ   rÌ  z_my_lrap.<locals>.<genexpr>  s0   øè è € Ð JÐ J¸A  a¤¨D°¬KÒ!7Ð JÐ JÐ JÐ JÐ JÐ JrL   )r"   r!   r0   r1   Úemptyr]   rO   r•   ÚbincountÚcumsumÚnonzerorQ   rk  )rI   rG   rA   rÂ  r`   ra   Úunique_rankÚinv_rankÚn_ranksÚ	corr_rankÚrelevantÚn_ranked_aboverÒ  rÓ  s               @@rJ   Ú_my_lraprÞ  ï  s‹  øø€ å˜F GÑ,Ô,Ð,Ý˜Ñ Ô €FÝ˜'Ñ"Ô"€GØ œ,Ñ€IˆxÝŒH�i�\Ñ"Ô"€EÝ�9ÑÔð "ð "ˆõ !#¤	¨'°!¬*ÀTÐ JÑ JÔ JÑˆ�XØÔ"ˆØ˜Ñ!ˆõ ”K °¸!±Ð<Ñ<Ô<×CÒCÑEÔEˆ	Ø˜Œˆà˜!”9×$Ò$Ñ&Ô& qÔ)ˆØŒ=˜AÒÐ ¤°(Ò!:Ð!:ØˆE�!‰HØàˆˆa‰Øð 	5ð 	5ˆEõ !Ð JÐ JÐ JÐ JÐ JÀÐ JÑ JÔ JÑJÔJˆNð �!ˆHˆHŒH˜¨¨e¬Ñ4Ñ4ˆHˆH‰HˆHàˆaˆˆŒ�H”MÑ!ˆˆ‰ˆà�:Š:‰<Œ<ÐrL   rÚ   rE  c                 óÚ  — t          dd|||¬¦  «        \  }}t          |j        d         |j        d         |¬¦  «        }t          |d¦  «        r|                     ¦   «         }t          ||¦  «        }t          ||¦  «        }t          ||¦  «         t          |¦  «        }| 	                    ||f¬¦  «        }t          ||¦  «        }t          ||¦  «        }t          ||¦  «         d S )Nr,   F)rB   Úallow_unlabeledr+   Ú	n_classesrA   r   )Ún_componentsrB   r+   Útoarrayr”   )
r   r   r0   Úhasattrrã  r   rÞ  r   r#   rÁ  )	r¾  rá  rA   r+   rv   rI   rG   Ú
score_lrapÚscore_my_lraps	            rJ   Ú%check_alternative_lrap_implementationrç    s  € õ /ØØØ!ØØðñ ô �I€A€võ $Ø”\ !”_Ø”< ”?Ø!ðñ ô €Gõ ˆw˜	Ñ"Ô"ð $Ø—/’/Ñ#Ô#ˆÝ6°v¸wÑGÔG€JÝ˜V WÑ-Ô-€MÝ˜
 MÑ2Ô2Ð2õ & lÑ3Ô3€LØ×"Ò"¨°IÐ(>Ð"Ñ?Ô?€GÝ6°v¸wÑGÔG€JÝ˜V WÑ-Ô-€MÝ˜
 MÑ2Ô2Ð2Ð2Ð2rL   ÚcheckÚfuncc                 ó   —  | |¦  «         d S r˜  r³   )rè  ré  s     rJ   Útest_label_ranking_avprë  5  s   € ð 
€Eˆ$�K„K€K€K€KrL   c                  ó.   — t          t          ¦  «         d S r˜  )rÆ  r   r³   rL   rJ   Útest_lrap_error_raisedrí  C  s   € ÝÕAÑBÔBÐBÐBÐBrL   rA   )r,   r%   rè   rE  rá  )r%   rÚ   rK  r+   c                 ó4   — t          t          || |¦  «         d S r˜  )rç  r   )rA   rá  r+   s      rJ   Ú$test_alternative_lrap_implementationrï  G  s)   € õ *Ý-¨y¸)À\ñô ð ð ð rL   c                  ót  — t          j        g d¢g d¢g d¢gt          ¬¦  «        } t          j        g d¢g d¢g d¢g¦  «        }t          j        g d¢¦  «        }t          j        g d	¢¦  «        }t          t	          | ||¬
¦  «        t          j        ||z  ¦  «        t          j        |¦  «        z  ¦  «         d S )Nr  rh  r~  rL  )rØ   rÙ   rÍ   rÒ   )rÒ   rÍ   rØ   rÙ   ©rÙ   rØ   rÍ   rÒ   )r~   rÁ   r[   )r[   r[   r¿   rÛ   )r1   r–   Úboolr   r   rQ   )rI   rG   Úsamplewise_lrapsrÜ   s       rJ   Ú&test_lrap_sample_weighting_zero_labelsrô  P  sß   € õ ŒX�|�|�| \ \ \°<°<°<Ð@ÍÐMÑMÔM€FÝŒhØ	Ð	Ð	Ð3Ð3Ð3Ð5IÐ5IÐ5IÐJñô €Gõ ”xÐ 0Ð 0Ð 0Ñ1Ô1ÐÝ”H˜_˜_˜_Ñ-Ô-€MåÝ-Ø�G¨=ð	
ñ 	
ô 	
õ 	Œˆ}Ð/Ñ/Ñ0Ô0µ2´6¸-Ñ3HÔ3HÑHñ	ô ð ð ð rL   c            	      óú  — t          t          ddggddgg¦  «        d¦  «         t          t          ddggddgg¦  «        d¦  «         t          t          ddggddgg¦  «        d¦  «         t          t          ddggddgg¦  «        d¦  «         t          t          g d¢gg d¢g¦  «        d¦  «         t          t          g d¢gg d¢g¦  «        d¦  «         t          t          g d	¢gg d¢g¦  «        d¦  «         t          t          g d
¢gg d¢g¦  «        d¦  «         t          t          g d¢gg d¢g¦  «        d¦  «         t          t          g d¢gg d¢g¦  «        d¦  «         t          t          g d¢gg d¢g¦  «        d¦  «         t          t          g d¢gg d¢g¦  «        d¦  «         t          t          g d¢gg d¢g¦  «        d¦  «         t          t          g d¢gg d¢g¦  «        d¦  «         t          t          g d	¢gg d¢g¦  «        d¦  «         t          t          g d
¢gg d¢g¦  «        d¦  «         t          t          g d¢gg d¢g¦  «        d¦  «         t          t          g d¢gg d¢g¦  «        d¦  «         t          t          g d¢gg d¢g¦  «        d¦  «         t          t          g d¢gg d¢g¦  «        d¦  «         t          t          g d¢gg d¢g¦  «        d¦  «         t          t          g d¢gg d¢g¦  «        d¦  «         t          t          g d	¢gg d¢g¦  «        d¦  «         t          t          g d
¢gg d¢g¦  «        d¦  «         t          t          g d¢gg d¢g¦  «        d¦  «         t          t          g d¢gg d¢g¦  «        d¦  «         t          t          g d¢gg d¢g¦  «        d¦  «         t          t          g d¢gg d¢g¦  «        d¦  «         t          t          g d	¢g d¢gg d¢g d¢g¦  «        d¦  «         t          t          g d	¢g d¢g d
¢gg d¢g d¢g d¢g¦  «        d¦  «         t          t          g d	¢g d¢g d
¢gg d¢g d¢g d¢g¦  «        d¦  «         d S )Nr   r,   rÀ   rÁ   r%   r¨  r–  r½   rú   r¾   rá   r’   rù   rû   r©  rº  r»  ©rÒ   g      $@éýÿÿÿ©r   r,   r’   r-  ©rÒ   rK  r÷  r>  g«ªªªªª@©r’   r,   r’   ©r   r   r³   rL   rJ   Útest_coverage_errorrü  e  st  € å�¨¨A¨ x°4¸°,°Ñ@Ô@À!ÑDÔDÐDÝ�¨¨A¨ x°4¸°,°Ñ@Ô@À!ÑDÔDÐDÝ�¨¨A¨ x°4¸°,°Ñ@Ô@À!ÑDÔDÐDÝ�¨¨A¨ x°4¸°,°Ñ@Ô@À!ÑDÔDÐDå�¨	¨	¨	 {Ð5FÐ5FÐ5FÐ4GÑHÔHÈ!ÑLÔLÐLÝ�¨	¨	¨	 {Ð5FÐ5FÐ5FÐ4GÑHÔHÈ!ÑLÔLÐLÝ�¨	¨	¨	 {Ð5FÐ5FÐ5FÐ4GÑHÔHÈ!ÑLÔLÐLÝ�¨	¨	¨	 {Ð5FÐ5FÐ5FÐ4GÑHÔHÈ!ÑLÔLÐLÝ�¨	¨	¨	 {Ð5FÐ5FÐ5FÐ4GÑHÔHÈ!ÑLÔLÐLÝ�¨	¨	¨	 {Ð5FÐ5FÐ5FÐ4GÑHÔHÈ!ÑLÔLÐLÝ�¨	¨	¨	 {Ð5FÐ5FÐ5FÐ4GÑHÔHÈ!ÑLÔLÐLÝ�¨	¨	¨	 {Ð5FÐ5FÐ5FÐ4GÑHÔHÈ!ÑLÔLÐLå�¨	¨	¨	 {Ð5FÐ5FÐ5FÐ4GÑHÔHÈ!ÑLÔLÐLÝ�¨	¨	¨	 {Ð5FÐ5FÐ5FÐ4GÑHÔHÈ!ÑLÔLÐLÝ�¨	¨	¨	 {Ð5FÐ5FÐ5FÐ4GÑHÔHÈ!ÑLÔLÐLÝ�¨	¨	¨	 {Ð5FÐ5FÐ5FÐ4GÑHÔHÈ!ÑLÔLÐLÝ�¨	¨	¨	 {Ð5FÐ5FÐ5FÐ4GÑHÔHÈ!ÑLÔLÐLÝ�¨	¨	¨	 {Ð5FÐ5FÐ5FÐ4GÑHÔHÈ!ÑLÔLÐLÝ�¨	¨	¨	 {Ð5FÐ5FÐ5FÐ4GÑHÔHÈ!ÑLÔLÐLÝ�¨	¨	¨	 {Ð5FÐ5FÐ5FÐ4GÑHÔHÈ!ÑLÔLÐLå�¨	¨	¨	 {Ð5FÐ5FÐ5FÐ4GÑHÔHÈ!ÑLÔLÐLÝ�¨	¨	¨	 {Ð5FÐ5FÐ5FÐ4GÑHÔHÈ!ÑLÔLÐLÝ�¨	¨	¨	 {Ð5FÐ5FÐ5FÐ4GÑHÔHÈ!ÑLÔLÐLÝ�¨	¨	¨	 {Ð5FÐ5FÐ5FÐ4GÑHÔHÈ!ÑLÔLÐLÝ�¨	¨	¨	 {Ð5FÐ5FÐ5FÐ4GÑHÔHÈ!ÑLÔLÐLÝ�¨	¨	¨	 {Ð5FÐ5FÐ5FÐ4GÑHÔHÈ!ÑLÔLÐLÝ�¨	¨	¨	 {Ð5FÐ5FÐ5FÐ4GÑHÔHÈ!ÑLÔLÐLÝ�¨	¨	¨	 {Ð5FÐ5FÐ5FÐ4GÑHÔHÈ!ÑLÔLÐLõ Ý˜	˜	˜	 9 9 9Ð-°°°ÀÀÀÐ/KÑLÔLØñô ð õ
 ÝØˆYˆY˜	˜	˜	 9 9 9Ð-°°°¸y¸y¸yÈ)È)È)Ð/Tñ	
ô 	
ð 	ñ	ô ð õ ÝØˆYˆY˜	˜	˜	 9 9 9Ð-°°°¸y¸y¸yÈ)È)È)Ð/Tñ	
ô 	
ð 	ñ	ô ð ð ð rL   c                  óf  — t          t          ddggddgg¦  «        d¦  «         t          t          ddggddgg¦  «        d¦  «         t          t          ddggddgg¦  «        d¦  «         t          t          ddggddgg¦  «        d¦  «         t          t          g d¢gg d¢g¦  «        d¦  «         t          t          g d¢gg d¢g¦  «        d¦  «         t          t          g d¢gg d¢g¦  «        d¦  «         t          t          g d	¢gg d¢g¦  «        d¦  «         t          t          g d
¢gg d¢g¦  «        d¦  «         t          t          g d¢gg d¢g¦  «        d¦  «         t          t          g d¢gg d¢g¦  «        d¦  «         t          t          g d¢gg d¢g¦  «        d¦  «         d S )Nr   r~   r,   r%   r¨  rŸ  r½   rú   r¾   rá   r’   rù   rû   r©  rû  r³   rL   rJ   Útest_coverage_tie_handlingrþ  œ  sð  € Ý�¨¨A¨ x°3¸°*°Ñ>Ô>ÀÑBÔBÐBÝ�¨¨A¨ x°3¸°*°Ñ>Ô>ÀÑBÔBÐBÝ�¨¨A¨ x°3¸°*°Ñ>Ô>ÀÑBÔBÐBÝ�¨¨A¨ x°3¸°*°Ñ>Ô>ÀÑBÔBÐBå�¨	¨	¨	 {Ð5EÐ5EÐ5EÐ4FÑGÔGÈÑKÔKÐKÝ�¨	¨	¨	 {Ð5EÐ5EÐ5EÐ4FÑGÔGÈÑKÔKÐKÝ�¨	¨	¨	 {Ð5EÐ5EÐ5EÐ4FÑGÔGÈÑKÔKÐKÝ�¨	¨	¨	 {Ð5EÐ5EÐ5EÐ4FÑGÔGÈÑKÔKÐKÝ�¨	¨	¨	 {Ð5EÐ5EÐ5EÐ4FÑGÔGÈÑKÔKÐKÝ�¨	¨	¨	 {Ð5EÐ5EÐ5EÐ4FÑGÔGÈÑKÔKÐKÝ�¨	¨	¨	 {Ð5EÐ5EÐ5EÐ4FÑGÔGÈÑKÔKÐKÝ�¨	¨	¨	 {Ð5EÐ5EÐ5EÐ4FÑGÔGÈÑKÔKÐKÐKÐKrL   zy_true, y_scorec                 óŽ   — t          j        t          d¬¦  «        5  t          | |¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )Nz'Expected 2D array, got 1D array insteadr¯   )r    r¡   r¢   r   r‚  s     rJ   Útest_coverage_1d_error_messager   ¬  sŽ   € õ 
Œ•zÐ)SÐ	TÑ	TÔ	Tð (ð (Ý�v˜wÑ'Ô'Ð'ð(ð (ð (ñ (ô (ð (ð (ð (ð (ð (ð (ð (øøøð (ð (ð (ð (ð (ð (r®  c                  ó,  — t          t          ddggddgg¦  «        d¦  «         t          t          ddggddgg¦  «        d¦  «         t          t          g d¢gg d¢g¦  «        d¦  «         t          t          g d¢gg d¢g¦  «        d¦  «         t          t          g d	¢gg d¢g¦  «        d¦  «         t          t          g d
¢gg d¢g¦  «        d¦  «         t          t          g d¢gg d¢g¦  «        d¦  «         t          t          g d¢gg d¢g¦  «        d¦  «         t          t          ddggddgg¦  «        d¦  «         t          t          ddggddgg¦  «        d¦  «         t          t          ddggddgg¦  «        d¦  «         t          t          ddggddgg¦  «        d¦  «         t          t          g d¢gg d¢g¦  «        d¦  «         t          t          g d¢gg d¢g¦  «        d¦  «         t          t          g d¢gg d¢g¦  «        d¦  «         t          t          g d¢gg d¢g¦  «        d¦  «         t          t          g d¢g d¢gg d¢g d¢g¦  «        d¦  «         t          t          g d¢g d¢g d	¢gg d¢g d¢g d¢g¦  «        d¦  «         t          t          g d¢g d¢g d	¢gg d¢g d¢g d¢g¦  «        d¦  «         t          t          t          t          j        g d¢g d¢g¦  «        ¦  «        g d¢g d¢g¦  «        d¦  «         d S )Nr   r,   rÀ   rÁ   r½   r–  rú   r~   r¾   rá   r[   rù   rû   r¨  r»  r©  rŸ  rö  rø  rù  r>  rú  )r   r   r   r1   r–   r³   rL   rJ   Útest_label_ranking_lossr  »  sÝ  € ÝÕ*¨Q°¨F¨8°t¸T°l°^ÑDÔDÀaÑHÔHÐHÝÕ*¨Q°¨F¨8°t¸T°l°^ÑDÔDÀaÑHÔHÐHåÕ*¨I¨I¨I¨;Ð9JÐ9JÐ9JÐ8KÑLÔLÈaÑPÔPÐPÝÕ*¨I¨I¨I¨;Ð9JÐ9JÐ9JÐ8KÑLÔLÈeÑTÔTÐTÝÕ*¨I¨I¨I¨;Ð9JÐ9JÐ9JÐ8KÑLÔLÈaÑPÔPÐPÝÕ*¨I¨I¨I¨;Ð9JÐ9JÐ9JÐ8KÑLÔLÈeÑTÔTÐTÝÕ*¨I¨I¨I¨;Ð9JÐ9JÐ9JÐ8KÑLÔLÈeÑTÔTÐTÝÕ*¨I¨I¨I¨;Ð9JÐ9JÐ9JÐ8KÑLÔLÈeÑTÔTÐTõ Õ*¨Q°¨F¨8°t¸T°l°^ÑDÔDÀaÑHÔHÐHÝÕ*¨Q°¨F¨8°t¸T°l°^ÑDÔDÀaÑHÔHÐHÝÕ*¨Q°¨F¨8°s¸C°j°\ÑBÔBÀAÑFÔFÐFÝÕ*¨Q°¨F¨8°s¸C°j°\ÑBÔBÀAÑFÔFÐFåÕ*¨I¨I¨I¨;Ð9JÐ9JÐ9JÐ8KÑLÔLÈaÑPÔPÐPÝÕ*¨I¨I¨I¨;Ð9JÐ9JÐ9JÐ8KÑLÔLÈaÑPÔPÐPÝÕ*¨I¨I¨I¨;Ð9IÐ9IÐ9IÐ8JÑKÔKÈQÑOÔOÐOÝÕ*¨I¨I¨I¨;Ð9IÐ9IÐ9IÐ8JÑKÔKÈQÑOÔOÐOõ Ý˜I˜I˜I y y yÐ1°O°O°OÀYÀYÀYÐ3OÑPÔPØñô ð õ
 ÝØˆYˆY˜	˜	˜	 9 9 9Ð-°°°¸y¸y¸yÈ)È)È)Ð/Tñ	
ô 	
ð 	"ñ	ô ð õ ÝØˆYˆY˜	˜	˜	 9 9 9Ð-°°°¸y¸y¸yÈ)È)È)Ð/Tñ	
ô 	
ð 	"ñ	ô ð õ ÝÝ•r”x   ¨I¨I¨IÐ 6Ñ7Ô7Ñ8Ô8¸=¸=¸=È)È)È)Ð:Tñ	
ô 	
ð 	ñ	ô ð ð ð rL   c                  ó„  — t          j        t          ¦  «        5  t          ddgddggddg¦  «         d d d ¦  «         n# 1 swxY w Y   t          j        t          ¦  «        5  t          ddgddggddgg¦  «         d d d ¦  «         n# 1 swxY w Y   t          j        t          ¦  «        5  t          ddgddggdgdgg¦  «         d d d ¦  «         n# 1 swxY w Y   t          j        t          ¦  «        5  t          ddggddgddgg¦  «         d d d ¦  «         n# 1 swxY w Y   t          j        t          ¦  «        5  t          dgdggddgddgg¦  «         d d d ¦  «         n# 1 swxY w Y   t          j        t          ¦  «        5  t          ddgddggdgdgg¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )Nr   r,   )r    r¡   r¢   r   r³   rL   rJ   Ú$test_ranking_appropriate_input_shaper  î  sE  € å	Œ•zÑ	"Ô	"ð 5ð 5Ý˜Q ˜F Q¨ FÐ+¨a°¨VÑ4Ô4Ð4ð5ð 5ð 5ñ 5ô 5ð 5ð 5ð 5ð 5ð 5ð 5øøøð 5ð 5ð 5ð 5å	Œ•zÑ	"Ô	"ð 7ð 7Ý˜Q ˜F Q¨ FÐ+¨q°!¨f¨XÑ6Ô6Ð6ð7ð 7ð 7ñ 7ô 7ð 7ð 7ð 7ð 7ð 7ð 7øøøð 7ð 7ð 7ð 7å	Œ•zÑ	"Ô	"ð 9ð 9Ý˜Q ˜F Q¨ FÐ+¨q¨c°A°3¨ZÑ8Ô8Ð8ð9ð 9ð 9ñ 9ô 9ð 9ð 9ð 9ð 9ð 9ð 9øøøð 9ð 9ð 9ð 9å	Œ•zÑ	"Ô	"ð 7ð 7Ý˜Q ˜F˜8 q¨! f¨q°!¨fÐ%5Ñ6Ô6Ð6ð7ð 7ð 7ñ 7ô 7ð 7ð 7ð 7ð 7ð 7ð 7øøøð 7ð 7ð 7ð 7å	Œ•zÑ	"Ô	"ð 9ð 9Ý˜Q˜C ! ˜:¨¨A¨°°A°Ð'7Ñ8Ô8Ð8ð9ð 9ð 9ñ 9ô 9ð 9ð 9ð 9ð 9ð 9ð 9øøøð 9ð 9ð 9ð 9å	Œ•zÑ	"Ô	"ð 9ð 9Ý˜Q ˜F Q¨ FÐ+¨q¨c°A°3¨ZÑ8Ô8Ð8ð9ð 9ð 9ñ 9ô 9ð 9ð 9ð 9ð 9ð 9ð 9ð 9øøøð 9ð 9ð 9ð 9ð 9ð 9si   š?¿AÁAÁ#B	Â	BÂBÂ-CÃCÃCÃ8DÄD"Ä%D"ÅE)Å)E-Å0E-ÆF5Æ5F9Æ<F9c                  óF  — t          t          ddggddgg¦  «        d¦  «         t          t          ddggddgg¦  «        d¦  «         t          t          g d¢gg d¢g¦  «        d¦  «         t          t          g d¢gg d¢g¦  «        d¦  «         t          t          g d¢gg d¢g¦  «        d¦  «         t          t          g d¢gg d¢g¦  «        d¦  «         t          t          g d	¢gg d¢g¦  «        d¦  «         t          t          g d
¢gg d¢g¦  «        d¦  «         d S )Nr,   r   r~   r½   rŸ  rú   r¾   rá   rù   rû   )r   r   r³   rL   rJ   Útest_ranking_loss_ties_handlingr  þ  sX  € åÕ*¨Q°¨F¨8°s¸C°j°\ÑBÔBÀAÑFÔFÐFÝÕ*¨Q°¨F¨8°s¸C°j°\ÑBÔBÀAÑFÔFÐFÝÕ*¨I¨I¨I¨;Ð9IÐ9IÐ9IÐ8JÑKÔKÈUÑSÔSÐSÝÕ*¨I¨I¨I¨;Ð9IÐ9IÐ9IÐ8JÑKÔKÈUÑSÔSÐSÝÕ*¨I¨I¨I¨;Ð9IÐ9IÐ9IÐ8JÑKÔKÈQÑOÔOÐOÝÕ*¨I¨I¨I¨;Ð9IÐ9IÐ9IÐ8JÑKÔKÈQÑOÔOÐOÝÕ*¨I¨I¨I¨;Ð9IÐ9IÐ9IÐ8JÑKÔKÈQÑOÔOÐOÝÕ*¨I¨I¨I¨;Ð9IÐ9IÐ9IÐ8JÑKÔKÈQÑOÔOÐOÐOÐOrL   c                  óä   — t          dd¬¦  «        \  } }| dz   }t          ||¦  «         t          j                             d¦  «                             d¦  «        \  }}t          ||¦  «         d S ©Nr   rK  )r+   rá  r,   )r%   r“   rK  )r   Ú_test_dcg_score_forr1   r5   r6   Úrandom_sample©rv   rI   rG   s      rJ   Útest_dcg_scorer  
  sp   € Ý.¸AÈÐLÑLÔL�I€A€vØˆg˜‰k€GÝ˜ Ñ(Ô(Ð(Ý”i×+Ò+¨AÑ.Ô.×<Ò<¸\ÑJÔJ�O€FˆGÝ˜ Ñ(Ô(Ð(Ð(Ð(rL   c                 ó:  — t          j        t          j        | j        d         ¦  «        dz   ¦  «        }t	          | | ¦  «        }t	          | |¦  «        }||k                         ¦   «         sJ ‚t	          | | d¬¦  «        |k                         ¦   «         sJ ‚|j        | j        d         fk    sJ ‚|j        | j        d         fk    sJ ‚|t          j        t          j        | ¦  «        d d …d d d…f         |z   	                    d¬¦  «        ¦  «        k    sJ ‚d S )Nr,   r%   rÚ   ©Úkr   rN   ©Úaxis)
r1   Úlog2r2   r0   r   rw  r    r'  ÚsortrQ   )rI   rG   ÚdiscountÚidealr`   s        rJ   r	  r	    s  € ÝŒw•r”y ¤¨a¤Ñ1Ô1°AÑ5Ñ6Ô6€HÝ˜v vÑ.Ô.€EÝ˜v wÑ/Ô/€EØ�UŠN×ÒÑ!Ô!Ð!Ð!Ð!Ý˜v v°Ð3Ñ3Ô3°uÒ<×AÒAÑCÔCÐCÐCÐCØŒ;˜6œ<¨œ?Ð,Ò,Ð,Ð,Ð,ØŒ;˜6œ<¨œ?Ð,Ò,Ð,Ð,Ð,Ø•F”M¥2¤7¨6¡?¤?°1°1°1°d°d¸°d°7Ô#;¸hÑ#F×"KÒ"KÐQRÐ"KÑ"SÔ"SÑTÔTÒTÐTÐTÐTÐTÐTrL   c            	      ó  — t          j        t          j        d¦  «        g¦  «        } t          j        | j        ¦  «        }t          | |¦  «        }t          | |d¬¦  «        }dt          j        t          j        dd¦  «        ¦  «        z  }|t          j        | 	                    ¦   «         |  
                    ¦   «         z  g¦  «        k    sJ ‚|t          j        || d d …d d d…f         z   	                    ¦   «         g¦  «        k    sJ ‚d|dd	d …f<   t          | |¦  «        }t          | |d¬¦  «        }|t          j        || d d …d d d…f         z   	                    ¦   «         g¦  «        k    sJ ‚|t          j        |d d…          	                    ¦   «         | dd	d …f          
                    ¦   «         z  |dd …          	                    ¦   «         | dd d	…f          
                    ¦   «         z  z   g¦  «        k    sJ ‚d S )
NrÚ   T©Úignore_tiesr,   r%   rç   rN   r   r’   )r1   r7  r2   r©   r0   r   r  r    r'  rQ   rk  )rI   rG   ÚdcgÚdcg_ignore_tiesÚ	discountss        rJ   Útest_dcg_tiesr    s÷  € ÝŒZ�œ 1™œ˜Ñ'Ô'€FÝŒh�v”|Ñ$Ô$€GÝ
˜V WÑ
-Ô
-€CÝ(¨°ÀdÐKÑKÔK€OØ•B”G�BœI a¨™OœOÑ,Ô,Ñ,€IØ•&”- §¢¡¤°6·;²;±=´=Ñ!@Ð AÑBÔBÒBÐBÐBÐBØ�fœm¨i¸&ÀÀÀÀDÀDÀbÀDÀ¼/Ñ.I×-NÒ-NÑ-PÔ-PÐ,QÑRÔRÒRÐRÐRÐRØ€GˆAˆqˆrˆrˆE�NÝ
˜V WÑ
-Ô
-€CÝ(¨°ÀdÐKÑKÔK€OØ�fœm¨i¸&ÀÀÀÀDÀDÀbÀDÀ¼/Ñ.I×-NÒ-NÑ-PÔ-PÐ,QÑRÔRÒRÐRÐRÐRØ•&”-à�b�q�bŒM×ÒÑÔ &¨¨A¨B¨B¨¤-×"4Ò"4Ñ"6Ô"6Ñ6Ø˜˜˜Œm×ÒÑ!Ô! F¨1¨b¨q¨b¨5¤M×$6Ò$6Ñ$8Ô$8Ñ8ñ9ð	
ñô ò ð ð ð ð ð rL   c            	      óÌ   — t          j        d¦  «                             d¦  «        } t          | | dd¬¦  «        t	          j        t          | | dd¬¦  «        ¦  «        k    sJ ‚d S )Né   )r%   ræ   r’   T)r  r  )r1   r2   rP   r   r    r'  )rï   s    rJ   Útest_ndcg_ignore_ties_with_kr  1  sq   € Ý
Œ	�"‰Œ×Ò˜fÑ%Ô%€AÝ�a˜˜a¨TÐ2Ñ2Ô2µf´mÝ�1�a˜1¨$Ð/Ñ/Ô/ñ7ô 7ò ð ð ð ð ð rL   c                  ó   — t          j        g d¢g¦  «        } t          j        g d¢g¦  «        }d}t          j        t          |¬¦  «        5  t          | |¦  «        t          j        d¦  «        k    sJ ‚	 d d d ¦  «         d S # 1 swxY w Y   d S )N)g{®Gázì¿gö(\�Âõà¿g®GázÞ¿gö(\�ÂõØ?gìQ¸…ëá?)gìQ¸…ë±?g×£p=
×Ó?rÁ   g…ëQ¸Õ?gHáz®GÑ?z�ndcg_score should not be used on negative y_true values. ndcg_score will raise a ValueError on negative y_true values starting from version 1.4.r¯   g�€&Â†Àx@)r1   r–   r    r·   ÚFutureWarningr   r'  )rI   rG   rº   s      rJ   Útest_ndcg_negative_ndarray_warnr"  9  s÷   € ÝŒXÐ8Ð8Ð8Ð9Ñ:Ô:€FÝŒhÐ6Ð6Ð6Ð7Ñ8Ô8€Gð	Mð õ 
Œ•mÐ+;Ð	<Ñ	<Ô	<ð Fð FÝ˜& 'Ñ*Ô*­f¬m¸HÑ.EÔ.EÒEÐEÐEÐEÐEðFð Fð Fñ Fô Fð Fð Fð Fð Fð Fð Fð Føøøð Fð Fð Fð Fð Fð Fs   Á)BÂBÂ
Bc                  óÖ  — t          j        d¦  «                             dd¦  «        } | t           j                             d¦  «                             dd| j        ¬¦  «        z   }t          | |¦  «        }t          | |d¬	¦  «        }|t          j	        |¦  «        k    sJ ‚|t          j	        d
¦  «        k    sJ ‚|dz  }t          | |¦  «        t          j	        d
¦  «        k    sJ ‚d S )NéF   rç   rK  r   çš™™™™™É¿rÍ   r”   Tr  r[   r.  )
r1   r2   rP   r5   r6   rÁ  r0   r   r    r'  )rI   rG   ÚndcgÚndcg_no_tiess       rJ   Útest_ndcg_invariantr(  D  sÝ   € ÝŒY�r‰]Œ]×"Ò" 1 bÑ)Ô)€FØ•r”y×,Ò,¨QÑ/Ô/×7Ò7¸¸cÈÌÐ7ÑUÔUÑU€GÝ�f˜gÑ&Ô&€DÝ˜f g¸4Ð@Ñ@Ô@€LØ•6”= Ñ.Ô.Ò.Ð.Ð.Ð.Ø•6”= Ñ%Ô%Ò%Ð%Ð%Ð%Øˆt�O€GÝ�f˜gÑ&Ô&­&¬-¸Ñ*<Ô*<Ò<Ð<Ð<Ð<Ð<Ð<rL   r  c           
      óv  — dt          j        d¦  «        d d…         z  }t          j        t          j        ddd¦  «        d¦  «        }|t           j                             d¦  «                             dd	|j        ¬
¦  «        z   }t          ||| ¬¦  «        t          j
        dt          j        t          j        dd¦  «        ¦  «        z  ¦  «        k    sJ ‚t          ||| ¬¦  «        t          j
        dt          j        t          j        dd¦  «        ¦  «        z  ¦  «        k    sJ ‚t          ||| ¬¦  «        t          j
        dt          j        t          j        dd¦  «        ¦  «        z  ¦  «        k    sJ ‚t          ||d| ¬¦  «        t          j
        dt          j        t          j        dd¦  «        ¦  «        z  ¦  «        k    sJ ‚t          ||| ¬¦  «        t          j
        dt          j        t          j        dd¦  «        ¦  «        z                       ¦   «         ¦  «        k    sJ ‚t!          ||| ¬¦  «        t          j
        dt          j        t          j        dd¦  «        ¦  «        z                       ¦   «         ¦  «        k    sJ ‚dt          j        d¦  «        z  }dt          j        t          j        dd¦  «        ¦  «        z                       ¦   «         }t          ||| ¬¦  «        t          j
        |t          j        d¦  «        z  ¦  «        k    sJ ‚t          ||| ¬¦  «        t          j
        t          j        d¦  «        ¦  «        k    sJ ‚t!          ||| ¬¦  «        t          j
        |¦  «        k    sJ ‚t          ||| ¬¦  «        t          j
        d¦  «        k    sJ ‚d S )Nr’   rç   rÚ   ræ   rN   )rÚ   r,   r   r%  rÍ   r”   r  r%   r,   rK  )Úlog_baser  )rÚ   rç   é	   r[   )r1   ÚeyeÚtiler2   r5   r6   rÁ  r0   r   r    r'  r  r   Úlog10r   rk  r   r¨   rQ   )r  rI   rG   Úy_score_noisyÚexpected_dcg_scores        rJ   Útest_ndcg_toy_examplesr1  O  sÄ  € à•”˜‘”˜2˜A˜2”Ñ€FÝŒg•b”i  2 rÑ*Ô*¨FÑ3Ô3€GØ�bœi×3Ò3°AÑ6Ô6×>Ò>Øˆc˜œð ?ñ ô ñ €Mõ Ø� [ðñ ô å	Œ�q�2œ7¥2¤9¨Q°¡?¤?Ñ3Ô3Ñ3Ñ	4Ô	4ò5ð 5ð 5ð 5õ Ø�¨;ðñ ô å	Œ�q�2œ7¥2¤9¨Q°¡?¤?Ñ3Ô3Ñ3Ñ	4Ô	4ò5ð 5ð 5ð 5õ Ø� [ðñ ô å	Œ�q�2œ7¥2¤9¨Q°¡?¤?Ñ3Ô3Ñ3Ñ	4Ô	4ò5ð 5ð 5ð 5õ Ø� "°+ðñ ô å	Œ�q�2œ8¥B¤I¨a°¡O¤OÑ4Ô4Ñ4Ñ	5Ô	5ò6ð 6ð 6ð 6õ �f˜g°;Ð?Ñ?Ô?Å6Ä=Ø	
�RŒW•R”Y˜q !‘_”_Ñ%Ô%Ñ	%×+Ò+Ñ-Ô-ñDô Dò ð ð ð õ �V˜W°+Ð>Ñ>Ô>Å&Ä-Ø	
�RŒW•R”Y˜q !‘_”_Ñ%Ô%Ñ	%×+Ò+Ñ-Ô-ñCô Cò ð ð ð ð •”˜‘”Ñ €FØ�bœg¥b¤i°°1¡o¤oÑ6Ô6Ñ6×;Ò;Ñ=Ô=ÐÝØ� [ðñ ô å	ŒÐ)­B¬G°A©J¬JÑ6Ñ	7Ô	7ò8ð 8ð 8ð 8õ Ø� [ðñ ô å	Œ•r”w˜q‘z”zÑ	"Ô	"ò#ð #ð #ð #õ �V˜W°+Ð>Ñ>Ô>Å&Ä-ØñCô Cò ð ð ð õ �f˜g°;Ð?Ñ?Ô?Å6Ä=ÐQTÑCUÔCUÒUÐUÐUÐUÐUÐUrL   c                  óš   — d} t          j        t          | ¬¦  «        5  t          dggdgg¦  «         ddd¦  «         dS # 1 swxY w Y   dS )zhCheck that we raise an informative error message when trying to
    compute NDCG with a single document.zTComputing NDCG is only meaningful when there is more than 1 document. Got 1 instead.r¯   r,   N)r    r¡   r¢   r   )rQ  s    rJ   Útest_ndcg_error_single_documentr3  v  sŸ   € ð	ð õ 
Œ•z¨Ð	1Ñ	1Ô	1ð !ð !Ý�Q�C�5˜A˜3˜%Ñ Ô Ð ð!ð !ð !ñ !ô !ð !ð !ð !ð !ð !ð !ð !øøøð !ð !ð !ð !ð !ð !s   žA Á AÁAc                  óä   — t          dd¬¦  «        \  } }| dz   }t          ||¦  «         t          j                             d¦  «                             d¦  «        \  }}t          ||¦  «         d S r  )r   Ú_test_ndcg_score_forr1   r5   r6   r
  r  s      rJ   Útest_ndcg_scorer6  �  sp   € Ý.¸AÈÐLÑLÔL�I€A€vØˆg˜‰k€GÝ˜ Ñ)Ô)Ð)Ý”i×+Ò+¨AÑ.Ô.×<Ò<¸\ÑJÔJ�O€FˆGÝ˜ Ñ)Ô)Ð)Ð)Ð)rL   c                 óJ  — t          | | ¦  «        }t          | |¦  «        }||k                         ¦   «         sJ ‚| dk                         d¬¦  «        }||          t          j        t	          j        |                      ¦   «         ¦  «        ¦  «        k    sJ ‚||         t          j        t	          j        |                     ¦   «         ¦  «        ¦  «        k    sJ ‚||          t          j        t          | |¦  «        |          t          | | ¦  «        |          z  ¦  «        k    sJ ‚||         t          j        t	          j        |                     ¦   «         ¦  «        ¦  «        k    sJ ‚|j	        | j	        d         fk    sJ ‚|j	        | j	        d         fk    sJ ‚d S )Nr   r,   r  )
r   rw  r    r'  r1   r¨   rQ   r©   r   r0   )rI   rG   r  r`   Úall_zeros        rJ   r5  r5  ‰  s‰  € Ý ¨Ñ/Ô/€EÝ ¨Ñ0Ô0€EØ�UŠN×ÒÑ!Ô!Ð!Ð!Ð!Ø˜!’× Ò  aÐ Ñ(Ô(€HØ�(�Ô�vœ}­R¬W°x°i·_²_Ñ5FÔ5FÑ-GÔ-GÑHÔHÒHÐHÐHÐHØ�Œ?�fœm­B¬H°X·\²\±^´^Ñ,DÔ,DÑEÔEÒEÐEÐEÐEØ�(�Ô�vœ}Ý˜6 7Ñ+Ô+¨X¨IÔ6Ý
˜V VÑ
,Ô
,¨h¨YÔ
7ñ	8ñ ô  ò ð ð ð ð �Œ?�fœm­B¬H°X·\²\±^´^Ñ,DÔ,DÑEÔEÒEÐEÐEÐEØŒ;˜6œ<¨œ?Ð,Ò,Ð,Ð,Ð,ØŒ;˜6œ<¨œ?Ð,Ò,Ð,Ð,Ð,Ð,Ð,rL   c            	      óž  — t          j        g d¢¦  «        } t          | | d¬¦  «        dk    sJ ‚t          | | d¬¦  «        dk    sJ ‚t          j        t
          ¦  «        5  t          | | d¬¦  «        sJ ‚	 d d d ¦  «         n# 1 swxY w Y   t          j        t
          ¦  «        5  t          | | d¬¦  «        sJ ‚	 d d d ¦  «         n# 1 swxY w Y   t          j        t
          ¦  «        5  t          | | d¬¦  «        sJ ‚	 d d d ¦  «         n# 1 swxY w Y   t          j        g d¢¦  «        }t          | |d¬¦  «        }t          | |¦  «        }||k    sJ ‚t          | |d	¬¦  «        d
k    sJ ‚t          d¬¦  «        \  } }}t          j        ddd¦  «        D ]1}t          t          | ||¬¦  «        t          | ||¦  «        ¦  «         Œ2d S )Nr  r,   )rs   gü©ñÒMbP?gš™™™™™¹¿gš™™™™™ñ?r   )rÒ   r   rÒ   g{®Gáz„?rØ   r~   Tr‡   g-Cëâ6?rÚ   )
r1   r–   r   r    r¡   r¢   rK   Úlinspacer   r„   )rI   r  Úroc_auc_with_max_fpr_oneÚunconstrained_roc_aucrH   rv   rs   s          rJ   Útest_partial_roc_auc_scorer=  ™  sÃ  € åŒX�l�l�lÑ#Ô#€FÝ˜ °Ð3Ñ3Ô3°qÒ8Ð8Ð8Ð8Ý˜ °Ð7Ñ7Ô7¸1Ò<Ð<Ð<Ð<Ý	Œ•zÑ	"Ô	"ð ;ð ;Ý˜V V°TÐ:Ñ:Ô:Ð:Ð:Ð:Ð:ð;ð ;ð ;ñ ;ô ;ð ;ð ;ð ;ð ;ð ;ð ;øøøð ;ð ;ð ;ð ;å	Œ•zÑ	"Ô	"ð :ð :Ý˜V V°SÐ9Ñ9Ô9Ð9Ð9Ð9Ð9ð:ð :ð :ñ :ô :ð :ð :ð :ð :ð :ð :øøøð :ð :ð :ð :å	Œ•zÑ	"Ô	"ð 8ð 8Ý˜V V°QÐ7Ñ7Ô7Ð7Ð7Ð7Ð7ð8ð 8ð 8ñ 8ô 8ð 8ð 8ð 8ð 8ð 8ð 8øøøð 8ð 8ð 8ð 8õ ŒxÐ+Ð+Ð+Ñ,Ô,€HÝ,¨V°XÀqÐIÑIÔIÐÝ)¨&°(Ñ;Ô;ÐØ#Ð'<Ò<Ð<Ð<Ð<Ý˜ °3Ð7Ñ7Ô7¸3Ò>Ð>Ð>Ð>å'¨tÐ4Ñ4Ô4Ñ€FˆF�AÝ”;˜t Q¨Ñ*Ô*ð 
ð 
ˆÝÝ˜& &°'Ð:Ñ:Ô:Ý" 6¨6°7Ñ;Ô;ñ	
ô 	
ð 	
ð 	
ð
ð 
s6   Á BÂBÂ	BÂ&CÃCÃCÃ,DÄDÄDzy_true, k, true_scorerÀ   r%   r’   rÁ   c                 óž   — t          j        g d¢g d¢g d¢g d¢g¦  «        }t          | ||¬¦  «        }|t          j        |¦  «        k    sJ ‚d S )Nrñ  ©rÒ   rØ   rÙ   rÍ   ©rÙ   rÒ   rÍ   rØ   ©rØ   rÍ   rÙ   rÒ   r  ©r1   r–   r   r    r'  )rI   r  Ú
true_scorerG   r`   s        rJ   Útest_top_k_accuracy_scorerD  ³  su   € õ Œhà Ð Ð Ø Ð Ð Ø Ð Ð Ø Ð Ð ð		
ñô €Gõ ! ¨°AÐ6Ñ6Ô6€EØ•F”M *Ñ-Ô-Ò-Ð-Ð-Ð-Ð-Ð-rL   zy_score, k, true_score)rN   rN   r,   r,   )rN   r,   rN   r,   )rÍ   rÍ   rÏ   rÏ   )rÍ   rÏ   rÍ   rÏ   c                 óV  — g d¢}|                       ¦   «         dk    r|                      ¦   «         dk    rdnd}|dk    r#| |k                         t          j        ¦  «        n|}t          || |¬¦  «        }t          ||¦  «        }||cxk    rt          j        |¦  «        k    sn J ‚d S )Nr  r   r,   r~   r  )	ÚminÚmaxÚastyper1   Úint64r   r
   r    r'  )rG   r  rC  rI   rj   rH   r`   Ú	score_accs           rJ   Ú test_top_k_accuracy_score_binaryrK  È  s¹   € ð ˆ\ˆ\€Fà—{’{‘}”}¨Ò)Ð)¨g¯kªk©m¬m¸qÒ.@Ð.@��Àa€IØ78¸A²v°vˆg˜	Ò!×)Ò)­"¬(Ñ3Ô3Ð3À6€Få  ¨°AÐ6Ñ6Ô6€EÝ˜v vÑ.Ô.€Ià�IÐ:Ð:Ò:Ð:¥¤¨zÑ!:Ô!:Ò:Ð:Ð:Ð:Ð:Ð:Ð:Ð:rL   zy_true, true_score, labels)r   r,   r,   r%   )r   r,   r,   r,   r  )rï   r?  r?  rï   )rï   rð   r  r?  Úlabels_as_ndarrayc                 óÌ   — |rt          j        |¦  «        }t          j        g d¢g d¢g d¢g d¢g¦  «        }t          | |d|¬¦  «        }|t	          j        |¦  «        k    sJ ‚dS )z,Test when labels and y_score are multiclass.rñ  r?  r@  rA  r%   ©r  rþ   N)r1   r7  r–   r   r    r'  )rI   rC  rþ   rL  rG   r`   s         rJ   Ú0test_top_k_accuracy_score_multiclass_with_labelsrO  ß  sŽ   € ð ð $Ý”˜FÑ#Ô#ˆÝŒhà Ð Ð Ø Ð Ð Ø Ð Ð Ø Ð Ð ð		
ñô €Gõ ! ¨°A¸fÐEÑEÔE€EØ•F”M *Ñ-Ô-Ò-Ð-Ð-Ð-Ð-Ð-rL   c                  ó„  ‡‡‡— t          j        dddd¬¦  «        \  ŠŠt          ‰‰d¬¦  «        \  } }}}t          d¬¦  «        Š‰                     | |¦  «         t          | |f||f¦  «        D ]O\  ŠŠˆˆˆfd„t          dd¦  «        D ¦   «         }t          j        t          j	        |¦  «        dk    ¦  «        sJ ‚ŒPd S )NrK  r.  r   )rá  rA   Ún_informativer+   )r+   c                 óZ   •— g | ]'}t          ‰‰                     ‰¦  «        |¬ ¦  «        ‘Œ(S )r  )r   r;   )r´   r  r?   rF   r@   s     €€€rJ   r¶   z8test_top_k_accuracy_score_increasing.<locals>.<listcomp>  sD   ø€ ð 
ð 
ð 
ØCDÕ   C×$5Ò$5°aÑ$8Ô$8¸AÐ>Ñ>Ô>ð
ð 
ð 
rL   r%   )
r   Úmake_classificationr   r	   r:   rZ  r]   r1   rw  rÞ   )ÚX_trainÚX_testÚy_trainÚy_testÚscoresr?   rF   r@   s        @@@rJ   Ú$test_top_k_accuracy_score_increasingrY  ü  s   øøø€ åÔ'Ø °BÀQðñ ô �D€A€qõ (8¸¸1È1Ð'MÑ'MÔ'MÑ$€GˆV�W˜få
¨!Ð
,Ñ
,Ô
,€CØ‡G‚GˆG�WÑÔÐå�W˜fÐ%¨°Ð'8Ñ9Ô9ð +ð +‰ˆˆ1ð
ð 
ð 
ð 
ð 
ð 
ÝHMÈaÐQSÉÌð
ñ 
ô 
ˆõ Œv•b”g˜f‘o”o¨Ò)Ñ*Ô*Ð*Ð*Ð*Ð*ð+ð +rL   c                 óš   — t          j        g d¢g d¢g d¢g d¢g¦  «        }t          | ||¬¦  «        t          j        |¦  «        k    sJ ‚d S )N)rÚ   rÚ   rç   r   )r,   rÚ   rÚ   rÚ   )r   r   r’   r’   r  r  rB  )rI   r  rC  rG   s       rJ   Útest_top_k_accuracy_score_tiesr[    sh   € õ ŒhàˆLˆLØˆLˆLØˆLˆLØˆLˆLð		
ñô €Gõ   ¨°1Ð5Ñ5Ô5½¼ÀzÑ9RÔ9RÒRÐRÐRÐRÐRÐRrL   z	y_true, krå   c                 óä   — t          j        g d¢g d¢g d¢g d¢g¦  «        }d}t          j        t          |¬¦  «        5  t          | ||¬¦  «        }d d d ¦  «         n# 1 swxY w Y   |dk    sJ ‚d S )	Nrñ  )rÒ   rÙ   rØ   rÍ   )rÍ   rÒ   rÙ   rØ   )rØ   rÍ   rÒ   rÙ   zu'k' \(\d+\) greater than or equal to 'n_classes' \(\d+\) will result in a perfect score and is therefore meaningless.r¯   r  r,   )r1   r–   r    r·   r   r   )rI   r  rG   rº   r`   s        rJ   Ú!test_top_k_accuracy_score_warningr]  $  sÛ   € õ Œhà Ð Ð Ø Ð Ð Ø Ð Ð Ø Ð Ð ð		
ñô €Gð	6ð õ 
ŒÕ,Ð4DÐ	EÑ	EÔ	Eð ;ð ;Ý$ V¨W¸Ð:Ñ:Ô:ˆð;ð ;ð ;ñ ;ô ;ð ;ð ;ð ;ð ;ð ;ð ;øøøð ;ð ;ð ;ð ;à�AŠ:ˆ:ˆ:ˆ:ˆ:ˆ:s   ¾AÁA!Á$A!zy_true, y_score, labels, msg)r   g=
×£p=â?r,   r%   )rÍ   rÒ   rÏ   )rÙ   rØ   rØ   rô   )rÙ   r~   rÒ   z9y type must be 'binary' or 'multiclass', got 'continuous'zZNumber of classes in 'y_true' \(4\) not equal to the number of classes in 'y_score' \(3\).)rñ   rñ   rï   rð   z"Parameter 'labels' must be unique.z#Parameter 'labels' must be ordered.)r   r   r,   r%   zSNumber of given labels \(4\) not equal to the number of classes in 'y_score' \(3\).rø  z3'y_true' contains labels not in parameter 'labels'.)r~   rÍ   rÍ   )rØ   rÙ   rÍ   z}`y_true` is binary while y_score is 2d with 3 classes. If `y_true` does not contain all the labels, `labels` must be providedc                 ó”   — t          j        t          |¬¦  «        5  t          | |d|¬¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )Nr¯   r%   rN  )r    r¡   r¢   r   )rI   rG   rþ   rA  s       rJ   Útest_top_k_accuracy_score_errorr_  =  s©   € õf 
Œ•z¨Ð	-Ñ	-Ô	-ð Bð BÝ˜V W°¸&ÐAÑAÔAÐAðBð Bð Bñ Bô Bð Bð Bð Bð Bð Bð Bð Bøøøð Bð Bð Bð Bð Bð Bs   œ=½AÁAc                  ó¸   — t          g d¢g d¢g¦  «        } t          j        g d¢g d¢g¦  «        }t          | |¦  «        }|t	          j        d¦  «        k    sJ ‚d S )Nrá   r½   )r~   r¥   rÎ   r¼  )r   r1   r–   r   r    r'  )rI   rG   Úresults      rJ   ÚOtest_label_ranking_avg_precision_score_should_allow_csr_matrix_for_y_true_inputrb  ”  sj   € õ ˜˜˜ I I IÐ.Ñ/Ô/€FÝŒh˜˜˜¨¨¨Ð3Ñ4Ô4€GÝ2°6¸7ÑCÔC€FØ•V”] 5Ñ)Ô)Ò)Ð)Ð)Ð)Ð)Ð)rL   Úmetricr5  ))FT)r   r,   )r¿   r[   )ÚzeroÚonec                 ó$  — t           j                             d¦  «        }d|d         }}|                     ||d¬¦  «        }|                     |¦  «        } | |||¬¦  «        }t          |t          ¦  «        rt          j        |¦  «        rJ ‚dS |\  }}	}
t          j        |¦  «                             ¦   «         rJ ‚t          j        |	¦  «                             ¦   «         rJ ‚t          j        |
¦  «                             ¦   «         rJ ‚dS )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.
    é*   rK  rN   T)r•   Úreplacer…  N)	r1   r5   r6   ÚchoicerF  Ú
isinstancerR   ÚisnanÚany)rc  r5  rD   rA   rT   rI   Úy_probara  Úmetric_1Úmetric_2r�   s              rJ   Ú#test_ranking_metric_pos_label_typesrp  �  s
  € õ Œ)×
Ò
 Ñ
#Ô
#€CØ˜w rœ{ˆy€IØ�ZŠZ˜ i¸ˆZÑ>Ô>€FØ�hŠh�yÑ!Ô!€GØˆV�F˜G¨yÐ9Ñ9Ô9€FÝ�&�%Ñ Ô ð .Ý”8˜FÑ#Ô#Ð#Ð#Ð#Ð#Ð#à)/Ñ&ˆ�(˜JÝ”8˜HÑ%Ô%×)Ò)Ñ+Ô+Ð+Ð+Ð+Ý”8˜HÑ%Ô%×)Ò)Ñ+Ô+Ð+Ð+Ð+Ý”8˜JÑ'Ô'×+Ò+Ñ-Ô-Ð-Ð-Ð-Ð-Ð-rL   c                 óþ   — t           j                             | ¦  «        }|                     ddd¬¦  «        }|                     d¦  «        }t          ||¦  «        \  }}}t          j        |d         ¦  «        sJ ‚dS )z¶Check that thresholds do not exceed 1.0 when `y_score` is a probability
    estimate.

    Non-regression test for:
    https://github.com/scikit-learn/scikit-learn/issues/26193
    r   r%   rK  r”   N)r1   r5   r6   r—   rF  r   Úisinf)r9  rD   rI   rG   rv   r�   s         rJ   Ú(test_roc_curve_with_probablity_estimatesrs  ·  sv   € õ Œ)×
Ò
Ð 2Ñ
3Ô
3€CØ�[Š[˜˜A Bˆ[Ñ'Ô'€FØ�hŠh�r‰lŒl€GÝ  ¨Ñ1Ô1Ñ€A€qˆ*ÝŒ8�J˜q”MÑ"Ô"Ð"Ð"Ð"Ð"Ð"rL   )NF)rÚ   rE  r   )‹rê   rO  Únumpyr1   r    Úscipyr   Úscipy.sparser   Úsklearnr   r   Úsklearn.datasetsr   Úsklearn.exceptionsr   Úsklearn.linear_modelr	   Úsklearn.metricsr
   r   r   r   r   r   r   r   r   r   r   r   r   Úsklearn.metrics._rankingr   r   Úsklearn.model_selectionr   Úsklearn.preprocessingr   Úsklearn.random_projectionr   Úsklearn.utils._testingr   r   r   r   Úsklearn.utils.extmathr    Úsklearn.utils.validationr!   r"   r#   ÚCURVE_FUNCSrK   rY   rd   rl   r„   ÚmarkÚparametrizer�   r™   rž   r£   r¦   r¬   r»   rÉ   rÕ   rß   rã   rí   r–   r  r  r#  r+  r=  rB  rI  rR  rU  r`  rf  rq  rj  r|  r€  rƒ  rˆ  rŠ  rŒ  r•  rž  r¡  r£  r¥  r§  r­  r¸  r¿  rÄ  rÆ  rÉ  rÍ  rÞ  rç  rë  rí  r]   rï  rô  rü  rþ  r   r  r  r  r  r	  r  r  r"  r(  r1  r3  r6  r5  r=  rD  rK  rO  rY  r[  r]  r_  rb  rp  rs  r³   rL   rJ   ú<module>r†     s7  ðØ 	€	€	€	Ø €€€à Ð Ð Ð Ø €€€Ø Ð Ð Ð Ð Ð Ø #Ð #Ð #Ð #Ð #Ð #à !Ð !Ð !Ð !Ð !Ð !Ð !Ð !Ø ;Ð ;Ð ;Ð ;Ð ;Ð ;Ø 5Ð 5Ð 5Ð 5Ð 5Ð 5Ø 3Ð 3Ð 3Ð 3Ð 3Ð 3ðð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð MÐ LÐ LÐ LÐ LÐ LÐ LÐ LØ 4Ð 4Ð 4Ð 4Ð 4Ð 4Ø 0Ð 0Ð 0Ð 0Ð 0Ð 0Ø ;Ð ;Ð ;Ð ;Ð ;Ð ;ðð ð ð ð ð ð ð ð ð ð ð ð *Ð )Ð )Ð )Ð )Ð )ðð ð ð ð ð ð ð ð ð ð ØØð€ð)#ð )#ð )#ð )#ð`2ð 2ð 2ðð ð ð<ð ð ð&Hð Hð Hð8 „×Ò˜ $¨ Ñ/Ô/ð
)ð 
)ñ 0Ô/ð
)ð
"ð 
"ð 
"ð)ð )ð )ð&#ð #ð #ð)ð )ð )ð)ð )ð )ð8)ð )ð )ð6eNð eNð eNðPMð Mð Mð	)ð 	)ð 	)ð.ð .ð .ð&ð ð ð" „×ÒØà	ˆŒ�,�,�,Ñ	Ô	   Ð+Ø	ˆŒ�,�,�,Ñ	Ô	 Ð&Ø	Ð	Ð	˜˜˜Ð/Ø	Ð	Ð	˜tÐ$ð	ñô ð/Xð /Xñô ð/Xðd „×ÒØà	ˆŒ�,�,�,Ñ	Ô	   Ð+Ø	ˆŒÐ&Ð&Ð&Ñ	'Ô	'¨¨¨Ð9ðñô ðð ñô ðð: „×ÒØà	ˆŒ�,�,�,Ñ	Ô	 Ð&Ø	Ð	Ð	˜tÐ$Ø	ˆˆ�y�y�yÐ!Ø	Ð	Ð	˜˜˜Ð/ð	ñô ðð ñô ððD „×ÒØðð ð ñô ðð ñô ððD:ð :ð :ð( „×ÒØà	,¨h¨b¬h°|°|°|Ñ.DÔ.DÀiÀiÀiÐPà/ØˆBŒHÐ)Ð)Ð)Ñ*Ô*ØˆOˆOð	
ðð ˆBŒH�\�\�\Ñ"Ô"Øð	
ð 1ØˆBŒHÐ)Ð)Ð)Ñ*Ô*ØˆOˆOð	
ðð ˆBŒH�\�\�\Ñ"Ô"Ø�ˆFð	
ðð ˆBŒHÐ)Ð)Ð)Ñ*Ô*Ø�#ˆJð	
ðð ˆBŒH�\�\�\Ñ"Ô"ØˆLˆLð	
ðð ˆBŒHÐ)Ð)Ð)Ñ*Ô*Ø Ð Ð ð	
ð AØˆBŒHÐ)Ð)Ð)Ñ*Ô*ØˆOˆOð	
ð AØˆBŒHÐ)Ð)Ð)Ñ*Ô*ØˆOˆOð	
ð AØˆBŒH�\�\�\Ñ"Ô"ØˆIˆIð	
ð}CñFô FðN „×Ò˜¨°¨Ñ7Ô7ðPð Pñ 8Ô7ñOFô FðPPð „×ÒØð'ð "°%Ð8Ð8ð	
ð'ð "°%Ð8Ð8ð	
ðFð "°BÐ7Ð7ð	
ðð "¨cÐ2Ð2ð	
ð 
4°RÐ8ð=ñ"ô "ðF	0ð 	0ñG"ô "ðF	0ð*ð *ð *ð@ „×Ò˜ {Ñ3Ô3ð#ð #ñ 4Ô3ð#ð „×Ò˜ {Ñ3Ô3ð Eð  Eñ 4Ô3ð EðF „×Ò˜ {Ñ3Ô3ð	&ð 	&ñ 4Ô3ð	&ð „×Ò˜ $¨ Ñ/Ô/ð ð  ñ 0Ô/ð ð>)ð )ð )ð, „×Ò˜ $¨ Ñ/Ô/ð`ð `ñ 0Ô/ð`ðF6ð 6ð 6ðD<ð <ð <ð=ð =ð =ð
=ð 
=ð 
=ð=ð =ð =ð*$ð $ð $ð2 „×ÒØ.à	ˆˆ�K�K�K !  q cÐ*Ø	ˆˆ�N�N�N Q C¨!¨Ð-Ø	ˆˆ�N�N�N Q C¨!¨Ð-Ø	ˆˆÐ%Ð%Ð%¨ s¨Q¨CÐ0Ø	ˆˆ�K�K�K # ¨¨Ð,Ø	ˆˆ�N�N�N S E¨A¨3Ð/Ø	ˆˆ�N�N�N S E¨A¨3Ð/Ø	ˆˆÐ%Ð%Ð%¨ u¨q¨cÐ2Ø	ˆˆ�K�K�K # ¨¨Ð,Ø	ˆˆ�N�N�N Q C¨!¨Ð-Ø	ˆˆ�N�N�N Q C¨!¨Ð-Ø	ˆˆÐ%Ð%Ð%¨ s¨Q¨CÐ0Ø	ˆˆ�K�K�K   ¨i¨i¨iÐ8Ø	ˆˆ�N�N�N K K K°°°Ð;Ø	ˆˆ�N�N�N K K K°°°Ð;Ø	ˆˆÐ%Ð%Ð% { { {°I°I°IÐ>Ø	ˆˆ�K�K�K   ¨M¨M¨MÐ:Ø	ˆˆ�N�N�N I I I¨}¨}¨}Ð=Ø	ˆˆ�N�N�N I I I¨}¨}¨}Ð=Ø	ˆˆÐ%Ð%Ð% y y y°-°-°-Ð@ð)ñô ð2'ð 'ñ3ô ð2'ð „×ÒØ.à
ˆQˆ�#�s�˜a˜S 1 #Ð&Ø
ˆQˆ�#�s�˜a˜S 1 #Ð&Ø	ˆˆÐ$Ð$Ð$ s e¨a¨SÐ1Ø	ˆˆÐ$Ð$Ð$ s e¨a¨SÐ1Ø	ˆˆÐ$Ð$Ð$ q c¨A¨3Ð/Ø	ˆˆÐ$Ð$Ð$ q c¨A¨3Ð/Ø	ˆˆÐ$Ð$Ð$ q c¨A¨3Ð/Ø	ˆˆÐ$Ð$Ð$ q c¨A¨3Ð/ð	ñô ð'ð 'ñô ð'ðð ð ð „×Ò˜Ð$EÐ$EÐ$EÑFÔFð*ð *ñ GÔFð*ð „×ÒØà	Ð	Ð	Ø	Ð	Ð	Ø	Ð	Ð	Ø	Ð	Ð	Ø	Ð	Ð	ðñ	ô 	ðð ñ	ô 	ðð „×ÒØà
ˆQˆ���Ð?Ð@Ø	ˆˆ�Q˜�HÐ?Ð@Ø	ˆˆ�K�K�KÐ!CÐDØ	ˆˆ�K�K�KÐ!CÐDà.Ð.Ð.ØˆOˆOØ(ð	
ð
ñô ð"ð "ñô ð"ð>ð >ð >ð48Sð 8Sð 8Sðvð ð ð.1ð 1ð 1ð4Xð Xð Xðð ð ð6#ð #ð #ðN 9:ð3ð 3ð 3ð 3ð@ „×ÒØàØ3ØØ)ð	ñô ð „×Ò˜Ð"GÈÐ!RÑSÔSðð ñ TÔSñô ððCð Cð Cð „×Ò˜ mÑ4Ô4Ø„×Ò˜ jÑ1Ô1Ø„×Ò˜¨¨¨q©¬Ñ2Ô2ðð ñ 3Ô2ñ 2Ô1ñ 5Ô4ððð ð ð*4ð 4ð 4ðnLð Lð Lð  „×ÒØà	ˆˆÐ$Ð$Ð$Ð%Ø	ˆˆÐ%Ð%Ð%Ð&Ð'Ø
ˆ)ˆ)ˆÐ&Ð&Ð&Ð'ðñô ð(ð (ñô ð(ð0ð 0ð 0ðf9ð 9ð 9ð 	Pð 	Pð 	Pð)ð )ð )ðUð Uð Uðð ð ð(ð ð ðFð Fð Fð=ð =ð =ð „×Ò˜¨¨u¨Ñ6Ô6ð#Vð #Vñ 7Ô6ð#VðL!ð !ð !ð*ð *ð *ð-ð -ð -ð 
ð 
ð 
ð4 „×ÒØà	ˆˆ�q˜$ÐØ	ˆˆ�q˜#ÐØ	ˆˆ�q˜$Ððñô ð
.ð 
.ñô ð
.ð „×ÒØà	ˆŒ�.�.�.Ñ	!Ô	! 1 aÐ(Ø	ˆŒ�.�.�.Ñ	!Ô	! 1 cÐ*Ø	ˆŒ�.�.�.Ñ	!Ô	! 1 aÐ(Ø	ˆŒÐ&Ð&Ð&Ñ	'Ô	'¨¨AÐ.Ø	ˆŒÐ&Ð&Ð&Ñ	'Ô	'¨¨CÐ0Ø	ˆŒÐ&Ð&Ð&Ñ	'Ô	'¨¨AÐ.ðñ
ô 
ð	;ð 	;ñ
ô 
ð	;ð „×ÒØ à	ˆŒ�,�,�,Ñ	Ô	  | | |Ð4Ø	ˆŒ�,�,�,Ñ	Ô	  l l lÐ3Ø	ˆŒ�,�,�,Ñ	Ô	  l l lÐ3Ø	ˆŒÐ&Ð&Ð&Ñ	'Ô	'¨Ð/CÐ/CÐ/CÐDð	ñô ð „×ÒÐ,¨t°U¨mÑ<Ô<ð.ð .ñ =Ô<ñô ð.ð&+ð +ð +ð& „×ÒØà	ˆˆ�q˜$ÐØ	ˆˆ�q˜#ÐØ	ˆˆ�q˜!Ððñô ð
Sð 
Sñô ð
Sð „×ÒØà	ˆˆ�qÐØ	ˆˆ�qÐðñô ðð ñô ðð$ „×ÒØ"ð ˆOˆOà��Ø��Ø��Ø��ð	ð ØGð
	
ð ˆLˆLà��Ø��Ø��Ø��ð	ð ð+ð	
ð !Ð Ð à��Ø��Ø��Ø��ð	ð !Ð Ð Ø0ð
	
ð !Ð Ð à��Ø��Ø��Ø��ð	ð ˆOˆOØ1ð
	
ð ˆLˆLà��Ø��Ø��Ø��ð	ð ˆLˆLð ð	
ð ˆLˆLà��Ø��Ø��Ø��ð	ð ˆIˆIØAð
	
ð �ˆFØˆ_ˆ_˜o˜o˜oÐ.ØðWð	
ðKNñQô QðdBð BñeQô QðdBð
*ð *ð *ð „×ÒØÐ&¨	Ð3IÈ9ÐUñô ð „×ÒØÐCÐCÐCñô ð.ð .ñô ñô ð.ð(#ð #ð #ð #ð #rL   