§
    ¨éUgAô  ã                   óÐ  — d dl mZ d dlmZ d dlmZmZmZ d dlZ	d dl
Z
d dlmZ d dlmZ d dlmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZm Z m!Z!m"Z"m#Z#m$Z$m%Z%m&Z&m'Z'm(Z(m)Z)m*Z*m+Z+m,Z,m-Z-m.Z.m/Z/m0Z0m1Z1m2Z2m3Z3m4Z4m5Z5m6Z6m7Z7m8Z8 d dl9m:Z: d d	l;m<Z< d d
l=m>Z> d dl?m@Z@ d dlAmBZBmCZCmDZD d dlEmFZFmGZGmHZHmIZImJZJmKZK d dlLmMZM d dlNmOZO d dlPmQZQmRZR e&e'e,e*e.e(e ee3d¬¦  «         ee-d ¬¦  «        e+e) ee-d¬¦  «         eed¬¦  «        eedœZSi de“de“d eed¬¦  «        “d eed¬¦  «        “de“dd „ “d!e/“d" ee/d¬#¦  «        “d$e“d%e8“d& ee8d¬¦  «        “d'e!“d(e2“d)e4“d*e“d+ eed,¬-¦  «        “d. eed/¬-¦  «        “i d0e%“d1 eed2d/¬3¦  «        “d4 eed2¬5¦  «        “d6 eed2d,¬3¦  «        “d7 ee2d2¬5¦  «        “d8 ee4d2¬5¦  «        “d9 ee!d2¬5¦  «        “d: eed;d/¬3¦  «        “d< eed;¬5¦  «        “d= eed;d,¬3¦  «        “d> ee2d;¬5¦  «        “d? ee4d;¬5¦  «        “d@ ee!d;¬5¦  «        “dA eedBd/¬3¦  «        “dC eedB¬5¦  «        “dD eedBd,¬3¦  «        “dE ee2dB¬5¦  «        “¥ ee4dB¬5¦  «         ee!dB¬5¦  «         eedFd/¬3¦  «         eedF¬5¦  «         eedFd,¬3¦  «         ee2dF¬5¦  «         ee4dF¬5¦  «         ee!dF¬5¦  «        edGœ	¥ZTdH„ ZUe6eUedIœZVi dJe“dKe#“dLe$“dM ee$d¬¦  «        “dNe “dOe“dPe5“dQ ee5d2¬5¦  «        “dR ee5dF¬5¦  «        “dS ee5d;¬5¦  «        “dT ee5dBdU¬V¦  «        “dW ee5d2dU¬V¦  «        “dX ee5dBdY¬V¦  «        “dZ ee5d2dY¬V¦  «        “d[ ee5d/¬\¦  «        “d]e“d^ eed2¬5¦  «        “ eedF¬5¦  «         eed;¬5¦  «        e"e0ee7d_œ¥ZW eX¦   «         ZYeY Z                    eW¦  «         eY Z                    eT¦  «         eY Z                    eS¦  «         eY Z                    eV¦  «         h d`£Z[h da£Z\e[ ]                    e\¦  «        Z^h db£Z_h dc£Z`h dd£Zah de£Zbh df£Zch dg£Zdh dh£Zeh di£Zfh dj£Zgh dk£Zhh dl£Zih dm£Zjdn„ Zkdo„ Zle
jm         n                    dp eoeg¦  «        ¦  «        dq„ ¦   «         Zpe
jm         n                    dp eoeh¦  «        ¦  «        dr„ ¦   «         Zqe
jm         n                    dp eo ereY¦  «        e^z
  ¦  «        ¦  «        ds„ ¦   «         ZseKdt„ ¦   «         Zte
jm         n                    dp eo ereY¦  «        e^z
  ¦  «        ¦  «        du„ ¦   «         Zue
jm         n                    dp eo ereT¦  «        e^z
  ¦  «        ¦  «        dv„ ¦   «         Zve
jm         n                    dpeW¦  «        dw„ ¦   «         Zwd dxge	jx        e	jx        gfd dxge	jy        e	jy        gfd dxge	jy        e	jx        gfd dxge	jx        dxgfd dxge	jy        dxgfgZze
jm         n                    dy eeW {                    ¦   «         eS {                    ¦   «         ¦  «        ¦  «        e
jm         n                    dzez¦  «        d{„ ¦   «         ¦   «         Z|e
jm         n                    dyeT {                    ¦   «         ¦  «        e
jm         n                    dzeze	jy        dxd,gg d|¢fe	jx        dxd,gg d|¢fgz   ¦  «        d}„ ¦   «         ¦   «         Z}e
jm         n                    dyeT {                    ¦   «         ¦  «        d~„ ¦   «         Z~eKd„ ¦   «         ZeKd€„ ¦   «         Z€e
jm         n                    dp eo ereY¦  «        e^z
   ereW¦  «        z
  ¦  «        ¦  «        d�„ ¦   «         Z�e
jm         n                    dp eoefeez  ¦  «        ¦  «        d‚„ ¦   «         Z‚e
jm         n                    dp eoef¦  «        ¦  «        dƒ„ ¦   «         Zƒe
jm         n                    dp eoef¦  «        ¦  «        d„„ ¦   «         Z„eKe
jm         n                    d…eM¦  «        d†„ ¦   «         ¦   «         Z…e
jm         n                    dp eoee¦  «        ¦  «        d‡„ ¦   «         Z†e
jm         n                    dp eoec¦  «        ¦  «        dˆ„ ¦   «         Z‡e
jm         n                    dp eoec¦  «        ¦  «        d‰„ ¦   «         Zˆe
jm         n                    dp eoec ‰                    ee¦  «        ¦  «        ¦  «        dŠ„ ¦   «         ZŠeKd‹„ ¦   «         Z‹dŒ„ ZŒe
jm         n                    dp eoe_¦  «        ¦  «        d�„ ¦   «         Z�e
jm         n                    dp eoe_e`z  ¦  «        ¦  «        dŽ„ ¦   «         ZŽe
jm         n                    dp eoe_¦  «        ¦  «        d�„ ¦   «         Z�d�„ Z�e
jm         n                    dp eoe_¦  «        ¦  «        d‘„ ¦   «         Z‘eKd’„ ¦   «         Z’e
jm         n                    dp eo ereY¦  «         ‰                     ereS¦  «        ¦  «        eiz
  ¦  «        ¦  «        d“„ ¦   «         Z“e
jm         n                    dp eo ereY¦  «         ereS¦  «        z
  eiz
  e[z
  ¦  «        ¦  «        d”„ ¦   «         Z”e
jm         n                    dp eo ereY¦  «         ereS¦  «        z
  eiz
  e^z
  ¦  «        ¦  «        d•„ ¦   «         Z•e
jm         n                    dp eoeeedz  efz  eiz
  ¦  «        ¦  «        d–„ ¦   «         Z–eKd—„ ¦   «         Z—e
jm         n                    dp eoeed!hz
  ¦  «        ¦  «        d˜„ ¦   «         Z˜e
jm         n                    dp eoedefz  ¦  «        ¦  «        d™„ ¦   «         Z™e
jm         n                    dp eo ereW¦  «        e^z
  ¦  «        ¦  «        dš„ ¦   «         Zše
jm         n                    d›eT¦  «        dœ„ ¦   «         Z›e
jm         n                    d�edfedfedf eedx¬-¦  «        dfe!dfe1dfe2dfe4dfe6dfg	¦  «        e
jm         n                    džeœe�g¦  «        dŸ„ ¦   «         ¦   «         Zžd „ ZŸd¡„ Z d¢„ Z¡d£„ Z¢d¤„ Z£d¥„ Z¤ee e¡e¢ge8e e¡e¢ge3e£ge<e¤giZ¥e¥fd¦„Z¦e
jm         n                    d§ eD¦   «         ¦  «        e
jm         n                    d¨ e¦¦   «         ¦  «        d©„ ¦   «         ¦   «         Z§dS )ªé    )Úpartial)Ú	signature)ÚchainÚpermutationsÚproductN)Úconfig_context)Úmake_multilabel_classification))Úaccuracy_scoreÚaverage_precision_scoreÚbalanced_accuracy_scoreÚbrier_score_lossÚcohen_kappa_scoreÚconfusion_matrixÚcoverage_errorÚd2_absolute_error_scoreÚd2_pinball_scoreÚd2_tweedie_scoreÚ	dcg_scoreÚ	det_curveÚexplained_variance_scoreÚf1_scoreÚfbeta_scoreÚhamming_lossÚ
hinge_lossÚjaccard_scoreÚ%label_ranking_average_precision_scoreÚlabel_ranking_lossÚlog_lossÚmatthews_corrcoefÚ	max_errorÚmean_absolute_errorÚmean_absolute_percentage_errorÚmean_gamma_devianceÚmean_pinball_lossÚmean_poisson_devianceÚmean_squared_errorÚmean_tweedie_devianceÚmedian_absolute_errorÚmultilabel_confusion_matrixÚ
ndcg_scoreÚprecision_recall_curveÚprecision_scoreÚr2_scoreÚrecall_scoreÚroc_auc_scoreÚ	roc_curveÚtop_k_accuracy_scoreÚzero_one_loss)Ú_average_binary_score)Úcosine_similarity)ÚLabelBinarizer)Úshuffle)Ú_atol_for_typeÚ_convert_to_numpyÚ)yield_namespace_device_dtype_combinations)Ú_array_api_for_testsÚassert_allcloseÚassert_almost_equalÚassert_array_equalÚassert_array_lessÚignore_warnings)ÚCOO_CONTAINERS)Útype_of_target)Ú_num_samplesÚcheck_random_stateÚvariance_weighted)Úmultioutput)Úpowergffffffö?)r    r!   r&   r$   r(   r"   r   r-   Úmean_normal_deviancer%   r#   Úmean_compound_poisson_deviancer   r   r   r
   r   Ú adjusted_balanced_accuracy_scoreT)ÚadjustedÚunnormalized_accuracy_scoreF©Ú	normalizeÚunnormalized_confusion_matrixÚnormalized_confusion_matrixc                  óª   — t          | i |¤Ž                     d¦  «        t          | i |¤Ž                     d¬¦  «        d d …t          j        f         z  S )NÚfloaté   ©Úaxis)r   ÚastypeÚsumÚnpÚnewaxis)ÚargsÚkwargss     ú`/var/www/surfInsights/venv3-11/lib/python3.11/site-packages/sklearn/metrics/tests/test_common.pyú<lambda>r\   ‡   s[   € Ý˜$Ð) &Ð)Ð)×0Ò0°Ñ9Ô9Ý
˜DÐ
+ FÐ
+Ð
+×
/Ò
/°QÐ
/Ñ
7Ô
7¸¸¸½2¼:¸Ô
Fñ	Gð ó    Ú(unnormalized_multilabel_confusion_matrixÚ/unnormalized_multilabel_confusion_matrix_sample)Ú
samplewiser   r2   Úunnormalized_zero_one_lossr   r,   r.   r   Úf2_scoreé   )Úbetaú
f0.5_scoreç      à?Úmatthews_corrcoef_scoreúweighted_f0.5_scoreÚweighted)Úaveragerd   Úweighted_f1_score©rj   Úweighted_f2_scoreÚweighted_precision_scoreÚweighted_recall_scoreÚweighted_jaccard_scoreúmicro_f0.5_scoreÚmicroÚmicro_f1_scoreÚmicro_f2_scoreÚmicro_precision_scoreÚmicro_recall_scoreÚmicro_jaccard_scoreúmacro_f0.5_scoreÚmacroÚmacro_f1_scoreÚmacro_f2_scoreÚmacro_precision_scoreÚsamples)	Úmacro_recall_scoreÚmacro_jaccard_scoreúsamples_f0.5_scoreÚsamples_f1_scoreÚsamples_f2_scoreÚsamples_precision_scoreÚsamples_recall_scoreÚsamples_jaccard_scorer   c            
      ó  — t          | i |¤Ž\  }}}t          |¦  «        t          |¦  «        z
  }t          j        ||t          j        |                     t          j        ¦  «        d|fdt          j        g¬¦  «        g¦  «        S )a'  
    The dimensions of precision-recall pairs and the threshold array as
    returned by the precision_recall_curve do not match. See
    func:`sklearn.metrics.precision_recall_curve`

    This prevents implicit conversion of return value triple to an higher
    dimensional np.array of dtype('float64') (it will be of dtype('object)
    instead). This again is needed for assert_array_equal to work correctly.

    As a workaround we pad the threshold array with NaN values to match
    the dimension of precision and recall arrays respectively.
    r   Úconstant)Ú	pad_widthÚmodeÚconstant_values)r+   ÚlenrW   ÚarrayÚpadrU   Úfloat64Únan)rY   rZ   Ú	precisionÚrecallÚ
thresholdsÚpad_threshholdss         r[   Ú(precision_recall_curve_padded_thresholdsr”   ¶   s‹   € õ %;¸DÐ$KÀFÐ$KÐ$KÑ!€Iˆv�zå˜)‘n”n¥s¨:¡¤Ñ6€OåŒ8àØÝŒFØ×!Ò!¥"¤*Ñ-Ô-Ø˜oÐ.ØÝ!#¤ ð	ñ ô ð		
ñô ð r]   )r0   r+   r   r   r   r   Úunnormalized_log_lossr   r   r/   Úweighted_roc_aucÚsamples_roc_aucÚmicro_roc_aucÚovr_roc_aucÚovr)rj   Úmulti_classÚweighted_ovr_roc_aucÚovo_roc_aucÚovoÚweighted_ovo_roc_aucÚpartial_roc_auc)Úmax_fprr   Ú weighted_average_precision_score)Úsamples_average_precision_scoreÚmicro_average_precision_scorer   r*   r   r1   >   r   r*   r   r�   r‚   r   r„   r…   rƒ   r   r_   r€   >   r   rb   r   r0   r.   r   r˜   r/   r    r,   r—   r   r–   r+   re   >   r   rb   r.   r   r,   re   >   r/   r    r   >   r   rb   r   r0   r.   r   r,   r   r+   r   r¤   r£   r¢   re   >    r   rb   r   r0   r.   r   rz   r{   rs   rt   r,   r   rk   rm   r~   rv   r   rw   r|   ru   ro   r+   rp   rn   rO   rN   r^   r_   re   rx   rq   rh   >   r2   r
   r1   >   r   r   r*   r˜   r/   r   r    r—   r–   r   r•   r   r¤   r£   r¢   r   >   r   r2   r
   rz   r{   rs   rt   r�   r‚   rk   rm   r~   rv   r   rw   r„   r|   ru   r…   ro   rp   rƒ   rn   ra   rK   r^   rx   rq   r€   rh   >	   r-   r   r$   r&   r!   r(   r   r   r"   >   r   r    r   r   r2   r
   rz   rs   rt   r   r$   r&   rv   r   r!   rw   rG   r(   ru   r…   ro   rg   ra   rK   rq   >   rb   r-   r   r0   r   r.   r{   r,   r   r   rk   rm   r~   r#   r|   r%   r+   rp   r   r   r   rn   rO   rN   r"   rH   rI   r^   re   rx   rh   >   r    r�   rŸ   r(   >   r   r#   r%   rH   c                 ó¦   — t          t          |                      ¦   «         |                     ¦   «         ¦  «        ¦  «        dz   }| |z  } ||z  }| |fS )zMake targets strictly positiverR   )ÚabsÚmin)Úy1Úy2Úoffsets      r[   Ú_require_positive_targetsr«     sI   € å•�R—V’V‘X”X˜rŸvšv™xœxÑ(Ô(Ñ)Ô)¨AÑ-€FØˆ&�L€BØˆ&�L€BØˆrˆ6€Mr]   c                  óÐ   — t           t          z  t          t          ¦  «        z  t          z  t          t
          ¦  «        k    sJ ‚t           t          z  t          ¦   «         k    sJ ‚d S ©N)ÚSYMMETRIC_METRICSÚNOT_SYMMETRIC_METRICSÚsetÚTHRESHOLDED_METRICSÚ"METRIC_UNDEFINED_BINARY_MULTICLASSÚALL_METRICS© r]   r[   Útest_symmetry_consistencyrµ   '  sn   € õ 	Ý
ñ	 å
Õ!Ñ
"Ô
"ñ	#õ -ñ	-õ 
�[Ñ	Ô	òð ð ð õ Õ 5Ñ5½#¹%¼%Ò?Ð?Ð?Ð?Ð?Ð?r]   Únamec                 ó  — t          d¦  «        }|                     ddd¬¦  «        }|                     ddd¬¦  «        }| t          v rt          ||¦  «        \  }}|                     ddd¬¦  «        }|                     ddd¬¦  «        }t          |          }| t
          v r>| t          v r+t           |||¦  «         |||¦  «        d| z  ¬¦  «         d S J d	¦   «         ‚t           |||¦  «         |||¦  «        d| z  ¬¦  «         d S )
Nr   rc   ©é   ©Úsize©r¹   é   z%s is not symmetric©Úerr_msgFz This case is currently unhandled)rC   ÚrandintÚMETRICS_REQUIRE_POSITIVE_Yr«   r³   ÚMETRIC_UNDEFINED_BINARYÚMULTILABELS_METRICSr;   )r¶   Úrandom_stateÚy_trueÚy_predÚ
y_true_binÚ
y_pred_binÚmetrics          r[   Útest_symmetric_metricrÊ   3  sY  € õ & aÑ(Ô(€LØ×!Ò! ! Q¨UÐ!Ñ3Ô3€FØ×!Ò! ! Q¨UÐ!Ñ3Ô3€FàÕ)Ð)Ð)Ý2°6¸6ÑBÔB‰ˆ�à×%Ò% a¨°Ð%Ñ:Ô:€JØ×%Ò% a¨°Ð%Ñ:Ô:€Jå˜Ô€FØÕ&Ð&Ð&ØÕ&Ð&Ð&ÝØ��z :Ñ.Ô.Ø��z :Ñ.Ô.Ø-°Ñ4ðñ ô ð ð ð ð =Ð<Ñ<Ô<Ð<åØˆF�6˜6Ñ"Ô"ØˆF�6˜6Ñ"Ô"Ø)¨DÑ0ð	
ñ 	
ô 	
ð 	
ð 	
ð 	
r]   c                 óŒ  — t          d¦  «        }|                     ddd¬¦  «        }|                     ddd¬¦  «        }| t          v rt          ||¦  «        \  }}t          |          }t          j        t          ¦  «        5  t           |||¦  «         |||¦  «        ¦  «         t          d| z  ¦  «        ‚# 1 swxY w Y   d S )Nr   rc   r¸   rº   z%s seems to be symmetric)
rC   rÀ   rÁ   r«   r³   ÚpytestÚraisesÚAssertionErrorr=   Ú
ValueError)r¶   rÄ   rÅ   rÆ   rÉ   s        r[   Útest_not_symmetric_metricrÐ   R  sø   € õ & aÑ(Ô(€LØ×!Ò! ! Q¨UÐ!Ñ3Ô3€FØ×!Ò! ! Q¨UÐ!Ñ3Ô3€FàÕ)Ð)Ð)Ý2°6¸6ÑBÔB‰ˆ�å˜Ô€Fõ 
Œ•~Ñ	&Ô	&ð <ð <Ý˜6˜6 &¨&Ñ1Ô1°6°6¸&À&Ñ3IÔ3IÑJÔJÐJÝÐ3°dÑ:Ñ;Ô;Ð;ð<ð <ð <ð <øøøð <ð <ð <ð <ð <ð <s   Â7B9Â9B=Ã B=c                 ó   — t          d¦  «        }|                     ddd¬¦  «        }|                     ddd¬¦  «        }| t          v rt          ||¦  «        \  }}t	          ||d¬¦  «        \  }}t          ¦   «         5  t          |          }t           |||¦  «         |||¦  «        d| z  ¬¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )Nr   rc   r¸   rº   ©rÄ   ú %s is not sample order invariantr¾   )rC   rÀ   rÁ   r«   r6   r?   r³   r;   )r¶   rÄ   rÅ   rÆ   Úy_true_shuffleÚy_pred_shufflerÉ   s          r[   Útest_sample_order_invariancerÖ   d  s4  € õ & aÑ(Ô(€LØ×!Ò! ! Q¨UÐ!Ñ3Ô3€FØ×!Ò! ! Q¨UÐ!Ñ3Ô3€FàÕ)Ð)Ð)Ý2°6¸6ÑBÔB‰ˆ�å%,¨V°VÈ!Ð%LÑ%LÔ%LÑ"€N�Nå	Ñ	Ô	ð 
ð 
Ý˜TÔ"ˆÝØˆF�6˜6Ñ"Ô"ØˆF�> >Ñ2Ô2Ø6¸Ñ=ð	
ñ 	
ô 	
ð 	
ð
ð 
ð 
ñ 
ô 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
øøøð 
ð 
ð 
ð 
ð 
ð 
s   Á?7CÃCÃ
Cc                  óî  — t          d¦  «        } |                      ddd¬¦  «        }|                      ddd¬¦  «        }|                      |j        ¬¦  «        }||                     dd¬¦  «        z  }t          |||d¬¦  «        \  }}}t          D ]8}t          |         }t           |||¦  «         |||¦  «        d	|z  ¬
¦  «         Œ9t          D ]8}t          |         }t           |||¦  «         |||¦  «        d	|z  ¬
¦  «         Œ9t          D ]a}t          |         }t           |||¦  «         |||¦  «        d	|z  ¬
¦  «         t           |||¦  «         |||¦  «        d	|z  ¬
¦  «         Œbd S )Nr   rc   r¼   rº   rR   T©rT   ÚkeepdimsrÒ   rÓ   r¾   )rC   rÀ   ÚuniformÚshaperV   r6   rÃ   r³   r;   ÚTHRESHOLDED_MULTILABEL_METRICSÚMULTIOUTPUT_METRICS)	rÄ   rÅ   rÆ   Úy_scorerÔ   rÕ   Úy_score_shuffler¶   rÉ   s	            r[   Ú7test_sample_order_invariance_multilabel_and_multioutputrà   z  sý  € å% aÑ(Ô(€Lð ×!Ò! ! Q¨XÐ!Ñ6Ô6€FØ×!Ò! ! Q¨XÐ!Ñ6Ô6€FØ×"Ò"¨¬Ð"Ñ5Ô5€Gð ˆw�{Š{ ¨Dˆ{Ñ1Ô1Ñ1€Gå6=Ø�˜¨að7ñ 7ô 7Ñ3€N�N Oõ $ð 
ð 
ˆÝ˜TÔ"ˆÝØˆF�6˜6Ñ"Ô"ØˆF�> >Ñ2Ô2Ø6¸Ñ=ð	
ñ 	
ô 	
ð 	
ð 	
õ /ð 
ð 
ˆÝ˜TÔ"ˆÝØˆF�6˜7Ñ#Ô#ØˆF�> ?Ñ3Ô3Ø6¸Ñ=ð	
ñ 	
ô 	
ð 	
ð 	
õ $ð 
ð 
ˆÝ˜TÔ"ˆÝØˆF�6˜7Ñ#Ô#ØˆF�> ?Ñ3Ô3Ø6¸Ñ=ð	
ñ 	
ô 	
ð 	
õ
 	ØˆF�6˜6Ñ"Ô"ØˆF�> >Ñ2Ô2Ø6¸Ñ=ð	
ñ 	
ô 	
ð 	
ð 	
ð
ð 
r]   c                 óz  — t          d¦  «        }|                     ddd¬¦  «        }|                     ddd¬¦  «        }| t          v rt          ||¦  «        \  }}t	          |¦  «        }t	          |¦  «        }t          j        |¦  «        t          j        |¦  «        }}t          |j        d¦  «         t          |j        d¦  «         t          j	        |d¦  «        }t          j	        |d¦  «        }	t          j	        |d¦  «        }
t          j	        |d¦  «        }t          ¦   «         5  t          |          } |||¦  «        }t           |||¦  «        |d| z  ¬	¦  «         t           |||¦  «        |d
| z  ¬	¦  «         t           |||	¦  «        |d| z  ¬	¦  «         t           |||¦  «        |d| z  ¬	¦  «         t           |||¦  «        |d| z  ¬	¦  «         t           |||	¦  «        |d| z  ¬	¦  «         t           |||¦  «        |d| z  ¬	¦  «         t           |||	¦  «        |d| z  ¬	¦  «         t           |||¦  «        |d| z  ¬	¦  «         t          j        t          ¦  «        5   |||¦  «         d d d ¦  «         n# 1 swxY w Y   t          j        t          ¦  «        5   ||
|¦  «         d d d ¦  «         n# 1 swxY w Y   t          j        t          ¦  «        5   |||¦  «         d d d ¦  «         n# 1 swxY w Y   t          j        t          ¦  «        5   ||
|¦  «         d d d ¦  «         n# 1 swxY w Y   t          j        t          ¦  «        5   |||¦  «         d d d ¦  «         n# 1 swxY w Y   t          j        t          ¦  «        5   ||
|	¦  «         d d d ¦  «         n# 1 swxY w Y   | t           t"          z  t$          z  vr=t          j        t          ¦  «        5   ||
|¦  «         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 )Nr   rc   r¸   rº   rR   )éÿÿÿÿrR   )rR   râ   z,%s is not representation invariant with listr¾   z3%s is not representation invariant with np-array-1dz7%s is not representation invariant with np-array-columnz@%s is not representation invariant with mix np-array-1d and listzK%s is not representation invariant with mix np-array-1d and np-array-columnzD%s is not representation invariant with mix list and np-array-column)rC   rÀ   rÁ   r«   ÚlistrW   rŒ   r=   ÚndimÚreshaper?   r³   r;   rÌ   rÍ   rÏ   rÝ   rÜ   rÃ   )r¶   rÄ   r¨   r©   Úy1_listÚy2_listÚy1_1dÚy2_1dÚ	y1_columnÚ	y2_columnÚy1_rowÚy2_rowrÉ   Úmeasures                 r[   Ú&test_format_invariance_with_1d_vectorsrï   ¨  sà  € õ & aÑ(Ô(€LØ	×	Ò	˜a ¨Ð	Ñ	/Ô	/€BØ	×	Ò	˜a ¨Ð	Ñ	/Ô	/€BàÕ)Ð)Ð)Ý*¨2¨rÑ2Ô2‰ˆˆBå�2‰hŒh€GÝ�2‰hŒh€Gå”8˜B‘<”<¥¤¨"¡¤ˆ5€EÝ�u”z 1Ñ%Ô%Ð%Ý�u”z 1Ñ%Ô%Ð%Ý”
˜5 'Ñ*Ô*€IÝ”
˜5 'Ñ*Ô*€IÝŒZ˜˜wÑ'Ô'€FÝŒZ˜˜wÑ'Ô'€Få	Ñ	Ô	ð `'ð `'Ý˜TÔ"ˆà�&˜˜R‘.”.ˆåØˆF�7˜GÑ$Ô$ØØBÀTÑIð	
ñ 	
ô 	
ð 	
õ 	ØˆF�5˜%Ñ Ô ØØIÈDÑPð	
ñ 	
ô 	
ð 	
õ 	ØˆF�9˜iÑ(Ô(ØØMÐPTÑTð	
ñ 	
ô 	
ð 	
õ 	ØˆF�5˜'Ñ"Ô"ØØVØñð	
ñ 	
ô 	
ð 	
õ 	ØˆF�7˜EÑ"Ô"ØØVØñð	
ñ 	
ô 	
ð 	
õ 	ØˆF�5˜)Ñ$Ô$Øð2ð ñ	ð	
ñ 	
ô 	
ð 	
õ 	ØˆF�9˜eÑ$Ô$Øð2ð ñ	ð	
ñ 	
ô 	
ð 	
õ 	ØˆF�7˜IÑ&Ô&ØàVàñð	
ñ 	
ô 	
ð 	
õ 	ØˆF�9˜gÑ&Ô&ØàVàñð	
ñ 	
ô 	
ð 	
õ Œ]�:Ñ&Ô&ð 	"ð 	"ØˆF�5˜&Ñ!Ô!Ð!ð	"ð 	"ð 	"ñ 	"ô 	"ð 	"ð 	"ð 	"ð 	"ð 	"ð 	"øøøð 	"ð 	"ð 	"ð 	"åŒ]�:Ñ&Ô&ð 	"ð 	"ØˆF�6˜5Ñ!Ô!Ð!ð	"ð 	"ð 	"ñ 	"ô 	"ð 	"ð 	"ð 	"ð 	"ð 	"ð 	"øøøð 	"ð 	"ð 	"ð 	"åŒ]�:Ñ&Ô&ð 	$ð 	$ØˆF�7˜FÑ#Ô#Ð#ð	$ð 	$ð 	$ñ 	$ô 	$ð 	$ð 	$ð 	$ð 	$ð 	$ð 	$øøøð 	$ð 	$ð 	$ð 	$åŒ]�:Ñ&Ô&ð 	$ð 	$ØˆF�6˜7Ñ#Ô#Ð#ð	$ð 	$ð 	$ñ 	$ô 	$ð 	$ð 	$ð 	$ð 	$ð 	$ð 	$øøøð 	$ð 	$ð 	$ð 	$åŒ]�:Ñ&Ô&ð 	&ð 	&ØˆF�9˜fÑ%Ô%Ð%ð	&ð 	&ð 	&ñ 	&ô 	&ð 	&ð 	&ð 	&ð 	&ð 	&ð 	&øøøð 	&ð 	&ð 	&ð 	&åŒ]�:Ñ&Ô&ð 	&ð 	&ØˆF�6˜9Ñ%Ô%Ð%ð	&ð 	&ð 	&ñ 	&ô 	&ð 	&ð 	&ð 	&ð 	&ð 	&ð 	&øøøð 	&ð 	&ð 	&ð 	&ð
 ÝÕ"@Ñ@ÕCVÑVð
ð 
õ ”�zÑ*Ô*ð 'ð 'Ø��v˜vÑ&Ô&Ð&ð'ð 'ð 'ñ 'ô 'ð 'ð 'ð 'ð 'ð 'ð 'øøøð 'ð 'ð 'ð 'ð`'ð `'ð `'ñ `'ô `'ð `'ð `'ð `'ð `'ð `'ð `'ð `'øøøð `'ð `'ð `'ð `'ð `'ð `'s  Ä.E
P0É8JÊP0ÊJ	ÊP0ÊJ	ÊP0Ê5KËP0ËK	ËP0ËK	ËP0Ë2LË?P0ÌL	ÌP0ÌL	ÌP0Ì/MÌ<P0ÍM	ÍP0ÍM	ÍP0Í,NÍ9P0ÎN		Î	P0ÎN		ÎP0Î)OÎ6P0ÏO	ÏP0Ï	O	Ï
5P0Ï?PÐP0ÐP	ÐP0ÐP	Ð P0Ð0P4Ð7P4c                 ó  — t          d¦  «        }|                     ddd¬¦  «        }|                     ddd¬¦  «        }t          j        ddg¦  «        |         }t          j        ddg¦  «        |         }d}ddg}t	          ¦   «         5  t
          |          } |||¦  «        }	|}
| t          v rt          |
|¬¦  «        }
 |
||¦  «        }t          |	|d 	                    | ¦  «        ¬	¦  «          |
| 
                    d
¦  «        | 
                    d
¦  «        ¦  «        }t          |	|d 	                    | ¦  «        ¬	¦  «         | t          v r™t          |
|¬¦  «        }
 |
||¦  «        }t          |	|d 	                    | ¦  «        ¬	¦  «          |
| 
                    d
¦  «        | 
                    d
¦  «        ¦  «        }t          |	|d 	                    | ¦  «        ¬	¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )Nr   rc   r¸   rº   ÚeggsÚspam©Ú	pos_labelú+{0} failed string vs number invariance testr¾   ÚOú2{0} failed string object vs number invariance test)Úlabelsz,{0} failed string vs number  invariance test)rC   rÀ   rW   rŒ   r?   ÚCLASSIFICATION_METRICSÚMETRICS_WITH_POS_LABELr   r=   ÚformatrU   ÚMETRICS_WITH_LABELS)r¶   rÄ   r¨   r©   Úy1_strÚy2_strÚpos_label_strÚ
labels_strrÉ   Úmeasure_with_numberÚ
metric_strÚmeasure_with_strÚmeasure_with_strobjs                r[   Ú7test_classification_invariance_string_vs_numbers_labelsr  !  s‹  € õ
 & aÑ(Ô(€LØ	×	Ò	˜a ¨Ð	Ñ	/Ô	/€BØ	×	Ò	˜a ¨Ð	Ñ	/Ô	/€BåŒX�v˜vÐ&Ñ'Ô'¨Ô+€FÝŒX�v˜vÐ&Ñ'Ô'¨Ô+€Fà€MØ˜&Ð!€Jå	Ñ	Ô	ð &ð &Ý'¨Ô-ˆØ$˜f R¨™nœnÐð ˆ
ØÕ)Ð)Ð)Ý  °}ÐEÑEÔEˆJà%˜: f¨fÑ5Ô5ÐåØØØA×HÒHÈÑNÔNð	
ñ 	
ô 	
ð 	
ð )˜j¨¯ª°sÑ);Ô);¸V¿]º]È3Ñ=OÔ=OÑPÔPÐÝØØØH×OÒOÐPTÑUÔUð	
ñ 	
ô 	
ð 	
ð Õ&Ð&Ð&Ý  °JÐ?Ñ?Ô?ˆJØ)˜z¨&°&Ñ9Ô9ÐÝØ#Ø ØF×MÒMÈdÑSÔSðñ ô ð ð #- *¨V¯]ª]¸3Ñ-?Ô-?ÀÇÂÈsÑASÔASÑ"TÔ"TÐÝØ#Ø#ØF×MÒMÈdÑSÔSðñ ô ð ðE&ð &ð &ñ &ô &ð &ð &ð &ð &ð &ð &ð &øøøð &ð &ð &ð &ð &ð &s   ÂE G9Ç9G=È G=c                 ó�  — t          d¦  «        }|                     ddd¬¦  «        }|                     ddd¬¦  «        }t          j        ddg¦  «        |         }d}t	          ¦   «         5  t
          |          }| t          vrž|}| t          v rt          ||¬¦  «        } |||¦  «        } |||¦  «        }	t          ||	d 
                    | ¦  «        ¬	¦  «          ||                     d
¦  «        |¦  «        }
t          ||
d 
                    | ¦  «        ¬	¦  «         n�t          j        t          ¦  «        5   |||¦  «         d d d ¦  «         n# 1 swxY w Y   t          j        t          ¦  «        5   ||                     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 )Nr   rc   r¸   rº   rñ   rò   ró   rõ   r¾   rö   r÷   )rC   rÀ   rW   rŒ   r?   r±   rÂ   rú   r   r=   rû   rU   rÌ   rÍ   rÏ   )r¶   rÄ   r¨   r©   rý   rÿ   rÉ   r  r  r  r  s              r[   Ú4test_thresholded_invariance_string_vs_numbers_labelsr  Y  s°  € õ & aÑ(Ô(€LØ	×	Ò	˜a ¨Ð	Ñ	/Ô	/€BØ	×	Ò	˜a ¨Ð	Ñ	/Ô	/€BåŒX�v˜vÐ&Ñ'Ô'¨Ô+€Fà€Må	Ñ	Ô	ð /ð /Ý$ TÔ*ˆØÕ.Ð.Ð.àˆJØÕ-Ð-Ð-Ý$ Z¸=ÐIÑIÔI�
à"( &¨¨R¡.¤.ÐØ)˜z¨&°"Ñ5Ô5ÐÝØ#Ø ØE×LÒLÈTÑRÔRðñ ô ð ð #- *¨V¯]ª]¸3Ñ-?Ô-?ÀÑ"DÔ"DÐÝØ#Ø#ØL×SÒSØñô ðñ ô ð ð õ ”�zÑ*Ô*ð #ð #Ø��v˜rÑ"Ô"Ð"ð#ð #ð #ñ #ô #ð #ð #ð #ð #ð #ð #øøøð #ð #ð #ð #å”�zÑ*Ô*ð /ð /Ø��v—}’} SÑ)Ô)¨2Ñ.Ô.Ð.ð/ð /ð /ñ /ô /ð /ð /ð /ð /ð /ð /øøøð /ð /ð /ð /ð9/ð /ð /ñ /ô /ð /ð /ð /ð /ð /ð /ð /øøøð /ð /ð /ð /ð /ð /s[   Á,CF;Ä:EÅF;ÅE	ÅF;ÅE	ÅF;Å7 F#ÆF;Æ#F'	Æ'F;Æ*F'	Æ+F;Æ;F?ÇF?rR   rÉ   zy_true, y_scorec                 ó¨   — | t           k    r|g}|g}t          j        t          d¬¦  «        5   | ||¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )Nzcontains (NaN|infinity)©Úmatch)r   rÌ   rÍ   rÏ   )rÉ   rÅ   rÞ   s      r[   Ú)test_regression_thresholded_inf_nan_inputr  �  s©   € ð •ÒÐØ�ˆØ�)ˆÝ	Œ•zÐ)CÐ	DÑ	DÔ	Dð  ð  Øˆˆv�wÑÔÐð ð  ð  ñ  ô  ð  ð  ð  ð  ð  ð  ð  øøøð  ð  ð  ð  ð  ð  s   ­AÁAÁA)rR   rc   é   c                 ó˜  — t          j        |¦  «                             ¦   «         s.d}t          j        |¦  «                             ¦   «         rd}n0d}n-d}t          j        |¦  «                             ¦   «         rd}nd}d|› d|› �}t          j        t          |¬¦  «        5   | ||¦  «         ddd¦  «         dS # 1 swxY w Y   dS )	z{check that classification metrics raise a message mentioning the
    occurrence of non-finite values in the target vectors.rÅ   ÚNaNzinfinity or a value too largerÆ   zInput z
 contains r	  N)rW   ÚisfiniteÚallÚisnanÚanyrÌ   rÍ   rÏ   )rÉ   rÅ   rÞ   Ú
input_nameÚunexpected_valuer¿   s         r[   Ú!test_classification_inf_nan_inputr  š  s*  € õ Œ;�vÑÔ×"Ò"Ñ$Ô$ð ?Øˆ
ÝŒ8�FÑÔ×ÒÑ!Ô!ð 	?Ø$ÐÐà>ÐÐàˆ
ÝŒ8�GÑÔ× Ò Ñ"Ô"ð 	?Ø$ÐÐà>Ðà?�zÐ?Ð?Ð-=Ð?Ð?€Gå	Œ•z¨Ð	1Ñ	1Ô	1ð  ð  Øˆˆv�wÑÔÐð ð  ð  ñ  ô  ð  ð  ð  ð  ð  ð  ð  øøøð  ð  ð  ð  ð  ð  s   Â%B?Â?CÃCc                 óš   — g d¢g d¢}}d}t          j        t          |¬¦  «        5   | ||¦  «         ddd¦  «         dS # 1 swxY w Y   dS )zocheck that classification metrics raise a message of mixed type data
    with continuous/binary target vectors.)ÚaÚbr  ©çš™™™™™¹?çš™™™™™É?ç333333Ó?zJClassification metrics can't handle a mix of binary and continuous targetsr	  N)rÌ   rÍ   rÏ   )rÉ   rÅ   rÞ   r¿   s       r[   Ú+test_classification_binary_continuous_inputr  ¼  sª   € ð &�o�o   ˆG€FàTð õ 
Œ•z¨Ð	1Ñ	1Ô	1ð  ð  Øˆˆv�wÑÔÐð ð  ð  ñ  ô  ð  ð  ð  ð  ð  ð  ð  øøøð  ð  ð  ð  ð  ð  s   ¦A Á AÁAc                 óŽ   — t           |          }| t          v rddg}nddg}t          |d¬¦  «        D ]\  }} ||g|g¦  «         Œd S )NrR   rc   r   ©Úrepeat)r³   rÁ   r   )r¶   rÉ   ÚvaluesÚiÚjs        r[   Úcheck_single_sampler$  È  ss   € õ ˜Ô€Fð Õ)Ð)Ð)Ø�Q�ˆˆà�Q�ˆÝ˜ qÐ)Ñ)Ô)ð ð ‰ˆˆ1Øˆ�ˆs�Q�CÑÔÐÐðð r]   c                 óÂ   — t           |          }t          ddgd¬¦  «        D ]=\  }}}} |t          j        ||gg¦  «        t          j        ||gg¦  «        ¦  «         Œ>d S )Nr   rR   é   r  )r³   r   rW   rŒ   )r¶   rÉ   r"  r#  ÚkÚls         r[   Úcheck_single_sample_multioutputr)  Ù  ss   € å˜Ô€FÝ˜q !˜f¨QÐ/Ñ/Ô/ð 7ð 7‰
ˆˆ1ˆa�Øˆ�rŒx˜!˜Q˜˜Ñ!Ô!¥2¤8¨a°¨V¨HÑ#5Ô#5Ñ6Ô6Ð6Ð6ð7ð 7r]   c                 ó$   — t          | ¦  «         d S r­   )r$  ©r¶   s    r[   Útest_single_sampler,  à  s   € õ ˜ÑÔÐÐÐr]   c                 ó$   — t          | ¦  «         d S r­   )r)  r+  s    r[   Útest_single_sample_multioutputr.  î  s   € å# DÑ)Ô)Ð)Ð)Ð)r]   c                 ó  — t          j        g d¢g d¢g d¢g¦  «        }t          j        ddgddgddgg¦  «        }t          |          }t          j        t
          ¦  «        5   |||¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )N)rR   r   r   rR   )r   rR   rR   rR   )rR   rR   r   rR   r   rR   ©rW   rŒ   r³   rÌ   rÍ   rÏ   )r¶   rÅ   rÆ   rÉ   s       r[   Ú(test_multioutput_number_of_output_differr1  ó  sÖ   € åŒX�|�|�| \ \ \°<°<°<Ð@ÑAÔA€FÝŒX˜˜1�v  1˜v¨¨1 vÐ.Ñ/Ô/€Få˜Ô€FÝ	Œ•zÑ	"Ô	"ð ð Øˆˆv�vÑÔÐðð ð ñ ô ð ð ð ð ð ð ð øøøð ð ð ð ð ð s   Á!A;Á;A?ÂA?c           	      ó€  — t          d¦  «        }|                     ddd¬¦  «        }|                     ddd¬¦  «        }t          |          } |||¦  «        }t          d¦  «        D ]U}|                     |j        d         ¦  «        }t           ||d d …|f         |d d …|f         ¦  «        |d| z  ¬¦  «         ŒVd S )	Nr   rc   )r¹   é   rº   r  rR   z'%s is not dimension shuffling invariantr¾   )rC   rÚ   r³   ÚrangeÚpermutationrÛ   r;   )r¶   rÄ   rÅ   rÆ   rÉ   ÚerrorÚ_Úperms           r[   Ú=test_multioutput_regression_invariance_to_dimension_shufflingr9  ý  sæ   € õ & aÑ(Ô(€LØ×!Ò! ! Q¨WÐ!Ñ5Ô5€FØ×!Ò! ! Q¨WÐ!Ñ5Ô5€Få˜Ô€FØˆF�6˜6Ñ"Ô"€Eå�1‰XŒXð 
ð 
ˆØ×'Ò'¨¬°Q¬Ñ8Ô8ˆÝØˆF�6˜!˜!˜!˜T˜'”? F¨1¨1¨1¨d¨7¤OÑ4Ô4ØØ=ÀÑFð	
ñ 	
ô 	
ð 	
ð 	
ð
ð 
r]   Úcoo_containerc                 ó´  — d}d}t          d|d|d¬¦  «        \  }}t          d|d|d¬¦  «        \  }}t          j        |dg|z  gg¦  «        }t          j        |dg|z  gg¦  «        } | |¦  «        } | |¦  «        }t          |¦  «        }t          |¦  «        }	d„ |D ¦   «         }
d„ |	D ¦   «         }t          D ]›}t
          |         }t          |t          ¦  «        rd	|_        ||_	         |||¦  «        }t           |||¦  «        |d
|z  ¬¦  «         t           ||
|¦  «        |d|z  ¬¦  «         t           |||	¦  «        |d|z  ¬¦  «         Œœd S )Nr&  é2   rR   r   T©Ú
n_featuresÚ	n_classesrÄ   Ú	n_samplesÚallow_unlabeledc                 ó,   — g | ]}t          |¦  «        ‘ŒS r´   ©rã   ©Ú.0r  s     r[   ú
<listcomp>z=test_multilabel_representation_invariance.<locals>.<listcomp>0  ó   € ÐGÐGÐG¨!�d 1™gœgÐGÐGÐGr]   c                 ó,   — g | ]}t          |¦  «        ‘ŒS r´   rC  rD  s     r[   rF  z=test_multilabel_representation_invariance.<locals>.<listcomp>1  rG  r]   ÚtmpzO%s failed representation invariance between dense and sparse indicator formats.r¾   z\%s failed representation invariance  between dense array and list of list indicator formats.zW%s failed representation invariance  between dense and list of array indicator formats.)r	   rW   Úvstackrã   rÃ   r³   Ú
isinstancer   Ú
__module__Ú__name__r;   r<   )r:  r?  r@  r7  r¨   r©   Úy1_sparse_indicatorÚy2_sparse_indicatorÚy1_list_array_indicatorÚy2_list_array_indicatorÚy1_list_list_indicatorÚy2_list_list_indicatorr¶   rÉ   rî   s                  r[   Ú)test_multilabel_representation_invariancerT    s
  € ð €IØ€Iå*ØØØØØðñ ô �E€A€rõ +ØØØØØðñ ô �E€A€rõ 
Œ�B˜!˜˜y™Ð)Ð*Ñ	+Ô	+€BÝ	Œ�B˜!˜˜y™Ð)Ð*Ñ	+Ô	+€Bà'˜-¨Ñ+Ô+ÐØ'˜-¨Ñ+Ô+Ðå" 2™hœhÐÝ" 2™hœhÐàGÐGÐ/FÐGÑGÔGÐØGÐGÐ/FÐGÑGÔGÐå#ð '
ð '
ˆÝ˜TÔ"ˆõ �f�gÑ&Ô&ð 	#Ø %ˆFÔØ"ˆFŒOà�&˜˜R‘.”.ˆõ 	ØˆFÐ&Ð(;Ñ<Ô<Øð6ð ñ	ð	
ñ 	
ô 	
ð 	
õ 	ØˆFÐ)Ð+AÑBÔBØð%ð ñð		
ñ 		
ô 		
ð 		
õ 	ØˆFÐ*Ð,CÑDÔDØð%ð ñð		
ñ 		
ô 		
ð 		
ð 		
ð='
ð '
r]   c           	      óø   — dgdgddggg d¢g gdgt          j        g ddggd¬¦  «        g}t          |          }|D ]?}t          j        t
          ¦  «        5   |||¦  «         d d d ¦  «         n# 1 swxY w Y   Œ@d S )NrR   rc   r   )r´   rc   )r   rR   r´   Úobject©Údtyper0  )r¶   Úmultilabel_sequencesrÉ   Úseqs       r[   Ú+test_raise_value_error_multilabel_sequencesr[  ]  sè   € ð ˆˆqˆc�A�q�6ÐØÐÐØ	ˆØ	ˆÝ
Œ�"�q˜!�f� XÐ.Ñ.Ô.ðÐõ ˜Ô€FØ#ð ð ˆÝŒ]�:Ñ&Ô&ð 	ð 	ØˆF�3˜ÑÔÐð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	øðð s   ÁA.Á.A2	Á5A2	c                 óŒ  — d}d}t          d¦  «        }|                     d||f¬¦  «        }|                     d||f¬¦  «        }|                     |j        ¬¦  «        }t          |          }| t
          v r|n|} |||d¬¦  «        }	 |||d¬¦  «        }
t          d|	z  dd	¬
¦  «         t          |	|
|z  d| › �¬
¦  «         d S )Nrc   r¹   r   rº   TrL   Fç      ð¿ú0We failed to test correctly the normalize optionr¾   úFailed with )rC   rÀ   ÚnormalrÛ   r³   r±   r>   r;   ©r¶   r?  r@  rÄ   rÅ   rÆ   rÞ   ÚmetricsÚpredÚmeasure_normalizedÚmeasure_not_normalizeds              r[   Ú+test_normalize_option_binary_classificationrf  n  s  € ð €IØ€IÝ% aÑ(Ô(€Là×!Ò! ! Y°i°\Ð!ÑBÔB€FØ×!Ò! ! Y°i°\Ð!ÑBÔB€FØ×!Ò! v¤|Ð!Ñ4Ô4€Gå˜$Ô€GØÕ1Ð1Ð1ˆ7ˆ7°v€DØ ˜ ¨¸Ð>Ñ>Ô>ÐØ$˜W V¨T¸UÐCÑCÔCÐåØÐ!Ñ!Ø	ØBðñ ô ð õ ØØ Ñ*Ø%˜tÐ%Ð%ðñ ô ð ð ð r]   c                 ó†  — d}d}t          d¦  «        }|                     d||f¬¦  «        }|                     d||f¬¦  «        }|                     ||f¬¦  «        }t          |          }| t          v r|n|} |||d¬¦  «        }	 |||d¬¦  «        }
t          d|	z  dd	¬
¦  «         t          |	|
|z  d| › �¬
¦  «         d S )Nr&  r¹   r   rº   TrL   Fr]  r^  r¾   r_  )rC   rÀ   rÚ   r³   r±   r>   r;   ra  s              r[   Ú/test_normalize_option_multiclass_classificationrh  ‹  s  € ð €IØ€IÝ% aÑ(Ô(€Là×!Ò! ! Y°i°\Ð!ÑBÔB€FØ×!Ò! ! Y°i°\Ð!ÑBÔB€FØ×"Ò"¨°IÐ(>Ð"Ñ?Ô?€Gå˜$Ô€GØÕ1Ð1Ð1ˆ7ˆ7°v€DØ ˜ ¨¸Ð>Ñ>Ô>ÐØ$˜W V¨T¸UÐCÑCÔCÐåØÐ!Ñ!Ø	ØBðñ ô ð õ ØØ Ñ*Ø%˜tÐ%Ð%ðñ ô ð ð ð r]   c                 ó¨  — d}d}t          d¦  «        }t          d|dd|¬¦  «        \  }}t          d|dd|¬¦  «        \  }}|                     |j        ¬¦  «        }|dg|z  z  }|dg|z  z  }t          |          }| t
          v r|n|}	 |||	d¬¦  «        }
 |||	d	¬¦  «        }t          d
|
z  dd¬¦  «         t          |
||z  d| › �¬¦  «         d S )Nr&  éd   r   rR   T)r>  r?  rÄ   rA  r@  rº   rL   Fr]  r^  r¾   r_  )rC   r	   rÚ   rÛ   r³   r±   r>   r;   )r¶   r?  r@  rÄ   r7  rÅ   rÆ   rÞ   rb  rc  rd  re  s               r[   Ú/test_normalize_option_multilabel_classificationrk  ¨  sT  € ð
 €IØ€IÝ% aÑ(Ô(€Lõ /ØØØØØðñ ô �I€A€võ /ØØØØØðñ ô �I€A€vð ×"Ò"¨¬Ð"Ñ5Ô5€Gð ˆqˆc�I‰oÑ€FØ
ˆqˆc�I‰oÑ€Få˜$Ô€GØÕ1Ð1Ð1ˆ7ˆ7°v€DØ ˜ ¨¸Ð>Ñ>Ô>ÐØ$˜W V¨T¸UÐCÑCÔCÐåØÐ!Ñ!Ø	ØBðñ ô ð õ ØØ Ñ*Ø%˜tÐ%Ð%ðñ ô ð ð ð r]   c           	      ó,  ‡ ‡‡— ‰j         \  }} ‰ ||d ¬¦  «        }t          |ˆ ˆˆfd„t          |¦  «        D ¦   «         ¦  «          ‰ ||d¬¦  «        }	t          |	 ‰ ‰                     ¦   «         ‰                     ¦   «         ¦  «        ¦  «          ‰ ||d¬¦  «        }
t          |
t	          j        |¦  «        ¦  «         t	          j        ‰dt          ¬¦  «        }t	          j        |¦  «        dk    r3 ‰ ||d¬¦  «        }t          |t	          j        ||¬¦  «        ¦  «         n ‰ ||d¬¦  «        }t          |d¦  «         |rK ‰ ||d	¬¦  «        }t          |t	          j        ˆ ˆˆfd
„t          |¦  «        D ¦   «         ¦  «        ¦  «         t          j
        t          ¦  «        5   ‰ ||d¬¦  «         d d d ¦  «         n# 1 swxY w Y   t          j
        t          ¦  «        5   ‰ ||d¬¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )Nrl   c                 óP   •— g | ]"} ‰‰d d …|f         ‰d d …|f         ¦  «        ‘Œ#S r­   r´   ©rE  r"  rÉ   Úy_pred_binarizeÚy_true_binarizes     €€€r[   rF  z$_check_averaging.<locals>.<listcomp>ä  sO   ø€ ð 	
ð 	
ð 	
àð ˆF�? 1 1 1 a 4Ô(¨/¸!¸!¸!¸Q¸$Ô*?Ñ@Ô@ð	
ð 	
ð 	
r]   rr   ry   r   )rT   rX  ri   )Úweightsr}   c                 ó@   •— g | ]} ‰‰|         ‰|         ¦  «        ‘ŒS r´   r´   rn  s     €€€r[   rF  z$_check_averaging.<locals>.<listcomp>  s?   ø€ ð ð ð àð �F˜?¨1Ô-¨¸qÔ/AÑBÔBðð ð r]   ÚunknownÚgarbage)rÛ   r;   r4  ÚravelrW   ÚmeanrV   Úintrj   rÌ   rÍ   rÏ   )rÉ   rÅ   rÆ   rp  ro  Úis_multilabelr@  r?  Úlabel_measureÚmicro_measureÚmacro_measurerq  Úweighted_measureÚsample_measures   `  ``         r[   Ú_check_averagingr~  Ú  s  øøø€ ð +Ô0Ñ€Iˆyð �F˜6 6°4Ð8Ñ8Ô8€MÝØð	
ð 	
ð 	
ð 	
ð 	
ð 	
å˜9Ñ%Ô%ð	
ñ 	
ô 	
ñô ð ð �F˜6 6°7Ð;Ñ;Ô;€MÝØ�v�v˜o×3Ò3Ñ5Ô5°×7LÒ7LÑ7NÔ7NÑOÔOñô ð ð
 �F˜6 6°7Ð;Ñ;Ô;€MÝ�M¥2¤7¨=Ñ#9Ô#9Ñ:Ô:Ð:õ Œf�_¨1µCÐ8Ñ8Ô8€Gå	„vˆg�„˜!ÒÐØ!˜6 &¨&¸*ÐEÑEÔEÐÝÐ(­"¬*°]ÈGÐ*TÑ*TÔ*TÑUÔUÐUÐUà!˜6 &¨&¸*ÐEÑEÔEÐÝÐ(¨!Ñ,Ô,Ð,ð ð 

Ø˜ ¨¸	ÐBÑBÔBˆÝØÝŒGðð ð ð ð ð å" 9Ñ-Ô-ðñ ô ñô ñ	
ô 	
ð 	
õ 
Œ•zÑ	"Ô	"ð 2ð 2Øˆˆv�v yÐ1Ñ1Ô1Ð1ð2ð 2ð 2ñ 2ô 2ð 2ð 2ð 2ð 2ð 2ð 2øøøð 2ð 2ð 2ð 2å	Œ•zÑ	"Ô	"ð 2ð 2Øˆˆv�v yÐ1Ñ1Ô1Ð1ð2ð 2ð 2ñ 2ô 2ð 2ð 2ð 2ð 2ð 2ð 2ð 2øøøð 2ð 2ð 2ð 2ð 2ð 2s$   Æ.G	Ç	GÇGÇ-H	È	HÈHc                 óú   — t          |¦  «                             d¦  «        }t          |          }| t          v rt	          ||||||¦  «         d S | t
          v rt	          ||||||¦  «         d S t          d¦  «        ‚)NÚ
multilabelz2Metric is not recorded as having an average option)rA   Ú
startswithr³   ÚMETRICS_WITH_AVERAGINGr~  Ú"THRESHOLDED_METRICS_WITH_AVERAGINGrÏ   )r¶   rÅ   rp  rÆ   ro  rÞ   rx  rÉ   s           r[   Úcheck_averagingr„    s¤   € Ý" 6Ñ*Ô*×5Ò5°lÑCÔC€Må˜Ô€FàÕ%Ð%Ð%ÝØ�F˜F O°_Àmñ	
ô 	
ð 	
ð 	
ð 	
ð 
Õ3Ð	3Ð	3ÝØ�F˜G _°g¸}ñ	
ô 	
ð 	
ð 	
ð 	
õ ÐMÑNÔNÐNr]   c                 ó€  — d\  }}t          d¦  «        }|                     d||f¬¦  «        }|                     d||f¬¦  «        }|                     ||f¬¦  «        }t          ¦   «                              |¦  «        }|                     |¦  «        }|                     |¦  «        }	t          | ||||	|¦  «         d S )N)r<  r  r   rº   )rC   rÀ   rÚ   r5   ÚfitÚ	transformr„  )
r¶   r@  r?  rÄ   rÅ   rÆ   rÞ   Úlbrp  ro  s
             r[   Útest_averaging_multiclassr‰  "  sÅ   € à Ñ€IˆyÝ% aÑ(Ô(€LØ×!Ò! ! Y°i°\Ð!ÑBÔB€FØ×!Ò! ! Y°i°\Ð!ÑBÔB€FØ×"Ò"¨°IÐ(>Ð"Ñ?Ô?€Gå	Ñ	Ô	×	Ò	˜fÑ	%Ô	%€BØ—l’l 6Ñ*Ô*€OØ—l’l 6Ñ*Ô*€Oå�D˜& /°6¸?ÈGÑTÔTÐTÐTÐTr]   c                 óà   — d\  }}t          d|d|d¬¦  «        \  }}|d d…         }|dd …         }t          d¦  «                             d|f¬¦  «        }|}|}	t          | ||||	|¦  «         d S )	N)é(   r3  rR   r3  Fr=  r¹   r   rº   )r	   rC   r`  r„  )
r¶   r@  r?  r7  ÚyrÅ   rÆ   rÞ   rp  ro  s
             r[   Útest_averaging_multilabelr�  1  s›   € ð !Ñ€IˆyÝ)ØØØØØðñ ô �D€A€qð ˆs�ˆsŒV€FØˆrˆsˆsŒV€FÝ  Ñ#Ô#×*Ò*°°Y°Ð*Ñ@Ô@€GØ€OØ€Oå�D˜& /°6¸?ÈGÑTÔTÐTÐTÐTr]   c                 ó®   — t          j        d¦  «        }t          j        d¦  «        }t          j        d¦  «        }|}|}t          | |||||¦  «         d S ©N©r¹   r  )rW   Úzerosr„  ©r¶   rÅ   rÆ   rÞ   rp  ro  s         r[   Ú$test_averaging_multilabel_all_zeroesr“  F  sW   € åŒX�gÑÔ€FÝŒX�gÑÔ€FÝŒh�wÑÔ€GØ€OØ€Oå�D˜& /°6¸?ÈGÑTÔTÐTÐTÐTr]   c                  ó�   — t          j        d¦  «        } t          j        d¦  «        }| }|}dd„}t          || |||d¬¦  «         d S )Nr�  ry   c                 ó0   — t          t          | ||¦  «        S r­   )r3   r,   )rÅ   rÞ   rj   s      r[   r\   z=test_averaging_binary_multilabel_all_zeroes.<locals>.<lambda>W  s   € Õ=RÝ˜ ¨'ñ>ô >€ r]   T)rx  )ry   )rW   r‘  r~  )rÅ   rÆ   rp  ro  Úbinary_metrics        r[   Ú+test_averaging_binary_multilabel_all_zeroesr—  Q  sp   € ÝŒX�gÑÔ€FÝŒX�gÑÔ€FØ€OØ€Oðð ð €Mõ ØØØØØØðñ ô ð ð ð r]   c                 ó®   — t          j        d¦  «        }t          j        d¦  «        }t          j        d¦  «        }|}|}t          | |||||¦  «         d S r�  )rW   Úonesr„  r’  s         r[   Ú"test_averaging_multilabel_all_onesrš  d  sW   € åŒW�WÑÔ€FÝŒW�WÑÔ€FÝŒg�gÑÔ€GØ€OØ€Oå�D˜& /°6¸?ÈGÑTÔTÐTÐTÐTr]   c                 ó¶  — t           j                             d¦  «        }|                     ddt	          |¦  «        ¬¦  «        }| dk    rt          |d¬¦  «        n|} |||d ¬¦  «        }t          | |||t          j        t	          |¦  «        ¬¦  «        ¬¦  «        d	| z  ¬
¦  «          ||||¬¦  «        }t          j	        t          ¦  «        5  t          ||¦  «         t          d|›d|›d| ›�¦  «        ‚# 1 swxY w Y    ||||                     ¦   «         ¬¦  «        }t          ||d|›d|›d| ›�¬
¦  «          |t          j        ||d¬¦  «        t          j        ||d¬¦  «        d ¬¦  «        }	t          ||	d| z  ¬
¦  «         |dd d…         }
t          j        |¦  «        }d|d d d…<   |dd d…         }|dd d…         } ||||
¬¦  «        } ||||¬¦  «        }t          ||d|›d|›d| ›�¬
¦  «         |                      d¦  «        s)dD ]&}t          | |||||z  ¬¦  «        d| z  ¬
¦  «         Œ'd                     t#          |¦  «        t#          |¦  «        t#          |¦  «        dz  ¦  «        }t          j	        t          |¬¦  «        5   |||t          j        ||g¦  «        ¬¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )Nr   rR   é
   rº   r1   )r'  )Úsample_weight)rÛ   zAFor %s sample_weight=None is not equivalent to sample_weight=onesr¾   z>Unweighted and weighted scores are unexpectedly almost equal (z) and (z) for zFWeighted scores for array and list sample_weight input are not equal (z != rS   z.Weighting %s is not equal to repeating samplesrc   zUZeroing weights does not give the same result as removing the corresponding samples (Úunnormalized)rc   r  z/%s sample_weight is not invariant under scalingzJFound input variables with inconsistent numbers of samples: \[{}, {}, {}\]r	  )rW   ÚrandomÚRandomStaterÀ   r‹   r   r;   r™  rÌ   rÍ   rÎ   rÏ   Útolistr   Úcopyr�  rû   rB   Úhstack)r¶   rÉ   r¨   r©   Úrngr�  Úunweighted_scoreÚweighted_scoreÚweighted_score_listÚrepeat_weighted_scoreÚsample_weight_subsetÚsample_weight_zeroedÚ	y1_subsetÚ	y2_subsetÚweighted_score_subsetÚweighted_score_zeroedÚscalingÚerror_messages                     r[   Úcheck_sample_weight_invariancer±  o  sE  € å
Œ)×
Ò
 Ñ
"Ô
"€CØ—K’K  2­C°©G¬G�KÑ4Ô4€Mð &*Ð-CÒ%CÐ%C�W�V˜qÐ!Ñ!Ô!Ð!È€Fð �v˜b "°DÐ9Ñ9Ô9ÐåØØˆˆr�2¥R¤Wµ3°r±7´7Ð%;Ñ%;Ô%;Ð<Ñ<Ô<ØSØ
ñðñ ô ð ð �V˜B °-Ð@Ñ@Ô@€Nõ 
Œ•~Ñ	&Ô	&ð 
ð 
ÝÐ(¨.Ñ9Ô9Ð9Ýˆjð )Ð(Ð(¨.¨.¨.¸$¸$ð@ñ
ô 
ð 	
ð
ð 
ð 
ð 
øøøð 
ð 
ð 
ð 
ð !˜&  R°}×7KÒ7KÑ7MÔ7MÐNÑNÔNÐÝØØÐð
 ˆ>ˆ>Ð.Ð.Ð.°°ð	6ðñ ô ð ð #˜FÝ
Œ	�"�m¨!Ð,Ñ,Ô,Ý
Œ	�"�m¨!Ð,Ñ,Ô,Øðñ ô Ðõ
 ØØØ@À4ÑGðñ ô ð ð )¨¨¨A¨Ô.ÐÝœ7 =Ñ1Ô1ÐØ !Ð˜˜˜1˜ÑØ�1�4�a�4”€IØ�1�4�a�4”€IØ"˜FØ�9Ð,@ðñ ô Ðð #˜F 2 rÐ9MÐNÑNÔNÐÝØØÐð
 !Ð Ð Ð"7Ð"7Ð"7¸¸ð	?ðñ ô ð ð �?Š?˜>Ñ*Ô*ð ð  ð 	ð 	ˆGÝØØ��r˜2¨]¸WÑ-DÐEÑEÔEØIÈDÑPðñ ô ð ð ð	#ß#)¢6Ý˜ÑÔ�l¨2Ñ.Ô.µ¸]Ñ0KÔ0KÈaÑ0Oñ$
ô $
ð õ 
Œ•z¨Ð	7Ñ	7Ô	7ð Pð PØˆˆr�2¥R¤Y°¸}Ð/MÑ%NÔ%NÐOÑOÔOÐOðPð Pð Pñ Pô Pð Pð Pð Pð Pð Pð Pð Pøøøð Pð Pð Pð Pð Pð Ps$   Ã)C=Ã=DÄDÊ#KËKËKc                 óÂ   — d}t          d¦  «        }|                     |f¬¦  «        }|                     |f¬¦  «        }t          |          }t          | |||¦  «         d S )Nr<  r   rº   )rC   Úrandom_sampler³   r±  )r¶   r@  rÄ   rÅ   rÆ   rÉ   s         r[   Ú(test_regression_sample_weight_invariancer´  Ñ  sj   € ð €IÝ% aÑ(Ô(€Là×'Ò'¨i¨\Ð'Ñ:Ô:€FØ×'Ò'¨i¨\Ð'Ñ:Ô:€FÝ˜Ô€FÝ" 4¨°¸Ñ@Ô@Ð@Ð@Ð@r]   c                 ó2  — d}t          d¦  «        }|                     dd|f¬¦  «        }|                     dd|f¬¦  «        }|                     |f¬¦  «        }t          |          }| t          v rt          | |||¦  «         d S t          | |||¦  «         d S )Nr<  r   rc   rº   )rC   rÀ   r³  r³   r±   r±  )r¶   r@  rÄ   rÅ   rÆ   rÞ   rÉ   s          r[   Ú$test_binary_sample_weight_invariancer¶  â  s°   € ð €IÝ% aÑ(Ô(€LØ×!Ò! ! Q¨i¨\Ð!Ñ:Ô:€FØ×!Ò! ! Q¨i¨\Ð!Ñ:Ô:€FØ×(Ò(¨y¨lÐ(Ñ;Ô;€GÝ˜Ô€FØÕ"Ð"Ð"Ý& t¨V°V¸WÑEÔEÐEÐEÐEå& t¨V°V¸VÑDÔDÐDÐDÐDr]   c                 ó¸  — d}t          d¦  «        }|                     dd|f¬¦  «        }|                     dd|f¬¦  «        }|                     |df¬¦  «        }t          |          }| t          v rVt          j        | ¦  «        }||                     d¬¦  «                             dd¦  «        z  }t          | |||¦  «         d S t          | |||¦  «         d S )Nr<  r   r3  rº   râ   rS   rR   )
rC   rÀ   r³  r³   r±   rW   ÚexprV   rå   r±  )	r¶   r@  rÄ   rÅ   rÆ   rÞ   rÉ   ÚtempÚy_score_norms	            r[   Ú(test_multiclass_sample_weight_invariancer»  ù  së   € ð €IÝ% aÑ(Ô(€LØ×!Ò! ! Q¨i¨\Ð!Ñ:Ô:€FØ×!Ò! ! Q¨i¨\Ð!Ñ:Ô:€FØ×(Ò(¨y¸!¨nÐ(Ñ=Ô=€GÝ˜Ô€FØÕ"Ð"Ð"åŒv�w�hÑÔˆØ˜dŸhšh¨B˜hÑ/Ô/×7Ò7¸¸AÑ>Ô>Ñ>ˆÝ& t¨V°V¸\ÑJÔJÐJÐJÐJå& t¨V°V¸VÑDÔDÐDÐDÐDr]   c                 óº  — t          d¦  «        }t          ddddd¬¦  «        \  }}t          ddddd¬¦  «        \  }}t          j        ||g¦  «        }t          j        ||g¦  «        }|                     |j        ¬¦  «        }||                     dd¬	¦  «        z  }t          |          }| t          v rt          | |||¦  «         d S t          | |||¦  «         d S )
Nr   rR   rœ  r<  Fr=  rº   TrØ   )
rC   r	   rW   rJ  rÚ   rÛ   rV   r³   r±   r±  )	r¶   rÄ   r7  ÚyaÚybrÅ   rÆ   rÞ   rÉ   s	            r[   Ú(test_multilabel_sample_weight_invariancer¿    s  € õ & aÑ(Ô(€LÝ*Ø °¸bÐRWðñ ô �E€A€rõ +Ø °¸bÐRWðñ ô �E€A€rõ ŒY˜˜B�xÑ Ô €FÝŒY˜˜B�xÑ Ô €FØ×"Ò"¨¬Ð"Ñ5Ô5€Gð ˆw�{Š{ ¨Dˆ{Ñ1Ô1Ñ1€Gå˜Ô€FØÕ"Ð"Ð"Ý& t¨V°V¸WÑEÔEÐEÐEÐEå& t¨V°V¸VÑDÔDÐDÐDÐDr]   c                  óþ  — t          j        g d¢g d¢g¦  «        } t          j        g d¢g d¢g¦  «        }t          j        g d¢¦  «        }t          j        g d¢¦  «        }t          j        g d¢¦  «        }t          j        |d¬¦  «        \  }}t          D ]e}||g| |gfD ]Z\  }}	|t          vr|	j        d	k    rŒt          |         }
 |
||	|d ¬
¦  «        } |
||	d ¬¦  «        }t          |||         ¦  «         Œ[Œfd S )N)rR   rR   r   r   ©r   r   rR   rR   )r   rR   rR   r   )r   rR   rc   )r   rc   r  )r  r   rR   rc   T)Úreturn_inverserR   )rø   rj   rl   )rW   rŒ   Úuniquer‚  rÃ   rä   r³   r=   )Úy_true_multilabelÚy_pred_multilabelÚy_true_multiclassÚy_pred_multiclassrø   r7  Úinverse_labelsr¶   rÅ   rÆ   rÉ   Úscore_labelsÚscores                r[   Útest_no_averaging_labelsrË  1  sI  € õ œ , , ,°°°Ð!=Ñ>Ô>ÐÝœ , , ,°°°Ð!=Ñ>Ô>ÐÝœ   Ñ+Ô+ÐÝœ   Ñ+Ô+ÐÝŒX�l�l�lÑ#Ô#€FÝœ	 &¸Ð>Ñ>Ô>Ñ€A€~å&ð Dð DˆàÐ 1Ð2ØÐ 1Ð2ð
ð 	Dð 	D‰NˆF�Fð Õ.Ð.Ð.°6´;À²?°?Øå  Ô&ˆFà!˜6 &¨&¸ÈÐNÑNÔNˆLØ�F˜6 6°4Ð8Ñ8Ô8ˆEÝ˜|¨U°>Ô-BÑCÔCÐCÐCð	DðDð Dr]   c                 óp  — t          d¦  «        }d\  }}|                     dd||f¬¦  «        }|                     dd||f¬¦  «        }t          |          } |||¦  «        }t          t	          |¦  «        |¦  «        D ]6}|d d …|f         }	|d d …|f         }
 ||
|	¦  «        }t          ||¦  «         Œ7d S )Nr   ©r¹   r&  rc   rº   )rC   rÀ   r³   r   r4  r<   ©r¶   rÄ   r@  r?  rÅ   rÞ   rÉ   rÊ  r8  Úy_score_permÚy_true_permÚcurrent_scores               r[   Ú-test_multilabel_label_permutations_invariancerÒ  K  sæ   € õ & aÑ(Ô(€LØ Ñ€Iˆyà×!Ò! ! Q¨i¸Ð-CÐ!ÑDÔD€FØ×"Ò" 1 a¨y¸)Ð.DÐ"ÑEÔE€Gå˜Ô€FØˆF�6˜7Ñ#Ô#€Eå�U 9Ñ-Ô-¨yÑ9Ô9ð 2ð 2ˆØ˜q˜q˜q $˜wÔ'ˆØ˜Q˜Q˜Q ˜W”oˆà˜˜{¨LÑ9Ô9ˆÝ˜E =Ñ1Ô1Ð1Ð1ð2ð 2r]   c                 ór  — t          d¦  «        }d\  }}|                     dd||f¬¦  «        }|                     |j        ¬¦  «        }||                     dd¬¦  «        z  }d||                     d¦  «        dk    df<   d||                     d¦  «        dk    df<   t
          |          } |||¦  «        }t          t          |¦  «        |¦  «        D ]`}|d d …|f         }	|d d …|f         }
 ||
|	¦  «        }|t          k    rt          j
        |¦  «        sJ ‚|d	k    sJ ‚ŒPt          ||¦  «         Œad S )
Nr   rÍ  rc   rº   rR   TrØ   r&  g    €„.A)rC   rÀ   rÚ   rÛ   rV   r³   r   r4  r"   rW   r  r<   rÎ  s               r[   Ú?test_thresholded_multilabel_multioutput_permutations_invariancerÔ  `  sq  € õ & aÑ(Ô(€LØ Ñ€IˆyØ×!Ò! ! Q¨i¸Ð-CÐ!ÑDÔD€FØ×"Ò"¨¬Ð"Ñ5Ô5€Gð ˆw�{Š{ ¨Dˆ{Ñ1Ô1Ñ1€Gð %&€Fˆ6�:Š:�a‰=Œ=˜AÒ˜qÐ Ñ!Ø$%€Fˆ6�:Š:�a‰=Œ=˜AÒ˜qÐ Ñ!å˜Ô€FØˆF�6˜7Ñ#Ô#€Eå�U 9Ñ-Ô-¨yÑ9Ô9ð 6ð 6ˆØ˜q˜q˜q $˜wÔ'ˆØ˜Q˜Q˜Q ˜W”oˆà˜˜{¨LÑ9Ô9ˆØÕ3Ò3Ð3Ý”;˜}Ñ-Ô-Ð-Ð-Ð-Ø  3Ò&Ð&Ð&Ð&Ð&õ    }Ñ5Ô5Ð5Ð5ð6ð 6r]   c                 óx  — d\  }}t          d¦  «        }|                     ||¦  «        }t          j        | ¦  «        }||                     d¬¦  «                             dd¦  «        z  }|                     d||¬¦  «        }t          |          } |||¦  «        }t          t          |¦  «        |¦  «        D ]~}	t          j
        |t          ¬¦  «        }
t          j        |¦  «        |
t          |	¦  «        <   |d d …|
f         }t          j        |	|¦  «        } |||¦  «        }t          ||¦  «         Œd S )N)rj  r  r   râ   rS   rR   rº   rW  )rC   ÚrandrW   r¸  rV   rå   rÀ   r³   r   r4  r‘  rw  Úarangerã   Útaker<   )r¶   r@  r?  rÄ   rÞ   r¹  rÅ   rÉ   rÊ  r8  Úinverse_permrÏ  rÐ  rÑ  s                 r[   Ú.test_thresholded_metric_permutation_invariancerÚ  „  s>  € ð "Ñ€IˆyÝ% aÑ(Ô(€Là×Ò 	¨9Ñ5Ô5€GÝŒ6�7�(ÑÔ€DØ�T—X’X 2�XÑ&Ô&×.Ò.¨r°1Ñ5Ô5Ñ5€GØ×!Ò! ! Y°YÐ!Ñ?Ô?€Få˜Ô€FØˆF�6˜7Ñ#Ô#€EÝ�U 9Ñ-Ô-¨yÑ9Ô9ð 2ð 2ˆÝ”x 	µÐ5Ñ5Ô5ˆÝ#%¤9¨YÑ#7Ô#7ˆ•T˜$‘Z”ZÑ Ø˜q˜q˜q ,˜Ô/ˆÝ”g˜d FÑ+Ô+ˆà˜˜{¨LÑ9Ô9ˆÝ˜E =Ñ1Ô1Ð1Ð1ð2ð 2r]   Úmetric_namec                 ób  — t           j                             d¦  «        }t          j        dgdz  dgdz  z   t          ¬¦  «        }|                     dd|j        ¬¦  «        }d	}t          j        t          |¬
¦  «        5  t          |          ||¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )Né*   rò   r  rñ   rc   rW  r   rº   z7Labels in y_true and y_pred should be of the same type.r	  )rW   rŸ  r   rŒ   rV  rÀ   r»   rÌ   rÍ   Ú	TypeErrorrù   )rÛ  r¤  r¨   r©   r¿   s        r[   Ú"test_metrics_consistent_type_errorrß  œ  sê   € õ Œ)×
Ò
 Ñ
#Ô
#€CÝ	Œ�6�(˜Q‘, & ¨A¡Ñ-µVÐ	<Ñ	<Ô	<€BØ	�Š�Q˜ ¤ˆÑ	(Ô	(€BàG€GÝ	Œ•y¨Ð	0Ñ	0Ô	0ð 4ð 4Ý˜{Ô+¨B°Ñ3Ô3Ð3ð4ð 4ð 4ñ 4ô 4ð 4ð 4ð 4ð 4ð 4ð 4ð 4øøøð 4ð 4ð 4ð 4ð 4ð 4s   Â B$Â$B(Â+B(zmetric, y_pred_thresholdÚdtype_y_strc                 óÚ  — t           j                             d¦  «        }t          j        dgdz  dgdz  z   |¬¦  «        }|                     dd|j        ¬¦  «        }|st          j        ddg|¬¦  «        |         }d	}d
}t          | ¦  «        j        d         j        }|dk    r|n|}	t          j
        t          |	¬¦  «        5   | ||¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )NrÝ  rò   r  rñ   rc   rW  r   rº   z”y_true takes value in {'eggs', 'spam'} and pos_label is not specified: either make y_true take value in {0, 1} or {-1, 1} or pass pos_label explicitzHpos_label=1 is not a valid label. It should be one of \['eggs', 'spam'\]rô   rR   r	  )rW   rŸ  r   rŒ   rÀ   r»   r   Ú
parametersÚdefaultrÌ   rÍ   rÏ   )
rÉ   Úy_pred_thresholdrà  r¤  r¨   r©   Úerr_msg_pos_label_NoneÚerr_msg_pos_label_1Úpos_label_defaultr¿   s
             r[   Ú test_metrics_pos_label_error_strrè  ©  sK  € õ$ Œ)×
Ò
 Ñ
#Ô
#€CÝ	Œ�6�(˜Q‘, & ¨A¡Ñ-°[Ð	AÑ	AÔ	A€BØ	�Š�Q˜ ¤ˆÑ	(Ô	(€Bàð ?ÝŒX�v˜vÐ&¨kÐ:Ñ:Ô:¸2Ô>ˆð	"ð ð 	Xð õ " &Ñ)Ô)Ô4°[ÔAÔIÐà%6¸!Ò%;Ð%;Ð!Ð!ÐAW€GÝ	Œ•z¨Ð	1Ñ	1Ô	1ð ð Øˆˆr�2‰Œˆðð ð ñ ô ð ð ð ð ð ð ð øøøð ð ð ð ð ð s   ÃC Ã C$Ã'C$c                 óæ  — t          ||¦  «        }|                     ||¬¦  «        }|                     ||¬¦  «        }	 | ||fi |¤Ž}
|                     d¦  «        � |                     |d         |¬¦  «        |d<   t          d¬¦  «        5   | ||	fi |¤Ž}t	          t          |                     |¦  «        |¦  «        |
t          |¦  «        ¬¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )N)Údevicer�  T)Úarray_api_dispatch)Úatol)r:   ÚasarrayÚgetr   r;   r8   r7   )rÉ   Úarray_namespacerê  Ú
dtype_nameÚa_npÚb_npÚmetric_kwargsÚxpÚa_xpÚb_xpÚ	metric_npÚ	metric_xps               r[   Úcheck_array_api_metricrù  Ò  s_  € õ 
˜o¨vÑ	6Ô	6€Bà�:Š:�d 6ˆ:Ñ*Ô*€DØ�:Š:�d 6ˆ:Ñ*Ô*€Dà��t˜TÐ3Ð3 ]Ð3Ð3€Ià×Ò˜Ñ)Ô)Ð5Ø)+¯ªØ˜/Ô*°6ð *4ñ *
ô *
ˆ�oÑ&õ 
¨4Ð	0Ñ	0Ô	0ð 
ð 
Ø�F˜4 Ð7Ð7¨Ð7Ð7ˆ	åÝ˜bŸjšj¨Ñ3Ô3°RÑ8Ô8ØÝ 
Ñ+Ô+ð	
ñ 	
ô 	
ð 	
ð
ð 
ð 
ñ 
ô 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
øøøð 
ð 
ð 
ð 
ð 
ð 
s   ÂAC&Ã&C*Ã-C*c           	      óæ   — t          j        g d¢¦  «        }t          j        g d¢¦  «        }t          | |||||d ¬¦  «         t          j        g d¢|¬¦  «        }t          | ||||||¬¦  «         d S )NrÁ  )r   rR   r   rR   ©rñ  rò  r�  ©ç        r  ç       @g      ð?rW  ©rW   rŒ   rù  ©rÉ   rï  rê  rð  Ú	y_true_npÚ	y_pred_npr�  s          r[   Ú,check_array_api_binary_classification_metricr  ë  ó©   € õ ”˜˜˜Ñ&Ô&€IÝ”˜˜˜Ñ&Ô&€IåØØØØØØØðñ ô ð õ ”HÐ1Ð1Ð1¸ÐDÑDÔD€MåØØØØØØØ#ðñ ô ð ð ð r]   c           	      óæ   — t          j        g d¢¦  «        }t          j        g d¢¦  «        }t          | |||||d ¬¦  «         t          j        g d¢|¬¦  «        }t          | ||||||¬¦  «         d S )N)r   rR   rc   r  )r   rR   r   rc   rû  rü  rW  rÿ  r   s          r[   Ú0check_array_api_multiclass_classification_metricr    r  r]   c           	      ó
  — t          j        ddgddgddgg|¬¦  «        }t          j        ddgddgddgg|¬¦  «        }t          | |||||d ¬¦  «         t          j        g d¢|¬¦  «        }t          | ||||||¬¦  «         d S )NrR   r   rW  rû  )rý  r  rþ  rÿ  r   s          r[   Ú0check_array_api_multilabel_classification_metricr  %  sÎ   € õ ”˜1˜a˜& 1 a &¨1¨a¨&Ð1¸ÐDÑDÔD€IÝ”˜1˜a˜& 1 a &¨1¨a¨&Ð1¸ÐDÑDÔD€IåØØØØØØØðñ ô ð õ ”H˜_˜_˜_°JÐ?Ñ?Ô?€MåØØØØØØØ#ðñ ô ð ð ð r]   c           	      óþ   — t          j        ddgddgg|¬¦  «        }t          j        ddgddgg|¬¦  «        }t          | |||||d ¬¦  «         t          j        ddg|¬¦  «        }t          | ||||||¬¦  «         d S )	NrR   r  rc   rW  r&  rû  r  rþ  rÿ  r   s          r[   Ú!check_array_api_regression_metricr
  B  sÀ   € Ý”˜1˜a˜& 1 a &Ð)°Ð<Ñ<Ô<€IÝ”˜1˜a˜& 1 a &Ð)°Ð<Ñ<Ô<€IåØØØØØØØðñ ô ð õ ”H˜c 3˜Z¨zÐ:Ñ:Ô:€MåØØØØØØØ#ðñ ô ð ð ð r]   c                 óÚ   — t          j        g d¢g d¢g|¬¦  «        }t          j        g d¢g d¢g|¬¦  «        }i }dt          | ¦  «        j        v rd|d<   t	          | |||||¬¦  «         d S )	Nr  )çš™™™™™Ù?rf   ç333333ã?rW  )r  r  r  )rf   r  gffffffæ?Údense_outputT)rñ  rò  )rW   rŒ   r   râ  rù  )rÉ   rï  rê  rð  ÚX_npÚY_npró  s          r[   Úcheck_array_api_metric_pairwiser  ]  s—   € åŒ8�_�_�_ o o oÐ6¸jÐIÑIÔI€DÝŒ8�_�_�_ o o oÐ6¸jÐIÑIÔI€Dà€MØ� 6Ñ*Ô*Ô5Ð5Ð5Ø(,ˆ�nÑ%åØ� ¨¸$ÀTðñ ô ð ð ð r]   c              #   óT   K  — |                       ¦   «         D ]\  }}|D ]}||fV — Œ	Œd S r­   )Úitems)Úmetric_checkersrÉ   ÚcheckersÚcheckers       r[   Ú!yield_metric_checker_combinationsr  {  sW   è è € Ø+×1Ò1Ñ3Ô3ð "ð "Ñˆ�Øð 	"ð 	"ˆGØ˜'�/Ð!Ð!Ð!Ð!ð	"ð"ð "r]   z#array_namespace, device, dtype_namezmetric, check_funcc                 ó"   —  || |||¦  «         d S r­   r´   )rÉ   rï  rê  rð  Ú
check_funcs        r[   Útest_array_api_compliancer  �  s    € ð
 €Jˆv�¨°
Ñ;Ô;Ð;Ð;Ð;r]   )¨Ú	functoolsr   Úinspectr   Ú	itertoolsr   r   r   ÚnumpyrW   rÌ   Úsklearn._configr   Úsklearn.datasetsr	   Úsklearn.metricsr
   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/   r0   r1   r2   Úsklearn.metrics._baser3   Úsklearn.metrics.pairwiser4   Úsklearn.preprocessingr5   Úsklearn.utilsr6   Úsklearn.utils._array_apir7   r8   r9   Úsklearn.utils._testingr:   r;   r<   r=   r>   r?   Úsklearn.utils.fixesr@   Úsklearn.utils.multiclassrA   Úsklearn.utils.validationrB   rC   ÚREGRESSION_METRICSrù   r”   ÚCURVE_METRICSr±   Údictr³   ÚupdaterÂ   ÚMETRIC_UNDEFINED_MULTICLASSÚunionr²   r‚  rƒ  rú   rü   ÚMETRICS_WITH_NORMALIZE_OPTIONrÜ   rÃ   rÝ   r®   r¯   ÚMETRICS_WITHOUT_SAMPLE_WEIGHTrÁ   r«   rµ   ÚmarkÚparametrizeÚsortedrÊ   rÐ   r°   rÖ   rà   rï   r  r  Úinfr�   Úinvalids_nan_infr!  r  r  r  r$  r)  r,  r.  r1  r9  rT  r[  rf  rh  Úintersectionrk  r~  r„  r‰  r�  r“  r—  rš  r±  r´  r¶  r»  r¿  rË  rÒ  rÔ  rÚ  rß  ÚstrrV  rè  rù  r  r  r  r
  r  Úarray_api_metric_checkersr  r  r´   r]   r[   ú<module>r;     sB  ðØ Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø 2Ð 2Ð 2Ð 2Ð 2Ð 2Ð 2Ð 2Ð 2Ð 2à Ð Ð Ð Ø €€€à *Ð *Ð *Ð *Ð *Ð *Ø ;Ð ;Ð ;Ð ;Ð ;Ð ;ð*ð *ð *ð *ð *ð *ð *ð *ð *ð *ð *ð *ð *ð *ð *ð *ð *ð *ð *ð *ð *ð *ð *ð *ð *ð *ð *ð *ð *ð *ð *ð *ð *ð *ð *ð *ð *ð *ð *ð *ð *ð *ð *ð *ð *ð *ð *ð *ð *ð *ð *ð *ð *ð *ð *ð *ð *ð *ð *ð *ð *ð *ð *ð *ð *ð *ð *ð *ð *ð *ð *ð *ð *ð *ð *ð *ð *ð *ð *ð *ð *ð *ð *ð *ð *ð *ðV 8Ð 7Ð 7Ð 7Ð 7Ð 7Ø 6Ð 6Ð 6Ð 6Ð 6Ð 6Ø 0Ð 0Ð 0Ð 0Ð 0Ð 0Ø !Ð !Ð !Ð !Ð !Ð !ðð ð ð ð ð ð ð ð ð ð
ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð /Ð .Ð .Ð .Ð .Ð .Ø 3Ð 3Ð 3Ð 3Ð 3Ð 3Ø EÐ EÐ EÐ EÐ EÐ EÐ EÐ EðH Ø.Ø,Ø*Ø2Ø&DØ 8Ø�˜Ð.AÐBÑBÔBØ#˜GÐ$9ÀÐCÑCÔCØ2Ø.Ø&- gÐ.CÈ3Ð&OÑ&OÔ&OØ˜Ð 0¸Ð<Ñ<Ô<Ø(Ø6ðð Ð ð$6Ø�nð6àÐ6ð6ð '¨¨Ð0GÐRVÐ(WÑ(WÔ(Wð6ð " 7 7¨>ÀUÐ#KÑ#KÔ#Kð	6ð $Ð%5ð6ð "ð $ð $ð6ð /Ð0Kð6ð 6°w°wØ#°ð8ñ 8ô 8ð6ð$ �Lð%6ð& �]ð'6ð( ! ' '¨-À5Ð"IÑ"IÔ"Ið)6ð, �]ð-6ð. �ð/6ð0 �Lð16ð2 �ð36ð4 ��˜¨!Ð,Ñ,Ô,ð56ð6 �'�'˜+¨CÐ0Ñ0Ô0ð76ð 6ð8 Ð0ð96ð: ˜7˜7 ;¸
ÈÐMÑMÔMð;6ð< ˜˜ °:Ð>Ñ>Ô>ð=6ð> ˜˜ °jÀqÐIÑIÔIð?6ð@   ¨ÀÐ LÑ LÔ LðA6ðB ˜W˜W \¸:ÐFÑFÔFðC6ðD ˜g˜g m¸ZÐHÑHÔHðE6ðF ˜˜ °WÀ3ÐGÑGÔGðG6ðH �g�g˜h°Ð8Ñ8Ô8ðI6ðJ �g�g˜k°7ÀÐCÑCÔCðK6ðL ˜W˜W _¸gÐFÑFÔFðM6ðN ˜'˜' ,¸Ð@Ñ@Ô@ðO6ðP ˜7˜7 =¸'ÐBÑBÔBðQ6ðR ˜˜ °WÀ3ÐGÑGÔGðS6ðT �g�g˜h°Ð8Ñ8Ô8ðU6ðV �g�g˜k°7ÀÐCÑCÔCðW6ðX ˜W˜W _¸gÐFÑFÔFðY6ð 6ðZ "˜' ,¸Ð@Ñ@Ô@Ø"˜7 =¸'ÐBÑBÔBØ!˜' +°yÀsÐKÑKÔKØ˜ °)Ð<Ñ<Ô<Ø˜ °YÀQÐGÑGÔGØ&˜w À	ÐJÑJÔJØ#˜G L¸)ÐDÑDÔDØ$˜W ]¸IÐFÑFÔFØ*ðk6ð 6ð 6Ð ðrð ð ð@ ØFØðð €ð Ø�nð àÐ,ð ð �ð ð ˜W˜W X¸Ð?Ñ?Ô?ð	 ð
 �*ð ð Ð(ð ð �]ð ð ˜˜ °zÐBÑBÔBð ð �w�w˜}°iÐ@Ñ@Ô@ð ð �W�W˜]°GÐ<Ñ<Ô<ð ð �7�7˜=°'ÀuÐMÑMÔMð ð ˜G˜GØ˜z°uðñ ô ð ð �7�7˜=°'ÀuÐMÑMÔMð ð  ˜G˜GØ˜z°uðñ ô ð! ð& �w�w˜}°cÐ:Ñ:Ô:ð' ð( Ð6ð) ð* '¨¨Ø¨ð)ñ )ô )ð+ ð0 (/ wØ¨ð(ñ (ô (ð &- WÐ-DÈgÐ%VÑ%VÔ%VØ-RØØØ0ð? ð  ð  Ð ðD ˆd‰fŒf€Ø × Ò Ð&Ñ 'Ô 'Ð 'Ø × Ò Ð)Ñ *Ô *Ð *Ø × Ò Ð%Ñ &Ô &Ð &Ø × Ò �=Ñ !Ô !Ð !ðð ð Ð ð ð ð Ð ð* &=×%BÒ%BØñ&ô &Ð "ð
ð ð Ð ð&ð &ð &Ð "ðð ð Ð ð(!ð !ð !Ð ðH!ð !ð !Ð ð"ð "ð "Ð ð(ð ð Ð ðD
ð 
ð 
Ð ðð ð Ð ðB ð  ð  Ð ðH!ð !ð !Ð ðð ð Ð ðð ð ð	@ð 	@ð 	@ð „×Ò˜  Ð(9Ñ!:Ô!:Ñ;Ô;ð
ð 
ñ <Ô;ð
ð< „×Ò˜  Ð(=Ñ!>Ô!>Ñ?Ô?ð<ð <ñ @Ô?ð<ð" „×ÒØ
ˆFˆF�3�3�{Ñ#Ô#Ð&HÑHÑIÔIñô ð
ð 
ñô ð
ð& ð*
ð *
ñ „ð*
ðZ „×ÒØ
ˆFˆF�3�3�{Ñ#Ô#Ð&HÑHÑIÔIñô ðs'ð s'ñô ðs'ðl „×ÒØ
ˆFˆF�3�3Ð-Ñ.Ô.Ð1SÑSÑTÔTñô ð2ð 2ñô ð2ðj „×Ò˜Ð!4Ñ5Ô5ð'/ð '/ñ 6Ô5ð'/ðV ˆ€VˆbŒf�b”fÐÐØˆ€VˆbŒf�b”fÐÐØˆ€VˆbŒf�b”fÐÐØˆ€VˆbŒf�aˆ[ÐØˆ€VˆbŒf�aˆ[ÐðÐ ð „×ÒØˆeˆeÐ'×.Ò.Ñ0Ô0Ð2D×2KÒ2KÑ2MÔ2MÑNÔNñô ð „×ÒÐ*Ð,<Ñ=Ô=ð ð  ñ >Ô=ñô ð ð „×Ò˜Ð#9×#@Ò#@Ñ#BÔ#BÑCÔCØ„×ÒØØð
 Œ&�!�Qˆ˜˜˜Ð#Ø
Œ&�!�Qˆ˜˜˜Ð#ðñ	ñ
ô 
ð ð  ñ
ô 
ñ DÔCð ð, „×Ò˜Ð#9×#@Ò#@Ñ#BÔ#BÑCÔCð ð  ñ DÔCð ð ðð ñ „ðð  ð7ð 7ñ „ð7ð „×ÒØ
Ø
€FØˆˆKÑÔð -ñ	-ð ˆ#Ð!Ñ
"Ô
"ñ		#ñô ñ	ô 	ðð ñ	ô 	ðð „×Ò˜  Ð(;Ð>QÑ(QÑ!RÔ!RÑSÔSð*ð *ñ TÔSð*ð „×Ò˜  Ð(;Ñ!<Ô!<Ñ=Ô=ðð ñ >Ô=ðð „×Ò˜  Ð(;Ñ!<Ô!<Ñ=Ô=ð
ð 
ñ >Ô=ð
ð$ Ø„×Ò˜¨.Ñ9Ô9ðH
ð H
ñ :Ô9ñ „ðH
ðV „×Ò˜  Ð(;Ñ!<Ô!<Ñ=Ô=ðð ñ >Ô=ðð  „×Ò˜  Ð(EÑ!FÔ!FÑGÔGðð ñ HÔGðð8 „×Ò˜  Ð(EÑ!FÔ!FÑGÔGðð ñ HÔGðð8 „×ÒØ
ˆFˆFÐ0×=Ò=Ð>QÑRÔRÑSÔSñô ð,ð ,ñô ð,ð^ ð32ð 32ñ „ð32ðlOð Oð Oð" „×Ò˜  Ð(>Ñ!?Ô!?Ñ@Ô@ðUð Uñ AÔ@ðUð „×ÒØ
ˆFˆFÐ)Ð,NÑNÑOÔOñô ðUð Uñô ðUð$ „×Ò˜  Ð(>Ñ!?Ô!?Ñ@Ô@ðUð Uñ AÔ@ðUðð ð ð& „×Ò˜  Ð(>Ñ!?Ô!?Ñ@Ô@ðUð Uñ AÔ@ðUð ð^Pð ^Pñ „ð^PðB „×ÒØ
Ø
€FØˆˆKÑÔ×%Ò% c cÐ*<Ñ&=Ô&=Ñ>Ô>Ø
'ñ	(ñô ñô ðAð Añô ðAð „×ÒØ
Ø
€FØˆˆKÑÔØ
ˆ#Ð Ñ
!Ô
!ñ	"à
'ñ	(ð "ñ	"ñô ñô ðEð Eñô ðEð „×ÒØ
Ø
€FØˆˆKÑÔØ
ˆ#Ð Ñ
!Ô
!ñ	"à
'ñ	(ð -ñ	-ñô ñô ðEð Eñô ðEð" „×ÒØ
Ø
€FØ	Ð=Ñ	=Ð@SÑ	SØ
'ñ	(ñô ñô ðEð Eñô ðEð. ðDð Dñ „ðDð2 „×ÒØ
ˆFˆFÐ&Ð*TÐ)UÑUÑVÔVñô ð2ð 2ñô ð2ð$ „×ÒØ
ˆFˆFÐ1Ð4GÑGÑHÔHñô ð6ð 6ñô ð6ðB „×ÒØ
ˆFˆF�3�3Ð*Ñ+Ô+Ð.PÑPÑQÔQñô ð2ð 2ñô ð2ð* „×Ò˜Ð(>Ñ?Ô?ð	4ð 	4ñ @Ô?ð	4ð „×ÒØà	  $Ð'Ø	˜4Ð Ø	�5ÐØ	ˆ� 1Ð	%Ñ	%Ô	% uÐ-Ø	˜ÐØ	 Ð&Ø	˜%Ð Ø	�uÐØ	�DÐð
ñô ð „×Ò˜¨¨f¨Ñ6Ô6ðð ñ 7Ô6ñô ðð4
ð 
ð 
ð2ð ð ð:ð ð ð:ð ð ð:ð ð ð6ð ð ð Ø4Ø8Ø8ðð
 Ø4Ø8Ø8ðð
 Ð0Ð1ØÐ7Ð8ðÐ ð  7Pð "ð "ð "ð "ð „×ÒØ)Ð+TÐ+TÑ+VÔ+Vñô ð „×ÒÐ-Ð/PÐ/PÑ/RÔ/RÑSÔSð<ð <ñ TÔSñô ð<ð <ð <r]   