§
    rŠtj¸‚ ã                   óž#  — 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	 d dl
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 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/m0Z0m1Z1m2Z2m3Z3m4Z4m5Z5m6Z6m7Z7m8Z8m9Z9m:Z:m;Z;m<Z<m=Z=m>Z>m?Z?m@Z@mAZAmBZBmCZCmDZDmEZE d d
lFmGZG d dlHmIZImJZJmKZKmLZLmMZMmNZNmOZOmPZPmQZQmRZRmSZSmTZTmUZUmVZVmWZWmXZXmYZY d dlZm[Z[ d dl\m]Z] d dl^m_Z_m`Z`maZambZbmcZcmdZd d dl^meZf d dlgmhZhmiZimjZjmkZkmlZlmmZmmnZn d dlompZpmqZqmrZr d dlsmtZt d dlumvZvmwZw i de0“de1“de6“de7“de4“de9“de2“de&“d ee>d¬¦  «        “deB“d eC“d! ee8d ¬"¦  «        “d#e5“d$e3“d% ee8d&¬"¦  «        “d'e8“d( ee#d&¬"¦  «        “e" ee"d)¬*¦  «         ee"d+¬*¦  «        ed,œ¥Zxi d-e“d.e“d/ eed0¬1¦  «        “d2 eed3¬4¦  «        “d5e“d6d7„ “d8e:“d9 ee:d0¬:¦  «        “d;e)“d<eE“d= eeEd3¬4¦  «        “d>e+“d?e=“d@e?“dAe'“dB ee(dC¬D¦  «        “dE ee(dF¬D¦  «        “i dGe/“dH ee(dIdF¬J¦  «        “dK ee'dI¬L¦  «        “dM ee(dIdC¬J¦  «        “dN ee=dI¬L¦  «        “dO ee?dI¬L¦  «        “dP ee+dI¬L¦  «        “dQ ee(dRdF¬J¦  «        “dS ee'dR¬L¦  «        “dT ee(dRdC¬J¦  «        “dU ee=dR¬L¦  «        “dV ee?dR¬L¦  «        “dW ee+dR¬L¦  «        “dX ee(dYdF¬J¦  «        “dZ ee'dY¬L¦  «        “d[ ee(dYdC¬J¦  «        “d\ ee=dY¬L¦  «        “¥ ee?dY¬L¦  «         ee+dY¬L¦  «         ee(d]dF¬J¦  «         ee'd]¬L¦  «         ee(d]dC¬J¦  «         ee=d]¬L¦  «         ee?d]¬L¦  «         ee+d]¬L¦  «        ed^œ	¥Zyd_„ ZzeeAeze%d`œZ{i dae“dbe-“dce.“dd ee.d3¬4¦  «        “dee*“dfe“dge@“dh ee@dI¬L¦  «        “di ee@d]¬L¦  «        “dj ee@dR¬L¦  «        “dk ee@dYdl¬m¦  «        “dn ee@dIdl¬m¦  «        “do ee@dYdp¬m¦  «        “dq ee@dIdp¬m¦  «        “dr ee@dF¬s¦  «        “dte“du eedI¬L¦  «        “ eed]¬L¦  «         eedR¬L¦  «        e,e;e$eDe e!dvœ¥Z| e}¦   «         Z~e~                     e|¦  «         e~                     ey¦  «         e~                     ex¦  «         e~                     e{¦  «         h dw£Z€h dx£Z�e€ ‚                    e�¦  «        Zƒh dy£Z„h dz£Z…h d{£Z†h d|£Z‡h d}£Zˆh d~£Z‰h d£ZŠh d€£Z‹h d�£ZŒh d‚£Z�h dƒ£ZŽh d„£Z�h d…£Z�dd hZ‘g d†¢Z’d‡„ Z“dˆ„ Z”d‰„ Z•ej–         —                    dŠ e˜eŒ¦  «        ¦  «        d‹„ ¦   «         Z™ej–         —                    dŠ e˜e�¦  «        ¦  «        dŒ„ ¦   «         Zšd�„ Z›ej–         —                    dŠ e˜ eœe~¦  «        eƒz
  ¦  «        ¦  «        dŽ„ ¦   «         Z�d�„ Zžej–         —                    dŠ e˜ eœe~¦  «        eƒz
  ¦  «        ¦  «        d�„ ¦   «         ZŸi ey¥d‘ei¥Z ej–         —                    d’e  ¡                    ¦   «         ¦  «        d“„ ¦   «         Z¢ej–         —                    d’ey ¡                    ¦   «         ¦  «        d”„ ¦   «         Z£ej–         —                    dŠ e˜ eœey¦  «        eƒz
  ¦  «        ¦  «        d•„ ¦   «         Z¤ej–         —                    dŠe|¦  «        d–„ ¦   «         Z¥d d—gej¦        ej¦        gfd d—gej§        ej§        gfd d—gej§        ej¦        gfd d—gej¦        d—gfd d—gej§        d—gfgZ¨ej–         —                    d’ ee| ¡                    ¦   «         ex ¡                    ¦   «         ¦  «        ¦  «        ej–         —                    d˜e¨¦  «        d™„ ¦   «         ¦   «         Z©ej–         —                    d’ey ¡                    ¦   «         ¦  «        ej–         —                    d˜e¨ej§        d—dCgg dš¢fej¦        d—dCgg dš¢fgz   ¦  «        d›„ ¦   «         ¦   «         Zªej–         —                    d’ey ¡                    ¦   «         ¦  «        dœ„ ¦   «         Z«d�„ Z¬dž„ Z­ej–         ®                    dŸ¦  «        ej–         —                    dŠ e˜ eœe~¦  «        eƒz
   eœe|¦  «        z
  ¦  «        ¦  «        d „ ¦   «         ¦   «         Z¯ej–         ®                    dŸ¦  «        ej–         —                    dŠ e˜e‹eŠz  ¦  «        ¦  «        d¡„ ¦   «         ¦   «         Z°ej–         —                    dŠ e˜e‹¦  «        ¦  «        d¢„ ¦   «         Z±ej–         —                    dŠ e˜e‹¦  «        ¦  «        d£„ ¦   «         Z²ej–         ®                    d¤¦  «        ej–         —                    d¥ep¦  «        d¦„ ¦   «         ¦   «         Z³ej–         —                    dŠ e˜eŠ¦  «        ¦  «        d§„ ¦   «         Z´ej–         —                    dŠ e˜eˆ¦  «        ¦  «        d¨„ ¦   «         Zµej–         —                    dŠ e˜eˆ¦  «        ¦  «        d©„ ¦   «         Z¶ej–         —                    dŠ e˜eˆ ·                    eŠ¦  «        ¦  «        ¦  «        dª„ ¦   «         Z¸d«„ Z¹d¬„ Zºej–         —                    dŠ e˜e„¦  «        ¦  «        d­„ ¦   «         Z»ej–         —                    dŠ e˜e„e…z  ¦  «        ¦  «        d®„ ¦   «         Z¼ej–         —                    dŠ e˜e„¦  «        ¦  «        d¯„ ¦   «         Z½d°„ Z¾ej–         —                    dŠ e˜e„¦  «        ¦  «        d±„ ¦   «         Z¿dãd²„ZÀej–         —                    dŠ e˜ eœe~¦  «         ·                     eœex¦  «        ¦  «        eŽz
  ¦  «        ¦  «        d³„ ¦   «         ZÁej–        jÂ        ej–         —                    dŠ e˜ eœe~¦  «         ·                     eœex¦  «        ¦  «        eŽz
  ¦  «        ¦  «        d´„ ¦   «         ¦   «         ZÃej–         —                    dŠ e˜ eœe~¦  «         eœex¦  «        z
  eŽz
  e€z
  ¦  «        ¦  «        dµ„ ¦   «         ZÄej–         —                    dŠ e˜ eœe~¦  «         eœex¦  «        z
  eŽz
  eƒz
  ¦  «        ¦  «        d¶„ ¦   «         ZÅej–         —                    dŠ e˜eŠe‰z  eŽz
  ¦  «        ¦  «        d·„ ¦   «         ZÆej–         —                    dŠ e˜e‹eŽz
  ¦  «        ¦  «        d¸„ ¦   «         ZÇd¹„ ZÈej–         —                    dŠ e˜eŠd8hz
  ¦  «        ¦  «        dº„ ¦   «         ZÉej–         —                    dŠ e˜e‰e‹z  ¦  «        ¦  «        d»„ ¦   «         ZÊej–         —                    dŠ e˜ eœe|¦  «        eƒz
  ¦  «        ¦  «        d¼„ ¦   «         ZËej–         —                    d½ ejÌ        d¾gd¿z  dÀgdCz  z   eÍ¬Á¦  «         ejÌ        d¾gd¿z  dÀgdCz  z   ¦  «         ejÌ        d¾gd¿z  dÀgdCz  z   ¦  «        g¦  «        ej–         —                    dÂey¦  «        dÃ„ ¦   «         ¦   «         ZÎej–         —                    dÄed0fed0fe'd3f ee(d—¬D¦  «        d3fe+d3fe<d0fe=d3fe?d3feAd0fg	¦  «        ej–         —                    dÅeÏeÍg¦  «        dÆ„ ¦   «         ¦   «         ZÐdÇ„ ZÑdÈ„ ZÒdÉ„ ZÓdÊ„ ZÔdË„ ZÕdÌ„ ZÖdÍ„ Z×dÎ„ ZØdÏ„ ZÙdÐ„ ZÚi eeÒeÓeÔg“eeÒeÓeÔg“eeÒeÓg“eeÒeÓg“eeÒeÓg“e%eÒg“e'eÒeÓeÔg“e(eÒeÓeÔg“e+eÒeÓeÔg“e:eÒeÓeÔg“e=eÒeÓeÔg“e<eÒg“e?eÒeÓeÔg“eEeÒeÓeÔg“e)eÒeÓeÔg“eeÕeÖe×g“e.eÕeÖe×g“i e eÕeÖe×g“e!eÕeÖe×g“e8eØg“ ee8dÑ¬"¦  «        eØg“ ee8dÒ¬"¦  «        eØg“e>eØeÙg“eLeÚg“e&eØeÙg“e1eØeÙg“e4eØeÙg“e6eØeÙg“e7eØeÙg“e9eØeÙg“eeØeÙg“e"eØeÙg“ ee"d)¬*¦  «        eØeÙg“ ee"d+¬*¦  «        eØeÙg“¥i e#eØg“eQeÚg“e5eØg“eIeÚg“e3eØg“e0eØg“e2eØeÙg“eJeÚg“eReÚg“eSeÚg“eKeÚg“eMeÚg“ePeÚg“eOeÚg“eNeÚg“eWeÚg“eXeÚg“¥eBeØeÙgeCeØeÙgeYeÚgeVeÚgeAeÒgeTeÚgeUeÚgi¥ZÛeÛfdÓ„ZÜej–         —                    dÔ ed¦   «         ¦  «        ej–         —                    dÕ eÜ¦   «         ¦  «        dÖ„ ¦   «         ¦   «         ZÝd×„ ZÞej–         —                    dØdÙ„  ec¦   «         D ¦   «         ¦  «        ej–         —                    dÂ e˜e’¦  «        ¦  «        dÚ„ ¦   «         ¦   «         Zßej–         —                    dÂ e˜ eœe’¦  «         eœey à                    ¦   «         ¦  «        e€z
  z  ¦  «        ¦  «        endÛ„ ¦   «         ¦   «         Záej–         —                    dÔ ed¦   «         ¦  «        ej–         —                    dÂ e˜ eœe’¦  «         eœe| à                    ¦   «         ¦  «         eœe{ à                    ¦   «         ¦  «        z  e€z
  z  ¦  «        ¦  «        dÜ„ ¦   «         ¦   «         Zâej–         —                    dÝdÞdßg¦  «        ej–         —                    dÂ e˜e~¦  «        ¦  «        dà„ ¦   «         ¦   «         Zãdá„ Zäej–         —                    dŠ e˜e~¦  «        ¦  «        dâ„ ¦   «         ZådS )äé    N)Úpartial)Ú	signature)ÚchainÚpermutationsÚproduct)ÚTuple)Úconfig_context)Úmake_multilabel_classification)ÚUndefinedMetricWarning)0Úaccuracy_scoreÚaverage_precision_scoreÚbalanced_accuracy_scoreÚbrier_score_lossÚclassification_reportÚcohen_kappa_scoreÚconfusion_matrixÚconfusion_matrix_at_thresholdsÚcoverage_errorÚd2_absolute_error_scoreÚd2_brier_scoreÚd2_log_loss_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_squared_log_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Úroot_mean_squared_errorÚroot_mean_squared_log_errorÚtop_k_accuracy_scoreÚzero_one_loss)Ú_average_binary_score)Úadditive_chi2_kernelÚchi2_kernelÚcosine_distancesÚcosine_similarityÚeuclidean_distancesÚlaplacian_kernelÚlinear_kernelÚmanhattan_distancesÚpaired_cosine_distancesÚpaired_euclidean_distancesÚpaired_manhattan_distancesÚpairwise_distancesÚpairwise_distances_argminÚpairwise_kernelsÚpolynomial_kernelÚ
rbf_kernelÚsigmoid_kernel)ÚLabelBinarizer)Úshuffle)Ú_atol_for_typeÚ_max_precision_float_dtypeÚget_namespaceÚmove_toÚ(yield_mixed_namespace_input_permutationsÚ)yield_namespace_device_dtype_combinations©Údevice)Ú_array_api_for_testsÚassert_allcloseÚassert_almost_equalÚassert_array_equalÚassert_array_lessÚignore_warningsÚ'skip_if_array_api_compat_not_configured)ÚCOO_CONTAINERSÚparse_versionÚ
sp_version)Útype_of_target)Ú_num_samplesÚcheck_random_stater&   r'   r,   r-   r*   r/   r(   r   r4   Úvariance_weighted)Úmultioutputr8   r9   Úmean_normal_deviance)Úpowerr+   r)   Úmean_compound_poisson_deviancegffffffö?r.   r   çš™™™™™¹?)ÚalphagÍÌÌÌÌÌì?)r   Úd2_pinball_score_01Úd2_pinball_score_09r   r   r   Ú adjusted_balanced_accuracy_scoreT)ÚadjustedÚunnormalized_accuracy_scoreF©Ú	normalizer   Ú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/html/CA-Chatbot/venv/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ð ó    r0   Ú"multilabel_confusion_matrix_sample)Ú
samplewiser   r;   Úunnormalized_zero_one_lossr!   r3   r5   r   Úf2_scoreé   )Úbetaú
f0.5_scoreç      à?Úmatthews_corrcoef_scoreúweighted_f0.5_scoreÚweighted©Úaverager‡   Úweighted_f1_score©rŽ   Ú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 a 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)r2   Úlenr{   ÚarrayÚpadry   Úfloat64Únan)r}   r~   Ú	precisionÚrecallÚ
thresholdsÚpad_thresholdss         r   Ú(precision_recall_curve_padded_thresholdsr¸   á   s‹   € õ %;¸DÐ$KÀFÐ$KÐ$KÑ!€Iˆv�zå˜‘^”^¥c¨*¡o¤oÑ5€NåŒ8àØÝŒFØ×!Ò!¥"¤*Ñ-Ô-Ø˜nÐ-ØÝ!#¤ ð	ñ ô ð		
ñô ð r�   )r   r7   r2   r   r   r#   r$   Úunnormalized_log_lossr    r   r6   Úweighted_roc_aucÚsamples_roc_aucÚmicro_roc_aucÚovr_roc_aucÚovr)rŽ   Ú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"   r1   r   r:   r   r   >   r   r1   r   r¥   r¦   r#   r¨   r©   r§   r‚   r"   r¤   >   r   r…   r   r7   r5   r!   r¼   r6   rÄ   r3   r»   rº   r2   r   rˆ   >   r   r…   r5   r!   r3   rˆ   >   r6   rÄ   r   >   r   r…   r   r7   r5   r!   r   r3   r   r2   r   rÈ   r   rÇ   rÆ   rˆ   >!   r   r…   r$   r5   r!   r   rž   rŸ   r—   r˜   r3   r   r   r   r   r�   r‘   r¢   rš   r£   r›   r    r™   r“   r”   r’   r0   rs   r‚   rˆ   rœ   r•   r‹   >   r$   r;   r   r:   >   r$   r   r1   r¼   r6   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„   r0   rp   rœ   r•   r¤   r‹   >   r4   r   r*   r,   rl   rm   r'   r/   r-   r   r8   r   r9   r(   >   r   r&   r   r!   r;   r   rž   r—   r˜   r   r*   r,   rš   r£   r'   r›   rg   r.   r/   r™   r©   r“   r-   rŠ   r8   r„   r9   rp   r•   >"   r…   r4   r   r7   r    r5   rŸ   r3   r   r   r   r�   r‘   r¢   rl   rm   r)   r    r+   r2   r”   r   r   r   r’   r0   rs   r   r(   ri   rn   rˆ   rœ   r‹   >   r&   rÁ   rÃ   >   r   r¹   r„   r0   rp   r   r‚   >   r   r)   r+   ri   ) r   r   r   r   r   r   r   r   rl   rm   r   r   r   r$   r&   r'   r(   ri   r)   rg   r*   r+   r,   r-   r.   r/   r0   r3   r4   r5   r8   r9   c                 ó¦   — t          t          |                      ¦   «         |                     ¦   «         ¦  «        ¦  «        dz   }| |z  } ||z  }| |fS )zMake targets strictly positiverv   )Ú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          |                      ¦   «         |                     ¦   «         ¦  «        ¦  «        dz
  }|                      t          j        ¦  «        } |                     t          j        ¦  «        }| |z  } ||z  }| |fS )z$Make targets strictly larger than -1g®Gáz®ï?)rÊ   rË   ry   r{   r²   rÌ   s      r   Ú_require_log1p_targetsrÒ   Ÿ  so   € å•�R—V’V‘X”X˜rŸvšv™xœxÑ(Ô(Ñ)Ô)¨DÑ0€FØ	�Š•2”:Ñ	Ô	€BØ	�Š•2”:Ñ	Ô	€BØˆ&�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Ú!CONTINUOUS_CLASSIFICATION_METRICSÚ"METRIC_UNDEFINED_BINARY_MULTICLASSÚALL_METRICS© r�   r   Útest_symmetry_consistencyrÜ   ©  sn   € õ 	Ý
ñ	 å
Õ/Ñ
0Ô
0ñ	1õ -ñ	-õ 
�[Ñ	Ô	òð ð ð õ Õ 5Ñ5½#¹%¼%Ò?Ð?Ð?Ð?Ð?Ð?r�   Únamec                 óP  — t          d¦  «        }|                     ddd¬¦  «        }|                     ddd¬¦  «        }| t          v rt          ||¦  «        \  }}n| 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   r†   ©é   ©Úsize©rà   é   z%s is not symmetric©Úerr_msgFz This case is currently unhandled)
rd   ÚrandintÚMETRICS_REQUIRE_POSITIVE_YrÐ   ÚMETRICS_WITH_LOG1P_YrÒ   rÚ   ÚMETRIC_UNDEFINED_BINARYÚMULTILABELS_METRICSrY   )rÝ   Úrandom_stateÚy_trueÚy_predÚ
y_true_binÚ
y_pred_binÚmetrics          r   Útest_symmetric_metricrò   µ  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ðñ ô ð ð ð ð =Ð<Ñ<Ô<�5åØˆF�6˜6Ñ"Ô"ØˆF�6˜6Ñ"Ô"Ø)¨DÑ0ð	
ñ 	
ô 	
ð 	
ð 	
ð 	
r�   c                 óˆ  — t          d¦  «        }t          |          }d}t          d¦  «        D ]}|                     ddd¬¦  «        }|                     ddd¬¦  «        }| t          v rt          ||¦  «        \  }} |||¦  «        } |||¦  «        }t          j        ||¦  «        sd} nŒ€|rt          | › d�¦  «        ‚d S )	Nr   Té   r†   rß   rá   Fú seems to be symmetric)	rd   rÚ   Úrangerç   rè   rÐ   r{   ÚallcloseÚ
ValueError)	rÝ   rì   rñ   Úalways_symmetricÚ_rí   rî   ÚnominalÚswappeds	            r   Útest_not_symmetric_metricrý   ×  sü   € õ & aÑ(Ô(€LÝ˜Ô€Fð
 ÐÝ�1‰XŒXð ð ˆØ×%Ò% a¨°Ð%Ñ7Ô7ˆØ×%Ò% a¨°Ð%Ñ7Ô7ˆàÕ-Ð-Ð-Ý6°v¸vÑFÔF‰NˆF�Fà�&˜ Ñ(Ô(ˆØ�&˜ Ñ(Ô(ˆÝŒ{˜7 GÑ,Ô,ð 	Ø$ÐØˆEð	ð ð :Ý˜DÐ8Ð8Ð8Ñ9Ô9Ð9ð:ð :r�   c                  ó`  — d} d}t          | ¦  «         t          j        t          |› d�¬¦  «        5  t          |¦  «         d d d ¦  «         n# 1 swxY w Y   t	          |¦  «         t          j        t
          | › d�¬¦  «        5  t	          | ¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )Nr   r5   z is not symmetric©Úmatchrõ   )rò   ÚpytestÚraisesÚAssertionErrorrý   rø   )ÚsymÚnot_syms     r   Útest_symmetry_testsr  ò  s=  € à
€CØ€Gõ ˜#ÑÔÐÝ	Œ•~°Ð-JÐ-JÐ-JÐ	KÑ	KÔ	Kð 'ð 'Ý˜gÑ&Ô&Ð&ð'ð 'ð 'ñ 'ô 'ð 'ð 'ð 'ð 'ð 'ð 'øøøð 'ð 'ð 'ð 'õ ˜gÑ&Ô&Ð&Ý	Œ•z¨CÐ)GÐ)GÐ)GÐ	HÑ	HÔ	Hð 'ð 'Ý! #Ñ&Ô&Ð&ð'ð 'ð 'ñ 'ô 'ð 'ð 'ð 'ð 'ð 'ð 'ð 'øøøð 'ð 'ð 'ð 'ð 'ð 's#   ²AÁAÁAÂB#Â#B'Â*B'c                 óÚ  — t          d¦  «        }|                     ddd¬¦  «        }|                     ddd¬¦  «        }| t          v rt          ||¦  «        \  }}n| 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   r†   rß   rá   ©rì   ú %s is not sample order invariantrå   )
rd   rç   rè   rÐ   ré   rÒ   rO   r]   rÚ   rY   )rÝ   rì   rí   rî   Úy_true_shuffleÚy_pred_shufflerñ   s          r   Útest_sample_order_invariancer    sU  € õ & 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   r†   rã   rá   rv   T©rx   Úkeepdimsr  r	  rå   )rd   rç   ÚuniformÚshaperz   rO   rë   rÚ   rY   ÚCONTINUOUS_MULTILABEL_METRICSÚMULTIOUTPUT_METRICS)	rì   rí   rî   Úy_scorer
  r  Úy_score_shufflerÝ   rñ   s	            r   Ú7test_sample_order_invariance_multilabel_and_multioutputr    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                 ób	  — t          d¦  «        }|                     ddd¬¦  «        }|                     ddd¬¦  «        }| t          v rt          ||¦  «        \  }}n| 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”d| v rSt          j        t,          ¦  «        5  t/          j         ||
|¦  «        ¦  «        sJ ‚	 d d d ¦  «         n# 1 swxY w Y   n=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   r†   rß   rá   rv   )éÿÿÿÿrv   )rv   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Úroc_auc)rd   rç   rè   rÐ   ré   rÒ   Úlistr{   r°   r[   ÚndimÚreshaper]   rÚ   rY   r  r  rø   r  r  rë   Úwarnsr   ÚmathÚisnan)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)  G  sœ  € õ & aÑ(Ô(€LØ	×	Ò	˜a ¨Ð	Ñ	/Ô	/€BØ	×	Ò	˜a ¨Ð	Ñ	/Ô	/€BàÕ)Ð)Ð)Ý*¨2¨rÑ2Ô2‰ˆˆBˆBØ	Õ%Ð	%Ð	%Ý'¨¨BÑ/Ô/‰ˆˆ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å	Ñ	Ô	ð f+ð 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Ñ%Ô%Ð%ð	&ð 	&ð 	&ñ 	&ô 	&ð 	&ð 	&ð 	&ð 	&ð 	&ð 	&øøøð 	&ð 	&ð 	&ð 	&ð
 ÝÕ"?Ñ?ÕBUÑUð
ð 
ð ˜DÐ Ð õ ”\Õ"8Ñ9Ô9ð >ð >Ýœ: f f¨V°VÑ&<Ô&<Ñ=Ô=Ð=Ð=Ð=Ð=ð>ð >ð >ñ >ô >ð >ð >ð >ð >ð >ð >øøøð >ð >ð >ð >øõ ”]¥:Ñ.Ô.ð +ð +Ø�F˜6 6Ñ*Ô*Ð*ð+ð +ð +ñ +ô +ð +ð +ð +ð +ð +ð +øøøð +ð +ð +ð +ðKf+ð f+ð f+ñ f+ô f+ð f+ð f+ð f+ð f+ð f+ð f+ð f+øøøð f+ð f+ð f+ð f+ð f+ð f+s3  ÅE
R$ÊJ.Ê"R$Ê.J2	Ê2R$Ê5J2	Ê6R$ËK+ËR$Ë+K/	Ë/R$Ë2K/	Ë3R$ÌL(ÌR$Ì(L,	Ì,R$Ì/L,	Ì0R$ÍM%ÍR$Í%M)	Í)R$Í,M)	Í-R$Î	N"ÎR$Î"N&	Î&R$Î)N&	Î*R$ÏOÏR$ÏO#	Ï#R$Ï&O#	Ï'9R$Ð !QÑR$ÑQ	ÑR$ÑQ	ÑR$Ñ3RÒ R$ÒR	ÒR$ÒR	ÒR$Ò$R(Ò+R(r   rñ   c                 óö   — d}t          j        t          t          j        |¦  «        ¬¦  «        5   | t          j        g ¦  «        t          j        g ¦  «        ¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )NzIFound empty input array (e.g., `y_true` or `y_pred`) while a minimum of 1rÿ   )r  r  rø   ÚreÚescaper{   r°   )rñ   Úmsgs     r   Ú0test_classification_metrics_raise_on_empty_inputr.  Î  sª   € à
U€CÝ	Œ•z­¬°3©¬Ð	8Ñ	8Ô	8ð +ð +Øˆ�rŒx˜‰|Œ|�RœX b™\œ\Ñ*Ô*Ð*ð+ð +ð +ñ +ô +ð +ð +ð +ð +ð +ð +ð +øøøð +ð +ð +ð +ð +ð +s   °1A.Á.A2Á5A2c                 ó`  — t          d¦  «        }d}|                     dd|f¬¦  «        }|                     dd|f¬¦  «        }|                     |dz
  f¬¦  «        }t          j        t
          d¬¦  «        5   | |||¬¦  «         d d d ¦  «         n# 1 swxY w Y   |                     |f¬¦  «        }t          j        |d<   t          j        t
          d	¬¦  «        5   | |||¬¦  «         d d d ¦  «         n# 1 swxY w Y   t          j        |d<   t          j        t
          d
¬¦  «        5   | |||¬¦  «         d d d ¦  «         n# 1 swxY w Y   t          j	        g d¢¦  «        }t          j        t
          d¬¦  «        5   | |d d…         |d d…         |¬¦  «         d d d ¦  «         n# 1 swxY w Y   |                     |dz  f¬¦  «         
                    |df¦  «        }t          j        t
          d¬¦  «        5   | |||¬¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )Nr   rà   r†   rá   rv   ú'Found input variables with inconsistentrÿ   ©Úsample_weightú%Input sample_weight contains infinityú Input sample_weight contains NaN©y      ð?       @y      @      @y      @      @úComplex data not supportedé   ú)Sample weights must be 1D array or scalar)rd   rç   Úrandom_sampler  r  rø   r{   Úinfr³   r°   r  )rñ   rì   Ú	n_samplesrÍ   rÎ   r2  s         r   Ú.test_classification_with_invalid_sample_weightr<  Õ  s˜  € õ & aÑ(Ô(€LØ€IØ	×	Ò	˜a ¨)¨Ð	Ñ	6Ô	6€BØ	×	Ò	˜a ¨)¨Ð	Ñ	6Ô	6€Bà ×.Ò.°YÀ±]Ð4DÐ.ÑEÔE€MÝ	Œ•zÐ)RÐ	SÑ	SÔ	Sð 4ð 4Øˆˆr�2 ]Ð3Ñ3Ô3Ð3ð4ð 4ð 4ñ 4ô 4ð 4ð 4ð 4ð 4ð 4ð 4øøøð 4ð 4ð 4ð 4ð !×.Ò.°Y°LÐ.ÑAÔA€MÝ”v€M�!ÑÝ	Œ•zÐ)PÐ	QÑ	QÔ	Qð 4ð 4Øˆˆr�2 ]Ð3Ñ3Ô3Ð3ð4ð 4ð 4ñ 4ô 4ð 4ð 4ð 4ð 4ð 4ð 4øøøð 4ð 4ð 4ð 4õ ”v€M�!ÑÝ	Œ•zÐ)KÐ	LÑ	LÔ	Lð 4ð 4Øˆˆr�2 ]Ð3Ñ3Ô3Ð3ð4ð 4ð 4ñ 4ô 4ð 4ð 4ð 4ð 4ð 4ð 4øøøð 4ð 4ð 4ð 4õ ”HÐ5Ð5Ð5Ñ6Ô6€MÝ	Œ•zÐ)EÐ	FÑ	FÔ	Fð <ð <Øˆˆr�"�1�"Œv�r˜"˜1˜"”v¨]Ð;Ñ;Ô;Ð;ð<ð <ð <ñ <ô <ð <ð <ð <ð <ð <ð <øøøð <ð <ð <ð <ð !×.Ò.°YÀ±]Ð4DÐ.ÑEÔE×MÒMØ	�Aˆñô €Mõ 
Œ•zÐ)TÐ	UÑ	UÔ	Uð 4ð 4Øˆˆr�2 ]Ð3Ñ3Ô3Ð3ð4ð 4ð 4ñ 4ô 4ð 4ð 4ð 4ð 4ð 4ð 4ð 4øøøð 4ð 4ð 4ð 4ð 4ð 4sZ   Á9BÂBÂBÃ C;Ã;C?ÄC?Ä0EÅEÅEÆF2Æ2F6Æ9F6ÈH#È#H'È*H'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   r†   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)rd   rç   r{   r°   r]   ÚCLASSIFICATION_METRICSÚMETRICS_WITH_POS_LABELr   r[   Úformatry   Ú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_labelsrR  õ  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   r†   rß   rá   r>  r?  r@  rB  rå   rC  rD  )rd   rç   r{   r°   r]   rØ   rê   rG  r   r[   rH  ry   r  r  rø   )rÝ   rì   rÍ   rÎ   rJ  rL  rñ   rO  rN  rP  rQ  s              r   ÚBtest_continuous_classification_invariance_string_vs_numbers_labelsrT  -  s°  € õ & aÑ(Ô(€LØ	×	Ò	˜a ¨Ð	Ñ	/Ô	/€BØ	×	Ò	˜a ¨Ð	Ñ	/Ô	/€BåŒX�v˜vÐ&Ñ'Ô'¨Ô+€Fà€Må	Ñ	Ô	ð /ð /Ý2°4Ô8ˆØÕ.Ð.Ð.àˆ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?rv   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)rÿ   )r   r  r  rø   )rñ   rí   r  s      r   Útest_continuous_inf_nan_inputrV  b  s©   € ð •ÒÐØ�ˆØ�)ˆÝ	Œ•zÐ)CÐ	DÑ	DÔ	Dð  ð  Øˆˆv�wÑÔÐð ð  ð  ñ  ô  ð  ð  ð  ð  ð  ð  ð  øøøð  ð  ð  ð  ð  ð  s   ­AÁAÁA)rv   r†   r7  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)r{   ÚisfiniteÚallr  Úanyr  r  rø   )rñ   rí   r  Ú
input_nameÚunexpected_valueræ   s         r   Ú!test_classification_inf_nan_inputr^  p  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`  ©rj   çš™™™™™É?ç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_inputre  “  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| t          v rddg}nddg}t          |d¬¦  «        D ]\  }} ||g|g¦  «         Œd S )Nrv   r†   gffffffæ¿r   ©Úrepeat)rÚ   rè   ré   r   )rÝ   rñ   ÚvaluesÚiÚjs        r   Úcheck_single_samplerl  Ÿ  sŠ   € õ
 ˜Ô€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   rv   é   rg  )rÚ   r   r{   r°   )rÝ   rñ   rj  rk  ÚkÚls         r   Úcheck_single_sample_multioutputrq  ±  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�   Úignorec                 ó$   — t          | ¦  «         d S rÔ   )rl  ©rÝ   s    r   Útest_single_sampleru  ¸  s   € õ ˜ÑÔÐÐÐr�   c                 ó$   — t          | ¦  «         d S rÔ   )rq  rt  s    r   Útest_single_sample_multioutputrw  È  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)rv   r   r   rv   )r   rv   rv   rv   ©rv   rv   r   rv   r   rv   ©r{   r°   rÚ   r  r  rø   )rÝ   rí   rî   rñ   s       r   Ú(test_multioutput_number_of_output_differr{  Î  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   r†   ©rà   rô   rá   r7  rv   z'%s is not dimension shuffling invariantrå   )rd   r  rÚ   rö   Úpermutationr  rY   )rÝ   rì   rí   rî   rñ   Úerrorrú   Úperms           r   Ú=test_multioutput_regression_invariance_to_dimension_shufflingr�  Ø  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�   z1ignore::sklearn.exceptions.UndefinedMetricWarningÚ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 )Nrn  é2   rv   r   T©Ú
n_featuresÚ	n_classesrì   r;  Úallow_unlabeledc                 ó,   — g | ]}t          |¦  «        ‘ŒS rÛ   ©r  ©Ú.0r`  s     r   ú
<listcomp>z=test_multilabel_representation_invariance.<locals>.<listcomp>  ó   € ÐGÐGÐG¨!�d 1™gœgÐGÐGÐGr�   c                 ó,   — g | ]}t          |¦  «        ‘ŒS rÛ   rŠ  r‹  s     r   r�  z=test_multilabel_representation_invariance.<locals>.<listcomp>  rŽ  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
   r{   Úvstackr  rë   rÚ   Ú
isinstancer   Ú
__module__Ú__name__rY   rZ   )r‚  r‡  r;  rú   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_invariancer›  ë  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 )Nrv   r†   r   )rÛ   r†   )r   rv   rÛ   Úobject©Údtyperz  )rÝ   Úmultilabel_sequencesrñ   Úseqs       r   Ú+test_raise_value_error_multilabel_sequencesr¢  8  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 )Nr†   rà   r   rá   Trq   Fç      ð¿ú0We failed to test correctly the normalize optionrå   úFailed with )rd   rç   r  r  rÚ   rØ   r\   rY   )rÝ   r‡  r;  rì   rí   rî   r  ÚmetricsÚpredÚmeasure_normalizedÚmeasure_not_normalizeds              r   Ú+test_normalize_option_binary_classificationr«  I  s  € ð €IØ€IÝ% aÑ(Ô(€Là×!Ò! ! Y°i°\Ð!ÑBÔB€FØ×!Ò! ! Y°i°\Ð!ÑBÔB€FØ×"Ò"¨¬Ð"Ñ5Ô5€Gå˜$Ô€GØÕ?Ð?Ð?ˆ7ˆ7ÀV€DØ ˜ ¨¸Ð>Ñ>Ô>ÐØ$˜W V¨T¸UÐCÑCÔCÐåØÐ!Ñ!Ø	ØBðñ ô ð õ ØØ Ñ*Ø%˜tÐ%Ð%ðñ ô ð ð ð r�   c                 ó  — d}d}t          d¦  «        }|                     d||f¬¦  «        }|                     d||f¬¦  «        }|                     ||¦  «        }t          j        | ¦  «        }||                     d¬¦  «                             dd¦  «        z  }t          |          }| t          v r|n|}	 |||	d¬	¦  «        }
 |||	d
¬	¦  «        }t          d|
z  dd¬¦  «         t          |
||z  d| › �¬¦  «         d S )Nrn  rà   r   rá   r  rw   rv   Trq   Fr¤  r¥  rå   r¦  )rd   rç   Úrandr{   Úexprz   r  rÚ   rØ   r\   rY   )rÝ   r‡  r;  rì   rí   rî   r  Útempr§  r¨  r©  rª  s               r   Ú/test_normalize_option_multiclass_classificationr°  f  sL  € ð €IØ€IÝ% aÑ(Ô(€Là×!Ò! ! Y°i°\Ð!ÑBÔB€FØ×!Ò! ! Y°i°\Ð!ÑBÔB€FØ×Ò 	¨9Ñ5Ô5€GÝŒ6�7�(ÑÔ€DØ�T—X’X 2�XÑ&Ô&×.Ò.¨r°1Ñ5Ô5Ñ5€Gå˜$Ô€GØÕ?Ð?Ð?ˆ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 )Nrn  éd   r   rv   T)r†  r‡  rì   rˆ  r;  rá   rq   Fr¤  r¥  rå   r¦  )rd   r
   r  r  rÚ   rØ   r\   rY   )rÝ   r‡  r;  rì   rú   rí   rî   r  r§  r¨  r©  rª  s               r   Ú/test_normalize_option_multilabel_classificationr³  …  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ØÕ?Ð?Ð?ˆ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 )Nr�   c                 óP   •— g | ]"} ‰‰d d …|f         ‰d d …|f         ¦  «        ‘Œ#S rÔ   rÛ   ©rŒ  rj  rñ   Úy_pred_binarizeÚy_true_binarizes     €€€r   r�  z$_check_averaging.<locals>.<listcomp>À  sO   ø€ ð 	
ð 	
ð 	
àð ˆF�? 1 1 1 a 4Ô(¨/¸!¸!¸!¸Q¸$Ô*?Ñ@Ô@ð	
ð 	
ð 	
r�   r–   r�   r   )rx   rŸ  rŒ   )Úweightsr¡   c                 ó@   •— g | ]} ‰‰|         ‰|         ¦  «        ‘ŒS rÛ   rÛ   r¶  s     €€€r   r�  z$_check_averaging.<locals>.<listcomp>à  s?   ø€ ð ð ð àð �F˜?¨1Ô-¨¸qÔ/AÑBÔBðð ð r�   ÚunknownÚgarbage)r  rY   rö   Úravelr{   Úmeanrz   ÚintrŽ   r  r  rø   )rñ   rí   rî   r¸  r·  Úis_multilabelr;  r‡  Úlabel_measureÚmicro_measureÚmacro_measurer¹  Ú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)rb   Ú
startswithrÚ   ÚMETRICS_WITH_AVERAGINGrÆ  Ú0CONTINUOUS_CLASSIFICATION_METRICS_WITH_AVERAGINGrø   )rÝ   rí   r¸  rî   r·  r  rÀ  rñ   s           r   Úcheck_averagingrÌ  í  s¤   € Ý" 6Ñ*Ô*×5Ò5°lÑCÔC€Må˜Ô€FàÕ%Ð%Ð%ÝØ�F˜F O°_Àmñ	
ô 	
ð 	
ð 	
ð 	
ð 
ÕAÐ	AÐ	AÝØ�F˜G _°g¸}ñ	
ô 	
ð 	
ð 	
ð 	
õ ÐMÑNÔNÐNr�   c                 ó€  — d\  }}t          d¦  «        }|                     d||f¬¦  «        }|                     d||f¬¦  «        }|                     ||f¬¦  «        }t          ¦   «                              |¦  «        }|                     |¦  «        }|                     |¦  «        }	t          | ||||	|¦  «         d S )N)r„  r7  r   rá   )rd   rç   r  rN   ÚfitÚ	transformrÌ  )
rÝ   r;  r‡  rì   rí   rî   r  Úlbr¸  r·  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)é(   rô   rv   rô   Fr…  rà   r   rá   )r
   rd   ÚnormalrÌ  )
rÝ   r;  r‡  rú   Úyrí   rî   r  r¸  r·  s
             r   Útest_averaging_multilabelrÖ    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à   r7  )r{   ÚzerosrÌ  ©rÝ   rí   rî   r  r¸  r·  s         r   Ú$test_averaging_multilabel_all_zeroesrÜ  #  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Ù  r�   c                 ó0   — t          t          | ||¦  «        S rÔ   )r<   r3   )rí   r  rŽ   s      r   r€   z=test_averaging_binary_multilabel_all_zeroes.<locals>.<lambda>4  s   € Õ=RÝ˜ ¨'ñ>ô >€ r�   T)rÀ  )r�   )r{   rÚ  rÆ  )rí   rî   r¸  r·  Úbinary_metrics        r   Ú+test_averaging_binary_multilabel_all_zeroesrà  .  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Ø  )r{   ÚonesrÌ  rÛ  s         r   Ú"test_averaging_multilabel_all_onesrã  A  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| ›�¬
¦  «         | t          vr4| dv rdgnddg}|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   rv   é
   rá   r:   )ro  r1  ©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 != rw   z.Weighting %s is not equal to repeating samplesr†   zUZeroing weights does not give the same result as removing the corresponding samples (>   r7   r/   rd  z/%s sample_weight is not invariant under scalingzJFound input variables with inconsistent numbers of samples: \[{}, {}, {}\]rÿ   )r{   ÚrandomÚRandomStaterç   r¯   r   rY   râ  r  r  r  rø   Útolistrh  ÚcopyÚWEIGHT_SCALE_DEPENDENT_METRICSrH  rc   Úhstack)rÝ   rñ   rÍ   rÎ   r2  ÚrngÚ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_valuesÚscalingÚerror_messages                      r   Úcheck_sample_weight_invariancerû  L  sb  € Ý
Œ)×
Ò
 Ñ
"Ô
"€CØÐØŸš A rµ°B±´˜Ñ8Ô8ˆð &*Ð-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¸¸ð	?ðñ ô ð ð Õ1Ð1Ð1ð ÐAÐAÐAˆQˆCˆCÈÈ3Àxð 	ð &ð 	ð 	ˆ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          j        t	          |¦  «        ¦  «        }t
          |          }t          | ||||¦  «         d S )Nr„  r   rá   )rd   r9  r{   Úaranger¯   rÚ   rû  )rÝ   r;  rì   rí   rî   r2  rñ   s          r   Ú(test_regression_sample_weight_invariancerþ  ´  s�   € ð €IÝ% aÑ(Ô(€Là×'Ò'¨i¨\Ð'Ñ:Ô:€FØ×'Ò'¨i¨\Ð'Ñ:Ô:€FÝ”I�c &™kœkÑ*Ô*€MÝ˜Ô€Få" 4¨°¸ÀÑOÔOÐOÐOÐOr�   c                 ór  — d}t          d¦  «        }|                     |f¬¦  «        }|                     |f¬¦  «        }t          |          }|                     |dz
  f¬¦  «        }t          j        t
          d¬¦  «        5   ||||¬¦  «         d d d ¦  «         n# 1 swxY w Y   |                     |f¬¦  «        }t          j        |d<   t          j        t
          d¬¦  «        5   ||||¬¦  «         d d d ¦  «         n# 1 swxY w Y   t          j        |d<   t          j        t
          d	¬¦  «        5   ||||¬¦  «         d d d ¦  «         n# 1 swxY w Y   t          j	        g d
¢¦  «        }t          j        t
          d¬¦  «        5   ||d d…         |d d…         |¬¦  «         d d d ¦  «         n# 1 swxY w Y   |                     |dz  f¬¦  «         
                    |df¦  «        }t          j        t
          d¬¦  «        5   ||||¬¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )Nr„  r   rá   rv   r0  rÿ   r1  r3  r4  r5  r6  r7  r†   r8  )rd   r9  rÚ   r  r  rø   r{   r:  r³   r°   r  )rÝ   r;  rì   rí   rî   rñ   r2  s          r   Ú*test_regression_with_invalid_sample_weightr   É  s«  € ð €IÝ% aÑ(Ô(€LØ×'Ò'¨i¨\Ð'Ñ:Ô:€FØ×'Ò'¨i¨\Ð'Ñ:Ô:€FÝ˜Ô€Fà ×.Ò.°YÀ±]Ð4DÐ.ÑEÔE€MÝ	Œ•zÐ)RÐ	SÑ	SÔ	Sð <ð <Øˆˆv�v¨]Ð;Ñ;Ô;Ð;ð<ð <ð <ñ <ô <ð <ð <ð <ð <ð <ð <øøøð <ð <ð <ð <ð !×.Ò.°Y°LÐ.ÑAÔA€MÝ”v€M�!ÑÝ	Œ•zÐ)PÐ	QÑ	QÔ	Qð <ð <Øˆˆv�v¨]Ð;Ñ;Ô;Ð;ð<ð <ð <ñ <ô <ð <ð <ð <ð <ð <ð <øøøð <ð <ð <ð <õ ”v€M�!ÑÝ	Œ•zÐ)KÐ	LÑ	LÔ	Lð <ð <Øˆˆv�v¨]Ð;Ñ;Ô;Ð;ð<ð <ð <ñ <ô <ð <ð <ð <ð <ð <ð <øøøð <ð <ð <ð <õ ”HÐ5Ð5Ð5Ñ6Ô6€MÝ	Œ•zÐ)EÐ	FÑ	FÔ	Fð Dð DØˆˆv�b�q�bŒz˜6 " 1 "œ:°]ÐCÑCÔCÐCðDð Dð Dñ Dô Dð Dð Dð Dð Dð Dð Døøøð Dð Dð Dð Dð !×.Ò.°YÀ±]Ð4DÐ.ÑEÔE×MÒMØ	�Aˆñô €Mõ 
Œ•zÐ)TÐ	UÑ	UÔ	Uð <ð <Øˆˆv�v¨]Ð;Ñ;Ô;Ð;ð<ð <ð <ñ <ô <ð <ð <ð <ð <ð <ð <ð <øøøð <ð <ð <ð <ð <ð <sZ   ÂBÂB!Â$B!Ã)DÄDÄDÄ9EÅEÅEÆF;Æ;F?ÇF?ÈH,È,H0È3H0c                 óf  — d}t          d¦  «        }|                     dd|f¬¦  «        }|                     dd|f¬¦  «        }|                     |f¬¦  «        }t          |          }| t          t
                               ¦   «         z  v rt          | |||¦  «         d S t          | |||¦  «         d S )Nr„  r   r†   rá   )rd   rç   r9  rÚ   rØ   ÚCURVE_METRICSÚkeysrû  )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ØÕ1µM×4FÒ4FÑ4HÔ4HÑHÐIÐIÝ& 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   rô   rá   r  rw   rv   )
rd   rç   r9  rÚ   rØ   r{   r®  rz   r  rû  )	rÝ   r;  rì   rí   rî   r  rñ   r¯  Úy_score_norms	            r   Ú(test_multiclass_sample_weight_invariancer    së   € ð €IÝ% aÑ(Ô(€LØ×!Ò! ! Q¨i¨\Ð!Ñ:Ô:€FØ×!Ò! ! Q¨i¨\Ð!Ñ:Ô:€FØ×(Ò(¨y¸!¨nÐ(Ñ=Ô=€GÝ˜Ô€FØÕ0Ð0Ð0åŒ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   rv   rå  r„  Fr…  rá   Tr  )
rd   r
   r{   r‘  r  r  rz   rÚ   rØ   rû  )	rÝ   rì   rú   Ú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ØÕ0Ð0Ð0Ý& t¨V°V¸WÑEÔEÐEÐEÐEå& t¨V°V¸VÑDÔDÐDÐDÐDr�   c                 óÂ   — t          d¦  «        }|                     ddd¬¦  «        }|                     ddd¬¦  «        }t          |          }t          | |||¦  «         d S )Nr   r†   r}  rá   )rd   r  rÚ   rû  )rÝ   rì   rí   rî   rñ   s        r   Ú)test_multioutput_sample_weight_invariancer  @  si   € õ
 & aÑ(Ô(€LØ×!Ò! ! Q¨WÐ!Ñ5Ô5€FØ×!Ò! ! Q¨WÐ!Ñ5Ô5€Få˜Ô€FÝ" 4¨°¸Ñ@Ô@Ð@Ð@Ð@r�   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)rv   rv   r   r   ©r   r   rv   rv   )r   rv   rv   r   )r   rv   r†   )r   r†   r7  )r7  r   rv   r†   T)Úreturn_inverserv   )rE  rŽ   r�   )r{   r°   ÚuniquerÊ  rë   r  rÚ   r[   )Úy_true_multilabelÚy_pred_multilabelÚy_true_multiclassÚy_pred_multiclassrE  rú   Úinverse_labelsrÝ   rí   rî   rñ   Úscore_labelsÚscores                r   Útest_no_averaging_labelsr  M  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à   rn  r†   rá   )rd   rç   rÚ   r   rö   rZ   ©rÝ   rì   r;  r‡  rí   r  rñ   r  r€  Úy_score_permÚy_true_permÚcurrent_scores               r   Ú-test_multilabel_label_permutations_invariancer   f  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  r†   rá   rv   Tr  rn  g    €„.A)rd   rç   r  r  rz   rÚ   r   rö   r(   r{   rY  rZ   r  s               r   Ú>test_continuous_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)r²  r7  r   r  rw   rv   rá   rž  )rd   r­  r{   r®  rz   r  rç   rÚ   r   rö   rÚ  r¿  rý  r  ÚtakerZ   )rÝ   r;  r‡  rì   r  r¯  rí   rñ   r  r€  Úinverse_permr  r  r  s                 r   Ú-test_continuous_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�   rÍ   r?  r7  r>  rž  Úmetric_namec                 ó  — t           j                             d¦  «        }d}|                     dd|¬¦  «        }d}t	          j        t          |¬¦  «        5  t          |         | |¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )Né*   rô   r   r†   rá   z.Mix of label input types \(string and number\)rÿ   )r{   rç  rè  rç   r  r  rø   rF  )rÍ   r'  rí  r;  rÎ   ræ   s         r   Ú"test_metrics_consistent_type_errorr*  ¸  sÈ   € õ Œ)×
Ò
 Ñ
#Ô
#€CØ€Ià	�Š�Q˜ 	ˆÑ	*Ô	*€Bà?€GÝ	Œ•z¨Ð	1Ñ	1Ô	1ð 4ð 4Ý˜{Ô+¨B°Ñ3Ô3Ð3ð4ð 4ð 4ñ 4ô 4ð 4ð 4ð 4ð 4ð 4ð 4ð 4øøøð 4ð 4ð 4ð 4ð 4ð 4s   ÁA;Á;A?ÂA?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	}t          j        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?  r7  r>  r†   rž  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 explicitzEpos_label=1 is not a valid label. It should be one of ['eggs' 'spam']rA  rv   rÿ   )r{   rç  rè  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_strr3  Î  sW  € õ$ Œ)×
Ò
 Ñ
#Ô
#€CÝ	Œ�6�(˜Q‘, & ¨A¡Ñ-°[Ð	AÑ	AÔ	A€BØ	�Š�Q˜ ¤ˆÑ	(Ô	(€Bàð ?ÝŒX�v˜vÐ&¨kÐ:Ñ:Ô:¸2Ô>ˆð	"ð õ
 œ)ØOñô Ðõ " &Ñ)Ô)Ô4°[ÔAÔIÐà%6¸!Ò%;Ð%;Ð!Ð!ÐAW€GÝ	Œ•z¨Ð	1Ñ	1Ô	1ð ð Øˆˆr�2‰Œˆðð ð ñ ô ð ð ð ð ð ð ð øøøð ð ð ð ð ð s   ÃC2Ã2C6Ã9C6c                 ó’  ‡‡‡— t          ||‰¦  «        \  Š}‰                     ||¬¦  «        }‰                     ||¬¦  «        }	 | ||fi |¤Ž}
|                     d¦  «        � ‰                     |d         |¬¦  «        |d<   |                     d¦  «        }t          |t          j        ¦  «        r‰                     ||¬¦  «        |d<   	 t	          j        |¦  «         t	          j        |	¦  «         d}n# t          t          t          f$ r d}Y nw xY wdˆˆfd„	Šdˆfd„	}|rº | ||	fi |¤Ž}t          |
t          ¦  «        rct          t          d„ |
D ¦   «         ¦  «        ¦  «        d	k    r9 |||
¦  «          | ||	fi |¤Ž} |||
¦  «          | ||fi |¤Ž} |||
¦  «         n8 ‰||
¦  «          | ||	fi |¤Ž} ‰||
¦  «          | ||fi |¤Ž} ‰||
¦  «         t          d¬
¦  «        5   | ||	fi |¤Ž}t          |t          ¦  «        r |||
d¬¦  «         n ‰||
d¬¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )NrV   r2  rf   TFc                 óž   •— |r*t          ‰                     | ¦  «        t          d¬¦  «        } t          | |t	          ‰¦  «        ¬¦  «         d S )NÚcpu)ÚxprW   )Úatol)rS   Úasarrayr{   rY   rP   )Úmetric_aÚmetric_bÚ	convert_aÚ
dtype_namer7  s      €€r   Ú_check_metric_matchesz5check_array_api_metric.<locals>._check_metric_matches  sO   ø€ Øð 	JÝ˜rŸzšz¨(Ñ3Ô3½À5ÐIÑIÔIˆHÝ˜ (µÀ
Ñ1KÔ1KÐLÑLÔLÐLÐLÐLr�   c                 óP   •— t          | |¦  «        D ]\  }} ‰|||¬¦  «         Œd S )N©r<  )Úzip)r:  r;  r<  Úmetric_a_valÚmetric_b_valr>  s        €r   Ú_check_each_metric_matchesz:check_array_api_metric.<locals>._check_each_metric_matches  sJ   ø€ Ý*-¨h¸Ñ*AÔ*Að 	Sð 	SÑ&ˆL˜,Ø!Ð! ,°È	ÐRÑRÔRÐRÐRð	Sð 	Sr�   c                 ó   — g | ]	}|j         ‘Œ
S rÛ   ræ  )rŒ  Ú
metric_vals     r   r�  z*check_array_api_metric.<locals>.<listcomp>)  s   € ÐFÐFÐF¨j˜Ô)ÐFÐFÐFr�   rv   ©Úarray_api_dispatchr@  )F)rX   r9  Úgetr’  r{   ÚndarrayÚ	TypeErrorÚRuntimeErrorrø   Útupler¯   r×   r	   )rñ   Úarray_namespaceÚdevice_namer=  Úa_npÚb_npÚmetric_kwargsrW   Úa_xpÚb_xpÚ	metric_nprf   Únumpy_as_array_worksrD  Ú	metric_xpÚmetric_xp_mixed_1Úmetric_xp_mixed_2r>  r7  s      `             @@r   Úcheck_array_api_metricrZ  ÷  sº  øøø€ õ & o°{ÀJÑOÔO�J€Bˆà�:Š:�d 6ˆ:Ñ*Ô*€DØ�:Š:�d 6ˆ:Ñ*Ô*€Dà��t˜TÐ3Ð3 ]Ð3Ð3€Ià×Ò˜Ñ)Ô)Ð5Ø)+¯ªØ˜/Ô*°6ð *4ñ *
ô *
ˆ�oÑ&ð  ×#Ò# MÑ2Ô2€KÝ�+�rœzÑ*Ô*ð NØ')§z¢z°+Àf zÑ'MÔ'Mˆ�mÑ$ð	%Ý
Œ
�4ÑÔÐÝ
Œ
�4ÑÔÐØ#ÐÐøÝ•|¥ZÐ0ð %ð %ð %ð
  %ÐÐÐð%øøøðMð Mð Mð Mð Mð Mð Mð
Sð Sð Sð Sð Sð Sð ð @Ø�F˜4 Ð7Ð7¨Ð7Ð7ˆ	õ
 �y¥%Ñ(Ô(ð	@å•CÐFÐF¸IÐFÑFÔFÑGÔGÑHÔHÈ1ÒLÐLà&Ð& y°)Ñ<Ô<Ð<à &  t¨TÐ CÐ C°]Ð CÐ CÐØ&Ð&Ð'8¸)ÑDÔDÐDà &  t¨TÐ CÐ C°]Ð CÐ CÐØ&Ð&Ð'8¸)ÑDÔDÐDÐDð "Ð! )¨YÑ7Ô7Ð7à &  t¨TÐ CÐ C°]Ð CÐ CÐØ!Ð!Ð"3°YÑ?Ô?Ð?à &  t¨TÐ CÐ C°]Ð CÐ CÐØ!Ð!Ð"3°YÑ?Ô?Ð?å	¨4Ð	0Ñ	0Ô	0ð Hð HØ�F˜4 Ð7Ð7¨Ð7Ð7ˆ	õ �i¥Ñ'Ô'ð 	HØ&Ð& y°)ÀtÐLÑLÔLÐLÐLà!Ð! )¨YÀ$ÐGÑGÔGÐGðHð Hð Hñ Hô Hð Hð Hð Hð Hð Hð Hð Høøøð Hð Hð Hð Hð Hð Hs$   Ã*C: Ã:DÄDÇ2=H<È<I ÉI c                 ó   — t          j        g d¢¦  «        }t          j        g d¢¦  «        }i }| j        dk    rddi}t          | |||f||d dœ|¤Ž t          j        g d¢|¬¦  «        }t          | |||f|||dœ|¤Ž d S )	Nr  ©r   rv   r   rv   r   r‡   r‰   ©rP  rQ  r2  ©ç        rj   ç       @ç      ð?rž  )r{   r°   r”  rZ  )rñ   rN  rO  r=  Ú	y_true_npÚ	y_pred_nprR  r2  s           r   Ú,check_array_api_binary_classification_metricrd  F  sæ   € õ ”˜˜˜Ñ&Ô&€IÝ”˜˜˜Ñ&Ô&€Ià€MØ„˜-Ò'Ð'Ø ˜ˆåØØØØð		ð
 ØØð	ð 	ð ð	ð 	ð 	õ ”HÐ1Ð1Ð1¸ÐDÑDÔD€MåØØØØð		ð
 ØØ#ð	ð 	ð ð	ð 	ð 	ð 	ð 	r�   c                 óp  — t          j        g d¢¦  «        }t          j        g d¢¦  «        }| j        dk    r"t          j        g d¢g d¢g d¢g d¢g|¬¦  «        }d	d
ddœ}t          | |¬¦  «        }|D ]B}t	          | |||f||d dœ|¤Ž t          j        g d¢|¬¦  «        }	t	          | |||f|||	dœ|¤Ž ŒCd S )N©r   rv   r†   r7  )r   rv   r   r†   r   )çffffffæ?rc  çš™™™™™©?rh  )rj   çš™™™™™é?rh  rh  ©rj   rj   rg  rj   )rh  rh  rj   ri  rž  ©r–   r�   rŒ   ©rc  r‰   ri  )FT)rŽ   r‡   ro   ©rñ   Úparamsr]  r^  )r{   r°   r”  Ú(_get_metric_kwargs_for_array_api_testingrZ  ©
rñ   rN  rO  r=  rb  rc  Úadditional_paramsÚmetric_kwargs_combinationsrR  r2  s
             r   Ú0check_array_api_multiclass_classification_metricrs  i  si  € õ ”˜˜˜Ñ&Ô&€IÝ”˜˜˜Ñ&Ô&€Ià„Ð3Ò3Ð3å”Hà&Ð&Ð&Ø&Ð&Ð&Ø$Ð$Ð$Ø&Ð&Ð&ð	ð ð
ñ 
ô 
ˆ	ð 2ØØ!ðð Ðõ
 "JØØ ð"ñ "ô "Ðð 4ð 
ð 
ˆÝØØØØð			
ð
 ØØð		
ð 		
ð ð		
ð 		
ð 		
õ œÐ!5Ð!5Ð!5¸ZÐHÑHÔHˆåØØØØð			
ð
 ØØ'ð		
ð 		
ð ð		
ð 		
ð 		
ð 		
ð
ð 
r�   c                 ó8  — t          j        ddgddgddgg|¬¦  «        }t          j        ddgddgddgg|¬¦  «        }dddœ}t          | |¬¦  «        }|D ]B}t          | |||f||d dœ|¤Ž t          j        g d	¢|¬¦  «        }	t          | |||f|||	dœ|¤Ž ŒCd S )
Nrv   r   rž  rk  rl  r�   rm  r]  )r_  rj   r`  )r{   r°   ro  rZ  rp  s
             r   Ú0check_array_api_multilabel_classification_metricru  ž  s9  € õ ”˜1˜a˜& 1 a &¨1¨a¨&Ð1¸ÐDÑDÔD€IÝ”˜1˜a˜& 1 a &¨1¨a¨&Ð1¸ÐDÑDÔD€Ið 2Øðð Ðõ "JØØ ð"ñ "ô "Ðð 4ð 
ð 
ˆÝØØØØð			
ð
 ØØð		
ð 		
ð ð		
ð 		
ð 		
õ œ   ¸
ÐCÑCÔCˆåØØØØð			
ð
 ØØ'ð		
ð 		
ð ð		
ð 		
ð 		
ð 		
ð
ð 
r�   c           	      óê   — t          j        g d¢¦  «        }t          j        g d¢|¬¦  «        }t          | |||||d ¬¦  «         t          j        g d¢|¬¦  «        }t          | ||||||¬¦  «         d S )N©rv   r   rv   r   ©r‰   rc  rg  ç333333ã?rž  r]  ©rv   r†   r7  rv   ©r{   r°   rZ  ©rñ   rN  rO  r=  rb  Ú	y_prob_npr2  s          r   Ú7check_array_api_binary_continuous_classification_metricr~  Æ  s®   € õ ”˜˜˜Ñ&Ô&€IÝ”Ð-Ð-Ð-°ZÐ@Ñ@Ô@€IåØØØØØØØðñ ô ð õ ”H˜\˜\˜\°Ð<Ñ<Ô<€MÝØØØØØØØ#ðñ ô ð ð ð r�   c           	      óþ   — t          j        g d¢¦  «        }t          j        g d¢g d¢g d¢g d¢g|¬¦  «        }t          | |||||d ¬¦  «         t          j        g d¢|¬¦  «        }t          | ||||||¬¦  «         d S )	Nrf  ©r‰   rc  rc  rj   ©çš™™™™™Ù?r‚  rj   rj   rj  ©rj   rc  ry  rj   rž  r]  rz  r{  r|  s          r   Ú;check_array_api_multiclass_continuous_classification_metricr„  â  sÙ   € õ ”˜˜˜Ñ&Ô&€IÝ”à Ð Ð Ø Ð Ð Ø Ð Ð Ø Ð Ð ð		
ð ðñ ô €Iõ ØØØØØØØðñ ô ð õ ”H˜\˜\˜\°Ð<Ñ<Ô<€MåØØØØØØØ#ðñ ô ð ð ð r�   c           	      ó  — t          j        g d¢g d¢g d¢g d¢g|¬¦  «        }t          j        g d¢g d¢g d¢g d	¢g|¬¦  «        }t          | |||||d ¬
¦  «         t          j        g d¢|¬¦  «        }t          | ||||||¬
¦  «         d S )Nr  rw  )r   rv   r   r   ry  rž  )g333333Ã?gHáz®GÑ?gq=
×£pÝ?g¸…ëQ¸¾?)g…ëQ¸Õ?gR¸…ëQØ?ç¸…ëQ¸®?gq=
×£pÍ?)r†  gìQ¸…ëÑ?g¸…ëQ¸ž?g)\�Âõ(ä?)gìQ¸…ëÁ?g×£p=
×Ó?g¤p=
×£Ð?g�Âõ(\�Ò?r]  rz  r{  )rñ   rN  rW   r=  rb  r}  r2  s          r   Ú;check_array_api_multilabel_continuous_classification_metricr‡  	  s  € õ ”àˆLˆLØˆLˆLØˆLˆLØˆLˆLð		
ð ðñ ô €Iõ ”à$Ð$Ð$Ø$Ð$Ð$Ø$Ð$Ð$Ø$Ð$Ð$ð		
ð ðñ ô €Iõ ØØØØØØØðñ ô ð õ ”H˜\˜\˜\°Ð<Ñ<Ô<€MåØØØØØØØ#ðñ ô ð ð ð r�   c                 óæ  — t          | t          ¦  «        r| j        j        n| j        }|dk    r,t          t          d¦  «        k     rt          j        d¦  «         t          j	        g d¢|¬¦  «        }t          j	        g d¢|¬¦  «        }i }t          | ¦  «        j        }d|v rd |d<   t          | |||f||dœ|¤Ž d|v r0t          j	        g d	¢|¬¦  «        |d<   t          | |||f||dœ|¤Ž d S d S )
Nr+   z1.14.0zJmean_poisson_deviance's dependency `xlogy` is available as of scipy 1.14.0)r`  rj   ra  ç      @rž  )r‰   r‰   r†   r†   r2  ©rP  rQ  )rj   r`  ç      ø?r‰   )r’  r   Úfuncr”  ra   r`   r  Úskipr{   r°   r   r-  rZ  )	rñ   rN  rO  r=  Ú	func_namerb  rc  rR  Úmetric_paramss	            r   Ú!check_array_api_regression_metricr�  4	  st  € Ý(2°6½7Ñ(CÔ(CÐX�”Ô$Ð$ÈÌ€IØÐ+Ò+Ð+µ
½]È8Ñ=TÔ=TÒ0TÐ0TÝŒØXñ	
ô 	
ð 	
õ ”Ð-Ð-Ð-°ZÐ@Ñ@Ô@€IÝ”Ð)Ð)Ð)°Ð<Ñ<Ô<€Ià€MÝ˜fÑ%Ô%Ô0€Mà˜-Ð'Ð'Ø)-ˆ�oÑ&åØØØØð	ð
 Øðð ð ðð ð ð ˜-Ð'Ð'Ý)+¬Ø Ð Ð ¨
ð*
ñ *
ô *
ˆ�oÑ&õ 	ØØØØð		
ð
 Øð	
ð 	
ð ð	
ð 	
ð 	
ð 	
ð 	
ð (Ð'r�   c                 ó‚  — t          j        g d¢g d¢g|¬¦  «        }t          j        g d¢g d¢g|¬¦  «        }t          | |||||d ¬¦  «         t          j        ddg|¬¦  «        }t          | ||||||¬¦  «         t          | |||||t          j        g d	¢|¬¦  «        ¬
¦  «         t          | |||||d¬
¦  «         d S )N)rv   r7  r†   )rv   r†   r†   rž  )rv   rn  rn  )rv   rv   rv   r]  rj   r`  )rj   rd  rg  )rP  rQ  rf   Ú
raw_valuesr{  )rñ   rN  rO  r=  rb  rc  r2  s          r   Ú-check_array_api_regression_metric_multioutputr“  ^	  s1  € õ ”˜)˜)˜) Y Y YÐ/°zÐBÑBÔB€IÝ”˜)˜)˜) Y Y YÐ/°zÐBÑBÔB€IåØØØØØØØðñ ô ð õ ”H˜c 3˜Z¨zÐ:Ñ:Ô:€MåØØØØØØØ#ðñ ô ð õ ØØØØØØÝ”H˜_˜_˜_°JÐ?Ñ?Ô?ðñ ô ð õ ØØØØØØØ ðñ ô ð ð ð 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	          | |||f||dœ|¤Ž d	|d<   t	          | |||f||dœ|¤Ž d S )
Nrb  )r‚  r‰   ry  rž  )rc  rd  r‚  )r‰   ry  rg  Údense_outputFrŠ  T)r{   r°   r   r-  rZ  )rñ   rN  rO  r=  ÚX_npÚY_nprR  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Ñ%ÝØØØØð		
ð
 Øð	
ð 	
ð ð	
ð 	
ð 	
ð )-ˆ�nÑ%åØØØØð	ð
 Øðð ð ðð ð ð ð r�   g      à¿r‹  c              #   óT   K  — |                       ¦   «         D ]\  }}|D ]}||fV — Œ	Œd S rÔ   )Úitems)Úmetric_checkersrñ   ÚcheckersÚcheckers       r   Ú!yield_metric_checker_combinationsrž  Y
  sW   è è € Ø+×1Ò1Ñ3Ô3ð "ð "Ñˆ�Øð 	"ð 	"ˆGØ˜'�/Ð!Ð!Ð!Ð!ð	"ð"ð "r�   z(array_namespace, device_name, dtype_namezmetric, check_funcc                 ó"   —  || |||¦  «         d S rÔ   rÛ   )rñ   rN  rO  r=  Ú
check_funcs        r   Útest_array_api_compliancer¡  _
  s    € ð €Jˆv�¨°ZÑ@Ô@Ð@Ð@Ð@r�   c                 ó€  — t          | t          ¦  «        rt          |t          ¦  «        sJ ‚d S t          | d¦  «        rQt          |d¦  «        sJ ‚t          |¦  «        d         |k    sJ ‚t	          |¦  «        t	          |¦  «        k    sJ ‚d S t          | t
          ¦  «        rt          |t
          ¦  «        sJ ‚d S d S )Nr  r   )r’  ru   ÚhasattrrR   Úarray_api_deviceÚstr)Úout_npÚout_xpÚxp_toÚy2_xps       r   Ú_check_outputrª  j
  sÖ   € Ý�&�%Ñ Ô ð 'Ý˜&¥%Ñ(Ô(Ð(Ð(Ð(Ð(Ð(Ý	�˜Ñ	!Ô	!ð 'Ý�v˜wÑ'Ô'Ð'Ð'Ð'Ý˜VÑ$Ô$ QÔ'¨5Ò0Ð0Ð0Ð0Ý Ñ'Ô'Õ+;¸EÑ+BÔ+BÒBÐBÐBÐBÐBÐBå	�F�CÑ	 Ô	 ð 'Ý˜&¥#Ñ&Ô&Ð&Ð&Ð&ð'ð 'Ø&Ð&r�   z)other_ns_and_device, y_pred_ns_and_devicec                 óL   — g | ]!}t          j        |d d…         d|d         iŽ‘Œ"S )Nr†   Úid)r  Úparam)rŒ  r}   s     r   r�  r�  x
  sC   € ð ð ð àõ 	Œ�d˜2˜A˜2”hÐ+ 4¨¤7Ð+Ð+ðð ð r�   c           	      óÀ  — t          |j        |j        ¬¦  «        \  }}t          |j        |j        ¬¦  «        \  }}t          |          }g d¢g d¢fg d¢g d¢fg d¢gg d¢gfg d¢g d¢fg d¢g d	¢fd
œ}g d¢}	d„ }
| t          v rdg}n0| i t
          ¥t          ¥v r| t          vrdg}ndg}n| t          v rddg}t          d¬¦  «        5  |D ]û}||         \  }} |
|||¦  «        }| 
                    |||¬¦  «        }i x}}| t          vr3t          j        |	¦  «        }d|i}| 
                    ||¬¦  «        }d|i} |
|||¦  «        }| 
                    |||¬¦  «        } |||fi |¤Ž} |||fi |¤Ž}t          |t          ¦  «        r)t!          ||¦  «        D ]\  }}t#          ||||¦  «         ŒŒét#          ||||¦  «         Œü	 ddd¦  «         dS # 1 swxY w Y   dS )aÚ  Check `y_true` and `sample_weight` follows `y_pred` for mixed namespace inputs.

    Compares the output for all-numpy vs mixed-type inputs.
    If the output is a float, checks that both all-numpy and mixed-type inputs return
    a float.
    If output is an array, checks it is of the same namespace and device as `y_pred`
    (`y_pred_ns_and_device`).
    If the output is a tuple, checks that each element, whether float or array,
    is correct, as detailed above.
    )rO  r  r\  rw  rx  )r†   rv   r7  rn  )r†   rv   r†   r†   )gÍÌÌÌÌÌ @ra  g      @r‰  )gš™™™™™@gš™™™™™ñ?r`  r`  )ÚbinaryÚbinary_continuousÚlabel_indicator_continuousÚregression_integerÚregression_continuous)rv   rv   r†   r†   c                 ól   — t          | d         t          ¦  «        rt          ||¦  «        }n|j        }|S )Nr   )r’  ru   rQ   Úint64)Údatar7  rW   rŸ  s       r   Ú
_get_dtypezCtest_mixed_array_api_namespace_input_compliance.<locals>._get_dtypež
  s5   € å�d˜1”g�uÑ%Ô%ð 	Ý.¨r°6Ñ:Ô:ˆEˆEà”HˆEØˆr�   r¯  r°  r±  r²  r³  TrG  )rW   rŸ  r2  rV   N)rX   r7  rW   rÚ   rF  rØ   r  rê   ÚREGRESSION_METRICSr	   r9  ÚMETRICS_WITHOUT_SAMPLE_WEIGHTr{   r°   r’  r   rA  rª  )r'  Úother_ns_and_deviceÚy_pred_ns_and_deviceÚ	xp_y_predÚdevice_y_predÚxp_otherÚdevice_otherrñ   Údata_allr2  r·  Ú
data_casesÚ	data_caserÍ   rÎ   rŸ  Úy1_xpÚmetric_kwargs_xpÚmetric_kwargs_npÚsample_weight_npÚsample_weight_xpr©  rW  rU  r¦  r§  s                             r   Ú/test_mixed_array_api_namespace_input_compliancerÈ  v
  sQ  € õ*  4ØÔÐ-AÔ-Hð ñ  ô  Ñ€Iˆ}õ 2ØÔÐ,?Ô,Fðñ ô Ñ€Hˆlõ ˜Ô%€Fð  �<�<   Ð.Ø*˜l˜lÐ,@Ð,@Ð,@ÐAØ(4¨¨ ~Ð8LÐ8LÐ8LÐ7MÐ&NØ+˜|˜|¨\¨\¨\Ð:Ø"6Ð"6Ð"6Ð8LÐ8LÐ8LÐ!Mðð €Hð !�L�L€Mðð ð ð Õ,Ð,Ð,ð �Zˆ
ˆ
Ø	ÐNÕ<ÐNÅÐNÐ	NÐ	NØÕ5Ð5Ð5Ø-Ð.ˆJˆJà6Ð7ˆJˆJØ	Õ*Ð	*Ð	*Ø*Ð,CÐDˆ
å	¨4Ð	0Ñ	0Ô	0ð Fð FØ#ð 	Fð 	FˆIØ˜iÔ(‰FˆB�à�J˜r 8¨\Ñ:Ô:ˆEØ×$Ò$ R°ÀEÐ$ÑJÔJˆEà24Ð4ÐÐ/ØÕ"?Ð?Ð?å#%¤8¨MÑ#:Ô#:Ð Ø$3Ð5EÐ#FÐ Ø#+×#3Ò#3Ø$¨\ð $4ñ $ô $Ð ð %4Ð5EÐ#FÐ à�J˜r 9¨mÑ<Ô<ˆEØ×%Ò% b°ÀeÐ%ÑLÔLˆEà˜˜u eÐ@Ð@Ð/?Ð@Ð@ˆIØ˜˜r 2Ð:Ð:Ð)9Ð:Ð:ˆIå˜)¥UÑ+Ô+ð FÝ&)¨)°YÑ&?Ô&?ð Dð D‘N�F˜FÝ! &¨&°)¸UÑCÔCÐCÐCðDõ ˜i¨°I¸uÑEÔEÐEÐEð5	FðFð Fð Fñ Fô Fð Fð Fð Fð Fð Fð Fð Føøøð Fð Fð Fð Fð Fð Fs   ÃC?GÇGÇGc                 óª  — t           |          }t          j        g d¢¦  «        }t          j        g d¢¦  «        }i }| t          v rd|d<   t	          d¬¦  «        5   |||fi |¤Ž}ddd¦  «         n# 1 swxY w Y   t	          d¬¦  «        5   |||fi |¤Ž}ddd¦  «         n# 1 swxY w Y   t          ||t          |¦  «        d	         |¦  «         dS )
a|  Check string inputs accepted with array API dispatch enabled.

    All thresholded classification metrics that do not require label indicator format
    input should work when both inputs (e.g.,`y_true` and `y_pred`) are string (numpy
    namespace only) and dispatch is enabled.
    Note thresholded classification metrics do not support mixed string and numeric
    inputs.
    ©r`  ra  r`  r`  )r`  ra  ra  r`  r`  rA  TrG  NFr   )rÚ   r{   r°   rG  r	   rª  rR   )r'  rñ   rí   rî   r~   Úmetric_enabledÚmetric_disableds          r   Ú*test_array_api_classification_string_inputrÍ  Ô
  s~  € õ" ˜Ô%€FÝŒXÐ*Ð*Ð*Ñ+Ô+€FÝŒXÐ*Ð*Ð*Ñ+Ô+€Fà€FØÕ,Ð,Ð,Ø!ˆˆ{Ñå	¨4Ð	0Ñ	0Ô	0ð :ð :Ø˜ ¨Ð9Ð9°&Ð9Ð9ˆð:ð :ð :ñ :ô :ð :ð :ð :ð :ð :ð :øøøð :ð :ð :ð :õ 
¨5Ð	1Ñ	1Ô	1ð ;ð ;Ø ˜& ¨Ð:Ð:°6Ð:Ð:ˆð;ð ;ð ;ñ ;ô ;ð ;ð ;ð ;ð ;ð ;ð ;øøøð ;ð ;ð ;ð ;õ �. /µ=ÀÑ3HÔ3HÈÔ3KÈVÑTÔTÐTÐTÐTs$   ÁA1Á1A5Á8A5ÂB#Â#B'Â*B'c                 óà  — t          |||¦  «        \  }}t          |          }t          j        g d¢¦  «        }t          j        g d¢|¬¦  «        }|                     ||¬¦  «        }	i }
| t
          v rd|
d<   t          d¬¦  «        5   |||fi |
¤Ž} |||	fi |
¤Ž}t          |t          ¦  «        r)t          ||¦  «        D ]\  }}t          ||||	¦  «         Œnt          ||||	¦  «         d	d	d	¦  «         n# 1 swxY w Y   | t          vrât          j        g d
¢¦  «        }t          j        g d¢g d¢g d¢g d¢g|¬¦  «        }|                     ||¬¦  «        }	t          d¬¦  «        5   |||¦  «        } |||	¦  «        }t          |t          ¦  «        r)t          ||¦  «        D ]\  }}t          ||||	¦  «         Œnt          ||||	¦  «         d	d	d	¦  «         d	S # 1 swxY w Y   d	S d	S )a=  Check string inputs and numeric inputs from mixed namespace and devices accepted.

    Non-thresholded (aka continuous/ranking) classification metrics should accept
    a mix of string and numeric inputs (numeric input should be able to be of
    any supported namespace/device), with array API dispatch enabled.
    rÊ  rx  rž  rV   r`  rA  TrG  N)r`  ra  ÚcÚdr€  r�  rj  rƒ  )rX   rÚ   r{   r°   r9  rG  r	   r’  r   rA  rª  ÚMETRIC_UNDEFINED_MULTICLASS)r'  rN  rO  r=  r7  rW   rñ   rí   r}  Ú	y_prob_xpr~   rU  rW  r¦  r§  s                  r   Ú8test_array_api_classification_mixed_string_numeric_inputrÓ  ö
  s  € õ4 & o°{ÀJÑOÔO�J€BˆÝ˜Ô%€Fõ ŒXÐ*Ð*Ð*Ñ+Ô+€FÝ”Ð-Ð-Ð-°ZÐ@Ñ@Ô@€IØ—
’
˜9¨V�
Ñ4Ô4€Ià€FØÕ,Ð,Ð,Ø!ˆˆ{Ñå	¨4Ð	0Ñ	0Ô	0ð ?ð ?Ø�F˜6 9Ð7Ð7°Ð7Ð7ˆ	Ø�F˜6 9Ð7Ð7°Ð7Ð7ˆ	å�i¥Ñ'Ô'ð 	?Ý"% i°Ñ";Ô";ð =ð =‘�˜Ý˜f f¨b°)Ñ<Ô<Ð<Ð<ð=õ ˜) Y°°IÑ>Ô>Ð>ð?ð ?ð ?ñ ?ô ?ð ?ð ?ð ?ð ?ð ?ð ?øøøð ?ð ?ð ?ð ?ð Õ5Ð5Ð5Ý”Ð.Ð.Ð.Ñ/Ô/ˆÝ”Hà$Ð$Ð$Ø$Ð$Ð$Ø$Ð$Ð$Ø$Ð$Ð$ð	ð ð
ñ 
ô 
ˆ	ð —J’J˜y°�JÑ8Ô8ˆ	å¨tÐ4Ñ4Ô4ð 	Cð 	CØ˜˜v yÑ1Ô1ˆIØ˜˜v yÑ1Ô1ˆIå˜)¥UÑ+Ô+ð CÝ&)¨)°YÑ&?Ô&?ð Að A‘N�F˜FÝ! &¨&°"°iÑ@Ô@Ð@Ð@ðAõ ˜i¨°B¸	ÑBÔBÐBð	Cð 	Cð 	Cñ 	Cô 	Cð 	Cð 	Cð 	Cð 	Cð 	Cð 	Cð 	Cøøøð 	Cð 	Cð 	Cð 	Cð 	Cð 	Cð 6Ð5s&   ÂA%C8Ã8C<Ã?C<Å+A)G!Ç!G%Ç(G%Údf_lib_nameÚpandasÚpolarsc                 óŠ  — t          j        |¦  «        }|                     g d¢¦  «        }|                     g d¢¦  «        }t          |          }	  ||                     ¦   «         |                     ¦   «         ¦  «        }n'# t
          $ r t          j        | › d�¦  «         Y nw xY wt           |||¦  «        |¦  «         d S )N)r_  ra  r   ra  )ra  r_  r_  r_  z can not deal with 1d inputs)r  ÚimportorskipÚSeriesrÚ   Úto_numpyrø   r�  rY   )r'  rÔ  Údf_librî   rí   rñ   Úexpected_metrics          r   Útest_metrics_dataframe_seriesrÝ  ?  sÝ   € õ Ô  Ñ-Ô-€Fà�]Š]Ð-Ð-Ð-Ñ.Ô.€FØ�]Š]Ð/Ð/Ð/Ñ0Ô0€Få˜Ô%€FðBØ ˜& §¢Ñ!2Ô!2°F·O²OÑ4EÔ4EÑFÔFˆˆøÝð Bð Bð BÝŒ�{Ð@Ð@Ð@ÑAÔAÐAÐAÐAðBøøøõ �F�F˜6 6Ñ*Ô*¨OÑ<Ô<Ð<Ð<Ð<s   Á0B Â!B&Â%B&c                 óæ   — i g}|                      ¦   «         D ]X\  }}|t          | ¦  «        j        vrŒg }|D ]5}|D ]0}|                     ¦   «         }|||<   |                     |¦  «         Œ1Œ6|}ŒY|S )zÂHelper function to enable specifying a variety of additional params and
    their corresponding values, so that they can be passed to a metric function
    when testing for array api compliance.)rš  r   r-  rê  Úappend)	rñ   rn  rr  r­  ri  Únew_combinationsr~   ÚvalueÚ
new_kwargss	            r   ro  ro  P  s¨   € ð #% ÐØŸš™œð 6ð 6‰ˆˆvØ�	 &Ñ)Ô)Ô4Ð4Ð4ØàÐØ0ð 	4ð 	4ˆFØð 4ð 4�Ø#Ÿ[š[™]œ]�
Ø$)�
˜5Ñ!Ø ×'Ò'¨
Ñ3Ô3Ð3Ð3ð4ð
 &6Ð"Ð"à%Ð%r�   c                 ó¼  — t           j                             d¦  «        }|                     ddd¬¦  «        }|                     ddd¬¦  «        }| t          v rt          ||¦  «        \  }}| t          v r0|                     ddd¬¦  «        }|                     ddd¬¦  «        }t          |          } |||¦  «        }t          |t          t           j
        t          f¦  «        sJ ‚t          |t           j        t           j        f¦  «        rJ ‚t          |t          ¦  «        r4t          d„ |D ¦   «         ¦  «        st          d„ |D ¦   «         ¦  «        sJ ‚dS dS dS )	zÈEnsure that the returned values of all metrics are consistent.

    It can either be a float, a numpy array, or a tuple of floats or numpy arrays.
    It should not be a numpy float64 or float32.
    r   r†   rß   rá   rÙ  c              3   ó@   K  — | ]}t          |t          ¦  «        V — Œd S rÔ   )r’  ru   ©rŒ  Úvs     r   ú	<genexpr>z2test_returned_value_consistency.<locals>.<genexpr>  s,   è è € Ð7Ð7¨A•:˜a¥Ñ'Ô'Ð7Ð7Ð7Ð7Ð7Ð7r�   c              3   óJ   K  — | ]}t          |t          j        ¦  «        V — Œd S rÔ   )r’  r{   rJ  rå  s     r   rç  z2test_returned_value_consistency.<locals>.<genexpr>  s?   è è € ð ?
ð ?
Ø*+�J�q�"œ*Ñ%Ô%ð?
ð ?
ð ?
ð ?
ð ?
ð ?
r�   N)r{   rç  rè  rç   rè   rÐ   rê   rÚ   r’  ru   rJ  rM  r²   Úfloat32rZ  )rÝ   rí  rí   rî   rñ   r  s         r   Útest_returned_value_consistencyrê  e  s  € õ Œ)×
Ò
 Ñ
"Ô
"€CØ�[Š[˜˜A Eˆ[Ñ*Ô*€FØ�[Š[˜˜A Eˆ[Ñ*Ô*€FàÕ)Ð)Ð)Ý2°6¸6ÑBÔB‰ˆ�àÕ&Ð&Ð&Ø—’˜Q ¨�Ñ0Ô0ˆØ—’˜Q ¨�Ñ0Ô0ˆå˜Ô€FØˆF�6˜6Ñ"Ô"€Eå�e�e¥R¤ZµÐ7Ñ8Ô8Ð8Ð8Ð8Ý˜%¥"¤*­b¬jÐ!9Ñ:Ô:Ð:Ð:Ð:å�%�ÑÔð 
ÝÐ7Ð7°Ð7Ñ7Ô7Ñ7Ô7ð 	
½3ð ?
ð ?
Ø/4ð?
ñ ?
ô ?
ñ <
ô <
ð 	
ð 	
ð 
ð
ð 
ð	
ð 	
ð 	
ð 	
r�   rÔ   )ær  r+  Ú	functoolsr   Úinspectr   Ú	itertoolsr   r   r   Útypingr   Únumpyr{   r  Úsklearn._configr	   Úsklearn.datasetsr
   Úsklearn.exceptionsr   Úsklearn.metricsr   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r    r!   r"   r#   r$   r%   r&   r'   r(   r)   r*   r+   r,   r-   r.   r/   r0   r1   r2   r3   r4   r5   r6   r7   r8   r9   r:   r;   Úsklearn.metrics._baser<   Úsklearn.metrics.pairwiser=   r>   r?   r@   rA   rB   rC   rD   rE   rF   rG   rH   rI   rJ   rK   rL   rM   Úsklearn.preprocessingrN   Úsklearn.utilsrO   Úsklearn.utils._array_apirP   rQ   rR   rS   rT   rU   rW   r¤  Úsklearn.utils._testingrX   rY   rZ   r[   r\   r]   r^   Úsklearn.utils.fixesr_   r`   ra   Úsklearn.utils.multiclassrb   Úsklearn.utils.validationrc   rd   r¸  rF  r¸   r  rØ   ÚdictrÚ   Úupdaterê   rÑ  ÚunionrÙ   rÊ  rË  rG  rI  ÚMETRICS_WITH_NORMALIZE_OPTIONr  rë   r  rÕ   rÖ   r¹  rë  rè   ré   Ú"METRICS_SUPPORTING_MIXED_NAMESPACErÐ   rÒ   rÜ   ÚmarkÚparametrizeÚsortedrò   rý   r  r×   r  r  r)  ÚCLASSIFICATION_METRICS_REPORTri  r.  r<  rR  rT  r:  r³   Úinvalids_nan_infrV  r^  re  rl  rq  Úfilterwarningsru  rw  r{  r�  r›  r¢  r«  r°  Úintersectionr³  rÆ  rÌ  rÑ  rÖ  rÜ  rà  rã  rû  rþ  Úthread_unsafer   r  r  r  r  r  r   r"  r&  r°   r�  r*  r¥  r3  rZ  rd  rs  ru  r~  r„  r‡  r�  r“  r˜  Úarray_api_metric_checkersrž  r¡  rª  rÈ  r  rÍ  rÓ  rÝ  ro  rê  rÛ   r�   r   ú<module>r     s´#  ðØ €€€Ø 	€	€	€	Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø 2Ð 2Ð 2Ð 2Ð 2Ð 2Ð 2Ð 2Ð 2Ð 2Ø Ð Ð Ð Ð Ð à Ð Ð Ð Ø €€€à *Ð *Ð *Ð *Ð *Ð *Ø ;Ð ;Ð ;Ð ;Ð ;Ð ;Ø 5Ð 5Ð 5Ð 5Ð 5Ð 5ð1ð 1ð 1ð 1ð 1ð 1ð 1ð 1ð 1ð 1ð 1ð 1ð 1ð 1ð 1ð 1ð 1ð 1ð 1ð 1ð 1ð 1ð 1ð 1ð 1ð 1ð 1ð 1ð 1ð 1ð 1ð 1ð 1ð 1ð 1ð 1ð 1ð 1ð 1ð 1ð 1ð 1ð 1ð 1ð 1ð 1ð 1ð 1ð 1ð 1ð 1ð 1ð 1ð 1ð 1ð 1ð 1ð 1ð 1ð 1ð 1ð 1ð 1ð 1ð 1ð 1ð 1ð 1ð 1ð 1ð 1ð 1ð 1ð 1ð 1ð 1ð 1ð 1ð 1ð 1ð 1ð 1ð 1ð 1ð 1ð 1ð 1ð 1ð 1ð 1ð 1ð 1ð 1ð 1ð 1ð 1ð 1ð 1ð 1ð 1ðd 8Ð 7Ð 7Ð 7Ð 7Ð 7ðð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð& 1Ð 0Ð 0Ð 0Ð 0Ð 0Ø !Ð !Ð !Ð !Ð !Ð !ðð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ðð ð ð ð ð ðð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð JÐ IÐ IÐ IÐ IÐ IÐ IÐ IÐ IÐ IØ 3Ð 3Ð 3Ð 3Ð 3Ð 3Ø EÐ EÐ EÐ EÐ EÐ EÐ EÐ EðJØ�ðàÐ.ðð Ð,ðð Ð4ð	ð
 Ð*ðð Ð2ðð %Ð&Dðð Ð 8ðð ��˜Ð.AÐBÑBÔBðð Ð6ðð "Ð#>ðð ˜G˜GÐ$9ÀÐCÑCÔCðð Ð2ðð Ð.ðð % g gÐ.CÈ3Ð&OÑ&OÔ&Oðð  Ð2ð!ð" ˜˜Ð 0¸Ð<Ñ<Ô<ð#ð$ )ð #˜7Ð#3¸3Ð?Ñ?Ô?Ø"˜7Ð#3¸3Ð?Ñ?Ô?Ø6ð1ð ð Ð ð62Ø�nð2àÐ6ð2ð '¨¨Ð0GÐRVÐ(WÑ(WÔ(Wð2ð " 7 7¨>ÀUÐ#KÑ#KÔ#Kð	2ð
 Ð(ð2ð "ð $ð $ð2ð "Ð#>ð2ð )¨'¨'Ø#°ð+ñ +ô +ð2ð �Lð2ð �]ð2ð  ! ' '¨-À5Ð"IÑ"IÔ"Ið!2ð$ �]ð%2ð& �ð'2ð( �Lð)2ð* �ð+2ð, ��˜¨!Ð,Ñ,Ô,ð-2ð. �'�'˜+¨CÐ0Ñ0Ô0ð/2ð 2ð0 Ð0ð12ð2 ˜7˜7 ;¸
ÈÐMÑMÔMð32ð4 ˜˜ °:Ð>Ñ>Ô>ð52ð6 ˜˜ °jÀqÐIÑIÔIð72ð8   ¨ÀÐ LÑ LÔ Lð92ð: ˜W˜W \¸:ÐFÑFÔFð;2ð< ˜g˜g m¸ZÐHÑHÔHð=2ð> ˜˜ °WÀ3ÐGÑGÔGð?2ð@ �g�g˜h°Ð8Ñ8Ô8ðA2ðB �g�g˜k°7ÀÐCÑCÔCðC2ðD ˜W˜W _¸gÐFÑFÔFðE2ðF ˜'˜' ,¸Ð@Ñ@Ô@ðG2ðH ˜7˜7 =¸'ÐBÑBÔBðI2ðJ ˜˜ °WÀ3ÐGÑGÔGðK2ðL �g�g˜h°Ð8Ñ8Ô8ðM2ðN �g�g˜k°7ÀÐCÑCÔCðO2ðP ˜W˜W _¸gÐFÑFÔFðQ2ð 2ðR "˜' ,¸Ð@Ñ@Ô@Ø"˜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Ø*ðc2ð 2ð 2Ð ðjð ð ð@ 'EØØ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Ø$Ø*ðC"%ð "%ð "%Ð !ðH ˆd‰fŒf€Ø × Ò Ð4Ñ 5Ô 5Ð 5Ø × Ò Ð)Ñ *Ô *Ð *Ø × Ò Ð%Ñ &Ô &Ð &Ø × Ò �=Ñ !Ô !Ð !ðð ð Ð ð ð ð Ð ð* &=×%BÒ%BØñ&ô &Ð "ð
ð ð Ð ð4ð 4ð 4Ð 0ðð ð Ð ð,"ð "ð "Ð ðJ!ð !ð !Ð ð!ð !ð !Ð ð.ð ð Ð ðDð ð Ð ð&!ð !ð !Ð ðJ#ð #ð #Ð ðN!ð !ð !Ð ð"ð "ð "Ð ðð ð Ð ð Ø!ðÐ ð!&ð !&ð !&Ð "ðHð ð ðð ð ð	@ð 	@ð 	@ð „×Ò˜  Ð(9Ñ!:Ô!:Ñ;Ô;ð
ð 
ñ <Ô;ð
ðB „×Ò˜  Ð(=Ñ!>Ô!>Ñ?Ô?ð:ð :ñ @Ô?ð:ð4'ð 'ð 'ð  „×ÒØ
ˆFˆF�3�3�{Ñ#Ô#Ð&HÑHÑIÔIñô ð
ð 
ñô ð
ð**
ð *
ð *
ðZ „×ÒØ
ˆFˆF�3�3�{Ñ#Ô#Ð&HÑHÑIÔIñô ð{+ð {+ñô ð{+ð|!Øð!àÐ2ð!ð !Ð ð „×Ò˜Ð#@×#GÒ#GÑ#IÔ#IÑJÔJð+ð +ñ KÔJð+ð „×Ò˜Ð#9×#@Ò#@Ñ#BÔ#BÑCÔCð4ð 4ñ DÔCð4ð> „×ÒØ
ˆFˆF�3�3Ð-Ñ.Ô.Ð1SÑSÑTÔTñô ð2ð 2ñô ð2ðj „×Ò˜Ð!BÑCÔCð(/ð (/ñ DÔCð(/ðX ˆ€VˆbŒf�b”fÐÐØˆ€VˆbŒf�b”fÐÐØˆ€VˆbŒf�b”fÐÐØˆ€VˆbŒf�aˆ[ÐØˆ€VˆbŒf�aˆ[ÐðÐ ð „×ÒØØ	€EÐ
+×
2Ò
2Ñ
4Ô
4Ð6H×6OÒ6OÑ6QÔ6QÑRÔRñô ð „×ÒÐ*Ð,<Ñ=Ô=ð ð  ñ >Ô=ñ	ô ð
 ð „×Ò˜Ð#9×#@Ò#@Ñ#BÔ#BÑCÔCØ„×ÒØØð Œ&�!�Qˆ˜˜˜Ð#Ø
Œ&�!�Qˆ˜˜˜Ð#ðññô ð ð  ñô ñ DÔCð ð, „×Ò˜Ð#9×#@Ò#@Ñ#BÔ#BÑCÔCð ð  ñ DÔCð ðð ð ð$7ð 7ð 7ð „×Ò˜HÑ%Ô%Ø„×ÒØ
Ø
€FØˆˆKÑÔð -ñ	-ð ˆ#Ð/Ñ
0Ô
0ñ		1ñô ñ	ô 	ðð ñ	ô 	ñ &Ô%ðð
 „×Ò˜HÑ%Ô%Ø„×Ò˜  Ð(;Ð>QÑ(QÑ!RÔ!RÑSÔSð*ð *ñ TÔSñ &Ô%ð*ð „×Ò˜  Ð(;Ñ!<Ô!<Ñ=Ô=ðð ñ >Ô=ðð „×Ò˜  Ð(;Ñ!<Ô!<Ñ=Ô=ð
ð 
ñ >Ô=ð
ð$ „×ÒÐOÑPÔPØ„×Ò˜¨.Ñ9Ô9ðH
ð H
ñ :Ô9ñ QÔPðH
ðV „×Ò˜  Ð(;Ñ!<Ô!<Ñ=Ô=ðð ñ >Ô=ðð  „×Ò˜  Ð(EÑ!FÔ!FÑGÔGðð ñ HÔGðð8 „×Ò˜  Ð(EÑ!FÔ!FÑGÔGðð ñ HÔGðð< „×ÒØ
ˆFˆFÐ0×=Ò=Ð>QÑRÔRÑSÔSñô ð,ð ,ñô ð,ð^32ð 32ð 32ðlOð Oð Oð" „×Ò˜  Ð(>Ñ!?Ô!?Ñ@Ô@ðUð Uñ AÔ@ðUð „×ÒØ
Ø
€FÐ!Ð$TÑTÑUÔUñô ðUð Uñ	ô ðUð$ „×Ò˜  Ð(>Ñ!?Ô!?Ñ@Ô@ðUð Uñ AÔ@ðUðð ð ð& „×Ò˜  Ð(>Ñ!?Ô!?Ñ@Ô@ðUð Uñ AÔ@ðUðePð ePð ePð ePðP „×ÒØ
Ø
€FØˆˆKÑÔ×%Ò% c cÐ*<Ñ&=Ô&=Ñ>Ô>Ø
'ñ	(ñô ñô ð	Pð 	Pñô ð	Pð „ÔØ„×ÒØ
Ø
€FØˆˆKÑÔ×%Ò% c cÐ*<Ñ&=Ô&=Ñ>Ô>Ø
'ñ	(ñô ñô ð<ð <ñô ñ Ôð<ð@ „×ÒØ
Ø
€FØˆˆKÑÔØ
ˆ#Ð Ñ
!Ô
!ñ	"à
'ñ	(ð "ñ	"ñô ñô ðEð Eñô ðEð „×ÒØ
Ø
€FØˆˆKÑÔØ
ˆ#Ð Ñ
!Ô
!ñ	"à
'ñ	(ð -ñ	-ñô ñô ðEð Eñô ðEð" „×ÒØ
Ø
€FØ	Ð<Ñ	<Ø
'ñ	(ñô ñô ðEð Eñô ðEð. „×ÒØ
Ø
€FÐÐ!>Ñ>Ñ?Ô?ñô ðAð Añ	ô ðAðDð Dð Dð2 „×ÒØ
ˆFˆFÐ&Ð*GÐ)HÑHÑIÔIñô ð2ð 2ñô ð2ð$ „×ÒØ
ˆFˆFÐ0Ð3FÑFÑGÔGñô ð6ð 6ñô ð6ðB „×ÒØ
Ø
€Fˆ3ˆ3Ð0Ñ1Ô1Ð4VÑVÑWÔWñô ð2ð 2ñ	ô ð2ð* „×ÒØàˆŒ�&�˜A‘  ¨1¡Ñ,°FÐ;Ñ;Ô;ØˆŒ�&�˜A‘  ¨1¡Ñ,Ñ-Ô-ØˆŒ�&�˜A‘  ¨1¡Ñ,Ñ-Ô-ðñô ð „×Ò˜Ð(>Ñ?Ô?ð
4ð 
4ñ @Ô?ñô ð
4ð „×ÒØà	  $Ð'Ø	˜4Ð Ø	�5ÐØ	ˆ� 1Ð	%Ñ	%Ô	% uÐ-Ø	˜ÐØ	 Ð&Ø	˜%Ð Ø	�uÐØ	�DÐð
ñô ð „×Ò˜¨¨f¨Ñ6Ô6ðð ñ 7Ô6ñô ðð4LHð LHð LHð^ ð  ð  ðF2
ð 2
ð 2
ðj%
ð %
ð %
ðPð ð ð8"ð "ð "ðJ*ð *ð *ðZ'
ð '
ð '
ðT.ð .ð .ðbð ð ð:jØØ4Ø8Ø8ððjð Ø4Ø8Ø8ððjð Ø4Ø8ððjð Ø4Ø8ððjð& Ø4Ø8ðð'jð. Ð<Ð=ð/jð0 Ø4Ø8Ø8ðð1jð: Ø4Ø8Ø8ðð;jðD Ø4Ø8Ø8ððEjðN  Ø4Ø8Ø8ð"ðOjðX Ø4Ø8Ø8ððYjðb ÐIÐJðcjðd Ø4Ø8Ø8ððejðn Ø4Ø8Ø8ððojðx Ø4Ø8Ø8ððyjðB Ø?ØCØCððCjðL Ø?ØCØCððMjð jðV Ø?ØCØCððWjð` Ø?ØCØCððajðj Ð=Ð>ðkjðl €GÐ!¨Ð.Ñ.Ô.Ð1RÐ0Sðmjðn €GÐ!¨Ð-Ñ-Ô-Ð0QÐ/Rðojðp Ø)Ø5ððqjðx Ð7Ð8ðyjðz Ø)Ø5ðð{jðB Ø)Ø5ððCjðJ Ø)Ø5ððKjðR Ø)Ø5ððSjðZ Ø)Ø5ðð[jðb Ø)Ø5ððcjðj Ø)Ø5ððkjðr Ø)Ø5ððsjðz €GÐ CÐ(Ñ(Ô(Ø)Ø5ð+ð{jðB €GÐ CÐ(Ñ(Ô(Ø)Ø5ð+ðCjð jð jðJ Ø)ððKjðP Ð=Ð>ðQjðR Ð=Ð>ðSjðT Ð:Ð;ðUjðV Ð;Ð<ðWjðX Ð1Ð2ðYjðZ #Ø)Ø5ð%ð[jðb Ð1Ð2ðcjðd Ð!@Ð Aðejðf Ð!@Ð Aðgjðh Ð6Ð7ðijðj Ð9Ð:ðkjðl Ð9Ð:ðmjðn Ð3Ð4ðojðp Ð6Ð7ðqjðr Ð7Ð8ðsjðt Ð0Ð1ðujð jðv Ø)Ø5ðð  Ø)Ø5ð"ð Ð4Ð5ØÐ6Ð7ØØ4ðð Ð8Ð9ØÐ ?Ð@ðSjð jÐ ðZ 7Pð "ð "ð "ð "ð „×ÒØ.Ø-Ð-Ñ/Ô/ñô ð „×ÒÐ-Ð/PÐ/PÑ/RÔ/RÑSÔSðAð Añ TÔSñ	ô ð
Að	'ð 	'ð 	'ð „×ÒØ/ðð à<Ð<Ñ>Ô>ðñ ô ñô ð „×Ò˜¨¨Ð/QÑ(RÔ(RÑSÔSðPFð PFñ TÔSñô ðPFðl „×ÒØØ
€FØˆÐ.Ñ/Ô/Øˆ3Ð%×*Ò*Ñ,Ô,Ñ-Ô-Ð0GÑGñ	Iñô ñô ð )ðUð Uñ )Ô(ñô ðUð4 „×ÒØ.Ø-Ð-Ñ/Ô/ñô ð „×ÒØØ
€FØˆÐ.Ñ/Ô/àˆSÐ2×7Ò7Ñ9Ô9Ñ:Ô:¸S¸SÀ×ASÒASÑAUÔAUÑ=VÔ=VÑVØ%ñ&ñ	
ñô ñ	ô 	ð5Cð 5Cñ	ô 	ñô ð"5Cðp „×Ò˜¨°8Ð(<Ñ=Ô=Ø„×Ò˜¨¨¨{Ñ(;Ô(;Ñ<Ô<ð=ð =ñ =Ô<ñ >Ô=ð=ð&ð &ð &ð* „×Ò˜  ¨Ñ!4Ô!4Ñ5Ô5ð
ð 
ñ 6Ô5ð
ð 
ð 
r�   