Ë
    ÷Q(hô ã                   ó„  — 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.m/Z/m0Z0m1Z1m2Z2m3Z3m4Z4m5Z5m6Z6m7Z7m8Z8m9Z9m:Z:m;Z;m<Z<m=Z=m>Z> d d	l?m@Z@ d d
lAmBZBmCZCmDZDmEZEmFZFmGZGmHZHmIZImJZJmKZKmLZL d dlMmNZN d dlOmPZP d dlQmRZRmSZSmTZT d dlUmVZVmWZWmXZXmYZYmZZZm[Z[ d dl\m]Z]m^Z^m_Z_ d dl`maZa d dlbmcZcmdZd i de)“de*“de/“de0“de-“de2“de+“de“d ee7d¬«      “de;“de<“d ee1d ¬ «      “d!e.“d"e,“d# ee1d$¬ «      “d% eed$¬ «      “d&e“d'ei¥Zei d(e“d)e“d* eed+¬,«      “d- eed.¬/«      “d0e“d1d2„ “d3e3“d4 ee3d+¬5«      “d6e"“d7e>“d8 ee>d.¬/«      “d9e$“d:e6“d;e8“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e6dD¬G«      “dJ ee8dD¬G«      “dK ee$dD¬G«      “dL ee!dMdA¬E«      “dN ee dM¬G«      “dO ee!dMd>¬E«      “dP ee6dM¬G«      “dQ ee8dM¬G«      “dR ee$dM¬G«      “dS ee!dTdA¬E«      “dU ee dT¬G«      “dV ee!dTd>¬E«      “dW ee6dT¬G«      “¥ ee8dT¬G«       ee$dT¬G«       ee!dXdA¬E«       ee dX¬G«       ee!dXd>¬E«       ee6dX¬G«       ee8dX¬G«       ee$dX¬G«      edYœ	¥ZfdZ„ Zge:eged[œZhi d\e“d]e&“d^e'“d_ ee'd.¬/«      “d`e#“dae“dbe9“dc ee9dD¬G«      “dd ee9dX¬G«      “de ee9dM¬G«      “df ee9dTdg¬h«      “di ee9dDdg¬h«      “dj ee9dTdk¬h«      “dl ee9dDdk¬h«      “dm ee9dA¬n«      “doe“dp eedD¬G«      “ eedX¬G«       eedM¬G«      e%e4ee=dqœ¥Zi ej«       ZkekjÙ                  ei«       ekjÙ                  ef«       ekjÙ                  ee«       ekjÙ                  eh«       h dr£Zmh ds£Znemjß                  en«      Zph dt£Zqh du£Zrh dv£Zsh dw£Zth dx£Zuh dy£Zvh dz£Zwh d{£Zxh d|£Zyh d}£Zzh d~£Z{h d£Z|ddhZ}d€„ Z~d�„ Zd‚„ Z€e�j                  �j                  dƒ eƒey«      «      d„„ «       Z„e�j                  �j                  dƒ eƒez«      «      d…„ «       Z…e�j                  �j                  dƒ eƒ e†ek«      epz
  «      «      d†„ «       Z‡d‡„ Zˆe�j                  �j                  dƒ eƒ e†ek«      epz
  «      «      dˆ„ «       Z‰e�j                  �j                  dƒ eƒ e†ef«      epz
  «      «      d‰„ «       ZŠe�j                  �j                  dƒei«      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                  �j                  dŒ eei�j                  «       ee�j                  «       «      «      e�j                  �j                  d�eŽ«      dŽ„ «       «       Z�e�j                  �j                  dŒef�j                  «       «      e�j                  �j                  d�eŽe
�j                  d‹d>gg d�¢fe
�j                  d‹d>gg d�¢fgz   «      d�„ «       «       Z‘e�j                  �j                  dŒef�j                  «       «      d‘„ «       Z’d’„ Z“d“„ Z”e�j                  �j+                  d”«      e�j                  �j                  dƒ eƒ e†ek«      epz
   e†ei«      z
  «      «      d•„ «       «       Z–e�j                  �j+                  d”«      e�j                  �j                  dƒ eƒexewz  «      «      d–„ «       «       Z—e�j                  �j                  dƒ eƒex«      «      d—„ «       Z˜e�j                  �j                  dƒ eƒex«      «      d˜„ «       Z™e�j                  �j+                  d™«      e�j                  �j                  dše]«      d›„ «       «       Zše�j                  �j                  dƒ eƒew«      «      dœ„ «       Z›e�j                  �j                  dƒ eƒeu«      «      d�„ «       Zœe�j                  �j                  dƒ eƒeu«      «      dž„ «       Z�e�j                  �j                  dƒ eƒeu�j=                  ew«      «      «      dŸ„ «       ZŸd „ Z d¡„ Z¡e�j                  �j                  dƒ eƒeq«      «      d¢„ «       Z¢e�j                  �j                  dƒ eƒeqerz  «      «      d£„ «       Z£e�j                  �j                  dƒ eƒeq«      «      d¤„ «       Z¤d¥„ Z¥e�j                  �j                  dƒ eƒeq«      «      d¦„ «       Z¦d§„ Z§e�j                  �j                  dƒ eƒ e†ek«      �j=                   e†ee«      «      e{z
  «      «      d¨„ «       Z¨e�j                  �j                  dƒ eƒ e†ek«       e†ee«      z
  e{z
  emz
  «      «      d©„ «       Z©e�j                  �j                  dƒ eƒ e†ek«       e†ee«      z
  e{z
  epz
  «      «      dª„ «       Zªe�j                  �j                  dƒ eƒewevz  exz  e{z
  «      «      d«„ «       Z«d¬„ Z¬e�j                  �j                  dƒ eƒewd3hz
  «      «      d­„ «       Z­e�j                  �j                  dƒ eƒevexz  «      «      d®„ «       Z®e�j                  �j                  dƒ eƒ e†ei«      epz
  «      «      d¯„ «       Z¯e�j                  �j                  d°ef«      d±„ «       Z°e�j                  �j                  d²ed+fed+fe d.f ee!d‹¬?«      d.fe$d.fe5d+fe6d.fe8d.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¶e·g“e3eµe¶e·g“e>eµe¶e·g“e1e¸g“ ee1d¼¬ «      e¸g“ ee1d½¬ «      e¸g“e7e¸e¹g“eEeºg“e*e¸e¹g“e/e¸e¹g“e0e¸e¹g“ee¸g“eHeºg“e.e¸g“eBeºg“e,e¸g“e)e¸ge+e¸e¹geCeºgeIeºgeDeºgeFeºgeGeºgeJeºgeKeºge;e¸e¹ge<e¸e¹geLeºgi¥Z»e»fd¾„Z¼e�j                  �j                  d¿ eT«       «      e�j                  �j                  dÀ e¼«       «      dÁ„ «       «       Z½e�j                  �j                  dÂdÃdÄg«      e�j                  �j                  d° eƒek«      «      dÅ„ «       «       Z¾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Úcohen_kappa_scoreÚconfusion_matrixÚcoverage_errorÚd2_absolute_error_scoreÚd2_pinball_scoreÚd2_tweedie_scoreÚ	dcg_scoreÚ	det_curveÚexplained_variance_scoreÚf1_scoreÚfbeta_scoreÚhamming_lossÚ
hinge_lossÚjaccard_scoreÚ%label_ranking_average_precision_scoreÚlabel_ranking_lossÚlog_lossÚmatthews_corrcoefÚ	max_errorÚmean_absolute_errorÚmean_absolute_percentage_errorÚmean_gamma_devianceÚmean_pinball_lossÚmean_poisson_devianceÚmean_squared_errorÚmean_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Úlinear_kernelÚpaired_cosine_distancesÚpaired_euclidean_distancesÚpolynomial_kernelÚ
rbf_kernelÚsigmoid_kernel)ÚLabelBinarizer)Úshuffle)Ú_atol_for_typeÚ_convert_to_numpyÚ)yield_namespace_device_dtype_combinations)Ú_array_api_for_testsÚassert_allcloseÚassert_almost_equalÚassert_array_equalÚassert_array_lessÚignore_warnings)ÚCOO_CONTAINERSÚparse_versionÚ
sp_version)Útype_of_target)Ú_num_samplesÚcheck_random_stater!   r"   r'   r(   r%   r*   r#   r   r/   Úvariance_weighted)Úmultioutputr3   r4   Ú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     ú_/var/www/skyplay_api_hub/venv/lib/python3.12/site-packages/sklearn/metrics/tests/test_common.pyú<lambda>rl   ›   sM   € Ü˜$Ð) &Ñ)×0Ñ0°Ó9Ü
˜DÐ
+ FÑ
+×
/Ñ
/°QÐ
/Ó
7º¼2¿:¹:¸Ñ
Fñ	Gð ó    Ú(unnormalized_multilabel_confusion_matrixÚ/unnormalized_multilabel_confusion_matrix_sample)Ú
samplewiser   r6   Úunnormalized_zero_one_lossr   r.   r0   r   Úf2_scoreé   )Úbetaú
f0.5_scoreç      à?Úmatthews_corrcoef_scoreúweighted_f0.5_scoreÚweighted)Úaveragert   Úweighted_f1_score©rz   Ú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 an higher
    dimensional np.array of dtype('float64') (it will be of dtype('object)
    instead). This again is needed for assert_array_equal to work correctly.

    As a workaround we pad the threshold array with NaN values to match
    the dimension of precision and recall arrays respectively.
    r   Úconstant)Ú	pad_widthÚmodeÚconstant_values)r-   Úlenrg   ÚarrayÚpadre   Úfloat64Únan)ri   rj   Ú	precisionÚrecallÚ
thresholdsÚpad_threshholdss         rk   Ú(precision_recall_curve_padded_thresholdsr¤   Ê   sz   € ô %;¸DÐ$KÀFÑ$KÑ!€Iˆv�zä˜)“n¤s¨:£Ñ6€Oä�8‰8àØÜ�F‰FØ×!Ñ!¤"§*¡*Ó-Ø˜oÐ.ØÜ!#§¡ ô	ð		
óð rm   )r2   r-   r   r   r   r   Úunnormalized_log_lossr   r   r1   Úweighted_roc_aucÚsamples_roc_aucÚmicro_roc_aucÚovr_roc_aucÚovr)rz   Ú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   r5   >   r   r,   r   r‘   r’   r   r”   r•   r“   r   ro   r�   >   r   rr   r   r2   r0   r   r¨   r1   r°   r.   r§   r   r¦   r-   ru   >   r   rr   r0   r   r.   ru   >   r1   r°   r   >   r   rr   r   r2   r0   r   r.   r   r-   r   r´   r³   r²   ru   >    r   rr   r   r2   r0   r   rŠ   r‹   rƒ   r„   r.   r   r{   r}   rŽ   r†   r�   r‡   rŒ   r…   r   r-   r€   r~   r_   r^   rn   ro   ru   rˆ   r�   rx   >   r6   r   r5   >   r   r   r,   r¨   r1   r   r°   r§   r¦   r   r¥   r   r´   r³   r²   r   >   r   r6   r   rŠ   r‹   rƒ   r„   r‘   r’   r{   r}   rŽ   r†   r�   r‡   r”   rŒ   r…   r•   r   r€   r“   r~   rq   r[   rn   rˆ   r�   r�   rx   >   r/   r   r%   r'   r"   r*   r(   r   r3   r   r4   r#   >   r   r!   r   r   r6   r   rŠ   rƒ   r„   r   r%   r'   r†   r�   r"   r‡   rV   r*   r…   r•   r   r(   rw   r3   rq   r4   r[   r�   >   rr   r/   r   r2   r   r0   r‹   r.   r   r   r{   r}   rŽ   r$   rŒ   r&   r-   r€   r   r   r   r~   r_   r^   r#   rX   rY   rn   ru   rˆ   rx   >   r!   r­   r¯   r*   >   r   r$   r&   rX   c                 ó†   — t        t        | j                  «       |j                  «       «      «      dz   }| |z  } ||z  }| |fS )zMake targets strictly positiverb   )ÚabsÚmin©Úy1Úy2Úoffsets      rk   Ú_require_positive_targetsr¼   ?  s?   € ä”�R—V‘V“X˜rŸv™v›xÓ(Ó)¨AÑ-€FØˆ&�L€BØˆ&�L€BØˆrˆ6€Mrm   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·   re   rg   rž   r¸   s      rk   Ú_require_log1p_targetsr¾   G  sc   € ä”�R—V‘V“X˜rŸv™v›xÓ(Ó)¨DÑ0€FØ	�‰”2—:‘:Ó	€BØ	�‰”2—:‘:Ó	€BØˆ&�L€BØˆ&�L€BØˆrˆ6€Mrm   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ÚTHRESHOLDED_METRICSÚ"METRIC_UNDEFINED_BINARY_MULTICLASSÚALL_METRICS© rm   rk   Útest_symmetry_consistencyrÈ   Q  sX   € ô 	Ü
ñ	 ä
Ô!Ó
"ñ	#ô -ñ	-ô 
Œ[Ó	òð ð ô Ô 5Ñ5¼#»%Ò?Ð?Ñ?rm   Ú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   rs   ©é   ©Úsize©rÌ   é   z%s is not symmetric©Úerr_msgz This case is currently unhandled)
rS   ÚrandintÚMETRICS_REQUIRE_POSITIVE_Yr¼   ÚMETRICS_WITH_LOG1P_Yr¾   rÆ   ÚMETRIC_UNDEFINED_BINARYÚMULTILABELS_METRICSrI   )rÉ   Úrandom_stateÚy_trueÚy_predÚ
y_true_binÚ
y_pred_binÚmetrics          rk   Útest_symmetric_metricrÞ   ]  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ö	
rm   c                 óD  — t        d«      }|j                  ddd¬«      }|j                  ddd¬«      }| t        v rt        ||«      \  }}t        |    }t        j                  t        «      5  t         |||«       |||«      «       t        d| z  «      ‚# 1 sw Y   y xY w)Nr   rs   rË   rÍ   z%s seems to be symmetric)
rS   rÓ   rÔ   r¼   rÆ   ÚpytestÚraisesÚAssertionErrorrK   Ú
ValueError)rÉ   rØ   rÙ   rÚ   rÝ   s        rk   Útest_not_symmetric_metricrä     s¦   € ô & aÓ(€LØ×!Ñ! ! Q¨UÐ!Ó3€FØ×!Ñ! ! Q¨UÐ!Ó3€FàÔ)Ñ)Ü2°6¸6ÓB‰ˆ�ä˜Ñ€Fô 
�‰”~Ó	&ñ <Ü™6 &¨&Ó1±6¸&À&Ó3IÔJÜÐ3°dÑ:Ó;Ð;÷<ð <ús   Á-)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   rs   rË   rÍ   ©rØ   ú %s is not sample order invariantrÑ   )
rS   rÓ   rÔ   r¼   rÕ   r¾   rD   rM   rÆ   rI   )rÉ   rØ   rÙ   rÚ   Úy_true_shuffleÚy_pred_shufflerÝ   s          rk   Ú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   rs   rÏ   rÍ   rb   T©rd   Úkeepdimsræ   rç   rÑ   )rS   rÓ   ÚuniformÚshaperf   rD   r×   rÆ   rI   ÚTHRESHOLDED_MULTILABEL_METRICSÚMULTIOUTPUT_METRICS)	rØ   rÙ   rÚ   Úy_scorerè   ré   Úy_score_shufflerÉ   rÝ   s	            rk   Ú7test_sample_order_invariance_multilabel_and_multioutputrô   ©  si  € Ü% 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¸Ñ=ö	
ñ
rm   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   rs   rË   rÍ   rb   )éÿÿÿÿrb   )rb   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)rS   rÓ   rÔ   r¼   rÕ   r¾   Úlistrg   rœ   rK   ÚndimÚreshaperM   rÆ   rI   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                 rk   Ú&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ä	Ó	ñ 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Ô%÷	&ð
 ÜÔ"@Ñ@ÔCVÑVñ
ð ˜DÑ ô —\‘\Ô"8Ó9ñ >ÜŸ:™:¡f¨V°VÓ&<Ô=Ð=Ñ=÷>ð >ô —]‘]¤:Ó.ñ +Ù˜6 6Ô*÷+÷Kf+ð f+÷Z	"ñ 	"ú÷	"ñ 	"ú÷	$ñ 	$ú÷	$ñ 	$ú÷	&ð 	&ú÷	&ð 	&ú÷>ð >ú÷+ð +ú÷Kf+ð f+ú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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   rs   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)rS   rÓ   rg   rœ   rM   ÚCLASSIFICATION_METRICSÚMETRICS_WITH_POS_LABELr   rK   Úformatre   Ú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                rk   Ú7test_classification_invariance_string_vs_numbers_labelsr  W  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   rs   rË   rÍ   r	  r
  r  r  rÑ   r  r  )rS   rÓ   rg   rœ   rM   rÄ   rÖ   r  r   rK   r  re   rà   rá   rã   )rÉ   rØ   r¹   rº   r  r  rÝ   r  r  r  r  s              rk   Ú4test_thresholded_invariance_string_vs_numbers_labelsr  �  ss  € ô & aÓ(€LØ	×	Ñ	˜a ¨Ð	Ó	/€BØ	×	Ñ	˜a ¨Ð	Ó	/€Bä�X‰X�v˜vÐ&Ó'¨Ñ+€Fà€Mä	Ó	ñ /Ü$ TÑ*ˆØÔ.Ñ.àˆ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rb   rÝ   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)©Úmatch)r   rà   rá   rã   )rÝ   rÙ   rò   s      rk   Ú)test_regression_thresholded_inf_nan_inputr#  Ã  sH   € ð ”ÒØ�ˆØ�)ˆÜ	�‰”zÐ)CÔ	Dñ  Ùˆv�wÔ÷ ÷  ñ  ús	   «
>¾A)rb   rs   é   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)rg   ÚisfiniteÚallrý   Úanyrà   rá   rã   )rÝ   rÙ   rò   Ú
input_nameÚunexpected_valuerÒ   s         rk   Ú!test_classification_inf_nan_inputr,  Ð  s¦   € ô �;‰;�vÓ×"Ñ"Ô$Øˆ
Ü�8‰8�FÓ×ÑÔ!Ø$Ñà>Ñàˆ
Ü�8‰8�GÓ× Ñ Ô"Ø$Ñà>Ðà�z�l *Ð-=Ð,>Ð?€Gä	�‰”z¨Ô	1ñ  Ùˆv�wÔ÷ ÷  ñ  ú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Úbr.  ©çš™™™™™¹?çš™™™™™É?ç333333Ó?zJClassification metrics can't handle a mix of binary and continuous targetsr!  N)rà   rá   rã   )rÝ   rÙ   rò   rÒ   s       rk   Ú+test_classification_binary_continuous_inputr4  ò  sD   € ò &¢ˆG€FàTð ô 
�‰”z¨Ô	1ñ  Ùˆv�wÔ÷ ÷  ñ  ú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 )Nrb   rs   gffffffæ¿r   ©Úrepeat)rÆ   rÔ   rÕ   r   )rÉ   rÝ   ÚvaluesÚiÚjs        rk   Úcheck_single_sampler;  þ  se   € ô
 ˜Ñ€Fð Ô)Ñ)Ø�Q�‰Ø	Ô%Ñ	%Ø˜�‰à�Q�ˆÜ˜ qÔ)ò ‰ˆˆ1Ù�ˆs�Q�CÕñrm   c                 ó²   — t         |    }t        ddgd¬«      D ]<  \  }}}} |t        j                  ||gg«      t        j                  ||gg«      «       Œ> y )Nr   rb   é   r6  )rÆ   r   rg   rœ   )rÉ   rÝ   r9  r:  ÚkÚls         rk   Úcheck_single_sample_multioutputr@    sV   € Ü˜Ñ€FÜ˜q !˜f¨QÔ/ò 7‰
ˆˆ1ˆa�ÙŒr�x‰x˜!˜Q˜˜Ó!¤2§8¡8¨a°¨V¨HÓ#5Õ6ñ7rm   Úignorec                 ó   — t        | «       y rÀ   )r;  ©rÉ   s    rk   Útest_single_samplerD    s   € ô ˜Õrm   c                 ó   — t        | «       y rÀ   )r@  rC  s    rk   Útest_single_sample_multioutputrF  '  s   € ô $ DÕ)rm   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)rb   r   r   rb   )r   rb   rb   rb   )rb   rb   r   rb   r   rb   ©rg   rœ   rÆ   rà   rá   rã   )rÉ   rÙ   rÚ   rÝ   s       rk   Ú(test_multioutput_number_of_output_differrI  -  sm   € ä�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   rs   )rÌ   é   rÍ   r$  rb   z'%s is not dimension shuffling invariantrÑ   )rS   rî   rÆ   ÚrangeÚpermutationrï   rI   )rÉ   rØ   rÙ   rÚ   rÝ   ÚerrorÚ_Úperms           rk   Ú=test_multioutput_regression_invariance_to_dimension_shufflingrQ  7  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ö	
ñ
rm   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 )Nr=  é2   rb   r   T©Ú
n_featuresÚ	n_classesrØ   Ú	n_samplesÚ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	   rg   Úvstackrø   r×   rÆ   Ú
isinstancer   Ú
__module__Ú__name__rI   rJ   )rR  rW  rX  rO  r¹   rº   Úy1_sparse_indicatorÚy2_sparse_indicatorÚy1_list_array_indicatorÚy2_list_array_indicatorr.  Úy1_list_list_indicatorÚy2_list_list_indicatorrÉ   rÝ   r  s                   rk   Ú)test_multilabel_representation_invariancere  J  sž  € ð €IØ€Iä*ØØØØØô�E€A€rô +ØØØØØô�E€A€rô 
�‰�B˜!˜˜y™Ð)Ð*Ó	+€BÜ	�‰�B˜!˜˜y™Ð)Ð*Ó	+€Bá'¨Ó+ÐÙ'¨Ó+Ðä" 2›hÐÜ" 2›hÐà/FÖG¨!œd 1�gÐGÐÐGØ/FÖG¨!œd 1�gÐGÐÐ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)Nrb   rs   r   )rÇ   rs   )r   rb   rÇ   Úobject©ÚdtyperH  )rÉ   Úmultilabel_sequencesrÝ   Úseqs       rk   Ú+test_raise_value_error_multilabel_sequencesrl  —  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 )Nrs   rÌ   r   rÍ   Tr\   Fç      ð¿ú0We failed to test correctly the normalize optionrÑ   úFailed with )rS   rÓ   Únormalrï   rÆ   rÄ   rL   rI   ©rÉ   rW  rX  rØ   rÙ   rÚ   rò   ÚmetricsÚpredÚmeasure_normalizedÚmeasure_not_normalizeds              rk   Ú+test_normalize_option_binary_classificationrw  ¨  sÎ   € ð €IØ€IÜ% aÓ(€Là×!Ñ! ! Y°i°\Ð!ÓB€FØ×!Ñ! ! Y°i°\Ð!ÓB€FØ×!Ñ! v§|¡|Ð!Ó4€Gä˜$Ñ€GØÔ1Ñ1‰7°v€DÙ  ¨¸Ô>ÐÙ$ V¨T¸UÔCÐäØÐ!Ñ!Ø	ØBõô ØØ Ñ*Ø˜t˜fÐ%örm   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 )Nr=  rÌ   r   rÍ   Tr\   Frn  ro  rÑ   rp  )rS   rÓ   rî   rÆ   rÄ   rL   rI   rr  s              rk   Ú/test_normalize_option_multiclass_classificationry  Å  sÏ   € ð €IØ€IÜ% aÓ(€Là×!Ñ! ! Y°i°\Ð!ÓB€FØ×!Ñ! ! Y°i°\Ð!ÓB€FØ×"Ñ"¨°IÐ(>Ð"Ó?€Gä˜$Ñ€GØÔ1Ñ1‰7°v€DÙ  ¨¸Ô>ÐÙ$ V¨T¸UÔCÐäØÐ!Ñ!Ø	ØBõô ØØ Ñ*Ø˜t˜fÐ%örm   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 )Nr=  éd   r   rb   T)rV  rW  rØ   rY  rX  rÍ   r\   Frn  ro  rÑ   rp  )rS   r	   rî   rï   rÆ   rÄ   rL   rI   )rÉ   rW  rX  rØ   rO  rÙ   rÚ   rò   rs  rt  ru  rv  s               rk   Ú/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ØÔ1Ñ1‰7°v€DÙ  ¨¸Ô>ÐÙ$ V¨T¸UÔCÐäØÐ!Ñ!Ø	ØBõô ØØ Ñ*Ø˜t˜fÐ%örm   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   )rd   ri  ry   )Úweightsr�   ÚunknownÚgarbage)rï   rI   rL  Úravelrg   Úmeanrf   Úintrz   rà   rá   rã   )rÝ   rÙ   rÚ   Úy_true_binarizeÚy_pred_binarizeÚis_multilabelrX  rW  Úlabel_measurer9  Úmicro_measureÚmacro_measurer~  Úweighted_measureÚsample_measures                  rk   Ú_check_averagingrŒ    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Ó	"ñ 2Ùˆv�v yÕ1÷2ä	�‰”zÓ	"ñ 2Ùˆv�v yÕ1÷2ð 2ùòS	
ùò@÷2ð 2ú÷2ð 2ú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)rQ   Ú
startswithrÆ   ÚMETRICS_WITH_AVERAGINGrŒ  Ú"THRESHOLDED_METRICS_WITH_AVERAGINGrã   )rÉ   rÙ   r„  rÚ   r…  rò   r†  rÝ   s           rk   Úcheck_averagingr’  J  sm   € Ü" 6Ó*×5Ñ5°lÓC€Mä˜Ñ€FàÔ%Ñ%ÜØ�F˜F O°_Àmõ	
ð 
Ô3Ñ	3ÜØ�F˜G _°g¸}õ	
ô ÐMÓNÐNrm   c                 ó6  — d\  }}t        d«      }|j                  d||f¬«      }|j                  d||f¬«      }|j                  ||f¬«      }t        «       j	                  |«      }|j                  |«      }|j                  |«      }	t        | ||||	|«       y )N)rT  r$  r   rÍ   )rS   rÓ   rî   rC   ÚfitÚ	transformr’  )
rÉ   rX  rW  rØ   rÙ   rÚ   rò   Úlbr„  r…  s
             rk   Ú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ÕTrm   c                 óª   — d\  }}t        d|d|d¬«      \  }}|d d }|dd  }t        d«      j                  d|f¬«      }|}|}	t        | ||||	|«       y )	N)é(   rK  rb   rK  FrU  rÌ   r   rÍ   )r	   rS   rq  r’  )
rÉ   rX  rW  rO  ÚyrÙ   rÚ   rò   r„  r…  s
             rk   Útest_averaging_multilabelr›  j  s{   € ð !Ñ€IˆyÜ)ØØØØØô�D€A€qð ˆs�ˆV€FØˆrˆsˆV€FÜ  Ó#×*Ñ*°°Y°Ð*Ó@€GØ€OØ€Oä�D˜& /°6¸?ÈGÕTrm   c                 óª   — t        j                  d«      }t        j                  d«      }t        j                  d«      }|}|}t        | |||||«       y ©N©rÌ   r$  )rg   Úzerosr’  ©rÉ   rÙ   rÚ   rò   r„  r…  s         rk   Ú$test_averaging_multilabel_all_zeroesr¡    sH   € ä�X‰X�gÓ€FÜ�X‰X�gÓ€FÜ�h‰h�wÓ€GØ€OØ€Oä�D˜& /°6¸?ÈGÕTrm   c                  óŠ   — t        j                  d«      } t        j                  d«      }| }|}dd„}t        || |||d¬«       y )Nrž  c                 ó&   — t        t        | ||«      S rÀ   )r7   r.   )rÙ   rò   rz   s      rk   rl   z=test_averaging_binary_multilabel_all_zeroes.<locals>.<lambda>�  s   € Ô=RÜ˜ ¨'ó>€ rm   T)r†  )r‰   )rg   rŸ  rŒ  )rÙ   rÚ   r„  r…  Úbinary_metrics        rk   Ú+test_averaging_binary_multilabel_all_zeroesr¥  Š  sK   € Ü�X‰X�gÓ€FÜ�X‰X�gÓ€FØ€OØ€Oò€Mô ØØØØØØörm   c                 óª   — t        j                  d«      }t        j                  d«      }t        j                  d«      }|}|}t        | |||||«       y r�  )rg   Úonesr’  r   s         rk   Ú"test_averaging_multilabel_all_onesr¨  �  sH   € ä�W‰W�WÓ€FÜ�W‰W�WÓ€FÜ�g‰g�gÓ€GØ€OØ€Oä�D˜& /°6¸?ÈGÕTrm   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«      s$d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   rb   é
   rÍ   r5   )r>  )Úsample_weight)rï   zAFor %s sample_weight=None is not equivalent to sample_weight=onesrÑ   z>Unweighted and weighted scores are unexpectedly almost equal (z) and (z) for zFWeighted scores for array and list sample_weight input are not equal (z != rc   z.Weighting %s is not equal to repeating samplesrs   zUZeroing weights does not give the same result as removing the corresponding samples (Úunnormalized)rs   r3  z/%s sample_weight is not invariant under scalingzJFound input variables with inconsistent numbers of samples: \[{}, {}, {}\]r!  )rg   ÚrandomÚRandomStaterÓ   r›   r   rI   r§  rà   rá   râ   rã   Útolistr7  Úcopyr�  r  rR   Úhstack)rÉ   rÝ   r¹   rº   Úrngr«  Úunweighted_scoreÚweighted_scoreÚweighted_score_listÚrepeat_weighted_scoreÚsample_weight_subsetÚsample_weight_zeroedÚ	y1_subsetÚ	y2_subsetÚweighted_score_subsetÚweighted_score_zeroedÚscalingÚerror_messages                     rk   Úcheck_sample_weight_invariancer¿  ¨  s   € Ü
�)‰)×
Ñ
 Ó
"€CØ—K‘K  2¬C°«G�KÓ4€Mð &*Ð-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¹ð	?õð �?‰?˜>Ô*ð  ò 	ˆGÜØÙ�r˜2¨]¸WÑ-DÔEØIÈDÑPöð	ð	#ß#)¡6Ü˜Óœl¨2Ó.´¸]Ó0KÈaÑ0Oó$
ð ô 
�‰”z¨Ô	7ñ PÙˆr�2¤R§Y¡Y°¸}Ð/MÓ%NÕO÷P÷ Pñ Pús   Â7!CÃC!È?!I)É)I2c                 ó˜   — d}t        d«      }|j                  |f¬«      }|j                  |f¬«      }t        |    }t        | |||«       y )NrT  r   rÍ   )rS   Úrandom_samplerÆ   r¿  )rÉ   rX  rØ   rÙ   rÚ   rÝ   s         rk   Ú(test_regression_sample_weight_invariancerÂ  	  sU   € ð €IÜ% aÓ(€Là×'Ñ'¨i¨\Ð'Ó:€FØ×'Ñ'¨i¨\Ð'Ó:€FÜ˜Ñ€FÜ" 4¨°¸Õ@rm   c                 óô   — d}t        d«      }|j                  dd|f¬«      }|j                  dd|f¬«      }|j                  |f¬«      }t        |    }| t        v rt        | |||«       y t        | |||«       y )NrT  r   rs   rÍ   )rS   rÓ   rÁ  rÆ   rÄ   r¿  )rÉ   rX  rØ   rÙ   rÚ   rò   rÝ   s          rk   Ú$test_binary_sample_weight_invariancerÄ    s‰   € ð €IÜ% aÓ(€LØ×!Ñ! ! Q¨i¨\Ð!Ó:€FØ×!Ñ! ! Q¨i¨\Ð!Ó:€FØ×(Ñ(¨y¨lÐ(Ó;€GÜ˜Ñ€FØÔ"Ñ"Ü& t¨V°V¸WÕEä& t¨V°V¸VÕDrm   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 )NrT  r   rK  rÍ   rö   rc   rb   )
rS   rÓ   rÁ  rÆ   rÄ   rg   Úexprf   rú   r¿  )	rÉ   rX  rØ   rÙ   rÚ   rò   rÝ   ÚtempÚy_score_norms	            rk   Ú(test_multiclass_sample_weight_invariancerÉ  1  s½   € ð €IÜ% aÓ(€LØ×!Ñ! ! Q¨i¨\Ð!Ó:€FØ×!Ñ! ! Q¨i¨\Ð!Ó:€FØ×(Ñ(¨y¸!¨nÐ(Ó=€GÜ˜Ñ€FØÔ"Ñ"ä�v‰v�w�hÓˆØ˜dŸh™h¨B˜hÓ/×7Ñ7¸¸AÓ>Ñ>ˆÜ& t¨V°V¸\ÕJä& t¨V°V¸VÕDrm   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   rb   rª  rT  FrU  rÍ   Trì   )
rS   r	   rg   r[  rî   rï   rf   rÆ   rÄ   r¿  )	rÉ   rØ   rO  ÚyaÚybrÙ   rÚ   rò   rÝ   s	            rk   Ú(test_multilabel_sample_weight_invariancerÍ  K  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ØÔ"Ñ"Ü& t¨V°V¸WÕEä& t¨V°V¸VÕDrm   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)rb   rb   r   r   ©r   r   rb   rb   )r   rb   rb   r   )r   rb   rs   )r   rs   r$  )r$  r   rb   rs   T)Úreturn_inverserb   )r  rz   r|   )rg   rœ   Úuniquer�  r×   rù   rÆ   rK   )Úy_true_multilabelÚy_pred_multilabelÚy_true_multiclassÚy_pred_multiclassr  rO  Úinverse_labelsrÉ   rÙ   rÚ   rÝ   Úscore_labelsÚscores                rk   Útest_no_averaging_labelsrÙ  i  sö   € ô Ÿ™¢,²Ð!=Ó>ÐÜŸ™¢,²Ð!=Ó>ÐÜŸ™¢Ó+ÐÜŸ™¢Ó+ÐÜ�X‰X’lÓ#€FÜŸ	™	 &¸Ô>Ñ€A€~ä&ò DˆàÐ 1Ð2ØÐ 1Ð2ð
ò 	D‰NˆF�Fð Ô.Ñ.°6·;±;À²?Øä  Ñ&ˆFá! &¨&¸ÈÔNˆLÙ˜6 6°4Ô8ˆEÜ˜|¨U°>Ñ-BÕCñ	DñDrm   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Ì   r=  rs   rÍ   )rS   rÓ   rÆ   r   rL  rJ   ©rÉ   rØ   rX  rW  rÙ   rò   rÝ   rØ  rP  Úy_score_permÚy_true_permÚcurrent_scores               rk   Ú-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ò 2ˆØšq $˜wÑ'ˆØšQ ˜W‘oˆá˜{¨LÓ9ˆÜ˜E =Õ1ñ2rm   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Û  rs   rÍ   rb   Trì   r=  g    €„.A)rS   rÓ   rî   rï   rf   rÆ   r   rL  r#   rg   r'  rJ   rÜ  s               rk   Ú?test_thresholded_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ò 6ˆØšq $˜wÑ'ˆØšQ ˜W‘oˆá˜{¨LÓ9ˆØÔ3Ò3Ü—;‘;˜}Ô-Ð-Ð-Ø  3Ó&Ð&Ð&ô    }Õ5ñ6rm   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ö   rc   rb   rÍ   rh  )rS   Úrandrg   rÆ  rf   rú   rÓ   rÆ   r   rL  rŸ  rƒ  Úarangerø   ÚtakerJ   )rÉ   rX  rW  rØ   rò   rÇ  rÙ   rÝ   rØ  rP  Úinverse_permrÝ  rÞ  rß  s                 rk   Ú.test_thresholded_metric_permutation_invariancerè  »  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ò 2ˆÜ—x‘x 	´Ô5ˆÜ#%§9¡9¨YÓ#7ˆ”T˜$“ZÑ Øšq ,˜Ñ/ˆÜ—g‘g˜d FÓ+ˆá˜{¨LÓ9ˆÜ˜E =Õ1ñ2rm   Ú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é*   r
  r$  r	  rs   rh  r   rÍ   z7Labels in y_true and y_pred should be of the same type.r!  )rg   r­  r®  rœ   rg  rÓ   rÎ   rà   rá   Ú	TypeErrorr  )ré  r²  r¹   rº   rÒ   s        rk   Ú"test_metrics_consistent_type_errorrí  Ó  sˆ   € ô �)‰)×
Ñ
 Ó
#€CÜ	�‰�6�(˜Q‘, & ¨A¡Ñ-´VÔ	<€BØ	�‰�Q˜ §¡ˆÓ	(€BàG€GÜ	�‰”y¨Ô	0ñ 4Ü˜{Ñ+¨B°Ô3÷4÷ 4ñ 4ú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ë  r
  r$  r	  rs   rh  r   rÍ   z”y_true takes value in {'eggs', 'spam'} and pos_label is not specified: either make y_true take value in {0, 1} or {-1, 1} or pass pos_label explicitzHpos_label=1 is not a valid label. It should be one of \['eggs', 'spam'\]r  rb   r!  )rg   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
             rk   Ú test_metrics_pos_label_error_strrö  à  sÝ   € ô$ �)‰)×
Ñ
 Ó
#€CÜ	�‰�6�(˜Q‘, & ¨A¡Ñ-°[Ô	A€BØ	�‰�Q˜ §¡ˆÓ	(€BáÜ�X‰X�v˜vÐ&¨kÔ:¸2Ñ>ˆð	"ð ð 	Xð ô " &Ó)×4Ñ4°[ÑA×IÑIÐà%6¸!Ò%;Ñ!ÐAW€GÜ	�‰”z¨Ô	1ñ Ùˆr�2Œ÷÷ ñ ús   Ã
CÃC$c                 óN  — t        ||«      }|j                  ||¬«      }|j                  ||¬«      }	 | ||fi |¤Ž}
|j                  d«      �|j                  |d   |¬«      |d<   |j                  d«      }t        |t        j
                  «      r|j                  ||¬«      |d<   	 t	        j                  |«       t	        j                  |	«       d}|rc | ||	fi |¤Ž}t        ||
t        |«      ¬«        | ||	fi |¤Ž}t        ||
t        |«      ¬«        | ||fi |¤Ž}t        ||
t        |«      ¬«       t        d¬«      5   | ||	fi |¤Ž}t        t        |j                  |«      |«      |
t        |«      ¬«       d d d «       y # t        $ r d}Y ŒÂw xY w# 1 sw Y   y xY w)N)Údevicer«  rU   TF)Úatol)Úarray_api_dispatch)rH   ÚasarrayÚgetr\  rg   Úndarrayrì  rI   rE   r   rF   )rÝ   Úarray_namespacerø  Ú
dtype_nameÚa_npÚb_npÚmetric_kwargsÚxpÚa_xpÚb_xpÚ	metric_nprU   Únumpy_as_array_worksÚ	metric_xpÚmetric_xp_mixed_1Úmetric_xp_mixed_2s                   rk   Ú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ÔØ#Ðñ Ù˜4 Ñ7¨Ñ7ˆ	ÜØØÜ 
Ó+õ	
ñ
 # 4¨Ñ?°Ñ?ÐÜØØÜ 
Ó+õ	
ñ
 # 4¨Ñ?°Ñ?ÐÜØØÜ 
Ó+õ	
ô 
¨4Ô	0ñ 
Ù˜4 Ñ7¨Ñ7ˆ	äÜ˜bŸj™j¨Ó3°RÓ8ØÜ 
Ó+õ	
÷
ð 
øô5 ò %ð  %Òð	%ú÷4
ð 
ús   Â),F
 Å;FÆ
FÆFÆF$c           	      óÚ   — t        j                  g d¢«      }t        j                  g d¢«      }t        | |||||d ¬«       t        j                  g d¢|¬«      }t        | ||||||¬«       y )NrÏ  )r   rb   r   rb   ©r   r  r«  ©ç        r1  ç       @ç      ð?rh  ©rg   rœ   r  ©rÝ   rþ  rø  rÿ  Ú	y_true_npÚ	y_pred_npr«  s          rk   Ú,check_array_api_binary_classification_metricr  H  sm   € ô —‘šÓ&€IÜ—‘šÓ&€IäØØØØØØØõô —H‘HÒ1¸ÔD€MäØØØØØØØ#örm   c                 ó  — t        j                  g d¢«      }t        j                  g d¢«      }ddi}t        | |¬«      }|D ]A  }t        | |||f||d dœ|¤Ž t        j                  g d¢|¬«      }	t        | |||f|||	dœ|¤Ž ŒC y )	N)r   rb   rs   r$  )r   rb   r   rs   rz   ©r‚   r‰   ry   ©rÝ   Úparamsr  r  rh  ©rg   rœ   Ú(_get_metric_kwargs_for_array_api_testingr  ©
rÝ   rþ  rø  rÿ  r  r  Úadditional_paramsÚmetric_kwargs_combinationsr  r«  s
             rk   Ú0check_array_api_multiclass_classification_metricr   e  sÄ   € ô —‘šÓ&€IÜ—‘šÓ&€Ið 	Ð1ðÐô "JØØ ô"Ðð 4ò 
ˆÜØØØØð			
ð
 ØØñ		
ð ò		
ô Ÿ™Ò!5¸ZÔHˆäØØØØð			
ð
 ØØ'ñ		
ð ó		
ñ
rm   c                 ó2  — 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i}t        | |¬«      }|D ]A  }t        | |||f||d dœ|¤Ž t        j                  g d¢|¬«      }	t        | |||f|||	dœ|¤Ž ŒC y )	Nrb   r   rh  rz   r  r  r  )r  r1  r  r  r  s
             rk   Ú0check_array_api_multilabel_classification_metricr"  Œ  sí   € ô —‘˜1˜a˜& 1 a &¨1¨a¨&Ð1¸ÔD€IÜ—‘˜1˜a˜& 1 a &¨1¨a¨&Ð1¸ÔD€Ið 	Ð1ðÐô "JØØ ô"Ðð 4ò 
ˆÜØØØØð			
ð
 ØØñ		
ð ò		
ô Ÿ™¢¸
ÔCˆäØØØØð			
ð
 ØØ'ñ		
ð ó		
ñ
rm   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)r  r1  r  g      @rh  )rv   rv   rs   rs   r«  ©r   r  )r1  r  ç      ø?rv   )r\  r   Úfuncr^  rP   rO   rà   Úskiprg   rœ   r   rð  r  )	rÝ   rþ  rø  rÿ  Ú	func_namer  r  r  Úmetric_paramss	            rk   Ú!check_array_api_regression_metricr*  ³  s  € Ü(2°6¼7Ô(C�—‘×$Ò$ÈÏÉ€IØÐ+Ò+´
¼]È8Ó=TÒ0TÜ�‰ØXô	
ô —‘Ò-°ZÔ@€IÜ—‘Ò)°Ô<€Ià€MÜ˜fÓ%×0Ñ0€Mà˜-Ñ'Ø)-ˆ�oÑ&äØØØØð	ð
 Øñð òð ˜-Ñ'Ü)+¯©Ú ¨
ô*
ˆ�oÑ&ô 	ØØØØð		
ð
 Øñ	
ð ó	
ð (rm   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)rb   r$  rs   )rb   rs   rs   rh  )rb   r=  r=  )rb   rb   rb   r  r1  r  )r1  r3  çffffffæ?)r   r  rU   Ú
raw_valuesr  r  s          rk   Ú-check_array_api_regression_metric_multioutputr.  Ý  sÇ   € ô —‘š)¢YÐ/°zÔB€IÜ—‘š)¢YÐ/°zÔB€IäØØØØØØØõô —H‘H˜c 3˜Z¨zÔ:€MäØØØØØØØ#õô ØØØØØØÜ—H‘Hš_°JÔ?õô ØØØØØØØ örm   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 )
Nr0  )çš™™™™™Ù?rv   ç333333ã?rh  )r2  r3  r0  )rv   r1  r,  Údense_outputFr$  T)rg   rœ   r   rð  r  )rÝ   rþ  rø  rÿ  ÚX_npÚY_npr  s          rk   Úcheck_array_api_metric_pairwiser5    s°   € ä�8‰8’_¢oÐ6¸jÔI€DÜ�8‰8’_¢oÐ6¸jÔI€Dà€MØœ 6Ó*×5Ñ5Ñ5Ø(-ˆ�nÑ%ÜØØØØð		
ð
 Øñ	
ð ò	
ð )-ˆ�nÑ%äØØØØð	ð
 Øñð órm   g      à¿r%  c              #   óV   K  — | j                  «       D ]  \  }}|D ]  }||f–— Œ
 Œ y ­wrÀ   )Úitems)Úmetric_checkersrÝ   ÚcheckersÚcheckers       rk   Ú!yield_metric_checker_combinationsr;  t  s<   è ø€ Ø+×1Ñ1Ó3ò "Ñˆ�Øò 	"ˆGØ˜'�/Ó!ñ	"ñ"ùs   ‚')z#array_namespace, device, dtype_namezmetric, check_funcc                 ó   —  || |||«       y rÀ   rÇ   )rÝ   rþ  rø  rÿ  Ú
check_funcs        rk   Útest_array_api_compliancer>  z  s   € ñ
 ˆv�¨°
Õ;rm   Ú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)r  r  r   r  )r  r  r  r  z can not deal with 1d inputs)rà   ÚimportorskipÚSeriesrÆ   Úto_numpyrã   r'  rI   )ré  r?  Údf_librÚ   rÙ   rÝ   Úexpected_metrics          rk   Útest_metrics_dataframe_seriesrH  ‚  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.)r7  r   rð  r°  Úappend)	rÝ   r  r  Úparamr8  Únew_combinationsrj   ÚvalueÚ
new_kwargss	            rk   r  r  “  s’   € ð #% ÐØŸ™›ò 6‰ˆˆvØœ	 &Ó)×4Ñ4Ñ4ØàÐØ0ò 	4ˆFØò 4�Ø#Ÿ[™[›]�
Ø$)�
˜5Ñ!Ø ×'Ñ'¨
Õ3ñ4ð	4ð &6Ñ"ð6ð &Ð%rm   )Àrü   Ú	functoolsr   Úinspectr   Ú	itertoolsr   r   r   Únumpyrg   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   Úsklearn.metrics._baser7   Úsklearn.metrics.pairwiser8   r9   r:   r;   r<   r=   r>   r?   r@   rA   rB   Úsklearn.preprocessingrC   Úsklearn.utilsrD   Úsklearn.utils._array_apirE   rF   rG   Úsklearn.utils._testingrH   rI   rJ   rK   rL   rM   Úsklearn.utils.fixesrN   rO   rP   Úsklearn.utils.multiclassrQ   Úsklearn.utils.validationrR   rS   Ú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  r  ÚinfrŸ   Úinvalids_nan_infr8  r#  r,  r4  r;  r@  ÚfilterwarningsrD  rF  rI  rQ  re  rl  rw  ry  Úintersectionr|  rŒ  r’  r—  r›  r¡  r¥  r¨  r¿  rÂ  rÄ  rÉ  rÍ  rÙ  rà  râ  rè  rí  Ústrrg  rö  r  r  r   r"  r*  r.  r5  Úarray_api_metric_checkersr;  r>  rH  r  rÇ   rm   rk   ú<module>rq     s  ðÛ Ý Ý ß 2Ñ 2ã Û å *Ý ;Ý 5÷-÷ -÷ -÷ -÷ -÷ -÷ -÷ -÷ -÷ -÷ -ó -õ\ 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ò? Ð ñD ‹f€Ø × Ñ Ð&Ô 'Ø × Ñ Ð)Ô *Ø × Ñ Ð%Ô &Ø × Ñ �=Ô !òÐ ò Ð ð* &=×%BÑ%BØó&Ð "ò
Ð ò&Ð "òÐ ò(!Ð òH!Ð ò"Ð ò(Ð òDÐ ò" Ð òH Ð òH!Ð òÐ ð Ø!ðÐ òòò	@ð ‡‚×Ò˜¡Ð(9Ó!:Ó;ñ
ó <ð
ðB ‡‚×Ò˜¡Ð(=Ó!>Ó?ñ<ó @ð<ð" ‡‚×ÒØ
‰F‘3�{Ó#Ð&HÑHÓIóñ
óð
ò**
ðZ ‡‚×ÒØ
‰F‘3�{Ó#Ð&HÑHÓIóñ{+óð{+ð| ‡‚×ÒØ
‰F‘3Ð-Ó.Ð1SÑSÓTóñ2óð2ðj ‡‚×Ò˜Ð!4Ó5ñ'/ó 6ð'/ðV ˆ€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ˆ[ÐðÐ ð ‡‚×ÒØ‰eÐ'×.Ò.Ó0Ð2D×2KÒ2KÓ2MÓNóð ‡‚×ÒÐ*Ð,<Ó=ñ ó >óð ð ‡‚×Ò˜Ð#9×#@Ò#@Ó#BÓCØ‡‚×ÒØØð
 �&Š&�!�QˆšÐ#Ø
�&Š&�!�QˆšÐ#ðñ	ó
ñ ó
ó Dð ð, ‡‚×Ò˜Ð#9×#@Ò#@Ó#BÓCñ ó Dð òò$7ð ‡‚×Ò˜HÓ%Ø‡‚×ÒØ
Ù
ÙˆKÓð -ñ	-ñ Ð!Ó
"ñ		#óó	ñó	ó &ðð
 ‡‚×Ò˜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ð ‡‚×ÒØ
‰FÐ)Ð,NÑNÓOóñUóðUð$ ‡‚×Ò˜¡Ð(>Ó!?Ó@ñUó AðUòð& ‡‚×Ò˜¡Ð(>Ó!?Ó@ñUó AðUò^PðB ‡‚×ÒØ
Ù
ÙˆKÓ×%Ò%¡cÐ*<Ó&=Ó>Ø
'ñ	(óóñAóðAð ‡‚×ÒØ
Ù
ÙˆKÓÙ
Ð Ó
!ñ	"à
'ñ	(ð "ñ	"óóñEóðEð ‡‚×ÒØ
Ù
ÙˆKÓÙ
Ð Ó
!ñ	"à
'ñ	(ð -ñ	-óóñEóðEð" ‡‚×ÒØ
Ù
Ø	Ð=Ñ	=Ð@SÑ	SØ
'ñ	(óóñEóðEò.Dð2 ‡‚×ÒØ
‰FÐ&Ð*TÐ)UÑUÓVóñ2óð2ð$ ‡‚×ÒØ
‰FÐ1Ð4GÑGÓHóñ6óð6ðB ‡‚×ÒØ
‰F‘3Ð*Ó+Ð.PÑPÓQóñ2óð2ð* ‡‚×Ò˜Ð(>Ó?ñ	4ó @ð	4ð ‡‚×ÒØà	  $Ð'Ø	˜4Ð Ø	�5ÐÙ	� 1Ô	% uÐ-Ø	˜ÐØ	 Ð&Ø	˜%Ð Ø	�uÐØ	�DÐð
óð ‡‚×Ò˜¨¨f¨Ó6ñó 7óðò4<
ò~ò:$
òN$
òN'
òT.òbð<EØØ4Ø8Ø8ððEð Ø4Ø8Ø8ððEð  Ø4Ø8Ø8ð"ðEð  Ø4Ø8Ø8ðð!Eð* Ð=Ð>ð+Eñ, Ð!¨Ô.Ð1RÐ0Sð-Eñ. Ð!¨Ô-Ð0QÐ/Rð/Eð0 Ø)Ø5ðð1Eð8 Ð7Ð8ð9Eð: Ø)Ø5ðð;EðB Ø)Ø5ððCEðJ Ø)Ø5ððKEðR Ø)ððSEðX Ð=Ð>ðYEðZ Ð=Ð>ð[Eð\ Ð:Ð;ð]Eð^ Ð;Ð<ð_Eð` Ð1Ð2Ø"Ø)Ø5ð%ð Ð1Ð2ØÐ!@Ð AØÐ6Ð7ØÐ9Ð:ØÐ3Ð4ØÐ7Ð8ØÐ0Ð1ØØ)Ø5ðð  Ø)Ø5ð"ð Ð4Ð5ñIEÐ ðP 7Pó "ð ‡‚×ÒØ)Ñ+TÓ+Vóð ‡‚×ÒÐ-Ñ/PÓ/RÓSñ<ó Tóð<ð ‡‚×Ò˜¨°8Ð(<Ó=Ø‡‚×Ò˜©¨{Ó(;Ó<ñ=ó =ó >ð=ó&rm   