Ë
    uwjÙD ã                   óº  — 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
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-m.Z.m/Z/m0Z0m1Z1m2Z2m3Z3m4Z4m5Z5m6Z6m7Z7m8Z8m9Z9m:Z:m;Z;m<Z<m=Z=m>Z>m?Z?m@Z@mAZAmBZB d d	lCmDZD d d
lEmFZFmGZGmHZHmIZImJZJmKZKmLZLmMZMmNZNmOZOmPZPmQZQmRZRmSZSmTZT d dlUmVZV d dlWmXZX d dlYmZZZm[Z[m\Z\m]Z] d dl^m_Z_m`Z`maZambZbmcZcmdZd d dlemfZfmgZgmhZh d dlimjZj d dlkmlZlmmZm i de-“de.“de3“de4“de1“de6“de/“de#“d ee;d¬«      “de?“de@“d ee5d ¬ «      “d!e2“d"e0“d# ee5d$¬ «      “d% ee d$¬ «      “d&e“d'ei¥Zni d(e“d)e“d* eed+¬,«      “d- eed.¬/«      “d0e“d1d2„ “d3e7“d4 ee7d+¬5«      “d6e&“d7eB“d8 eeBd.¬/«      “d9e(“d:e:“d;e<“d<e$“d= ee%d>¬?«      “d@ ee%dA¬?«      “i dBe,“dC ee%dDdA¬E«      “dF ee$dD¬G«      “dH ee%dDd>¬E«      “dI ee:dD¬G«      “dJ ee<dD¬G«      “dK ee(dD¬G«      “dL ee%dMdA¬E«      “dN ee$dM¬G«      “dO ee%dMd>¬E«      “dP ee:dM¬G«      “dQ ee<dM¬G«      “dR ee(dM¬G«      “dS ee%dTdA¬E«      “dU ee$dT¬G«      “dV ee%dTd>¬E«      “dW ee:dT¬G«      “¥ ee<dT¬G«       ee(dT¬G«       ee%dXdA¬E«       ee$dX¬G«       ee%dXd>¬E«       ee:dX¬G«       ee<dX¬G«       ee(dX¬G«      edYœ	¥ZodZ„ Zpe>epe"d[œZqi d\e“d]e*“d^e+“d_ ee+d.¬/«      “d`e'“dae“dbe=“dc ee=dD¬G«      “dd ee=dX¬G«      “de ee=dM¬G«      “df ee=dTdg¬h«      “di ee=dDdg¬h«      “dj ee=dTdk¬h«      “dl ee=dDdk¬h«      “dm ee=dA¬n«      “doe“dp eedD¬G«      “ eedX¬G«       eedM¬G«      e)e8e!eAeedqœ¥Zr es«       Ztetjë                  er«       etjë                  eo«       etjë                  en«       etjë                  eq«       h dr£Zvh ds£Zwevjñ                  ew«      Zyh dt£Zzh du£Z{h dv£Z|h dw£Z}h dx£Z~h dy£Zh dz£Z€h d{£Z�h d|£Z‚h d}£Zƒh d~£Z„h d£Z…ddhZ†d€„ Z‡d�„ Zˆd‚„ Z‰e�j                  �j                  dƒ eŒe‚«      «      d„„ «       Z�e�j                  �j                  dƒ eŒeƒ«      «      d…„ «       ZŽd†„ Z�e�j                  �j                  dƒ eŒ e�et«      eyz
  «      «      d‡„ «       Z‘dˆ„ Z’e�j                  �j                  dƒ eŒ e�et«      eyz
  «      «      d‰„ «       Z“i eo¥dŠei¥Z”e�j                  �j                  d‹e”�j+                  «       «      dŒ„ «       Z–e�j                  �j                  d‹eo�j+                  «       «      d�„ «       Z—e�j                  �j                  dƒ eŒ e�eo«      eyz
  «      «      dŽ„ «       Z˜e�j                  �j                  dƒer«      d�„ «       Z™d d�ge�j4                  e�j4                  gfd d�ge�j6                  e�j6                  gfd d�ge�j6                  e�j4                  gfd d�ge�j4                  d�gfd d�ge�j6                  d�gfgZœe�j                  �j                  d‹ eer�j+                  «       en�j+                  «       «      «      e�j                  �j                  d‘eœ«      d’„ «       «       Z�e�j                  �j                  d‹eo�j+                  «       «      e�j                  �j                  d‘eœe�j6                  d�d>gg d“¢fe�j4                  d�d>gg d“¢fgz   «      d”„ «       «       Zže�j                  �j                  d‹eo�j+                  «       «      d•„ «       ZŸd–„ Z d—„ Z¡e�j                  �jE                  d˜«      e�j                  �j                  dƒ eŒ e�et«      eyz
   e�er«      z
  «      «      d™„ «       «       Z£e�j                  �jE                  d˜«      e�j                  �j                  dƒ eŒe�e€z  «      «      dš„ «       «       Z¤e�j                  �j                  dƒ eŒe�«      «      d›„ «       Z¥e�j                  �j                  dƒ eŒe�«      «      dœ„ «       Z¦e�j                  �jE                  d�«      e�j                  �j                  džef«      dŸ„ «       «       Z§e�j                  �j                  dƒ eŒe€«      «      d „ «       Z¨e�j                  �j                  dƒ eŒe~«      «      d¡„ «       Z©e�j                  �j                  dƒ eŒe~«      «      d¢„ «       Zªe�j                  �j                  dƒ eŒe~�jW                  e€«      «      «      d£„ «       Z¬d¤„ Z­d¥„ Z®e�j                  �j                  dƒ eŒez«      «      d¦„ «       Z¯e�j                  �j                  dƒ eŒeze{z  «      «      d§„ «       Z°e�j                  �j                  dƒ eŒez«      «      d¨„ «       Z±d©„ Z²e�j                  �j                  dƒ eŒez«      «      dª„ «       Z³dÏd«„Z´e�j                  �j                  dƒ eŒ e�et«      �jW                   e�en«      «      e„z
  «      «      d¬„ «       Zµe�j                  �jl                  e�j                  �j                  dƒ eŒ e�et«      �jW                   e�en«      «      e„z
  «      «      d­„ «       «       Z·e�j                  �j                  dƒ eŒ e�et«       e�en«      z
  e„z
  evz
  «      «      d®„ «       Z¸e�j                  �j                  dƒ eŒ e�et«       e�en«      z
  e„z
  eyz
  «      «      d¯„ «       Z¹e�j                  �j                  dƒ eŒe€ez  e„z
  «      «      d°„ «       Zºe�j                  �j                  dƒ eŒe�e„z
  «      «      d±„ «       Z»d²„ Z¼e�j                  �j                  dƒ eŒe€d3hz
  «      «      d³„ «       Z½e�j                  �j                  dƒ eŒee�z  «      «      d´„ «       Z¾e�j                  �j                  dƒ eŒ e�er«      eyz
  «      «      dµ„ «       Z¿e�j                  �j                  d¶eo«      d·„ «       ZÀe�j                  �j                  d¸ed+fed+fe$d.f ee%d�¬?«      d.fe(d.fe9d+fe:d.fe<d.fe>d+fg	«      e�j                  �j                  d¹eÁeÂg«      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Æ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“e7eÅeÆeÇg“e:eÅeÆeÇg“e9eÅg“e<eÅeÆeÇg“eBeÅeÆeÇg“e&eÅeÆeÇg“e5eÈg“ ee5dÂ¬ «      eÈg“ ee5dÃ¬ «      eÈg“i e;eÈeÉg“eIeÊg“e#eÈeÉg“e.eÈeÉg“e1eÈeÉg“e3eÈeÉg“e4eÈeÉg“e6eÈeÉg“e eÈg“eNeÊg“e2eÈg“eFeÊg“e0eÈg“e-eÈg“e/eÈeÉg“eGeÊg“eOeÊg“¥eHeÊgeJeÊgeMeÊgeLeÊgeKeÊgeReÊgeSeÊge?eÈeÉge@eÈeÉgeTeÊgeQeÊge>eÅgePeÊgi¥ZËeËfdÄ„ZÌe�j                  �j                  dÅ e]«       e\¬Æ«      e�j                  �j                  dÇ eÌ«       «      dÈ„ «       «       ZÍe�j                  �j                  dÉdÊdËg«      e�j                  �j                  d¶ eŒet«      «      dÌ„ «       «       ZÎdÍ„ ZÏe�j                  �j                  dƒ eŒet«      «      dÎ„ «       ZÐy)Ðé    N)Úpartial)Ú	signature)ÚchainÚpermutationsÚproduct)Úconfig_context)Úmake_multilabel_classification)ÚUndefinedMetricWarning)/Úaccuracy_scoreÚaverage_precision_scoreÚbalanced_accuracy_scoreÚbrier_score_lossÚclassification_reportÚcohen_kappa_scoreÚconfusion_matrixÚ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Úpairwise_distancesÚpairwise_kernelsÚpolynomial_kernelÚ
rbf_kernelÚsigmoid_kernel)ÚLabelBinarizer)Úshuffle)Ú_atol_for_typeÚ_convert_to_numpyÚ_get_namespace_device_dtype_idsÚ)yield_namespace_device_dtype_combinations)Ú_array_api_for_testsÚassert_allcloseÚassert_almost_equalÚassert_array_equalÚassert_array_lessÚignore_warnings)ÚCOO_CONTAINERSÚparse_versionÚ
sp_version)Útype_of_target)Ú_num_samplesÚcheck_random_stater$   r%   r*   r+   r(   r-   r&   r   r2   Úvariance_weighted)Úmultioutputr6   r7   Úmean_normal_deviance)Úpowerr)   r'   Úmean_compound_poisson_deviancegffffffö?r   r   r   r   r   Ú adjusted_balanced_accuracy_scoreT)ÚadjustedÚunnormalized_accuracy_scoreF©Ú	normalizeÚunnormalized_confusion_matrixÚnormalized_confusion_matrixc                  ó˜   — t        | i |¤Žj                  d«      t        | i |¤Žj                  d¬«      d d …t        j                  f   z  S )NÚfloaté   ©Úaxis)r   ÚastypeÚsumÚnpÚnewaxis)ÚargsÚkwargss     úf/var/www/html/newmanjeet/manjet/venv/lib/python3.12/site-packages/sklearn/metrics/tests/test_common.pyÚ<lambda>rt   ¤   sH   € Ü˜$Ð) &Ñ)×0Ñ0°Ó9Ü
˜DÐ
+ FÑ
+×
/Ñ
/°QÐ
/Ó
7º¼2¿:¹:¸Ñ
Fò	Gó    Ú(unnormalized_multilabel_confusion_matrixÚ/unnormalized_multilabel_confusion_matrix_sample)Ú
samplewiser   r9   Úunnormalized_zero_one_lossr   r1   r3   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                  |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)r0   Úlenro   ÚarrayÚpadrm   Úfloat64Únan)rq   rr   Ú	precisionÚrecallÚ
thresholdsÚpad_threshholdss         rs   Ú(precision_recall_curve_padded_thresholdsr­   Ó   sz   € ô %;¸DÐ$KÀFÑ$KÑ!€Iˆv�zä˜)“n¤s¨:£Ñ6€Oä�8‰8àØÜ�F‰FØ×!Ñ!¤"§*¡*Ó-Ø˜oÐ.ØÜ!#§¡ ô	ð		
óð ru   )r5   r0   r   r   r!   r"   Úunnormalized_log_lossr   r   r4   Ú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    r/   r   r8   r   r   >   r   r/   r   rš   r›   r!   r�   rž   rœ   r    rw   r™   >   r   rz   r   r5   r3   r   r±   r4   r¹   r1   r°   r¯   r0   r}   >   r   rz   r3   r   r1   r}   >   r4   r¹   r   >   r   rz   r   r5   r3   r   r   r1   r   r0   r   r½   r¼   r»   r}   >$   r   rz   r"   r   r5   r3   r   r   r“   r”   rŒ   r�   r1   r   r   r   r„   r†   r—   r�   r˜   r�   r•   rŽ   rˆ   r0   r‰   r‡   rg   rf   rv   rw   r}   r‘   rŠ   r€   >   r9   r   r8   >   r"   r   r/   r±   r4   r   r   r¹   r°   r   r¯   r   r!   r®   r   r½   r¼   r»   r    >   r   r9   r   r“   r”   rŒ   r�   rš   r›   r„   r†   r—   r�   r˜   r�   r�   r•   rŽ   rž   rˆ   r‰   rœ   r‡   ry   rc   rv   r‘   rŠ   r™   r€   >   r2   r   r(   r*   r%   r-   r+   r   r6   r   r7   r&   >   r   r$   r   r   r9   r   r“   rŒ   r�   r   r(   r*   r�   r˜   r%   r�   r^   r-   rŽ   rž   rˆ   r+   r   r6   ry   r7   rc   rŠ   >   rz   r2   r   r5   r   r3   r”   r1   r   r   r„   r†   r—   r'   r•   r)   r0   r‰   r   r   r   r‡   rg   rf   r&   r`   ra   rv   r}   r‘   r€   >   r$   r¶   r¸   >   r   r'   r)   r`   c                 ó†   — t        t        | j                  «       |j                  «       «      «      dz   }| |z  } ||z  }| |fS )zMake targets strictly positiverj   )ÚabsÚmin©Úy1Úy2Úoffsets      rs   Ú_require_positive_targetsrÅ   P  s?   € ä”�R—V‘V“X˜rŸv™v›xÓ(Ó)¨AÑ-€FØˆ&�L€BØˆ&�L€BØˆrˆ6€Mru   c                 ó  — t        t        | j                  «       |j                  «       «      «      dz
  }| j                  t        j                  «      } |j                  t        j                  «      }| |z  } ||z  }| |fS )z$Make targets strictly larger than -1g®Gáz®ï?)r¿   rÀ   rm   ro   r§   rÁ   s      rs   Ú_require_log1p_targetsrÇ   X  sc   € ä”�R—V‘V“X˜rŸv™v›xÓ(Ó)¨DÑ0€FØ	�‰”2—:‘:Ó	€BØ	�‰”2—:‘:Ó	€BØˆ&�L€BØˆ&�L€BØˆrˆ6€Mru   c                  ó¤   — t         t        z  t        t        «      z  t        z  t        t
        «      k(  sJ ‚t         t        z  t        «       k(  sJ ‚y ©N)ÚSYMMETRIC_METRICSÚNOT_SYMMETRIC_METRICSÚsetÚ!CONTINUOUS_CLASSIFICATION_METRICSÚ"METRIC_UNDEFINED_BINARY_MULTICLASSÚALL_METRICS© ru   rs   Útest_symmetry_consistencyrÑ   b  sX   € ô 	Ü
ñ	 ä
Ô/Ó
0ñ	1ô -ñ	-ô 
Œ[Ó	òð ð ô Ô 5Ñ5¼#»%Ò?Ð?Ñ?ru   Únamec                 óÖ  — t        d«      }|j                  ddd¬«      }|j                  ddd¬«      }| t        v rt        ||«      \  }}n| t        v rt        ||«      \  }}|j                  ddd¬«      }|j                  ddd¬«      }t        |    }| t        v r/| t        v r t         |||«       |||«      d| z  ¬«       y J d«       ‚t         |||«       |||«      d| z  ¬«       y )	Nr   r{   ©é   ©Úsize©rÕ   é   z%s is not symmetric©Úerr_msgz This case is currently unhandled)
r[   ÚrandintÚMETRICS_REQUIRE_POSITIVE_YrÅ   ÚMETRICS_WITH_LOG1P_YrÇ   rÏ   ÚMETRIC_UNDEFINED_BINARYÚMULTILABELS_METRICSrQ   )rÒ   Úrandom_stateÚy_trueÚy_predÚ
y_true_binÚ
y_pred_binÚmetrics          rs   Útest_symmetric_metricrç   n  s  € ô & aÓ(€LØ×!Ñ! ! Q¨UÐ!Ó3€FØ×!Ñ! ! Q¨UÐ!Ó3€FàÔ)Ñ)Ü2°6¸6ÓB‰ˆ‘à	Ô%Ñ	%Ü/°¸Ó?‰ˆ�à×%Ñ% a¨°Ð%Ó:€JØ×%Ñ% a¨°Ð%Ó:€Jä˜Ñ€FØÔ&Ñ&ØÔ&Ñ&ÜÙ�z :Ó.Ù�z :Ó.Ø-°Ñ4öð =Ð<Ó<�5äÙ�6˜6Ó"Ù�6˜6Ó"Ø)¨DÑ0ö	
ru   c                 óF  — t        d«      }t        |    }d}t        d«      D ]m  }|j                  ddd¬«      }|j                  ddd¬«      }| t        v rt        ||«      \  }} |||«      } |||«      }t        j                  ||«      rŒkd} n |rt        | › d�«      ‚y )	Nr   Té   r{   rÔ   rÖ   Fú seems to be symmetric)	r[   rÏ   ÚrangerÜ   rÝ   rÅ   ro   ÚallcloseÚ
ValueError)	rÒ   rá   ræ   Úalways_symmetricÚ_râ   rã   ÚnominalÚswappeds	            rs   Útest_not_symmetric_metricrò   �  sÁ   € ô & aÓ(€LÜ˜Ñ€Fð
 ÐÜ�1ŽXˆØ×%Ñ% a¨°Ð%Ó7ˆØ×%Ñ% a¨°Ð%Ó7ˆàÔ-Ñ-Ü6°v¸vÓF‰NˆF�Fá˜ Ó(ˆÙ˜ Ó(ˆÜ�{‰{˜7 GÕ,Ø$ÐÙð ñ Ü˜D˜6Ð!7Ð8Ó9Ð9ð ru   c                  ó0  — d} d}t        | «       t        j                  t        |› d�¬«      5  t        |«       d d d «       t	        |«       t        j                  t
        | › d�¬«      5  t	        | «       d d d «       y # 1 sw Y   ŒGxY w# 1 sw Y   y xY w)Nr   r3   z is not symmetric©Úmatchrê   )rç   ÚpytestÚraisesÚAssertionErrorrò   rí   )ÚsymÚnot_syms     rs   Útest_symmetry_testsrû   «  s   € à
€CØ€Gô ˜#ÔÜ	�‰”~°¨yÐ8IÐ-JÖ	KÜ˜gÔ&÷ 
Lô ˜gÔ&Ü	�‰”z¨C¨5Ð0FÐ)GÖ	HÜ! #Ô&÷ 
IÐ	H÷ 
LÐ	Kú÷
 
IÐ	Hús   ®B Á+BÂ B	ÂBc                 óx  — t        d«      }|j                  ddd¬«      }|j                  ddd¬«      }| t        v rt        ||«      \  }}n| t        v rt        ||«      \  }}t        ||d¬«      \  }}t        «       5  t        |    }t         |||«       |||«      d| z  ¬«       d d d «       y # 1 sw Y   y xY w)Nr   r{   rÔ   rÖ   ©rá   ú %s is not sample order invariantrÚ   )
r[   rÜ   rÝ   rÅ   rÞ   rÇ   rK   rU   rÏ   rQ   )rÒ   rá   râ   rã   Úy_true_shuffleÚy_pred_shuffleræ   s          rs   Útest_sample_order_invariancer  »  sÁ   € ô & aÓ(€LØ×!Ñ! ! Q¨UÐ!Ó3€FØ×!Ñ! ! Q¨UÐ!Ó3€FàÔ)Ñ)Ü2°6¸6ÓB‰ˆ‘Ø	Ô%Ñ	%Ü/°¸Ó?‰ˆ�ä%,¨V°VÈ!Ô%LÑ"€N�Nä	Õ	Ü˜TÑ"ˆÜÙ�6˜6Ó"Ù�> >Ó2Ø6¸Ñ=õ	
÷ 
×	Ñ	ús   Á>)B0Â0B9c                  ód  — t        d«      } | j                  ddd¬«      }| j                  ddd¬«      }| j                  |j                  ¬«      }||j	                  dd¬«      z  }t        |||d¬«      \  }}}t        D ]*  }t        |   }t         |||«       |||«      d	|z  ¬
«       Œ, t        D ]*  }t        |   }t         |||«       |||«      d	|z  ¬
«       Œ, t        D ]I  }t        |   }t         |||«       |||«      d	|z  ¬
«       t         |||«       |||«      d	|z  ¬
«       ŒK y )Nr   r{   rØ   rÖ   rj   T©rl   Úkeepdimsrý   rþ   rÚ   )r[   rÜ   ÚuniformÚshapern   rK   rà   rÏ   rQ   ÚCONTINUOUS_MULTILABEL_METRICSÚMULTIOUTPUT_METRICS)	rá   râ   rã   Úy_scorerÿ   r   Úy_score_shufflerÒ   ræ   s	            rs   Ú7test_sample_order_invariance_multilabel_and_multioutputr  Ó  sZ  € Ü% aÓ(€Lð ×!Ñ! ! Q¨XÐ!Ó6€FØ×!Ñ! ! Q¨XÐ!Ó6€FØ×"Ñ"¨¯©Ð"Ó5€Gð ˆw�{‰{ ¨Dˆ{Ó1Ñ1€Gä6=Ø�˜¨aô7Ñ3€N�N O÷ $ˆÜ˜TÑ"ˆÜÙ�6˜6Ó"Ù�> >Ó2Ø6¸Ñ=ö	
ð $÷ .ˆÜ˜TÑ"ˆÜÙ�6˜7Ó#Ù�> ?Ó3Ø6¸Ñ=ö	
ð .÷ $ˆÜ˜TÑ"ˆÜÙ�6˜7Ó#Ù�> ?Ó3Ø6¸Ñ=õ	
ô
 	Ù�6˜6Ó"Ù�> >Ó2Ø6¸Ñ=ö	
ñ $ru   c                 ó<  — t        d«      }|j                  ddd¬«      }|j                  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 «       t        j                   t"        «      5   ||
|«       d d d «       t        j                   t"        «      5   |||«       d d d «       t        j                   t"        «      5   ||
|«       d d d «       t        j                   t"        «      5   |||«       d d d «       t        j                   t"        «      5   ||
|	«       d d d «       | t$        t&        z  t(        z  vrqd| v rBt        j*                  t,        «      5  t/        j0                   ||
|«      «      sJ ‚	 d d d «       n+t        j                   t"        «      5   ||
|«       d d d «       d d d «       y # 1 sw Y   �ŒqxY w# 1 sw Y   �ŒSxY w# 1 sw Y   �Œ5xY w# 1 sw Y   �ŒxY w# 1 sw Y   ŒøxY w# 1 sw Y   ŒÙxY w# 1 sw Y   Œ^xY w# 1 sw Y   ŒjxY w# 1 sw Y   y xY w)Nr   r{   rÔ   rÖ   rj   )éÿÿÿÿrj   )rj   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)r[   rÜ   rÝ   rÅ   rÞ   rÇ   Úlistro   r¥   rS   ÚndimÚreshaperU   rÏ   rQ   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                 rs   Ú&test_format_invariance_with_1d_vectorsr     s¦  € ô & aÓ(€LØ	×	Ñ	˜a ¨Ð	Ó	/€BØ	×	Ñ	˜a ¨Ð	Ó	/€BàÔ)Ñ)Ü*¨2¨rÓ2‰ˆ‰BØ	Ô%Ñ	%Ü'¨¨BÓ/‰ˆˆBä�2‹h€GÜ�2‹h€Gä—8‘8˜B“<¤§¡¨"£ˆ5€EÜ�u—z‘z 1Ô%Ü�u—z‘z 1Ô%Ü—
‘
˜5 'Ó*€IÜ—
‘
˜5 'Ó*€IÜ�Z‰Z˜˜wÓ'€FÜ�Z‰Z˜˜wÓ'€Fä	Õ	Ü˜TÑ"ˆá˜˜R“.ˆäÙ�7˜GÓ$ØØBÀTÑIõ	
ô 	Ù�5˜%Ó ØØIÈDÑPõ	
ô 	Ù�9˜iÓ(ØØMÐPTÑTõ	
ô 	Ù�5˜'Ó"ØØVØñõ	
ô 	Ù�7˜EÓ"ØØVØñõ	
ô 	Ù�5˜)Ó$Øð2ð ñ	õ	
ô 	Ù�9˜eÓ$Øð2ð ñ	õ	
ô 	Ù�7˜IÓ&ØàVàñõ	
ô 	Ù�9˜gÓ&ØàVàñõ	
ô �]‰]œ:Õ&Ù�5˜&Ô!÷ 'ä�]‰]œ:Õ&Ù�6˜5Ô!÷ 'ä�]‰]œ:Õ&Ù�7˜FÔ#÷ 'ä�]‰]œ:Õ&Ù�6˜7Ô#÷ 'ä�]‰]œ:Õ&Ù�9˜fÔ%÷ 'ä�]‰]œ:Õ&Ù�6˜9Ô%÷ 'ð
 ÜÔ"?Ñ?ÔBUÑUñ
ð ˜DÑ ô —\‘\Ô"8Õ9ÜŸ:™:¡f¨V°VÓ&<Ô=Ð=Ñ=÷ :Ð9ô —]‘]¤:Õ.Ù˜6 6Ô*÷ /÷K 
Ð	÷Z 'Ñ&úç&Ñ&úç&Ñ&úç&Ñ&úç&Ð&úç&Ð&ú÷ :Ð9ú÷ /Ð.ú÷K 
Ð	úsÍ   Ä1DPÈ5
N.È?!PÉ 
N;É*!PÊ
OÊ!PÊ6
OË !PË!
O"Ë+!PÌ
O.Ì;PÍO:Í1"PÎ
PÎPÎ.N8	Î3PÎ;O	Ï PÏO	ÏPÏO	ÏPÏ"O+	Ï'PÏ.O7	Ï3PÏ:P	Ï?PÐP	ÐPÐPr   ræ   c                 óì   — d}t        j                  t        t        j                  |«      ¬«      5   | t        j                  g «      t        j                  g «      «       d d d «       y # 1 sw Y   y xY w)NzIFound empty input array (e.g., `y_true` or `y_pred`) while a minimum of 1rô   )rö   r÷   rí   ÚreÚescapero   r¥   )ræ   Úmsgs     rs   Ú0test_classification_metrics_raise_on_empty_inputr#  ‡  sC   € à
U€CÜ	�‰”z¬¯©°3«Ö	8ÙŒr�x‰x˜‹|œRŸX™X b›\Ô*÷ 
9×	8Ñ	8ús   ±0A*Á*A3c                 óè  — t        d«      }d}|j                  dd|f¬«      }|j                  dd|f¬«      }|j                  |dz
  f¬«      }t        j                  t
        d¬«      5   | |||¬«       d d d «       |j                  |f¬«      }t        j                  |d<   t        j                  t
        d	¬«      5   | |||¬«       d d d «       t        j                  |d<   t        j                  t
        d
¬«      5   | |||¬«       d d d «       t        j                  g d¢«      }t        j                  t
        d¬«      5   | |d d |d d |¬«       d d d «       |j                  |dz  f¬«      j                  |df«      }t        j                  t
        d¬«      5   | |||¬«       d d d «       y # 1 sw Y   �ŒDxY w# 1 sw Y   ŒûxY w# 1 sw Y   ŒÅxY w# 1 sw Y   Œ…xY w# 1 sw Y   y xY w)Nr   rÕ   r{   rÖ   rj   ú'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)r[   rÜ   Úrandom_samplerö   r÷   rí   ro   Úinfr¨   r¥   r  )ræ   rá   Ú	n_samplesrÂ   rÃ   r'  s         rs   Ú.test_classification_with_invalid_sample_weightr1  Ž  s»  € ô & aÓ(€LØ€IØ	×	Ñ	˜a ¨)¨Ð	Ó	6€BØ	×	Ñ	˜a ¨)¨Ð	Ó	6€Bà ×.Ñ.°YÀ±]Ð4DÐ.ÓE€MÜ	�‰”zÐ)RÖ	SÙˆr�2 ]Õ3÷ 
Tð !×.Ñ.°Y°LÐ.ÓA€MÜ—v‘v€M�!ÑÜ	�‰”zÐ)PÖ	QÙˆr�2 ]Õ3÷ 
Rô —v‘v€M�!ÑÜ	�‰”zÐ)KÖ	LÙˆr�2 ]Õ3÷ 
Mô —H‘HÒ5Ó6€MÜ	�‰”zÐ)EÖ	FÙˆr�"�1ˆv�r˜"˜1�v¨]Õ;÷ 
Gð !×.Ñ.°YÀ±]Ð4DÐ.ÓE×MÑMØ	�Aˆó€Mô 
�‰”zÐ)TÖ	UÙˆr�2 ]Õ3÷ 
VÐ	U÷' 
TÑ	Sú÷
 
RÐ	Qú÷ 
MÐ	Lú÷ 
GÐ	Fú÷ 
VÐ	Uús<   Á)F7Â>GÄ GÅGÆ"G(Æ7GÇGÇGÇG%Ç(G1c                 ó@  — t        d«      }|j                  ddd¬«      }|j                  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j                  | «      ¬	«        |
|j                  d
«      |j                  d
«      «      }t        |	|dj                  | «      ¬	«       | t        v rwt        |
|¬«      }
 |
||«      }t        |	|dj                  | «      ¬	«        |
|j                  d
«      |j                  d
«      «      }t        |	|dj                  | «      ¬	«       d d d «       y # 1 sw Y   y xY w)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)r[   rÜ   ro   r¥   rU   ÚCLASSIFICATION_METRICSÚMETRICS_WITH_POS_LABELr   rS   Úformatrm   Ú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                rs   Ú7test_classification_invariance_string_vs_numbers_labelsrG  ®  s¤  € ô
 & aÓ(€LØ	×	Ñ	˜a ¨Ð	Ó	/€BØ	×	Ñ	˜a ¨Ð	Ó	/€Bä�X‰X�v˜vÐ&Ó'¨Ñ+€FÜ�X‰X�v˜vÐ&Ó'¨Ñ+€Fà€MØ˜&Ð!€Jä	Õ	Ü'¨Ñ-ˆÙ$ R¨›nÐð ˆ
ØÔ)Ñ)Ü  °}ÔEˆJá% f¨fÓ5ÐäØØØA×HÑHÈÓNõ	
ñ )¨¯©°sÓ);¸V¿]¹]È3Ó=OÓPÐÜØØØH×OÑOÐPTÓUõ	
ð Ô&Ñ&Ü  °JÔ?ˆJÙ)¨&°&Ó9ÐÜØ#Ø ØF×MÑMÈdÓSõñ #-¨V¯]©]¸3Ó-?ÀÇÁÈsÓASÓ"TÐÜØ#Ø#ØF×MÑMÈdÓSõ÷E 
×	Ñ	ús   Á8DFÆFc                 óô  — t        d«      }|j                  ddd¬«      }|j                  ddd¬«      }t        j                  ddg«      |   }d}t	        «       5  t
        |    }| t        vr||}| t        v rt        ||¬«      } |||«      } |||«      }	t        ||	dj                  | «      ¬	«        ||j                  d
«      |«      }
t        ||
dj                  | «      ¬	«       net        j                  t        «      5   |||«       d d d «       t        j                  t        «      5   ||j                  d
«      |«       d d d «       d d d «       y # 1 sw Y   ŒLxY w# 1 sw Y   ŒxY w# 1 sw Y   y xY w)Nr   r{   rÔ   rÖ   r3  r4  r5  r7  rÚ   r8  r9  )r[   rÜ   ro   r¥   rU   rÍ   rß   r<  r   rS   r=  rm   rö   r÷   rí   )rÒ   rá   rÂ   rÃ   r?  rA  ræ   rD  rC  rE  rF  s              rs   ÚBtest_continuous_classification_invariance_string_vs_numbers_labelsrI  æ  sZ  € ô & aÓ(€LØ	×	Ñ	˜a ¨Ð	Ó	/€BØ	×	Ñ	˜a ¨Ð	Ó	/€Bä�X‰X�v˜vÐ&Ó'¨Ñ+€Fà€Mä	Õ	Ü2°4Ñ8ˆØÔ.Ñ.àˆJØÔ-Ñ-Ü$ Z¸=ÔI�
á"(¨¨R£.ÐÙ)¨&°"Ó5ÐÜØ#Ø ØE×LÑLÈTÓRõñ #-¨V¯]©]¸3Ó-?ÀÓ"DÐÜØ#Ø#ØL×SÑSØóöô —‘œzÕ*Ù�v˜rÔ"÷ +ä—‘œzÕ*Ù�v—}‘} SÓ)¨2Ô.÷ +÷9 
Ð	÷4 +Ð*úç*Ð*ú÷9 
Ð	ús=   ÁB'E.Ä
EÄ!E.Ä,E"ÅE.ÅE	ÅE.Å"E+	Å'E.Å.E7rj   zy_true, y_scorec                 ó”   — | t         k(  r|g}|g}t        j                  t        d¬«      5   | ||«       d d d «       y # 1 sw Y   y xY w)Nzcontains (NaN|infinity)rô   )r   rö   r÷   rí   )ræ   râ   r	  s      rs   Útest_continuous_inf_nan_inputrK    s@   € ð ”ÒØ�ˆØ�)ˆÜ	�‰”zÐ)CÖ	DÙˆv�wÔ÷ 
E×	DÑ	Dús	   «
>¾A)rj   r{   r,  c                 óv  — t        j                  |«      j                  «       s+d}t        j                  |«      j	                  «       rd}n-d}n*d}t        j                  |«      j	                  «       rd}nd}d|› d|› �}t        j                  t        |¬«      5   | ||«       ddd«       y# 1 sw Y   yxY w)	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)ro   ÚisfiniteÚallr  Úanyrö   r÷   rí   )ræ   râ   r	  Ú
input_nameÚunexpected_valuerÛ   s         rs   Ú!test_classification_inf_nan_inputrS  )  s�   € ô  �;‰;�vÓ×"Ñ"Ô$Øˆ
Ü�8‰8�FÓ×ÑÔ!Ø$Ñà>Ñàˆ
Ü�8‰8�GÓ× Ñ Ô"Ø$Ñà>Ðà�z�l *Ð-=Ð,>Ð?€Gä	�‰”z¨Ö	1Ùˆv�wÔ÷ 
2×	1Ñ	1ús   Â
B/Â/B8c                 óŠ   — g d¢g d¢}}d}t        j                  t        |¬«      5   | ||«       ddd«       y# 1 sw Y   yxY w)zocheck that classification metrics raise a message of mixed type data
    with continuous/binary target vectors.)ÚaÚbrU  ©çš™™™™™¹?çš™™™™™É?ç333333Ó?zJClassification metrics can't handle a mix of binary and continuous targetsrô   N)rö   r÷   rí   )ræ   râ   r	  rÛ   s       rs   Ú+test_classification_binary_continuous_inputr[  L  s;   € ò &¢ˆG€FàTð ô 
�‰”z¨Ö	1Ùˆv�wÔ÷ 
2×	1Ñ	1ús	   ¦
9¹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«       Œ y )Nrj   r{   gffffffæ¿r   ©Úrepeat)rÏ   rÝ   rÞ   r   )rÒ   ræ   ÚvaluesÚiÚjs        rs   Úcheck_single_samplerb  X  s`   € ô
 ˜Ñ€Fð Ô)Ñ)Ø�Q�‰Ø	Ô%Ñ	%Ø˜�‰à�Q�ˆÜ˜ q×)‰ˆˆ1Ù�ˆs�Q�CÕñ *ru   c                 ó²   — t         |    }t        ddgd¬«      D ]<  \  }}}} |t        j                  ||gg«      t        j                  ||gg«      «       Œ> y )Nr   rj   é   r]  )rÏ   r   ro   r¥   )rÒ   ræ   r`  ra  ÚkÚls         rs   Úcheck_single_sample_multioutputrg  j  sQ   € Ü˜Ñ€FÜ˜q !˜f¨Q×/‰
ˆˆ1ˆa�ÙŒr�x‰x˜!˜Q˜˜Ó!¤2§8¡8¨a°¨V¨HÓ#5Õ6ñ 0ru   Úignorec                 ó   — t        | «       y rÉ   )rb  ©rÒ   s    rs   Útest_single_samplerk  q  s   € ô ˜Õru   c                 ó   — t        | «       y rÉ   )rg  rj  s    rs   Útest_single_sample_multioutputrm  �  s   € ô $ DÕ)ru   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 «       y # 1 sw Y   y xY w)N)rj   r   r   rj   )r   rj   rj   rj   )rj   rj   r   rj   r   rj   ©ro   r¥   rÏ   rö   r÷   rí   )rÒ   râ   rã   ræ   s       rs   Ú(test_multioutput_number_of_output_differrp  ‡  sd   € ä�X‰X’|¢\²<Ð@ÓA€FÜ�X‰X˜˜1�v  1˜v¨¨1 vÐ.Ó/€Fä˜Ñ€FÜ	�‰”zÕ	"Ùˆv�vÔ÷ 
#×	"Ñ	"ús   Á
A2Á2A;c           	      ó6  — t        d«      }|j                  ddd¬«      }|j                  ddd¬«      }t        |    } |||«      }t        d«      D ]F  }|j	                  |j
                  d   «      }t         ||d d …|f   |d d …|f   «      |d| z  ¬«       ŒH y )	Nr   r{   ©rÕ   ré   rÖ   r,  rj   z'%s is not dimension shuffling invariantrÚ   )r[   r  rÏ   rë   Úpermutationr  rQ   )rÒ   rá   râ   rã   ræ   Úerrorrï   Úperms           rs   Ú=test_multioutput_regression_invariance_to_dimension_shufflingrv  ‘  s¥   € ô & aÓ(€LØ×!Ñ! ! Q¨WÐ!Ó5€FØ×!Ñ! ! Q¨WÐ!Ó5€Fä˜Ñ€FÙ�6˜6Ó"€Eä�1ŽXˆØ×'Ñ'¨¯©°Q©Ó8ˆÜÙ�6š!˜T˜'‘? Fª1¨d¨7¡OÓ4ØØ=ÀÑFö	
ñ ru   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 �
cg c]  }
t        |
«      ‘Œ }}
|	D �
cg c]  }
t        |
«      ‘Œ }}
t        D ]z  }t
        |   }t        |t        «      rd|_        ||_	         |||«      }t         |||«      |d|z  ¬	«       t         |||«      |d
|z  ¬	«       t         |||	«      |d|z  ¬	«       Œ| y c c}
w c c}
w )Nrd  é2   rj   r   T©Ú
n_featuresÚ	n_classesrá   r0  Úallow_unlabeledÚ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	   ro   Úvstackr  rà   rÏ   Ú
isinstancer   Ú
__module__Ú__name__rQ   rR   )rw  r|  r0  rï   rÂ   rÃ   Úy1_sparse_indicatorÚy2_sparse_indicatorÚy1_list_array_indicatorÚy2_list_array_indicatorrU  Úy1_list_list_indicatorÚy2_list_list_indicatorrÒ   ræ   r  s                   rs   Ú)test_multilabel_representation_invariancer‰  ¤  sŸ  € ð €IØ€Iä*ØØØØØô�E€A€rô +ØØØØØô�E€A€rô 
�‰�B˜!˜˜y™Ð)Ð*Ó	+€BÜ	�‰�B˜!˜˜y™Ð)Ð*Ó	+€Bá'¨Ó+ÐÙ'¨Ó+Ðä" 2›hÐÜ" 2›hÐá/FÓGÑ/F¨!œd 1�gÐ/FÐÐGÙ/FÓGÑ/F¨!œd 1�gÐ/FÐÐGç#ˆÜ˜TÑ"ˆô �fœgÔ&Ø %ˆFÔØ"ˆFŒOá˜˜R“.ˆô 	ÙÐ&Ð(;Ó<Øð6ð ñ	õ	
ô 	ÙÐ)Ð+AÓBØð%ð ñõ		
ô 	ÙÐ*Ð,CÓDØð%ð ñö		
ñ= $ùò HùÚGs   ÂD=Â%E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 «       Œ/ y # 1 sw Y   Œ:xY w)Nrj   r{   r   )rÐ   r{   )r   rj   rÐ   Úobject©Údtypero  )rÒ   Úmultilabel_sequencesræ   Úseqs       rs   Ú+test_raise_value_error_multilabel_sequencesr�  ñ  s|   € ð ˆˆqˆc�A�q�6ÐÚØ	ˆØ	ˆÜ
�‰�"�q˜!�f� XÔ.ðÐô ˜Ñ€FÛ#ˆÜ�]‰]œ:Õ&Ù�3˜Ô÷ 'Ð&ñ $ß&Ð&ús   Á
A(Á(A1	c                 óN  — d}d}t        d«      }|j                  d||f¬«      }|j                  d||f¬«      }|j                  |j                  ¬«      }t        |    }| t
        v r|n|} |||d¬«      }	 |||d¬«      }
t        d|	z  dd	¬
«       t        |	|
|z  d| › �¬
«       y )Nr{   rÕ   r   rÖ   Trd   Fç      ð¿ú0We failed to test correctly the normalize optionrÚ   úFailed with )r[   rÜ   Únormalr  rÏ   rÍ   rT   rQ   ©rÒ   r|  r0  rá   râ   rã   r	  ÚmetricsÚpredÚmeasure_normalizedÚmeasure_not_normalizeds              rs   Ú+test_normalize_option_binary_classificationr›    sÎ   € ð €IØ€IÜ% aÓ(€Là×!Ñ! ! Y°i°\Ð!ÓB€FØ×!Ñ! ! Y°i°\Ð!ÓB€FØ×!Ñ! v§|¡|Ð!Ó4€Gä˜$Ñ€GØÔ?Ñ?‰7ÀV€DÙ  ¨¸Ô>ÐÙ$ V¨T¸UÔCÐäØÐ!Ñ!Ø	ØBõô ØØ Ñ*Ø˜t˜fÐ%öru   c                 ó>  — d}d}t        d«      }|j                  d||f¬«      }|j                  d||f¬«      }|j                  ||f¬«      }t        |    }| t        v r|n|} |||d¬«      }	 |||d¬«      }
t        d|	z  dd	¬
«       t        |	|
|z  d| › �¬
«       y )Nrd  rÕ   r   rÖ   Trd   Fr’  r“  rÚ   r”  )r[   rÜ   r  rÏ   rÍ   rT   rQ   r–  s              rs   Ú/test_normalize_option_multiclass_classificationr�    sÏ   € ð €IØ€IÜ% aÓ(€Là×!Ñ! ! Y°i°\Ð!ÓB€FØ×!Ñ! ! Y°i°\Ð!ÓB€FØ×"Ñ"¨°IÐ(>Ð"Ó?€Gä˜$Ñ€GØÔ?Ñ?‰7ÀV€DÙ  ¨¸Ô>ÐÙ$ V¨T¸UÔCÐäØÐ!Ñ!Ø	ØBõô ØØ Ñ*Ø˜t˜fÐ%öru   c                 ój  — d}d}t        d«      }t        d|dd|¬«      \  }}t        d|dd|¬«      \  }}|j                  |j                  ¬«      }|dg|z  z  }|dg|z  z  }t        |    }| t
        v r|n|}	 |||	d¬«      }
 |||	d	¬«      }t        d
|
z  dd¬«       t        |
||z  d| › �¬«       y )Nrd  éd   r   rj   T)r{  r|  rá   r}  r0  rÖ   rd   Fr’  r“  rÚ   r”  )r[   r	   r  r  rÏ   rÍ   rT   rQ   )rÒ   r|  r0  rá   rï   râ   rã   r	  r—  r˜  r™  rš  s               rs   Ú/test_normalize_option_multilabel_classificationr   <  sþ   € ð
 €IØ€IÜ% aÓ(€Lô /ØØØØØô�I€A€vô /ØØØØØô�I€A€vð ×"Ñ"¨¯©Ð"Ó5€Gð ˆqˆc�I‰oÑ€FØ
ˆqˆc�I‰oÑ€Fä˜$Ñ€GØÔ?Ñ?‰7ÀV€DÙ  ¨¸Ô>ÐÙ$ V¨T¸UÔCÐäØÐ!Ñ!Ø	ØBõô ØØ Ñ*Ø˜t˜fÐ%öru   c                 óø  — |j                   \  }} | ||d ¬«      }t        |t        |«      D �	cg c]  }	 | |d d …|	f   |d d …|	f   «      ‘Œ c}	«        | ||d¬«      }
t        |
 | |j                  «       |j                  «       «      «        | ||d¬«      }t        |t	        j
                  |«      «       t	        j                  |dt        ¬«      }t	        j                  |«      dk7  r- | ||d¬«      }t        |t	        j                  ||¬«      «       n | ||d¬«      }t        |d«       |rN | ||d¬«      }t        |t	        j
                  t        |«      D �	cg c]  }	 | ||	   ||	   «      ‘Œ c}	«      «       t        j                  t        «      5   | ||d	¬«       d d d «       t        j                  t        «      5   | ||d
¬«       d d d «       y c c}	w c c}	w # 1 sw Y   ŒAxY w# 1 sw Y   y xY w)Nr…   r‹   r’   r   )rl   r�  r�   )Úweightsr–   ÚunknownÚgarbage)r  rQ   rë   Úravelro   Úmeanrn   Úintrƒ   rö   r÷   rí   )ræ   râ   rã   Úy_true_binarizeÚy_pred_binarizeÚis_multilabelr0  r|  Úlabel_measurer`  Úmicro_measureÚmacro_measurer¢  Úweighted_measureÚsample_measures                  rs   Ú_check_averagingr°  n  sÞ  € ð +×0Ñ0Ñ€Iˆyñ ˜6 6°4Ô8€MÜØô ˜9Ô%ó	
á%�ñ �?¢1 a 4Ñ(¨/º!¸Q¸$Ñ*?Õ@Ø%ñ	
ôñ ˜6 6°7Ô;€MÜØ‘v˜o×3Ñ3Ó5°×7LÑ7LÓ7NÓOôñ
 ˜6 6°7Ô;€MÜ�M¤2§7¡7¨=Ó#9Ô:ô �f‰f�_¨1´CÔ8€Gä	‡v�vˆgƒ˜!ÒÙ! &¨&¸*ÔEÐÜÐ(¬"¯*©*°]ÈGÔ*TÕUá! &¨&¸*ÔEÐÜÐ(¨!Ô,ñ Ù ¨¸	ÔBˆÜØÜ�G‰Gô # 9Ô-óá-˜ñ ˜?¨1Ñ-¨¸qÑ/AÕBØ-ñóô	
ô 
�‰”zÕ	"Ùˆv�v yÕ1÷ 
#ä	�‰”zÕ	"Ùˆv�v yÕ1÷ 
#Ð	"ùòS	
ùò@÷ 
#Ð	"úç	"Ð	"ús#   ®G
ÅGÆG$ÇG0Ç$G-Ç0G9c                 óÂ   — t        |«      j                  d«      }t        |    }| t        v rt	        ||||||«       y | t
        v rt	        ||||||«       y t        d«      ‚)NÚ
multilabelz2Metric is not recorded as having an average option)rY   Ú
startswithrÏ   ÚMETRICS_WITH_AVERAGINGr°  Ú/CONTINOUS_CLASSIFICATION_METRICS_WITH_AVERAGINGrí   )rÒ   râ   r¨  rã   r©  r	  rª  ræ   s           rs   Úcheck_averagingr¶  ¤  sm   € Ü" 6Ó*×5Ñ5°lÓC€Mä˜Ñ€FàÔ%Ñ%ÜØ�F˜F O°_Àmõ	
ð 
Ô@Ñ	@ÜØ�F˜G _°g¸}õ	
ô ÐMÓNÐNru   c                 ó6  — d\  }}t        d«      }|j                  d||f¬«      }|j                  d||f¬«      }|j                  ||f¬«      }t        «       j	                  |«      }|j                  |«      }|j                  |«      }	t        | ||||	|«       y )N)ry  r,  r   rÖ   )r[   rÜ   r  rJ   ÚfitÚ	transformr¶  )
rÒ   r0  r|  rá   râ   rã   r	  Úlbr¨  r©  s
             rs   Útest_averaging_multiclassr»  µ  s¡   € à Ñ€IˆyÜ% aÓ(€LØ×!Ñ! ! Y°i°\Ð!ÓB€FØ×!Ñ! ! Y°i°\Ð!ÓB€FØ×"Ñ"¨°IÐ(>Ð"Ó?€Gä	Ó	×	Ñ	˜fÓ	%€BØ—l‘l 6Ó*€OØ—l‘l 6Ó*€Oä�D˜& /°6¸?ÈGÕTru   c                 óª   — d\  }}t        d|d|d¬«      \  }}|d d }|dd  }t        d«      j                  d|f¬«      }|}|}	t        | ||||	|«       y )	N)é(   ré   rj   ré   Frz  rÕ   r   rÖ   )r	   r[   r•  r¶  )
rÒ   r0  r|  rï   Úyrâ   rã   r	  r¨  r©  s
             rs   Útest_averaging_multilabelr¿  Ä  s{   € ð
 !Ñ€IˆyÜ)ØØØØØô�D€A€qð ˆs�ˆV€FØˆrˆsˆV€FÜ  Ó#×*Ñ*°°Y°Ð*Ó@€GØ€OØ€Oä�D˜& /°6¸?ÈGÕTru   c                 óª   — t        j                  d«      }t        j                  d«      }t        j                  d«      }|}|}t        | |||||«       y ©N©rÕ   r,  )ro   Úzerosr¶  ©rÒ   râ   rã   r	  r¨  r©  s         rs   Ú$test_averaging_multilabel_all_zeroesrÅ  Ú  sH   € ä�X‰X�gÓ€FÜ�X‰X�gÓ€FÜ�h‰h�wÓ€GØ€OØ€Oä�D˜& /°6¸?ÈGÕTru   c                  óŠ   — t        j                  d«      } t        j                  d«      }| }|}dd„}t        || |||d¬«       y )NrÂ  c                 ó&   — t        t        | ||«      S rÉ   )r:   r1   )râ   r	  rƒ   s      rs   rt   z=test_averaging_binary_multilabel_all_zeroes.<locals>.<lambda>ë  s   € Ô=RÜ˜ ¨'ô>ru   T)rª  )r’   )ro   rÃ  r°  )râ   rã   r¨  r©  Úbinary_metrics        rs   Ú+test_averaging_binary_multilabel_all_zeroesrÉ  å  sK   € Ü�X‰X�gÓ€FÜ�X‰X�gÓ€FØ€OØ€Oò€Mô ØØØØØØöru   c                 óª   — t        j                  d«      }t        j                  d«      }t        j                  d«      }|}|}t        | |||||«       y rÁ  )ro   Úonesr¶  rÄ  s         rs   Ú"test_averaging_multilabel_all_onesrÌ  ø  sH   € ä�W‰W�WÓ€FÜ�W‰W�WÓ€FÜ�g‰g�gÓ€GØ€OØ€Oä�D˜& /°6¸?ÈGÕTru   c                 ó  — t         j                  j                  d«      }|€|j                  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 Y   nxY w ||||j                  «       ¬«      }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| ›�¬
«       | j                  d«      s0| dk(  rdgnddg}|D ]  }t        | |||||z  ¬«      d| z  ¬
«       Œ! dj!                  t#        |«      t#        |«      t#        |«      dz  «      }t        j                  t        |¬«      5   |||t        j$                  ||g«      ¬«       d d d «       y # 1 sw Y   y xY w)Nr   rj   é
   rÖ   r8   )re  r&  )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 != rk   z.Weighting %s is not equal to repeating samplesr{   zUZeroing weights does not give the same result as removing the corresponding samples (Úunnormalizedr-   rZ  z/%s sample_weight is not invariant under scalingzJFound input variables with inconsistent numbers of samples: \[{}, {}, {}\]rô   )ro   ÚrandomÚRandomStaterÜ   r¤   r   rQ   rË  rö   r÷   rø   rí   Útolistr^  Úcopyr³  r=  rZ   Úhstack)rÒ   ræ   rÂ   rÃ   r'  Ú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                      rs   Úcheck_sample_weight_invariancerã    s¢  € Ü
�)‰)×
Ñ
 Ó
"€CØÐØŸ™ A r´°B³˜Ó8ˆð &*Ð-CÒ%CŒW�V˜qÕ!È€Fñ ˜b "°DÔ9ÐäØÙˆr�2¤R§W¡W´3°r³7Ô%;Ô<ØSØ
ñõñ ˜B °-Ô@€Nô 
�‰”~Õ	&ÜÐ(¨.Ô9Ýò )ª.¹$ð@ó
ð 	
÷ 
'Ð	&úñ !  R°}×7KÑ7KÓ7MÔNÐÜØÙò
 Ò.±ð	6õñ #Ü
�	‰	�"�m¨!Ô,Ü
�	‰	�"�m¨!Ô,ØôÐô
 ØØØ@À4ÑGõð )¨¨¨A¨Ñ.ÐÜŸ7™7 =Ó1ÐØ !Ð™˜1˜ÑØ�1�4�a�4‘€IØ�1�4�a�4‘€IÙ"Ø�9Ð,@ôÐñ # 2 rÐ9MÔNÐÜØÙò
 !Ò"7¹ð	?õð �?‰?˜>Ô*ð
 !%Ð(?Ò ?˜!™ÀaÈÀXˆÛ%ˆGÜØÙ�r˜2¨]¸WÑ-DÔEØIÈDÑPöð &ð	#ß#)¡6Ü˜Óœl¨2Ó.´¸]Ó0KÈaÑ0Oó$
ð ô 
�‰”z¨Ö	7Ùˆr�2¤R§Y¡Y°¸}Ð/MÓ%NÕO÷ 
8×	7Ñ	7ús   Â9!CÃC#É!I7É7J c                 óÖ   — d}t        d«      }|j                  |f¬«      }|j                  |f¬«      }t        j                  t	        |«      «      }t
        |    }t        | ||||«       y )Nry  r   rÖ   )r[   r.  ro   Úaranger¤   rÏ   rã  )rÒ   r0  rá   râ   rã   r'  ræ   s          rs   Ú(test_regression_sample_weight_invarianceræ  h  si   € ð €IÜ% aÓ(€Là×'Ñ'¨i¨\Ð'Ó:€FØ×'Ñ'¨i¨\Ð'Ó:€FÜ—I‘Iœc &›kÓ*€MÜ˜Ñ€Fä" 4¨°¸ÀÕOru   c                 óò  — d}t        d«      }|j                  |f¬«      }|j                  |f¬«      }t        |    }|j                  |dz
  f¬«      }t        j                  t
        d¬«      5   ||||¬«       d d d «       |j                  |f¬«      }t        j                  |d<   t        j                  t
        d¬«      5   ||||¬«       d d d «       t        j                  |d<   t        j                  t
        d	¬«      5   ||||¬«       d d d «       t        j                  g d
¢«      }t        j                  t
        d¬«      5   ||d d |d d |¬«       d d d «       |j                  |dz  f¬«      j                  |df«      }t        j                  t
        d¬«      5   ||||¬«       d d d «       y # 1 sw Y   �ŒDxY w# 1 sw Y   ŒûxY w# 1 sw Y   ŒÅxY w# 1 sw Y   Œ…xY w# 1 sw Y   y xY w)Nry  r   rÖ   rj   r%  rô   r&  r(  r)  r*  r+  r,  r{   r-  )r[   r.  rÏ   rö   r÷   rí   ro   r/  r¨   r¥   r  )rÒ   r0  rá   râ   rã   ræ   r'  s          rs   Ú*test_regression_with_invalid_sample_weightrè  }  s½  € ð €IÜ% aÓ(€LØ×'Ñ'¨i¨\Ð'Ó:€FØ×'Ñ'¨i¨\Ð'Ó:€FÜ˜Ñ€Fà ×.Ñ.°YÀ±]Ð4DÐ.ÓE€MÜ	�‰”zÐ)RÖ	SÙˆv�v¨]Õ;÷ 
Tð !×.Ñ.°Y°LÐ.ÓA€MÜ—v‘v€M�!ÑÜ	�‰”zÐ)PÖ	QÙˆv�v¨]Õ;÷ 
Rô —v‘v€M�!ÑÜ	�‰”zÐ)KÖ	LÙˆv�v¨]Õ;÷ 
Mô —H‘HÒ5Ó6€MÜ	�‰”zÐ)EÖ	FÙˆv�b�qˆz˜6 " 1˜:°]ÕC÷ 
Gð !×.Ñ.°YÀ±]Ð4DÐ.ÓE×MÑMØ	�Aˆó€Mô 
�‰”zÐ)TÖ	UÙˆv�v¨]Õ;÷ 
VÐ	U÷' 
TÑ	Sú÷
 
RÐ	Qú÷ 
MÐ	Lú÷ 
GÐ	Fú÷ 
VÐ	Uús<   Á.F<ÃG	ÄGÅG!Æ'G-Æ<GÇ	GÇGÇ!G*Ç-G6c                 óô   — d}t        d«      }|j                  dd|f¬«      }|j                  dd|f¬«      }|j                  |f¬«      }t        |    }| t        v rt        | |||«       y t        | |||«       y )Nry  r   r{   rÖ   )r[   rÜ   r.  rÏ   rÍ   rã  )rÒ   r0  rá   râ   rã   r	  ræ   s          rs   Ú$test_binary_sample_weight_invariancerê  ¥  s‰   € ð €IÜ% aÓ(€LØ×!Ñ! ! Q¨i¨\Ð!Ó:€FØ×!Ñ! ! Q¨i¨\Ð!Ó:€FØ×(Ñ(¨y¨lÐ(Ó;€GÜ˜Ñ€FØÔ0Ñ0Ü& t¨V°V¸WÕEä& t¨V°V¸VÕDru   c                 ól  — d}t        d«      }|j                  dd|f¬«      }|j                  dd|f¬«      }|j                  |df¬«      }t        |    }| t        v rJt        j                  | «      }||j                  d¬«      j                  dd«      z  }t        | |||«       y t        | |||«       y )Nry  r   ré   rÖ   r  rk   rj   )
r[   rÜ   r.  rÏ   rÍ   ro   Úexprn   r  rã  )	rÒ   r0  rá   râ   rã   r	  ræ   ÚtempÚy_score_norms	            rs   Ú(test_multiclass_sample_weight_invariancerï  ¼  s½   € ð €IÜ% aÓ(€LØ×!Ñ! ! Q¨i¨\Ð!Ó:€FØ×!Ñ! ! Q¨i¨\Ð!Ó:€FØ×(Ñ(¨y¸!¨nÐ(Ó=€GÜ˜Ñ€FØÔ0Ñ0ä�v‰v�w�hÓˆØ˜dŸh™h¨B˜hÓ/×7Ñ7¸¸AÓ>Ñ>ˆÜ& t¨V°V¸\ÕJä& t¨V°V¸VÕDru   c                 ó‚  — t        d«      }t        ddddd¬«      \  }}t        ddddd¬«      \  }}t        j                  ||g«      }t        j                  ||g«      }|j	                  |j
                  ¬«      }||j                  dd¬	«      z  }t        |    }| t        v rt        | |||«       y t        | |||«       y )
Nr   rj   rÎ  ry  Frz  rÖ   Tr  )
r[   r	   ro   r  r  r  rn   rÏ   rÍ   rã  )	rÒ   rá   rï   ÚyaÚybrâ   rã   r	  ræ   s	            rs   Ú(test_multilabel_sample_weight_invarianceró  Ö  sÉ   € ô & aÓ(€LÜ*Ø °¸bÐRWô�E€A€rô +Ø °¸bÐRWô�E€A€rô �Y‰Y˜˜B�xÓ €FÜ�Y‰Y˜˜B�xÓ €FØ×"Ñ"¨¯©Ð"Ó5€Gð ˆw�{‰{ ¨Dˆ{Ó1Ñ1€Gä˜Ñ€FØÔ0Ñ0Ü& t¨V°V¸WÕEä& t¨V°V¸VÕDru   c                 ó˜   — t        d«      }|j                  ddd¬«      }|j                  ddd¬«      }t        |    }t        | |||«       y )Nr   r{   rr  rÖ   )r[   r  rÏ   rã  )rÒ   rá   râ   rã   ræ   s        rs   Ú)test_multioutput_sample_weight_invariancerõ  ô  sT   € ô
 & aÓ(€LØ×!Ñ! ! Q¨WÐ!Ó5€FØ×!Ñ! ! Q¨WÐ!Ó5€Fä˜Ñ€FÜ" 4¨°¸Õ@ru   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 ]Y  }||g| |gfD ]L  \  }}	|t        vr|	j
                  d	kD  rŒt        |   }
 |
||	|d ¬
«      } |
||	d ¬«      }t        |||   «       ŒN Œ[ y )N)rj   rj   r   r   ©r   r   rj   rj   )r   rj   rj   r   )r   rj   r{   )r   r{   r,  )r,  r   rj   r{   T)Úreturn_inverserj   )r:  rƒ   r…   )ro   r¥   Úuniquer´  rà   r  rÏ   rS   )Úy_true_multilabelÚy_pred_multilabelÚy_true_multiclassÚy_pred_multiclassr:  rï   Úinverse_labelsrÒ   râ   rã   ræ   Úscore_labelsÚscores                rs   Útest_no_averaging_labelsr    sè   € ô Ÿ™¢,²Ð!=Ó>ÐÜŸ™¢,²Ð!=Ó>ÐÜŸ™¢Ó+ÐÜŸ™¢Ó+ÐÜ�X‰X’lÓ#€FÜŸ	™	 &¸Ô>Ñ€A€~ç&ˆàÐ 1Ð2ØÐ 1Ð2ó
‰NˆF�Fð Ô.Ñ.°6·;±;À²?Øä  Ñ&ˆFá! &¨&¸ÈÔNˆLÙ˜6 6°4Ô8ˆEÜ˜|¨U°>Ñ-BÕCñ
ñ 'ru   c                 ó"  — t        d«      }d\  }}|j                  dd||f¬«      }|j                  dd||f¬«      }t        |    } |||«      }t        t	        |«      |«      D ])  }|d d …|f   }	|d d …|f   }
 ||
|	«      }t        ||«       Œ+ y )Nr   ©rÕ   rd  r{   rÖ   )r[   rÜ   rÏ   r   rë   rR   ©rÒ   rá   r0  r|  râ   r	  ræ   r   ru  Úy_score_permÚy_true_permÚcurrent_scores               rs   Ú-test_multilabel_label_permutations_invariancer    s­   € ô & aÓ(€LØ Ñ€Iˆyà×!Ñ! ! Q¨i¸Ð-CÐ!ÓD€FØ×"Ñ" 1 a¨y¸)Ð.DÐ"ÓE€Gä˜Ñ€FÙ�6˜7Ó#€EäœU 9Ó-¨yÖ9ˆØšq $˜wÑ'ˆØšQ ˜W‘oˆá˜{¨LÓ9ˆÜ˜E =Õ1ñ :ru   c                 ó  — t        d«      }d\  }}|j                  dd||f¬«      }|j                  |j                  ¬«      }||j	                  dd¬«      z  }d||j	                  d«      dk(  df<   d||j	                  d«      dk(  df<   t
        |    } |||«      }t        t        |«      |«      D ]Q  }|d d …|f   }	|d d …|f   }
 ||
|	«      }|t        k(  rt        j                  |«      sJ ‚|d	kD  rŒDJ ‚t        ||«       ŒS y )
Nr   r  r{   rÖ   rj   Tr  rd  g    €„.A)r[   rÜ   r  r  rn   rÏ   r   rë   r&   ro   rN  rR   r  s               rs   Ú>test_continuous_multilabel_multioutput_permutations_invariancer
  /  s&  € ô & aÓ(€LØ Ñ€IˆyØ×!Ñ! ! Q¨i¸Ð-CÐ!ÓD€FØ×"Ñ"¨¯©Ð"Ó5€Gð ˆw�{‰{ ¨Dˆ{Ó1Ñ1€Gð %&€Fˆ6�:‰:�a‹=˜AÑ˜qÐ Ñ!Ø$%€Fˆ6�:‰:�a‹=˜AÑ˜qÐ Ñ!ä˜Ñ€FÙ�6˜7Ó#€EäœU 9Ó-¨yÖ9ˆØšq $˜wÑ'ˆØšQ ˜W‘oˆá˜{¨LÓ9ˆØÔ3Ò3Ü—;‘;˜}Ô-Ð-Ð-Ø  3Ó&Ð&Ð&ô    }Õ5ñ :ru   c                 ó  — d\  }}t        d«      }|j                  ||«      }t        j                  | «      }||j	                  d¬«      j                  dd«      z  }|j                  d||¬«      }t        |    } |||«      }t        t        |«      |«      D ]r  }	t        j                  |t        ¬«      }
t        j                  |«      |
t        |	«      <   |d d …|
f   }t        j                  |	|«      } |||«      }t        ||«       Œt y )N)rŸ  r,  r   r  rk   rj   rÖ   rŒ  )r[   Úrandro   rì  rn   r  rÜ   rÏ   r   rë   rÃ  r§  rå  r  ÚtakerR   )rÒ   r0  r|  rá   r	  rí  râ   ræ   r   ru  Úinverse_permr  r  r  s                 rs   Ú-test_continuous_metric_permutation_invariancer  S  sú   € ð
 "Ñ€IˆyÜ% aÓ(€Là×Ñ 	¨9Ó5€GÜ�6‰6�7�(Ó€DØ�T—X‘X 2�XÓ&×.Ñ.¨r°1Ó5Ñ5€GØ×!Ñ! ! Y°YÐ!Ó?€Fä˜Ñ€FÙ�6˜7Ó#€EÜœU 9Ó-¨yÖ9ˆÜ—x‘x 	´Ô5ˆÜ#%§9¡9¨YÓ#7ˆ”T˜$“ZÑ Øšq ,˜Ñ/ˆÜ—g‘g˜d FÓ+ˆá˜{¨LÓ9ˆÜ˜E =Õ1ñ :ru   Úmetric_namec                 óL  — t         j                  j                  d«      }t        j                  dgdz  dgdz  z   t        ¬«      }|j                  dd|j                  ¬«      }d	}t        j                  t        |¬
«      5  t        |    ||«       d d d «       y # 1 sw Y   y xY w)Né*   r4  r,  r3  r{   rŒ  r   rÖ   z7Labels in y_true and y_pred should be of the same type.rô   )ro   rÐ  rÑ  r¥   r‹  rÜ   r×   rö   r÷   Ú	TypeErrorr;  )r  rÕ  rÂ   rÃ   rÛ   s        rs   Ú"test_metrics_consistent_type_errorr  l  s   € ô �)‰)×
Ñ
 Ó
#€CÜ	�‰�6�(˜Q‘, & ¨A¡Ñ-´VÔ	<€BØ	�‰�Q˜ §¡ˆÓ	(€BàG€GÜ	�‰”y¨Ö	0Ü˜{Ñ+¨B°Ô3÷ 
1×	0Ñ	0ús   ÂBÂB#zmetric, y_pred_thresholdÚdtype_y_strc                 óÎ  — t         j                  j                  d«      }t        j                  dgdz  dgdz  z   |¬«      }|j	                  dd|j
                  ¬«      }|st        j                  ddg|¬«      |   }d	}d
}t        | «      j                  d   j                  }|dk(  r|n|}	t        j                  t        |	¬«      5   | ||«       d d d «       y # 1 sw Y   y xY w)Nr  r4  r,  r3  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 explicitzHpos_label=1 is not a valid label. It should be one of \['eggs', 'spam'\]r6  rj   rô   )ro   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
             rs   Ú test_metrics_pos_label_error_strr  y  sÔ   € ô$ �)‰)×
Ñ
 Ó
#€CÜ	�‰�6�(˜Q‘, & ¨A¡Ñ-°[Ô	A€BØ	�‰�Q˜ §¡ˆÓ	(€BáÜ�X‰X�v˜vÐ&¨kÔ:¸2Ñ>ˆð	"ð ð 	Tð ô " &Ó)×4Ñ4°[ÑA×IÑIÐà%6¸!Ò%;Ñ!ÐAW€GÜ	�‰”z¨Ö	1Ùˆr�2Œ÷ 
2×	1Ñ	1ús   Ã
CÃC$c                 ó  ‡‡‡— t        ||«      Š‰j                  ||¬«      }‰j                  ||¬«      } | ||fi |¤Ž}	|j                  d«      �‰j                  |d   |¬«      |d<   |j                  d«      }
t        |
t        j
                  «      r‰j                  |
|¬«      |d<   	 t	        j                  |«       t	        j                  |«       d}dˆˆfd„	Šdˆfd„	}|r¨ | ||fi |¤Ž}t        |	t        «      r_t        t        |	D �cg c]  }|j                  ‘Œ c}«      «      dkD  r0 |||	«        | ||fi |¤Ž} |||	«        | ||fi |¤Ž} |||	«       n/ ‰||	«        | ||fi |¤Ž} ‰||	«        | ||fi |¤Ž} ‰||	«       t        d¬	«      5   | ||fi |¤Ž}t        |t        «      r |||	d¬
«       n ‰||	d¬
«       d d d «       y # t        t        t        f$ r d}Y �Œw xY wc c}w # 1 sw Y   y xY w)N)Údevicer'  r]   TFc                 ón   •— |rt        ‰j                  | «      ‰«      } t        | |t        ‰«      ¬«       y )N)Úatol)rM   ÚasarrayrQ   rL   )Úmetric_aÚmetric_bÚ	convert_aÚ
dtype_nameÚxps      €€rs   Ú_check_metric_matchesz5check_array_api_metric.<locals>._check_metric_matchesÄ  s,   ø€ ÙÜ(¨¯©°HÓ)=¸rÓBˆHÜ˜ (´À
Ó1KÖLru   c                 óD   •— t        | |«      D ]  \  }} ‰|||¬«       Œ y )N©r%  )Úzip)r#  r$  r%  Úmetric_a_valÚmetric_b_valr(  s        €rs   Ú_check_each_metric_matchesz:check_array_api_metric.<locals>._check_each_metric_matchesÉ  s&   ø€ Ü*-¨h¸Ö*AÑ&ˆL˜,Ù! ,°È	ÖRñ +Bru   rj   )Úarray_api_dispatchr*  )F)rP   r"  Úgetr€  ro   Úndarrayr  ÚRuntimeErrorrí   Útupler¤   rÌ   r  r   )ræ   Úarray_namespacer  r&  Úa_npÚb_npÚmetric_kwargsÚa_xpÚb_xpÚ	metric_npr]   Únumpy_as_array_worksr.  Ú	metric_xpÚ
metric_valÚmetric_xp_mixed_1Úmetric_xp_mixed_2r(  r'  s      `             @@rs   Úcheck_array_api_metricr@  ¢  s&  ú€ ô 
˜o¨vÓ	6€Bà�:‰:�d 6ˆ:Ó*€DØ�:‰:�d 6ˆ:Ó*€Dá�t˜TÑ3 ]Ñ3€Ià×Ñ˜Ó)Ð5Ø)+¯©Ø˜/Ñ*°6ð *4ó *
ˆ�oÑ&ð  ×#Ñ# MÓ2€KÜ�+œrŸz™zÔ*Ø')§z¡z°+Àf zÓ'Mˆ�mÑ$ð	%Ü
�
‰
�4ÔÜ
�
‰
�4ÔØ#ÐöMõ
Sñ Ù˜4 Ñ7¨Ñ7ˆ	ô
 �y¤%Ô(Ü”C¹IÓF¹I¨j˜×)Ó)¸IÑFÓGÓHÈ1ÒLá& y°)Ô<á & t¨TÑ C°]Ñ CÐÙ&Ð'8¸)ÔDá & t¨TÑ C°]Ñ CÐÙ&Ð'8¸)ÕDñ " )¨YÔ7á & t¨TÑ C°]Ñ CÐÙ!Ð"3°YÔ?á & t¨TÑ C°]Ñ CÐÙ!Ð"3°YÔ?ä	¨4Ö	0Ù˜4 Ñ7¨Ñ7ˆ	ô �i¤Ô'Ù& y°)ÀtÖLá! )¨YÀ$ÕG÷ 
1Ð	0øôU ”|¤ZÐ0ò %ð
  %Óð%üò. G÷& 
1Ð	0ús$   Â,,G ÄG3Æ2G8ÇG0Ç/G0Ç8H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œ|¤Ž y )	Nr÷  )r   rj   r   rj   r   r|   r~   ©r5  r6  r'  ©ç        rX  ç       @ç      ð?rŒ  )ro   r¥   r‚  r@  )ræ   r4  r  r&  Ú	y_true_npÚ	y_pred_npr7  r'  s           rs   Ú,check_array_api_binary_classification_metricrI  ñ  s©   € ô —‘šÓ&€IÜ—‘šÓ&€Ià€MØ‡�˜-Ò'Ø ˜ˆäØØØØð		ð
 ØØñ	ð ò	ô —H‘HÒ1¸ÔD€MäØØØØð		ð
 ØØ#ñ	ð ó	ru   c                 ó  — t        j                  g d¢«      }t        j                  g d¢«      }ddddœ}t        | |¬«      }|D ]A  }t        | |||f||d dœ|¤Ž t        j                  g d	¢|¬
«      }	t        | |||f|||	dœ|¤Ž ŒC y )N)r   rj   r{   r,  )r   rj   r   r{   ©r‹   r’   r�   ©rY  r~   gš™™™™™é?)FT)rƒ   r|   rb   ©ræ   ÚparamsrB  rC  rŒ  ©ro   r¥   Ú(_get_metric_kwargs_for_array_api_testingr@  ©
ræ   r4  r  r&  rG  rH  Úadditional_paramsÚmetric_kwargs_combinationsr7  r'  s
             rs   Ú0check_array_api_multiclass_classification_metricrT    sÂ   € ô —‘šÓ&€IÜ—‘šÓ&€Ið 2ØØ!ñÐô
 "JØØ ô"Ðó 4ˆÜØØØØð			
ð
 ØØñ		
ð ò		
ô Ÿ™Ò!5¸ZÔHˆäØØØØð			
ð
 ØØ'ñ		
ð ó		
ñ 4ru   c                 ó4  — t        j                  ddgddgddgg|¬«      }t        j                  ddgddgddgg|¬«      }dddœ}t        | |¬«      }|D ]A  }t        | |||f||d dœ|¤Ž t        j                  g d	¢|¬«      }	t        | |||f|||	dœ|¤Ž ŒC y )
Nrj   r   rŒ  rK  rL  r‚   rM  rB  )rD  rX  rE  rO  rQ  s
             rs   Ú0check_array_api_multilabel_classification_metricrV  =  sè   € ô —‘˜1˜a˜& 1 a &¨1¨a¨&Ð1¸ÔD€IÜ—‘˜1˜a˜& 1 a &¨1¨a¨&Ð1¸ÔD€Ið 2ØñÐô "JØØ ô"Ðó 4ˆÜØØØØð			
ð
 ØØñ		
ð ò		
ô Ÿ™¢¸
ÔCˆäØØØØð			
ð
 ØØ'ñ		
ð ó		
ñ 4ru   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 r/t        j                  g d	¢|¬«      |d<   t        | |||f||dœ|¤Ž y y )
Nr)   z1.14.0zJmean_poisson_deviance's dependency `xlogy` is available as of scipy 1.14.0)rE  rX  rF  g      @rŒ  )r~   r~   r{   r{   r'  ©r5  r6  )rX  rE  ç      ø?r~   )r€  r   Úfuncr‚  rX   rW   rö   Úskipro   r¥   r   r  r@  )	ræ   r4  r  r&  Ú	func_namerG  rH  r7  Úmetric_paramss	            rs   Ú!check_array_api_regression_metricr^  e  s  € Ü(2°6¼7Ô(C�—‘×$Ò$ÈÏÉ€IØÐ+Ò+´
¼]È8Ó=TÒ0TÜ�‰ØXô	
ô —‘Ò-°ZÔ@€IÜ—‘Ò)°Ô<€Ià€MÜ˜fÓ%×0Ñ0€Mà˜-Ñ'Ø)-ˆ�oÑ&äØØØØð	ð
 Øñð òð ˜-Ñ'Ü)+¯©Ú ¨
ô*
ˆ�oÑ&ô 	ØØØØð		
ð
 Øñ	
ð ó	
ð (ru   c                 óh  — 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¬
«       y )N)rj   r,  r{   )rj   r{   r{   rŒ  )rj   rd  rd  )rj   rj   rj   rB  rX  rE  )rX  rZ  çffffffæ?)r5  r6  r]   Ú
raw_values)ro   r¥   r@  )ræ   r4  r  r&  rG  rH  r'  s          rs   Ú-check_array_api_regression_metric_multioutputrb  �  sÇ   € ô —‘š)¢YÐ/°zÔB€IÜ—‘š)¢YÐ/°zÔB€IäØØØØØØØõô —H‘H˜c 3˜Z¨zÔ:€MäØØØØØØØ#õô ØØØØØØÜ—H‘Hš_°JÔ?õô ØØØØØØØ öru   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œ|¤Ž y )
NrW  )çš™™™™™Ù?r~   ç333333ã?rŒ  )rY  rZ  rd  )r~   re  r`  Údense_outputFrX  T)ro   r¥   r   r  r@  )ræ   r4  r  r&  ÚX_npÚY_npr7  s          rs   Úcheck_array_api_metric_pairwiseri  À  s°   € Ü�8‰8’_¢oÐ6¸jÔI€DÜ�8‰8’_¢oÐ6¸jÔI€Dà€MØœ 6Ó*×5Ñ5Ñ5Ø(-ˆ�nÑ%ÜØØØØð		
ð
 Øñ	
ð ò	
ð )-ˆ�nÑ%äØØØØð	ð
 Øñð óru   g      à¿rY  c              #   óV   K  — | j                  «       D ]  \  }}|D ]  }||f–— Œ
 Œ y ­wrÉ   )Úitems)Úmetric_checkersræ   ÚcheckersÚcheckers       rs   Ú!yield_metric_checker_combinationsro  _	  s2   è ø€ Ø+×1Ñ1Ö3Ñˆ�ÛˆGØ˜'�/Ó!ñ  ñ 4ùs   ‚')z#array_namespace, device, dtype_name)Úidszmetric, check_funcc                 ó   —  || |||«       y rÉ   rÐ   )ræ   r4  r  r&  Ú
check_funcs        rs   Útest_array_api_compliancers  e	  s   € ñ ˆv�¨°
Õ;ru   Údf_lib_nameÚpandasÚpolarsc                 óL  — t        j                  |«      }|j                  g d¢«      }|j                  g d¢«      }t        |    }	  ||j	                  «       |j	                  «       «      }t         |||«      «       y # t
        $ r t        j                  | › d�«       Y Œ7w xY w)N)rD  rF  r   rF  )rF  rD  rD  rD  z can not deal with 1d inputs)rö   ÚimportorskipÚSeriesrÏ   Úto_numpyrí   r[  rQ   )r  rt  Údf_librã   râ   ræ   Úexpected_metrics          rs   Útest_metrics_dataframe_seriesr}  o	  s–   € ô × Ñ  Ó-€Fà�]‰]Ò-Ó.€FØ�]‰]Ò/Ó0€Fä˜Ñ%€FðBÙ  §¡Ó!2°F·O±OÓ4EÓFˆô ‘F˜6 6Ó*¨OÕ<øô ò BÜ�‰�{�mÐ#?Ð@ÖAðBús   Á%A? Á?!B#Â"B#c                 óÜ   — i g}|j                  «       D ]U  \  }}|t        | «      j                  vrŒg }|D ]/  }|D ](  }|j                  «       }|||<   |j	                  |«       Œ* Œ1 |}ŒW |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.)rk  r   r  rÓ  Úappend)	ræ   rN  rS  Úparamr_  Únew_combinationsrr   ÚvalueÚ
new_kwargss	            rs   rP  rP  €	  sƒ   € ð #% ÐØŸ™ž‰ˆˆvØœ	 &Ó)×4Ñ4Ñ4ØàÐÛ0ˆFÛ�Ø#Ÿ[™[›]�
Ø$)�
˜5Ñ!Ø ×'Ñ'¨
Õ3ñ  ð 1ð &6Ñ"ð (ð &Ð%ru   c                 óZ  — t         j                  j                  d«      }|j                  ddd¬«      }|j                  ddd¬«      }| t        v rt        ||«      \  }}| t        v r(|j                  ddd¬«      }|j                  ddd¬«      }t        |    } |||«      }t        |t        t         j                  t        f«      sJ ‚t        |t         j                  t         j                  f«      rJ ‚t        |t        «      r(t        d„ |D «       «      st        d„ |D «       «      sJ ‚yyy)	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        «      –— Œ y ­wrÉ   )r€  ri   ©Ú.0Úvs     rs   Ú	<genexpr>z2test_returned_value_consistency.<locals>.<genexpr>¯	  s   è ø€ Ð7±¨A”:˜a¤×'±ùs   ‚c              3   óP   K  — | ]  }t        |t        j                  «      –— Œ  y ­wrÉ   )r€  ro   r1  r†  s     rs   r‰  z2test_returned_value_consistency.<locals>.<genexpr>¯	  s   è ø€ ð ?
Ù/4¨!ŒJ�qœ"Ÿ*™*×%©uùs   ‚$&N)ro   rÐ  rÑ  rÜ   rÝ   rÅ   rß   rÏ   r€  ri   r1  r3  r§   Úfloat32rO  )rÒ   rÕ  râ   rã   ræ   r   s         rs   Útest_returned_value_consistencyrŒ  •	  s  € ô �)‰)×
Ñ
 Ó
"€CØ�[‰[˜˜A Eˆ[Ó*€FØ�[‰[˜˜A Eˆ[Ó*€FàÔ)Ñ)Ü2°6¸6ÓB‰ˆ�àÔ&Ñ&Ø—‘˜Q ¨�Ó0ˆØ—‘˜Q ¨�Ó0ˆä˜Ñ€FÙ�6˜6Ó"€Eä�eœe¤R§Z¡Z´Ð7Ô8Ð8Ð8Ü˜%¤"§*¡*¬b¯j©jÐ!9Ô:Ð:Ð:ä�%œÔÜÑ7±Ó7Ô7¼3ñ ?
Ù/4ó?
ô <
ð 	
ð 
ð <
Ð7ð  ru   rÉ   )Ñr  r   Ú	functoolsr   Úinspectr   Ú	itertoolsr   r   r   Únumpyro   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.   r/   r0   r1   r2   r3   r4   r5   r6   r7   r8   r9   Úsklearn.metrics._baser:   Úsklearn.metrics.pairwiser;   r<   r=   r>   r?   r@   rA   rB   rC   rD   rE   rF   rG   rH   rI   Úsklearn.preprocessingrJ   Úsklearn.utilsrK   Úsklearn.utils._array_apirL   rM   rN   rO   Úsklearn.utils._testingrP   rQ   rR   rS   rT   rU   Úsklearn.utils.fixesrV   rW   rX   Úsklearn.utils.multiclassrY   Úsklearn.utils.validationrZ   r[   ÚREGRESSION_METRICSr;  r­   ÚCURVE_METRICSrÍ   ÚdictrÏ   Úupdaterß   ÚMETRIC_UNDEFINED_MULTICLASSÚunionrÎ   r´  rµ  r<  r>  ÚMETRICS_WITH_NORMALIZE_OPTIONr  rà   r  rÊ   rË   ÚMETRICS_WITHOUT_SAMPLE_WEIGHTrÝ   rÞ   rÅ   rÇ   rÑ   ÚmarkÚparametrizeÚsortedrç   rò   rû   rÌ   r  r  r  ÚCLASSIFICATION_METRICS_REPORTr_  r#  r1  rG  rI  r/  r¨   Úinvalids_nan_infrK  rS  r[  rb  rg  Úfilterwarningsrk  rm  rp  rv  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  Ústrr‹  r  r@  rI  rT  rV  r^  rb  ri  Úarray_api_metric_checkersro  rs  r}  rP  rŒ  rÐ   ru   rs   Ú<module>r°     sù  ðÛ Û 	Ý Ý ß 2Ñ 2ã Û å *Ý ;Ý 5÷0÷ 0÷ 0÷ 0÷ 0÷ 0÷ 0÷ 0÷ 0÷ 0÷ 0÷ 0ñ 0õb 8÷÷ ÷ ÷ ñ õ" 1Ý !÷ó ÷÷ ÷ JÑ IÝ 3ß EðFØ�ðàÐ.ðð Ð,ðð Ð4ð	ð
 Ð*ðð Ð2ðð %Ð&Dðð Ð 8ðð ‘˜Ð.AÔBðð Ð6ðð "Ð#>ðð ™GÐ$9ÀÔCðð Ð2ðð Ð.ðð %¡gÐ.CÈ3Ô&Oðð  ™Ð 0¸Ô<ð!ð" Ð(ð#ð$ Ð6ñ%Ð ð*6Ø�nð6àÐ6ð6ð '©Ð0GÐRVÔ(Wð6ð "¡7¨>ÀUÔ#Kð	6ð $Ð%5ð6ð "ñ $ð6ð /Ð0Kð6ð 6±wØ#°ô8ð6ð$ �Lð%6ð& �]ð'6ð( !¡'¨-À5Ô"Ið)6ð, �]ð-6ð. �ð/6ð0 �Lð16ð2 �ð36ð4 ‘˜¨!Ô,ð56ð6 ‘'˜+¨CÔ0ñ76ð8 Ð0ð96ð: ™7 ;¸
ÈÔMð;6ð< ™ °:Ô>ð=6ð> ™ °jÀqÔIð?6ð@ ¡¨ÀÔ LðA6ðB ™W \¸:ÔFðC6ðD ™g m¸ZÔHðE6ðF ™ °WÀ3ÔGðG6ðH ‘g˜h°Ô8ðI6ðJ ‘g˜k°7ÀÔCðK6ðL ™W _¸gÔFðM6ðN ™' ,¸Ô@ðO6ðP ™7 =¸'ÔBðQ6ðR ™ °WÀ3ÔGðS6ðT ‘g˜h°Ô8ðU6ðV ‘g˜k°7ÀÔCðW6ðX ™W _¸gÔFñY6ñZ " ,¸Ô@Ù" =¸'ÔBÙ! +°yÀsÔKÙ °)Ô<Ù °YÀQÔGÙ& À	ÔJÙ# L¸)ÔDÙ$ ]¸IÔFØ*òk6Ð òrð@ ØFØñ€ð"%Ø�nð"%àÐ,ð"%ð �ð"%ð ™W X¸Ô?ð	"%ð
 �*ð"%ð Ð(ð"%ð �]ð"%ð ™ °zÔBð"%ð ‘w˜}°iÔ@ð"%ð ‘W˜]°GÔ<ð"%ð ‘7˜=°'ÀuÔMð"%ð ™GØ˜z°uôð"%ð ‘7˜=°'ÀuÔMð"%ð  ™GØ˜z°uôð!"%ð& ‘w˜}°cÔ:ð'"%ð( Ð6ð)"%ð* '©Ø¨ô)ð+"%ñ0 (/Ø¨ô(ñ &-Ð-DÈgÔ%VØ-RØØØ0Ø$Ø*òC"%Ð !ñH ‹f€Ø × Ñ Ð4Ô 5Ø × Ñ Ð)Ô *Ø × Ñ Ð%Ô &Ø × Ñ �=Ô !òÐ ò Ð ð( &=×%BÑ%BØó&Ð "ò
Ð ò3Ð /òÐ ò*%Ð òP!Ð ò!Ð ò.Ð òDÐ ò" Ð òH Ð òH!Ð òÐ ð Ø!ðÐ òòò	@ð ‡‚×Ò˜¡Ð(9Ó!:Ó;ñ
ó <ð
ðB ‡‚×Ò˜¡Ð(=Ó!>Ó?ñ:ó @ð:ò4'ð  ‡‚×ÒØ
‰F‘3�{Ó#Ð&HÑHÓIóñ
óð
ò**
ðZ ‡‚×ÒØ
‰F‘3�{Ó#Ð&HÑHÓIóñ{+óð{+ð|!Øð!àÐ2ñ!Ð ð ‡‚×Ò˜Ð#@×#GÒ#GÓ#IÓJñ+ó Kð+ð ‡‚×Ò˜Ð#9×#@Ò#@Ó#BÓCñ4ó Dð4ð> ‡‚×ÒØ
‰F‘3Ð-Ó.Ð1SÑSÓTóñ2óð2ðj ‡‚×Ò˜Ð!BÓCñ(/ó Dð(/ðX ˆ€Vˆb�fŠf�b—f’fÐÐØˆ€Vˆb�fŠf�b—f’fÐÐØˆ€Vˆb�fŠf�b—f’fÐÐØˆ€Vˆb�fŠf�aˆ[ÐØˆ€Vˆb�fŠf�aˆ[ÐðÐ ð ‡‚×ÒØÙ	Ð
+×
2Ò
2Ó
4Ð6H×6OÒ6OÓ6QÓRóð ‡‚×ÒÐ*Ð,<Ó=ñ ó >ó	ð
 ð ‡‚×Ò˜Ð#9×#@Ò#@Ó#BÓCØ‡‚×ÒØØð �&Š&�!�QˆšÐ#Ø
�&Š&�!�QˆšÐ#ðñóñ óó Dð ð, ‡‚×Ò˜Ð#9×#@Ò#@Ó#BÓCñ ó Dð òò$7ð ‡‚×Ò˜HÓ%Ø‡‚×ÒØ
Ù
ÙˆKÓð -ñ	-ñ Ð/Ó
0ñ		1óó	ñó	ó &ðð
 ‡‚×Ò˜HÓ%Ø‡‚×Ò˜¡Ð(;Ð>QÑ(QÓ!RÓSñ*ó Tó &ð*ð ‡‚×Ò˜¡Ð(;Ó!<Ó=ñó >ðð ‡‚×Ò˜¡Ð(;Ó!<Ó=ñ
ó >ð
ð$ ‡‚×ÒÐOÓPØ‡‚×Ò˜¨.Ó9ñH
ó :ó QðH
ðV ‡‚×Ò˜¡Ð(;Ó!<Ó=ñó >ðð  ‡‚×Ò˜¡Ð(EÓ!FÓGñó Hðð8 ‡‚×Ò˜¡Ð(EÓ!FÓGñó Hðð8 ‡‚×ÒØ
‰FÐ0×=Ò=Ð>QÓRÓSóñ,óð,ò^32òlOð" ‡‚×Ò˜¡Ð(>Ó!?Ó@ñUó AðUð ‡‚×ÒØ
Ù
Ð!Ð$SÑSÓTóñUó	ðUð$ ‡‚×Ò˜¡Ð(>Ó!?Ó@ñUó AðUòð& ‡‚×Ò˜¡Ð(>Ó!?Ó@ñUó AðUóbPðJ ‡‚×ÒØ
Ù
ÙˆKÓ×%Ò%¡cÐ*<Ó&=Ó>Ø
'ñ	(óóñ	Póð	Pð ‡‚×ÒØ‡‚×ÒØ
Ù
ÙˆKÓ×%Ò%¡cÐ*<Ó&=Ó>Ø
'ñ	(óóñ<óó ð<ð@ ‡‚×ÒØ
Ù
ÙˆKÓÙ
Ð Ó
!ñ	"à
'ñ	(ð "ñ	"óóñEóðEð ‡‚×ÒØ
Ù
ÙˆKÓÙ
Ð Ó
!ñ	"à
'ñ	(ð -ñ	-óóñEóðEð" ‡‚×ÒØ
Ù
Ø	Ð<Ñ	<Ø
'ñ	(óóñEóðEð. ‡‚×ÒØ
Ù
ÐÐ!>Ñ>Ó?óñAó	ðAòDð2 ‡‚×ÒØ
‰FÐ&Ð*TÐ)UÑUÓVóñ2óð2ð$ ‡‚×ÒØ
‰FÐ0Ð3FÑFÓGóñ6óð6ðB ‡‚×ÒØ
Ù
‰3Ð0Ó1Ð4VÑVÓWóñ2ó	ð2ð* ‡‚×Ò˜Ð(>Ó?ñ	4ó @ð	4ð ‡‚×ÒØà	  $Ð'Ø	˜4Ð Ø	�5ÐÙ	� 1Ô	% uÐ-Ø	˜ÐØ	 Ð&Ø	˜%Ð Ø	�uÐØ	�DÐð
óð ‡‚×Ò˜¨¨f¨Ó6ñó 7óðò4LHò^ òF&
òR%
òP'
òT.òbð:ØØ4Ø8Ø8ððð Ø4Ø8ððð Ø4Ø8ððð Ø4Ø8ððð$ Ð<Ð=ð%ð& Ø4Ø8Ø8ðð'ð0 Ø4Ø8Ø8ðð1ð: Ø4Ø8Ø8ðð;ðD  Ø4Ø8Ø8ð"ðEðN Ø4Ø8Ø8ððOðX ÐIÐJðYðZ Ø4Ø8Ø8ðð[ðd Ø4Ø8Ø8ððeðn Ø4Ø8Ø8ððoðx Ð=Ð>ðyñz Ð!¨Ô.Ð1RÐ0Sð{ñ| Ð!¨Ô-Ð0QÐ/Rñ}ð~ Ø)Ø5ðððF Ð7Ð8ðGðH Ø)Ø5ððIðP Ø)Ø5ððQðX Ø)Ø5ððYð` Ø)Ø5ððaðh Ø)Ø5ððiðp Ø)Ø5ððqðx Ø)ððyð~ Ð=Ð>ðð@ Ð=Ð>ðAðB Ð:Ð;ðCðD Ð;Ð<ðEðF Ð1Ð2ðGðH #Ø)Ø5ð%ðIðP Ð1Ð2ðQðR Ð!@Ð AñSðT Ð6Ð7ØÐ9Ð:ØÐ9Ð:ØÐ3Ð4ØÐ6Ð7ØÐ7Ð8ØÐ0Ð1ØØ)Ø5ðð  Ø)Ø5ð"ð Ð4Ð5ØÐ6Ð7ØØ4ðð Ð8Ð9ñ}Ð ðD 7Pó "ð ‡‚×ÒØ)Ù-Ó/Ø'ð ó ð
 ‡‚×ÒÐ-Ñ/PÓ/RÓSñ<ó Tóð<ð ‡‚×Ò˜¨°8Ð(<Ó=Ø‡‚×Ò˜©¨{Ó(;Ó<ñ=ó =ó >ð=ò&ð* ‡‚×Ò˜¡¨Ó!4Ó5ñ
ó 6ñ
ru   