§
    ¥˜ºhÞ  ã                   ób  — d dl mZ d dlmZ d dlmZmZmZ d dlZ	d dl
Z
d dlmZ d dlmZ d dlmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZm Z m!Z!m"Z"m#Z#m$Z$m%Z%m&Z&m'Z'm(Z(m)Z)m*Z*m+Z+m,Z,m-Z-m.Z.m/Z/m0Z0m1Z1m2Z2m3Z3m4Z4m5Z5m6Z6m7Z7m8Z8m9Z9 d dl:m;Z; d dl<m=Z= d d	l>m?Z? d d
l@mAZAmBZBmCZCmDZDmEZE d dlFmGZG d dlHmIZImJZJ e'e(e-e+e/e)e ee4d¬¦  «         ee.d ¬¦  «        e,e* ee.d¬¦  «         eed¬¦  «        eedœZKi de“de“d eed¬¦  «        “d eed¬¦  «        “de“dd„ “de0“d ee0d¬¦  «        “d e “d!e9“d" ee9d¬¦  «        “d#e"“d$e3“d%e5“d&e“d' eed(¬)¦  «        “d* eed+¬)¦  «        “i d,e&“d- eed.d+¬/¦  «        “d0 eed.¬1¦  «        “d2 eed.d(¬/¦  «        “d3 ee3d.¬1¦  «        “d4 ee5d.¬1¦  «        “d5 ee"d.¬1¦  «        “d6 eed7d+¬/¦  «        “d8 eed7¬1¦  «        “d9 eed7d(¬/¦  «        “d: ee3d7¬1¦  «        “d; ee5d7¬1¦  «        “d< ee"d7¬1¦  «        “d= eed>d+¬/¦  «        “d? eed>¬1¦  «        “d@ eed>d(¬/¦  «        “dA ee3d>¬1¦  «        “¥ ee5d>¬1¦  «         ee"d>¬1¦  «         eedBd+¬/¦  «         eedB¬1¦  «         eedBd(¬/¦  «         ee3dB¬1¦  «         ee5dB¬1¦  «         ee"dB¬1¦  «        edCœ	¥ZLdD„ ZMe7eMedEœZNi dFe“dGe$“dHe%“dI ee%d¬¦  «        “dJe!“dKe“dLe6“dM ee6d.¬1¦  «        “dN ee6dB¬1¦  «        “dO ee6d7¬1¦  «        “dP ee6d>dQ¬R¦  «        “dS ee6d.dQ¬R¦  «        “dT ee6d>dU¬R¦  «        “dV ee6d.dU¬R¦  «        “dW ee6d+¬X¦  «        “dYe“dZ eed.¬1¦  «        “ eedB¬1¦  «         eed7¬1¦  «        e#e1ee8d[œ¥ZO eP¦   «         ZQeQ R                    eO¦  «         eQ R                    eL¦  «         eQ R                    eK¦  «         eQ R                    eN¦  «         h d\£ZSh d]£ZTeS U                    eT¦  «        ZVh d^£ZWh d_£ZXh d`£ZYh da£ZZh db£Z[h dc£Z\h dd£Z]h de£Z^h df£Z_h dg£Z`h dh£Zah di£Zbdj„ Zcdk„ Zde
je         f                    dl ege_¦  «        ¦  «        dm„ ¦   «         Zhe
je         f                    dl ege`¦  «        ¦  «        dn„ ¦   «         Zie
je         f                    dl eg ejeQ¦  «        eVz
  ¦  «        ¦  «        do„ ¦   «         ZkeEdp„ ¦   «         Zle
je         f                    dl eg ejeQ¦  «        eVz
  ¦  «        ¦  «        dq„ ¦   «         Zme
je         f                    dl eg ejeL¦  «        eVz
  ¦  «        ¦  «        dr„ ¦   «         Zne
je         f                    dleO¦  «        ds„ ¦   «         Zod dtge	jp        e	jp        gfd dtge	jq        e	jq        gfd dtge	jq        e	jp        gfd dtge	jp        dtgfd dtge	jq        dtgfgZre
je         f                    du eeO s                    ¦   «         eK s                    ¦   «         ¦  «        ¦  «        e
je         f                    dver¦  «        dw„ ¦   «         ¦   «         Zte
je         f                    dueL s                    ¦   «         ¦  «        e
je         f                    dvere	jq        dtd(gg dx¢fe	jp        dtd(gg dx¢fgz   ¦  «        dy„ ¦   «         ¦   «         Zue
je         f                    dueL s                    ¦   «         ¦  «        dz„ ¦   «         ZveEd{„ ¦   «         ZweEd|„ ¦   «         Zxe
je         f                    dl eg ejeQ¦  «        eVz
   ejeO¦  «        z
  ¦  «        ¦  «        d}„ ¦   «         Zye
je         f                    dl ege^e]z  ¦  «        ¦  «        d~„ ¦   «         Zze
je         f                    dl ege^¦  «        ¦  «        d„ ¦   «         Z{e
je         f                    dl ege^¦  «        ¦  «        d€„ ¦   «         Z|eEd�„ ¦   «         Z}e
je         f                    dl ege]¦  «        ¦  «        d‚„ ¦   «         Z~e
je         f                    dl ege[¦  «        ¦  «        dƒ„ ¦   «         Ze
je         f                    dl ege[¦  «        ¦  «        d„„ ¦   «         Z€e
je         f                    dl ege[ �                    e]¦  «        ¦  «        ¦  «        d…„ ¦   «         Z‚eEd†„ ¦   «         Zƒd‡„ Z„e
je         f                    dl egeW¦  «        ¦  «        dˆ„ ¦   «         Z…e
je         f                    dl egeWeXz  ¦  «        ¦  «        d‰„ ¦   «         Z†e
je         f                    dl egeW¦  «        ¦  «        dŠ„ ¦   «         Z‡d‹„ Zˆe
je         f                    dl egeW¦  «        ¦  «        dŒ„ ¦   «         Z‰eEd�„ ¦   «         ZŠe
je         f                    dl eg ejeQ¦  «         �                     ejeK¦  «        ¦  «        eaz
  ¦  «        ¦  «        dŽ„ ¦   «         Z‹e
je         f                    dl eg ejeQ¦  «         ejeK¦  «        z
  eaz
  eSz
  ¦  «        ¦  «        d�„ ¦   «         ZŒe
je         f                    dl eg ejeQ¦  «         ejeK¦  «        z
  eaz
  eVz
  ¦  «        ¦  «        d�„ ¦   «         Z�e
je         f                    dl ege]e\z  e^z  eaz
  ¦  «        ¦  «        d‘„ ¦   «         ZŽeEd’„ ¦   «         Z�e
je         f                    dl ege]dhz
  ¦  «        ¦  «        d“„ ¦   «         Z�e
je         f                    dl ege\e^z  ¦  «        ¦  «        d”„ ¦   «         Z‘e
je         f                    dl eg ejeO¦  «        eVz
  ¦  «        ¦  «        d•„ ¦   «         Z’e
je         f                    d–eL¦  «        d—„ ¦   «         Z“e
je         f                    d˜edfedfedf eedt¬)¦  «        dfe"dfe2dfe3dfe5dfe7dfg	¦  «        e
je         f                    d™e”e•g¦  «        dš„ ¦   «         ¦   «         Z–dS )›é    )Úpartial)Ú	signature)ÚchainÚpermutationsÚproductN)Úmake_multilabel_classification))Úaccuracy_scoreÚaverage_precision_scoreÚbalanced_accuracy_scoreÚbrier_score_lossÚcohen_kappa_scoreÚconfusion_matrixÚcoverage_errorÚd2_absolute_error_scoreÚd2_pinball_scoreÚd2_tweedie_scoreÚ	dcg_scoreÚ	det_curveÚexplained_variance_scoreÚf1_scoreÚfbeta_scoreÚhamming_lossÚ
hinge_lossÚjaccard_scoreÚ%label_ranking_average_precision_scoreÚlabel_ranking_lossÚlog_lossÚmatthews_corrcoefÚ	max_errorÚmean_absolute_errorÚmean_absolute_percentage_errorÚmean_gamma_devianceÚmean_pinball_lossÚmean_poisson_devianceÚmean_squared_errorÚmean_tweedie_devianceÚmedian_absolute_errorÚmultilabel_confusion_matrixÚ
ndcg_scoreÚprecision_recall_curveÚprecision_scoreÚr2_scoreÚrecall_scoreÚroc_auc_scoreÚ	roc_curveÚtop_k_accuracy_scoreÚzero_one_loss)Ú_average_binary_score)ÚLabelBinarizer)Úshuffle)Úassert_allcloseÚassert_almost_equalÚassert_array_equalÚassert_array_lessÚignore_warnings)Útype_of_target)Ú_num_samplesÚcheck_random_stateÚvariance_weighted)Úmultioutput)Úpowergffffffö?)r   r    r%   r#   r'   r!   r   r,   Úmean_normal_deviancer$   r"   Úmean_compound_poisson_deviancer   r   r   r	   r   Ú adjusted_balanced_accuracy_scoreT)ÚadjustedÚunnormalized_accuracy_scoreF©Ú	normalizeÚunnormalized_confusion_matrixÚnormalized_confusion_matrixc                  óª   — t          | i |¤Ž                     d¦  «        t          | i |¤Ž                     d¬¦  «        d d …t          j        f         z  S )NÚfloaté   ©Úaxis)r   ÚastypeÚsumÚnpÚnewaxis)ÚargsÚkwargss     úi/var/www/html/services/rag-service/venv/lib/python3.11/site-packages/sklearn/metrics/tests/test_common.pyú<lambda>rU      s[   € Ý˜$Ð) &Ð)Ð)×0Ò0°Ñ9Ô9Ý
˜DÐ
+ FÐ
+Ð
+×
/Ò
/°QÐ
/Ñ
7Ô
7¸¸¸½2¼:¸Ô
Fñ	Gð ó    Ú(unnormalized_multilabel_confusion_matrixÚ/unnormalized_multilabel_confusion_matrix_sample)Ú
samplewiser   r1   Úunnormalized_zero_one_lossr   r+   r-   r   Úf2_scoreé   )Úbetaú
f0.5_scoreg      à?Úmatthews_corrcoef_scoreúweighted_f0.5_scoreÚweighted)Úaverager]   Úweighted_f1_score©rb   Úweighted_f2_scoreÚweighted_precision_scoreÚweighted_recall_scoreÚweighted_jaccard_scoreúmicro_f0.5_scoreÚmicroÚmicro_f1_scoreÚmicro_f2_scoreÚmicro_precision_scoreÚmicro_recall_scoreÚmicro_jaccard_scoreúmacro_f0.5_scoreÚmacroÚmacro_f1_scoreÚmacro_f2_scoreÚmacro_precision_scoreÚsamples)	Úmacro_recall_scoreÚmacro_jaccard_scoreúsamples_f0.5_scoreÚsamples_f1_scoreÚsamples_f2_scoreÚsamples_precision_scoreÚsamples_recall_scoreÚsamples_jaccard_scorer   c            
      ó  — t          | i |¤Ž\  }}}t          |¦  «        t          |¦  «        z
  }t          j        ||t          j        |                     t          j        ¦  «        d|fdt          j        g¬¦  «        g¦  «        S )a'  
    The dimensions of precision-recall pairs and the threshold array as
    returned by the precision_recall_curve do not match. See
    func:`sklearn.metrics.precision_recall_curve`

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

    As a workaround we pad the threshold array with NaN values to match
    the dimension of precision and recall arrays respectively.
    r   Úconstant)Ú	pad_widthÚmodeÚconstant_values)r*   ÚlenrP   ÚarrayÚpadrN   Úfloat64Únan)rR   rS   Ú	precisionÚrecallÚ
thresholdsÚpad_threshholdss         rT   Ú(precision_recall_curve_padded_thresholdsrŒ   ®   s‹   € õ %;¸DÐ$KÀFÐ$KÐ$KÑ!€Iˆv�zå˜)‘n”n¥s¨:¡¤Ñ6€OåŒ8àØÝŒFØ×!Ò!¥"¤*Ñ-Ô-Ø˜oÐ.ØÝ!#¤ ð	ñ ô ð		
ñô ð rV   )r/   r*   r   r   r   r   Úunnormalized_log_lossr   r   r.   Úweighted_roc_aucÚsamples_roc_aucÚmicro_roc_aucÚovr_roc_aucÚovr)rb   Ú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   r0   >   r   r)   r   ry   rz   r   r|   r}   r{   r   rX   rx   >   r   r[   r   r/   r-   r   r�   r.   r˜   r+   r�   r   rŽ   r*   r^   >   r   r[   r-   r   r+   r^   >   r.   r˜   r
   >   r   r[   r   r/   r-   r   r+   r   r*   r
   rœ   r›   rš   r^   >    r   r[   r   r/   r-   r   rr   rs   rk   rl   r+   r   rc   re   rv   rn   rw   ro   rt   rm   rg   r*   rh   rf   rH   rG   rW   rX   r^   rp   ri   r`   >   r1   r	   r0   >   r   r   r)   r�   r.   r   r˜   r�   rŽ   r   r�   r
   rœ   r›   rš   r   >   r   r1   r	   rr   rs   rk   rl   ry   rz   rc   re   rv   rn   rw   ro   r|   rt   rm   r}   rg   rh   r{   rf   rZ   rD   rW   rp   ri   rx   r`   >	   r,   r   r#   r%   r    r'   r   r   r!   >   r   r   r   r   r1   r	   rr   rk   rl   r   r#   r%   rn   rw   r    ro   r@   r'   rm   r}   rg   r_   rZ   rD   ri   >   r[   r,   r   r/   r   r-   rs   r+   r   r   rc   re   rv   r"   rt   r$   r*   rh   r   r   r   rf   rH   rG   r!   rA   rB   rW   r^   rp   r`   >   r   r•   r—   r'   >   r   r"   r$   rA   c                 ó¦   — t          t          |                      ¦   «         |                     ¦   «         ¦  «        ¦  «        dz   }| |z  } ||z  }| |fS )zMake targets strictly positiverK   )ÚabsÚmin)Úy1Úy2Úoffsets      rT   Ú_require_positive_targetsr£     sI   € å•�R—V’V‘X”X˜rŸvšv™xœxÑ(Ô(Ñ)Ô)¨AÑ-€FØˆ&�L€BØˆ&�L€BØˆrˆ6€MrV   c                  óÐ   — t           t          z  t          t          ¦  «        z  t          z  t          t
          ¦  «        k    sJ ‚t           t          z  t          ¦   «         k    sJ ‚d S ©N)ÚSYMMETRIC_METRICSÚNOT_SYMMETRIC_METRICSÚsetÚTHRESHOLDED_METRICSÚ"METRIC_UNDEFINED_BINARY_MULTICLASSÚALL_METRICS© rV   rT   Útest_symmetry_consistencyr­     sn   € õ 	Ý
ñ	 å
Õ!Ñ
"Ô
"ñ	#õ -ñ	-õ 
�[Ñ	Ô	òð ð ð õ Õ 5Ñ5½#¹%¼%Ò?Ð?Ð?Ð?Ð?Ð?rV   Únamec                 ó  — t          d¦  «        }|                     ddd¬¦  «        }|                     ddd¬¦  «        }| t          v rt          ||¦  «        \  }}|                     ddd¬¦  «        }|                     ddd¬¦  «        }t          |          }| t
          v r>| t          v r+t           |||¦  «         |||¦  «        d| z  ¬¦  «         d S J d	¦   «         ‚t           |||¦  «         |||¦  «        d| z  ¬¦  «         d S )
Nr   r\   ©é   ©Úsize©r±   é   z%s is not symmetric©Úerr_msgFz This case is currently unhandled)r<   ÚrandintÚMETRICS_REQUIRE_POSITIVE_Yr£   r«   ÚMETRIC_UNDEFINED_BINARYÚMULTILABELS_METRICSr5   )r®   Úrandom_stateÚy_trueÚy_predÚ
y_true_binÚ
y_pred_binÚmetrics          rT   Útest_symmetric_metricrÂ   +  sY  € õ & aÑ(Ô(€LØ×!Ò! ! Q¨UÐ!Ñ3Ô3€FØ×!Ò! ! Q¨UÐ!Ñ3Ô3€FàÕ)Ð)Ð)Ý2°6¸6ÑBÔB‰ˆ�à×%Ò% a¨°Ð%Ñ:Ô:€JØ×%Ò% a¨°Ð%Ñ:Ô:€Jå˜Ô€FØÕ&Ð&Ð&ØÕ&Ð&Ð&ÝØ��z :Ñ.Ô.Ø��z :Ñ.Ô.Ø-°Ñ4ðñ ô ð ð ð ð =Ð<Ñ<Ô<Ð<åØˆF�6˜6Ñ"Ô"ØˆF�6˜6Ñ"Ô"Ø)¨DÑ0ð	
ñ 	
ô 	
ð 	
ð 	
ð 	
rV   c                 óŒ  — t          d¦  «        }|                     ddd¬¦  «        }|                     ddd¬¦  «        }| t          v rt          ||¦  «        \  }}t          |          }t          j        t          ¦  «        5  t           |||¦  «         |||¦  «        ¦  «         t          d| z  ¦  «        ‚# 1 swxY w Y   d S )Nr   r\   r°   r²   z%s seems to be symmetric)
r<   r¸   r¹   r£   r«   ÚpytestÚraisesÚAssertionErrorr7   Ú
ValueError)r®   r¼   r½   r¾   rÁ   s        rT   Útest_not_symmetric_metricrÈ   J  sø   € õ & aÑ(Ô(€LØ×!Ò! ! Q¨UÐ!Ñ3Ô3€FØ×!Ò! ! Q¨UÐ!Ñ3Ô3€FàÕ)Ð)Ð)Ý2°6¸6ÑBÔB‰ˆ�å˜Ô€Fõ 
Œ•~Ñ	&Ô	&ð <ð <Ý˜6˜6 &¨&Ñ1Ô1°6°6¸&À&Ñ3IÔ3IÑJÔJÐJÝÐ3°dÑ:Ñ;Ô;Ð;ð<ð <ð <ð <øøøð <ð <ð <ð <ð <ð <s   Â7B9Â9B=Ã B=c                 ó   — t          d¦  «        }|                     ddd¬¦  «        }|                     ddd¬¦  «        }| t          v rt          ||¦  «        \  }}t	          ||d¬¦  «        \  }}t          ¦   «         5  t          |          }t           |||¦  «         |||¦  «        d| z  ¬¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )Nr   r\   r°   r²   ©r¼   ú %s is not sample order invariantr¶   )r<   r¸   r¹   r£   r4   r9   r«   r5   )r®   r¼   r½   r¾   Úy_true_shuffleÚy_pred_shufflerÁ   s          rT   Útest_sample_order_invariancerÎ   \  s4  € õ & aÑ(Ô(€LØ×!Ò! ! Q¨UÐ!Ñ3Ô3€FØ×!Ò! ! Q¨UÐ!Ñ3Ô3€FàÕ)Ð)Ð)Ý2°6¸6ÑBÔB‰ˆ�å%,¨V°VÈ!Ð%LÑ%LÔ%LÑ"€N�Nå	Ñ	Ô	ð 
ð 
Ý˜TÔ"ˆÝØˆF�6˜6Ñ"Ô"ØˆF�> >Ñ2Ô2Ø6¸Ñ=ð	
ñ 	
ô 	
ð 	
ð
ð 
ð 
ñ 
ô 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
øøøð 
ð 
ð 
ð 
ð 
ð 
s   Á?7CÃCÃ
Cc                  óº  — t          d¦  «        } |                      ddd¬¦  «        }|                      ddd¬¦  «        }|                      |j        ¬¦  «        }t	          |||d¬¦  «        \  }}}t
          D ]8}t          |         }t           |||¦  «         |||¦  «        d|z  ¬¦  «         Œ9t          D ]8}t          |         }t           |||¦  «         |||¦  «        d|z  ¬¦  «         Œ9t          D ]a}t          |         }t           |||¦  «         |||¦  «        d|z  ¬¦  «         t           |||¦  «         |||¦  «        d|z  ¬¦  «         Œbd S )Nr   r\   r´   r²   rÊ   rË   r¶   )
r<   r¸   ÚnormalÚshaper4   r»   r«   r5   ÚTHRESHOLDED_MULTILABEL_METRICSÚMULTIOUTPUT_METRICS)	r¼   r½   r¾   Úy_scorerÌ   rÍ   Úy_score_shuffler®   rÁ   s	            rT   Ú7test_sample_order_invariance_multilabel_and_multioutputrÖ   r  sá  € å% aÑ(Ô(€Lð ×!Ò! ! Q¨XÐ!Ñ6Ô6€FØ×!Ò! ! Q¨XÐ!Ñ6Ô6€FØ×!Ò! v¤|Ð!Ñ4Ô4€Gå6=Ø�˜¨að7ñ 7ô 7Ñ3€N�N Oõ $ð 
ð 
ˆÝ˜TÔ"ˆÝØˆF�6˜6Ñ"Ô"ØˆF�> >Ñ2Ô2Ø6¸Ñ=ð	
ñ 	
ô 	
ð 	
ð 	
õ /ð 
ð 
ˆÝ˜TÔ"ˆÝØˆF�6˜7Ñ#Ô#ØˆF�> ?Ñ3Ô3Ø6¸Ñ=ð	
ñ 	
ô 	
ð 	
ð 	
õ $ð 
ð 
ˆÝ˜TÔ"ˆÝØˆF�6˜7Ñ#Ô#ØˆF�> ?Ñ3Ô3Ø6¸Ñ=ð	
ñ 	
ô 	
ð 	
õ
 	ØˆF�6˜6Ñ"Ô"ØˆF�> >Ñ2Ô2Ø6¸Ñ=ð	
ñ 	
ô 	
ð 	
ð 	
ð
ð 
rV   c                 óz  — t          d¦  «        }|                     ddd¬¦  «        }|                     ddd¬¦  «        }| t          v rt          ||¦  «        \  }}t	          |¦  «        }t	          |¦  «        }t          j        |¦  «        t          j        |¦  «        }}t          |j        d¦  «         t          |j        d¦  «         t          j	        |d¦  «        }t          j	        |d¦  «        }	t          j	        |d¦  «        }
t          j	        |d¦  «        }t          ¦   «         5  t          |          } |||¦  «        }t           |||¦  «        |d| z  ¬	¦  «         t           |||¦  «        |d
| z  ¬	¦  «         t           |||	¦  «        |d| z  ¬	¦  «         t           |||¦  «        |d| z  ¬	¦  «         t           |||¦  «        |d| z  ¬	¦  «         t           |||	¦  «        |d| z  ¬	¦  «         t           |||¦  «        |d| z  ¬	¦  «         t           |||	¦  «        |d| z  ¬	¦  «         t           |||¦  «        |d| z  ¬	¦  «         t          j        t          ¦  «        5   |||¦  «         d d d ¦  «         n# 1 swxY w Y   t          j        t          ¦  «        5   ||
|¦  «         d d d ¦  «         n# 1 swxY w Y   t          j        t          ¦  «        5   |||¦  «         d d d ¦  «         n# 1 swxY w Y   t          j        t          ¦  «        5   ||
|¦  «         d d d ¦  «         n# 1 swxY w Y   t          j        t          ¦  «        5   |||¦  «         d d d ¦  «         n# 1 swxY w Y   t          j        t          ¦  «        5   ||
|	¦  «         d d d ¦  «         n# 1 swxY w Y   | t           t"          z  t$          z  vr=t          j        t          ¦  «        5   ||
|¦  «         d d d ¦  «         n# 1 swxY w Y   d d d ¦  «         d S # 1 swxY w Y   d S )Nr   r\   r°   r²   rK   )éÿÿÿÿrK   )rK   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)r<   r¸   r¹   r£   ÚlistrP   r„   r7   ÚndimÚreshaper9   r«   r5   rÄ   rÅ   rÇ   rÓ   rÒ   r»   )r®   r¼   r    r¡   Úy1_listÚy2_listÚy1_1dÚy2_1dÚ	y1_columnÚ	y2_columnÚy1_rowÚy2_rowrÁ   Úmeasures                 rT   Ú&test_format_invariance_with_1d_vectorsrå   �  sà  € õ & aÑ(Ô(€LØ	×	Ò	˜a ¨Ð	Ñ	/Ô	/€BØ	×	Ò	˜a ¨Ð	Ñ	/Ô	/€BàÕ)Ð)Ð)Ý*¨2¨rÑ2Ô2‰ˆˆBå�2‰hŒh€GÝ�2‰hŒh€Gå”8˜B‘<”<¥¤¨"¡¤ˆ5€EÝ�u”z 1Ñ%Ô%Ð%Ý�u”z 1Ñ%Ô%Ð%Ý”
˜5 'Ñ*Ô*€IÝ”
˜5 'Ñ*Ô*€IÝŒZ˜˜wÑ'Ô'€FÝŒZ˜˜wÑ'Ô'€Få	Ñ	Ô	ð `'ð `'Ý˜TÔ"ˆà�&˜˜R‘.”.ˆåØˆF�7˜GÑ$Ô$ØØBÀTÑIð	
ñ 	
ô 	
ð 	
õ 	ØˆF�5˜%Ñ Ô ØØIÈDÑPð	
ñ 	
ô 	
ð 	
õ 	ØˆF�9˜iÑ(Ô(ØØMÐPTÑTð	
ñ 	
ô 	
ð 	
õ 	ØˆF�5˜'Ñ"Ô"ØØVØñð	
ñ 	
ô 	
ð 	
õ 	ØˆF�7˜EÑ"Ô"ØØVØñð	
ñ 	
ô 	
ð 	
õ 	ØˆF�5˜)Ñ$Ô$Øð2ð ñ	ð	
ñ 	
ô 	
ð 	
õ 	ØˆF�9˜eÑ$Ô$Øð2ð ñ	ð	
ñ 	
ô 	
ð 	
õ 	ØˆF�7˜IÑ&Ô&ØàVàñð	
ñ 	
ô 	
ð 	
õ 	ØˆF�9˜gÑ&Ô&ØàVàñð	
ñ 	
ô 	
ð 	
õ Œ]�:Ñ&Ô&ð 	"ð 	"ØˆF�5˜&Ñ!Ô!Ð!ð	"ð 	"ð 	"ñ 	"ô 	"ð 	"ð 	"ð 	"ð 	"ð 	"ð 	"øøøð 	"ð 	"ð 	"ð 	"åŒ]�:Ñ&Ô&ð 	"ð 	"ØˆF�6˜5Ñ!Ô!Ð!ð	"ð 	"ð 	"ñ 	"ô 	"ð 	"ð 	"ð 	"ð 	"ð 	"ð 	"øøøð 	"ð 	"ð 	"ð 	"åŒ]�:Ñ&Ô&ð 	$ð 	$ØˆF�7˜FÑ#Ô#Ð#ð	$ð 	$ð 	$ñ 	$ô 	$ð 	$ð 	$ð 	$ð 	$ð 	$ð 	$øøøð 	$ð 	$ð 	$ð 	$åŒ]�:Ñ&Ô&ð 	$ð 	$ØˆF�6˜7Ñ#Ô#Ð#ð	$ð 	$ð 	$ñ 	$ô 	$ð 	$ð 	$ð 	$ð 	$ð 	$ð 	$øøøð 	$ð 	$ð 	$ð 	$åŒ]�:Ñ&Ô&ð 	&ð 	&ØˆF�9˜fÑ%Ô%Ð%ð	&ð 	&ð 	&ñ 	&ô 	&ð 	&ð 	&ð 	&ð 	&ð 	&ð 	&øøøð 	&ð 	&ð 	&ð 	&åŒ]�:Ñ&Ô&ð 	&ð 	&ØˆF�6˜9Ñ%Ô%Ð%ð	&ð 	&ð 	&ñ 	&ô 	&ð 	&ð 	&ð 	&ð 	&ð 	&ð 	&øøøð 	&ð 	&ð 	&ð 	&ð
 ÝÕ"@Ñ@ÕCVÑVð
ð 
õ ”�zÑ*Ô*ð 'ð 'Ø��v˜vÑ&Ô&Ð&ð'ð 'ð 'ñ 'ô 'ð 'ð 'ð 'ð 'ð 'ð 'øøøð 'ð 'ð 'ð 'ð`'ð `'ð `'ñ `'ô `'ð `'ð `'ð `'ð `'ð `'ð `'ð `'øøøð `'ð `'ð `'ð `'ð `'ð `'s  Ä.E
P0É8JÊP0ÊJ	ÊP0ÊJ	ÊP0Ê5KËP0ËK	ËP0ËK	ËP0Ë2LË?P0ÌL	ÌP0ÌL	ÌP0Ì/MÌ<P0ÍM	ÍP0ÍM	ÍP0Í,NÍ9P0ÎN		Î	P0ÎN		ÎP0Î)OÎ6P0ÏO	ÏP0Ï	O	Ï
5P0Ï?PÐP0ÐP	ÐP0ÐP	Ð P0Ð0P4Ð7P4c                 ó  — t          d¦  «        }|                     ddd¬¦  «        }|                     ddd¬¦  «        }t          j        ddg¦  «        |         }t          j        ddg¦  «        |         }d}ddg}t	          ¦   «         5  t
          |          } |||¦  «        }	|}
| t          v rt          |
|¬¦  «        }
 |
||¦  «        }t          |	|d 	                    | ¦  «        ¬	¦  «          |
| 
                    d
¦  «        | 
                    d
¦  «        ¦  «        }t          |	|d 	                    | ¦  «        ¬	¦  «         | t          v r™t          |
|¬¦  «        }
 |
||¦  «        }t          |	|d 	                    | ¦  «        ¬	¦  «          |
| 
                    d
¦  «        | 
                    d
¦  «        ¦  «        }t          |	|d 	                    | ¦  «        ¬	¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )Nr   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¸   rP   r„   r9   ÚCLASSIFICATION_METRICSÚMETRICS_WITH_POS_LABELr   r7   ÚformatrN   Ú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                rT   Ú7test_classification_invariance_string_vs_numbers_labelsrû     s‹  € õ
 & aÑ(Ô(€LØ	×	Ò	˜a ¨Ð	Ñ	/Ô	/€BØ	×	Ò	˜a ¨Ð	Ñ	/Ô	/€BåŒX�v˜vÐ&Ñ'Ô'¨Ô+€FÝŒX�v˜vÐ&Ñ'Ô'¨Ô+€Fà€MØ˜&Ð!€Jå	Ñ	Ô	ð &ð &Ý'¨Ô-ˆØ$˜f R¨™nœnÐð ˆ
ØÕ)Ð)Ð)Ý  °}ÐEÑEÔEˆJà%˜: f¨fÑ5Ô5ÐåØØØA×HÒHÈÑNÔNð	
ñ 	
ô 	
ð 	
ð )˜j¨¯ª°sÑ);Ô);¸V¿]º]È3Ñ=OÔ=OÑPÔPÐÝØØØH×OÒOÐPTÑUÔUð	
ñ 	
ô 	
ð 	
ð Õ&Ð&Ð&Ý  °JÐ?Ñ?Ô?ˆJØ)˜z¨&°&Ñ9Ô9ÐÝØ#Ø ØF×MÒMÈdÑSÔSðñ ô ð ð #- *¨V¯]ª]¸3Ñ-?Ô-?ÀÇÂÈsÑASÔASÑ"TÔ"TÐÝØ#Ø#ØF×MÒMÈdÑSÔSðñ ô ð ðE&ð &ð &ñ &ô &ð &ð &ð &ð &ð &ð &ð &øøøð &ð &ð &ð &ð &ð &s   ÂE G9Ç9G=È G=c                 ó�  — t          d¦  «        }|                     ddd¬¦  «        }|                     ddd¬¦  «        }t          j        ddg¦  «        |         }d}t	          ¦   «         5  t
          |          }| t          vrž|}| t          v rt          ||¬¦  «        } |||¦  «        } |||¦  «        }	t          ||	d 
                    | ¦  «        ¬	¦  «          ||                     d
¦  «        |¦  «        }
t          ||
d 
                    | ¦  «        ¬	¦  «         n�t          j        t          ¦  «        5   |||¦  «         d d d ¦  «         n# 1 swxY w Y   t          j        t          ¦  «        5   ||                     d
¦  «        |¦  «         d d d ¦  «         n# 1 swxY w Y   d d d ¦  «         d S # 1 swxY w Y   d S )Nr   r\   r°   r²   rç   rè   ré   rë   r¶   rì   rí   )r<   r¸   rP   r„   r9   r©   rº   rð   r   r7   rñ   rN   rÄ   rÅ   rÇ   )r®   r¼   r    r¡   ró   rõ   rÁ   rø   r÷   rù   rú   s              rT   Ú4test_thresholded_invariance_string_vs_numbers_labelsrý   N  s°  € õ & aÑ(Ô(€LØ	×	Ò	˜a ¨Ð	Ñ	/Ô	/€BØ	×	Ò	˜a ¨Ð	Ñ	/Ô	/€BåŒX�v˜vÐ&Ñ'Ô'¨Ô+€Fà€Må	Ñ	Ô	ð /ð /Ý$ TÔ*ˆØÕ.Ð.Ð.àˆJØÕ-Ð-Ð-Ý$ Z¸=ÐIÑIÔI�
à"( &¨¨R¡.¤.ÐØ)˜z¨&°"Ñ5Ô5ÐÝØ#Ø ØE×LÒLÈTÑRÔRðñ ô ð ð #- *¨V¯]ª]¸3Ñ-?Ô-?ÀÑ"DÔ"DÐÝØ#Ø#ØL×SÒSØñô ðñ ô ð ð õ ”�zÑ*Ô*ð #ð #Ø��v˜rÑ"Ô"Ð"ð#ð #ð #ñ #ô #ð #ð #ð #ð #ð #ð #øøøð #ð #ð #ð #å”�zÑ*Ô*ð /ð /Ø��v—}’} SÑ)Ô)¨2Ñ.Ô.Ð.ð/ð /ð /ñ /ô /ð /ð /ð /ð /ð /ð /øøøð /ð /ð /ð /ð9/ð /ð /ñ /ô /ð /ð /ð /ð /ð /ð /ð /øøøð /ð /ð /ð /ð /ð /s[   Á,CF;Ä:EÅF;ÅE	ÅF;ÅE	ÅF;Å7 F#ÆF;Æ#F'	Æ'F;Æ*F'	Æ+F;Æ;F?ÇF?rK   rÁ   zy_true, y_scorec                 ó¨   — | t           k    r|g}|g}t          j        t          d¬¦  «        5   | ||¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )Nzcontains (NaN|infinity)©Úmatch)r   rÄ   rÅ   rÇ   )rÁ   r½   rÔ   s      rT   Ú)test_regression_thresholded_inf_nan_inputr  ‚  s©   € ð •ÒÐØ�ˆØ�)ˆÝ	Œ•zÐ)CÐ	DÑ	DÔ	Dð  ð  Øˆˆv�wÑÔÐð ð  ð  ñ  ô  ð  ð  ð  ð  ð  ð  ð  øøøð  ð  ð  ð  ð  ð  s   ­AÁAÁA)rK   r\   é   c                 ó˜  — t          j        |¦  «                             ¦   «         s.d}t          j        |¦  «                             ¦   «         rd}n0d}n-d}t          j        |¦  «                             ¦   «         rd}nd}d|› d|› �}t          j        t          |¬¦  «        5   | ||¦  «         ddd¦  «         dS # 1 swxY w Y   dS )	z{check that classification metrics raise a message mentioning the
    occurrence of non-finite values in the target vectors.r½   ÚNaNzinfinity or a value too larger¾   zInput z
 contains rÿ   N)rP   ÚisfiniteÚallÚisnanÚanyrÄ   rÅ   rÇ   )rÁ   r½   rÔ   Ú
input_nameÚunexpected_valuer·   s         rT   Ú!test_classification_inf_nan_inputr  �  s*  € õ Œ;�vÑÔ×"Ò"Ñ$Ô$ð ?Øˆ
ÝŒ8�FÑÔ×ÒÑ!Ô!ð 	?Ø$ÐÐà>ÐÐàˆ
ÝŒ8�GÑÔ× Ò Ñ"Ô"ð 	?Ø$ÐÐà>Ðà?�zÐ?Ð?Ð-=Ð?Ð?€Gå	Œ•z¨Ð	1Ñ	1Ô	1ð  ð  Øˆˆv�wÑÔÐð ð  ð  ñ  ô  ð  ð  ð  ð  ð  ð  ð  øøøð  ð  ð  ð  ð  ð  s   Â%B?Â?CÃCc                 óš   — g d¢g d¢}}d}t          j        t          |¬¦  «        5   | ||¦  «         ddd¦  «         dS # 1 swxY w Y   dS )zocheck that classification metrics raise a message of mixed type data
    with continuous/binary target vectors.)ÚaÚbr  )gš™™™™™¹?gš™™™™™É?ç333333Ó?zJClassification metrics can't handle a mix of binary and continuous targetsrÿ   N)rÄ   rÅ   rÇ   )rÁ   r½   rÔ   r·   s       rT   Ú+test_classification_binary_continuous_inputr  ±  sª   € ð &�o�o   ˆG€FàTð õ 
Œ•z¨Ð	1Ñ	1Ô	1ð  ð  Øˆˆv�wÑÔÐð ð  ð  ñ  ô  ð  ð  ð  ð  ð  ð  ð  øøøð  ð  ð  ð  ð  ð  s   ¦A Á AÁAc                 óŽ   — t           |          }| t          v rddg}nddg}t          |d¬¦  «        D ]\  }} ||g|g¦  «         Œd S )NrK   r\   r   ©Úrepeat)r«   r¹   r   )r®   rÁ   ÚvaluesÚiÚjs        rT   Úcheck_single_sampler  ½  ss   € õ ˜Ô€Fð Õ)Ð)Ð)Ø�Q�ˆˆà�Q�ˆÝ˜ qÐ)Ñ)Ô)ð ð ‰ˆˆ1Øˆ�ˆs�Q�CÑÔÐÐðð rV   c                 óÂ   — t           |          }t          ddgd¬¦  «        D ]=\  }}}} |t          j        ||gg¦  «        t          j        ||gg¦  «        ¦  «         Œ>d S )Nr   rK   é   r  )r«   r   rP   r„   )r®   rÁ   r  r  ÚkÚls         rT   Úcheck_single_sample_multioutputr  Î  ss   € å˜Ô€FÝ˜q !˜f¨QÐ/Ñ/Ô/ð 7ð 7‰
ˆˆ1ˆa�Øˆ�rŒx˜!˜Q˜˜Ñ!Ô!¥2¤8¨a°¨V¨HÑ#5Ô#5Ñ6Ô6Ð6Ð6ð7ð 7rV   c                 ó$   — t          | ¦  «         d S r¥   )r  ©r®   s    rT   Útest_single_sampler  Õ  s   € õ ˜ÑÔÐÐÐrV   c                 ó$   — t          | ¦  «         d S r¥   )r  r  s    rT   Útest_single_sample_multioutputr!  ã  s   € å# DÑ)Ô)Ð)Ð)Ð)rV   c                 ó  — t          j        g d¢g d¢g d¢g¦  «        }t          j        ddgddgddgg¦  «        }t          |          }t          j        t
          ¦  «        5   |||¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )N)rK   r   r   rK   )r   rK   rK   rK   )rK   rK   r   rK   r   rK   ©rP   r„   r«   rÄ   rÅ   rÇ   )r®   r½   r¾   rÁ   s       rT   Ú(test_multioutput_number_of_output_differr$  è  sÖ   € åŒX�|�|�| \ \ \°<°<°<Ð@ÑAÔA€FÝŒX˜˜1�v  1˜v¨¨1 vÐ.Ñ/Ô/€Få˜Ô€FÝ	Œ•zÑ	"Ô	"ð ð Øˆˆv�vÑÔÐðð ð ñ ô ð ð ð ð ð ð ð øøøð ð ð ð ð ð s   Á!A;Á;A?ÂA?c           	      ó€  — t          d¦  «        }|                     ddd¬¦  «        }|                     ddd¬¦  «        }t          |          } |||¦  «        }t          d¦  «        D ]U}|                     |j        d         ¦  «        }t           ||d d …|f         |d d …|f         ¦  «        |d| z  ¬¦  «         ŒVd S )	Nr   r\   )r±   é   r²   r  rK   z'%s is not dimension shuffling invariantr¶   )r<   Úuniformr«   ÚrangeÚpermutationrÑ   r5   )r®   r¼   r½   r¾   rÁ   ÚerrorÚ_Úperms           rT   Ú=test_multioutput_regression_invariance_to_dimension_shufflingr-  ò  sæ   € õ & aÑ(Ô(€LØ×!Ò! ! Q¨WÐ!Ñ5Ô5€FØ×!Ò! ! Q¨WÐ!Ñ5Ô5€Få˜Ô€FØˆF�6˜6Ñ"Ô"€Eå�1‰XŒXð 
ð 
ˆØ×'Ò'¨¬°Q¬Ñ8Ô8ˆÝØˆF�6˜!˜!˜!˜T˜'”? F¨1¨1¨1¨d¨7¤OÑ4Ô4ØØ=ÀÑFð	
ñ 	
ô 	
ð 	
ð 	
ð
ð 
rV   c                  óØ  — 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          j        |¦  «        }t          j        |¦  «        }t          |¦  «        }t          |¦  «        }d„ |D ¦   «         }	d„ |D ¦   «         }
t          D ]›}t          |         }t          |t          ¦  «        rd	|_
        ||_         |||¦  «        }t           |||¦  «        |d
|z  ¬¦  «         t           ||	|
¦  «        |d|z  ¬¦  «         t           |||¦  «        |d|z  ¬¦  «         Œœd S )Nr  é2   rK   r   T©Ú
n_featuresÚ	n_classesr¼   Ú	n_samplesÚallow_unlabeledc                 ó,   — g | ]}t          |¦  «        ‘ŒS r¬   ©rÙ   ©Ú.0r  s     rT   ú
<listcomp>z=test_multilabel_representation_invariance.<locals>.<listcomp>$  ó   € ÐGÐGÐG¨!�d 1™gœgÐGÐGÐGrV   c                 ó,   — g | ]}t          |¦  «        ‘ŒS r¬   r6  r7  s     rT   r9  z=test_multilabel_representation_invariance.<locals>.<listcomp>%  r:  rV   Ú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   rP   ÚvstackÚspÚ
coo_matrixrÙ   r»   r«   Ú
isinstancer   Ú
__module__Ú__name__r5   r6   )r2  r3  r+  r    r¡   Úy1_sparse_indicatorÚy2_sparse_indicatorÚy1_list_array_indicatorÚy2_list_array_indicatorÚy1_list_list_indicatorÚy2_list_list_indicatorr®   rÁ   rä   s                 rT   Ú)test_multilabel_representation_invariancerI    s
  € ð €IØ€Iå*ØØØØØðñ ô �E€A€rõ +ØØØØØðñ ô �E€A€rõ 
Œ�B˜!˜˜y™Ð)Ð*Ñ	+Ô	+€BÝ	Œ�B˜!˜˜y™Ð)Ð*Ñ	+Ô	+€Båœ-¨Ñ+Ô+ÐÝœ-¨Ñ+Ô+Ðå" 2™hœhÐÝ" 2™hœhÐàGÐGÐ/FÐGÑGÔGÐØGÐGÐ/FÐGÑGÔGÐå#ð '
ð '
ˆÝ˜TÔ"ˆõ �f�gÑ&Ô&ð 	#Ø %ˆFÔØ"ˆFŒOà�&˜˜R‘.”.ˆõ 	ØˆFÐ&Ð(;Ñ<Ô<Øð6ð ñ	ð	
ñ 	
ô 	
ð 	
õ 	ØˆFÐ)Ð+AÑBÔBØð%ð ñð		
ñ 		
ô 		
ð 		
õ 	ØˆFÐ*Ð,CÑDÔDØð%ð ñð		
ñ 		
ô 		
ð 		
ð 		
ð='
ð '
rV   c           	      óø   — dgdgddggg d¢g gdgt          j        g ddggd¬¦  «        g}t          |          }|D ]?}t          j        t
          ¦  «        5   |||¦  «         d d d ¦  «         n# 1 swxY w Y   Œ@d S )NrK   r\   r   )r¬   r\   )r   rK   r¬   Úobject©Údtyper#  )r®   Úmultilabel_sequencesrÁ   Úseqs       rT   Ú+test_raise_value_error_multilabel_sequencesrP  Q  sè   € ð ˆˆqˆc�A�q�6ÐØÐÐØ	ˆØ	ˆÝ
Œ�"�q˜!�f� XÐ.Ñ.Ô.ðÐõ ˜Ô€FØ#ð ð ˆÝŒ]�:Ñ&Ô&ð 	ð 	ØˆF�3˜ÑÔÐð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	øðð s   ÁA.Á.A2	Á5A2	c                 óŒ  — d}d}t          d¦  «        }|                     d||f¬¦  «        }|                     d||f¬¦  «        }|                     |j        ¬¦  «        }t          |          }| t
          v r|n|} |||d¬¦  «        }	 |||d¬¦  «        }
t          d|	z  dd	¬
¦  «         t          |	|
|z  d| › �¬
¦  «         d S )Nr\   r±   r   r²   TrE   Fç      ð¿ú0We failed to test correctly the normalize optionr¶   úFailed with )r<   r¸   rÐ   rÑ   r«   r©   r8   r5   ©r®   r2  r3  r¼   r½   r¾   rÔ   ÚmetricsÚpredÚmeasure_normalizedÚmeasure_not_normalizeds              rT   Ú+test_normalize_option_binary_classificationrZ  b  s  € ð €IØ€IÝ% aÑ(Ô(€Là×!Ò! ! Y°i°\Ð!ÑBÔB€FØ×!Ò! ! Y°i°\Ð!ÑBÔB€FØ×!Ò! v¤|Ð!Ñ4Ô4€Gå˜$Ô€GØÕ1Ð1Ð1ˆ7ˆ7°v€DØ ˜ ¨¸Ð>Ñ>Ô>ÐØ$˜W V¨T¸UÐCÑCÔCÐåØÐ!Ñ!Ø	ØBðñ ô ð õ ØØ Ñ*Ø%˜tÐ%Ð%ðñ ô ð ð ð rV   c                 ó†  — d}d}t          d¦  «        }|                     d||f¬¦  «        }|                     d||f¬¦  «        }|                     ||f¬¦  «        }t          |          }| t          v r|n|} |||d¬¦  «        }	 |||d¬¦  «        }
t          d|	z  dd	¬
¦  «         t          |	|
|z  d| › �¬
¦  «         d S )Nr  r±   r   r²   TrE   FrR  rS  r¶   rT  )r<   r¸   r'  r«   r©   r8   r5   rU  s              rT   Ú/test_normalize_option_multiclass_classificationr\    s  € ð €IØ€IÝ% aÑ(Ô(€Là×!Ò! ! Y°i°\Ð!ÑBÔB€FØ×!Ò! ! Y°i°\Ð!ÑBÔB€FØ×"Ò"¨°IÐ(>Ð"Ñ?Ô?€Gå˜$Ô€GØÕ1Ð1Ð1ˆ7ˆ7°v€DØ ˜ ¨¸Ð>Ñ>Ô>ÐØ$˜W V¨T¸UÐCÑCÔCÐåØÐ!Ñ!Ø	ØBðñ ô ð õ ØØ Ñ*Ø%˜tÐ%Ð%ðñ ô ð ð ð rV   c                 ó¨  — d}d}t          d¦  «        }t          d|dd|¬¦  «        \  }}t          d|dd|¬¦  «        \  }}|                     |j        ¬¦  «        }|dg|z  z  }|dg|z  z  }t          |          }| t
          v r|n|}	 |||	d¬¦  «        }
 |||	d	¬¦  «        }t          d
|
z  dd¬¦  «         t          |
||z  d| › �¬¦  «         d S )Nr  éd   r   rK   T)r1  r2  r¼   r4  r3  r²   rE   FrR  rS  r¶   rT  )r<   r   r'  rÑ   r«   r©   r8   r5   )r®   r2  r3  r¼   r+  r½   r¾   rÔ   rV  rW  rX  rY  s               rT   Ú/test_normalize_option_multilabel_classificationr_  œ  sT  € ð
 €IØ€IÝ% aÑ(Ô(€Lõ /ØØØØØðñ ô �I€A€võ /ØØØØØðñ ô �I€A€vð ×"Ò"¨¬Ð"Ñ5Ô5€Gð ˆqˆc�I‰oÑ€FØ
ˆqˆc�I‰oÑ€Få˜$Ô€GØÕ1Ð1Ð1ˆ7ˆ7°v€DØ ˜ ¨¸Ð>Ñ>Ô>ÐØ$˜W V¨T¸UÐCÑCÔCÐåØÐ!Ñ!Ø	ØBðñ ô ð õ ØØ Ñ*Ø%˜tÐ%Ð%ðñ ô ð ð ð rV   c           	      ó,  ‡ ‡‡— ‰j         \  }} ‰ ||d ¬¦  «        }t          |ˆ ˆˆfd„t          |¦  «        D ¦   «         ¦  «          ‰ ||d¬¦  «        }	t          |	 ‰ ‰                     ¦   «         ‰                     ¦   «         ¦  «        ¦  «          ‰ ||d¬¦  «        }
t          |
t	          j        |¦  «        ¦  «         t	          j        ‰dt          ¬¦  «        }t	          j        |¦  «        dk    r3 ‰ ||d¬¦  «        }t          |t	          j        ||¬¦  «        ¦  «         n ‰ ||d¬¦  «        }t          |d¦  «         |rK ‰ ||d	¬¦  «        }t          |t	          j        ˆ ˆˆfd
„t          |¦  «        D ¦   «         ¦  «        ¦  «         t          j
        t          ¦  «        5   ‰ ||d¬¦  «         d d d ¦  «         n# 1 swxY w Y   t          j
        t          ¦  «        5   ‰ ||d¬¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )Nrd   c                 óP   •— g | ]"} ‰‰d d …|f         ‰d d …|f         ¦  «        ‘Œ#S r¥   r¬   ©r8  r  rÁ   Úy_pred_binarizeÚy_true_binarizes     €€€rT   r9  z$_check_averaging.<locals>.<listcomp>Ø  sO   ø€ ð 	
ð 	
ð 	
àð ˆF�? 1 1 1 a 4Ô(¨/¸!¸!¸!¸Q¸$Ô*?Ñ@Ô@ð	
ð 	
ð 	
rV   rj   rq   r   )rM   rM  ra   )Úweightsru   c                 ó@   •— g | ]} ‰‰|         ‰|         ¦  «        ‘ŒS r¬   r¬   rb  s     €€€rT   r9  z$_check_averaging.<locals>.<listcomp>ø  s?   ø€ ð ð ð àð �F˜?¨1Ô-¨¸qÔ/AÑBÔBðð ð rV   ÚunknownÚgarbage)rÑ   r5   r(  ÚravelrP   ÚmeanrO   Úintrb   rÄ   rÅ   rÇ   )rÁ   r½   r¾   rd  rc  Úis_multilabelr3  r2  Úlabel_measureÚmicro_measureÚmacro_measurere  Úweighted_measureÚsample_measures   `  ``         rT   Ú_check_averagingrr  Î  s  øøø€ ð +Ô0Ñ€Iˆyð �F˜6 6°4Ð8Ñ8Ô8€MÝØð	
ð 	
ð 	
ð 	
ð 	
ð 	
å˜9Ñ%Ô%ð	
ñ 	
ô 	
ñô ð ð �F˜6 6°7Ð;Ñ;Ô;€MÝØ�v�v˜o×3Ò3Ñ5Ô5°×7LÒ7LÑ7NÔ7NÑOÔOñô ð ð
 �F˜6 6°7Ð;Ñ;Ô;€MÝ�M¥2¤7¨=Ñ#9Ô#9Ñ:Ô:Ð:õ Œf�_¨1µCÐ8Ñ8Ô8€Gå	„vˆg�„˜!ÒÐØ!˜6 &¨&¸*ÐEÑEÔEÐÝÐ(­"¬*°]ÈGÐ*TÑ*TÔ*TÑUÔUÐUÐUà!˜6 &¨&¸*ÐEÑEÔEÐÝÐ(¨!Ñ,Ô,Ð,ð ð 

Ø˜ ¨¸	ÐBÑBÔBˆÝØÝŒGðð ð ð ð ð å" 9Ñ-Ô-ðñ ô ñô ñ	
ô 	
ð 	
õ 
Œ•zÑ	"Ô	"ð 2ð 2Øˆˆv�v yÐ1Ñ1Ô1Ð1ð2ð 2ð 2ñ 2ô 2ð 2ð 2ð 2ð 2ð 2ð 2øøøð 2ð 2ð 2ð 2å	Œ•zÑ	"Ô	"ð 2ð 2Øˆˆv�v yÐ1Ñ1Ô1Ð1ð2ð 2ð 2ñ 2ô 2ð 2ð 2ð 2ð 2ð 2ð 2ð 2øøøð 2ð 2ð 2ð 2ð 2ð 2s$   Æ.G	Ç	GÇGÇ-H	È	HÈHc                 óú   — t          |¦  «                             d¦  «        }t          |          }| t          v rt	          ||||||¦  «         d S | t
          v rt	          ||||||¦  «         d S t          d¦  «        ‚)NÚ
multilabelz2Metric is not recorded as having an average option)r:   Ú
startswithr«   ÚMETRICS_WITH_AVERAGINGrr  Ú"THRESHOLDED_METRICS_WITH_AVERAGINGrÇ   )r®   r½   rd  r¾   rc  rÔ   rl  rÁ   s           rT   Úcheck_averagingrx    s¤   € Ý" 6Ñ*Ô*×5Ò5°lÑCÔC€Må˜Ô€FàÕ%Ð%Ð%ÝØ�F˜F O°_Àmñ	
ô 	
ð 	
ð 	
ð 	
ð 
Õ3Ð	3Ð	3ÝØ�F˜G _°g¸}ñ	
ô 	
ð 	
ð 	
ð 	
õ ÐMÑNÔNÐNrV   c                 ó€  — d\  }}t          d¦  «        }|                     d||f¬¦  «        }|                     d||f¬¦  «        }|                     ||f¬¦  «        }t          ¦   «                              |¦  «        }|                     |¦  «        }|                     |¦  «        }	t          | ||||	|¦  «         d S )N)r/  r  r   r²   )r<   r¸   r'  r3   ÚfitÚ	transformrx  )
r®   r3  r2  r¼   r½   r¾   rÔ   Úlbrd  rc  s
             rT   Útest_averaging_multiclassr}    sÅ   € à Ñ€IˆyÝ% aÑ(Ô(€LØ×!Ò! ! Y°i°\Ð!ÑBÔB€FØ×!Ò! ! Y°i°\Ð!ÑBÔB€FØ×"Ò"¨°IÐ(>Ð"Ñ?Ô?€Gå	Ñ	Ô	×	Ò	˜fÑ	%Ô	%€BØ—l’l 6Ñ*Ô*€OØ—l’l 6Ñ*Ô*€Oå�D˜& /°6¸?ÈGÑTÔTÐTÐTÐTrV   c                 óà   — d\  }}t          d|d|d¬¦  «        \  }}|d d…         }|dd …         }t          d¦  «                             d|f¬¦  «        }|}|}	t          | ||||	|¦  «         d S )	N)é(   r&  rK   r&  Fr0  r±   r   r²   )r   r<   rÐ   rx  )
r®   r3  r2  r+  Úyr½   r¾   rÔ   rd  rc  s
             rT   Útest_averaging_multilabelr�  %  s›   € ð !Ñ€IˆyÝ)ØØØØØðñ ô �D€A€qð ˆs�ˆsŒV€FØˆrˆsˆsŒV€FÝ  Ñ#Ô#×*Ò*°°Y°Ð*Ñ@Ô@€GØ€OØ€Oå�D˜& /°6¸?ÈGÑTÔTÐTÐTÐTrV   c                 ó®   — t          j        d¦  «        }t          j        d¦  «        }t          j        d¦  «        }|}|}t          | |||||¦  «         d S ©N©r±   r  )rP   Úzerosrx  ©r®   r½   r¾   rÔ   rd  rc  s         rT   Ú$test_averaging_multilabel_all_zeroesr‡  :  sW   € åŒX�gÑÔ€FÝŒX�gÑÔ€FÝŒh�wÑÔ€GØ€OØ€Oå�D˜& /°6¸?ÈGÑTÔTÐTÐTÐTrV   c                  ó�   — t          j        d¦  «        } t          j        d¦  «        }| }|}dd„}t          || |||d¬¦  «         d S )Nr„  rq   c                 ó0   — t          t          | ||¦  «        S r¥   )r2   r+   )r½   rÔ   rb   s      rT   rU   z=test_averaging_binary_multilabel_all_zeroes.<locals>.<lambda>K  s   € Õ=RÝ˜ ¨'ñ>ô >€ rV   T)rl  )rq   )rP   r…  rr  )r½   r¾   rd  rc  Úbinary_metrics        rT   Ú+test_averaging_binary_multilabel_all_zeroesr‹  E  sp   € ÝŒX�gÑÔ€FÝŒX�gÑÔ€FØ€OØ€Oðð ð €Mõ ØØØØØØðñ ô ð ð ð rV   c                 ó®   — t          j        d¦  «        }t          j        d¦  «        }t          j        d¦  «        }|}|}t          | |||||¦  «         d S rƒ  )rP   Úonesrx  r†  s         rT   Ú"test_averaging_multilabel_all_onesrŽ  X  sW   € åŒW�WÑÔ€FÝŒW�WÑÔ€FÝŒg�gÑÔ€GØ€OØ€Oå�D˜& /°6¸?ÈGÑTÔTÐTÐTÐTrV   c                 ó¶  — t           j                             d¦  «        }|                     ddt	          |¦  «        ¬¦  «        }| dk    rt          |d¬¦  «        n|} |||d ¬¦  «        }t          | |||t          j        t	          |¦  «        ¬¦  «        ¬¦  «        d	| z  ¬
¦  «          ||||¬¦  «        }t          j	        t          ¦  «        5  t          ||¦  «         t          d|›d|›d| ›�¦  «        ‚# 1 swxY w Y    ||||                     ¦   «         ¬¦  «        }t          ||d|›d|›d| ›�¬
¦  «          |t          j        ||d¬¦  «        t          j        ||d¬¦  «        d ¬¦  «        }	t          ||	d| z  ¬
¦  «         |dd d…         }
t          j        |¦  «        }d|d d d…<   |dd d…         }|dd d…         } ||||
¬¦  «        } ||||¬¦  «        }t          ||d|›d|›d| ›�¬
¦  «         |                      d¦  «        s)dD ]&}t          | |||||z  ¬¦  «        d| z  ¬
¦  «         Œ'd                     t#          |¦  «        t#          |¦  «        t#          |¦  «        dz  ¦  «        }t          j	        t          |¬¦  «        5   |||t          j        ||g¦  «        ¬¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )Nr   rK   é
   r²   r0   )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 != rL   z.Weighting %s is not equal to repeating samplesr\   zUZeroing weights does not give the same result as removing the corresponding samples (Úunnormalized)r\   r  z/%s sample_weight is not invariant under scalingzJFound input variables with inconsistent numbers of samples: \[{}, {}, {}\]rÿ   )rP   ÚrandomÚRandomStater¸   rƒ   r   r5   r�  rÄ   rÅ   rÆ   rÇ   Útolistr  Úcopyru  rñ   r;   Ú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                     rT   Úcheck_sample_weight_invariancer¥  c  sE  € å
Œ)×
Ò
 Ñ
"Ô
"€CØ—K’K  2­C°©G¬G�KÑ4Ô4€Mð &*Ð-CÒ%CÐ%C�W�V˜qÐ!Ñ!Ô!Ð!È€Fð �v˜b "°DÐ9Ñ9Ô9ÐåØØˆˆr�2¥R¤Wµ3°r±7´7Ð%;Ñ%;Ô%;Ð<Ñ<Ô<ØSØ
ñðñ ô ð ð �V˜B °-Ð@Ñ@Ô@€Nõ 
Œ•~Ñ	&Ô	&ð 
ð 
ÝÐ(¨.Ñ9Ô9Ð9Ýˆjð )Ð(Ð(¨.¨.¨.¸$¸$ð@ñ
ô 
ð 	
ð
ð 
ð 
ð 
øøøð 
ð 
ð 
ð 
ð !˜&  R°}×7KÒ7KÑ7MÔ7MÐNÑNÔNÐÝØØÐð
 ˆ>ˆ>Ð.Ð.Ð.°°ð	6ðñ ô ð ð #˜FÝ
Œ	�"�m¨!Ð,Ñ,Ô,Ý
Œ	�"�m¨!Ð,Ñ,Ô,Øðñ ô Ðõ
 ØØØ@À4ÑGðñ ô ð ð )¨¨¨A¨Ô.ÐÝœ7 =Ñ1Ô1ÐØ !Ð˜˜˜1˜ÑØ�1�4�a�4”€IØ�1�4�a�4”€IØ"˜FØ�9Ð,@ðñ ô Ðð #˜F 2 rÐ9MÐNÑNÔNÐÝØØÐð
 !Ð Ð Ð"7Ð"7Ð"7¸¸ð	?ðñ ô ð ð �?Š?˜>Ñ*Ô*ð ð  ð 	ð 	ˆGÝØØ��r˜2¨]¸WÑ-DÐEÑEÔEØIÈDÑPðñ ô ð ð ð	#ß#)¢6Ý˜ÑÔ�l¨2Ñ.Ô.µ¸]Ñ0KÔ0KÈaÑ0Oñ$
ô $
ð õ 
Œ•z¨Ð	7Ñ	7Ô	7ð Pð PØˆˆr�2¥R¤Y°¸}Ð/MÑ%NÔ%NÐOÑOÔOÐOðPð Pð Pñ Pô Pð Pð Pð Pð Pð Pð Pð Pøøøð Pð Pð Pð Pð Pð Ps$   Ã)C=Ã=DÄDÊ#KËKËKc                 óÂ   — d}t          d¦  «        }|                     |f¬¦  «        }|                     |f¬¦  «        }t          |          }t          | |||¦  «         d S )Nr/  r   r²   )r<   Úrandom_sampler«   r¥  )r®   r3  r¼   r½   r¾   rÁ   s         rT   Ú(test_regression_sample_weight_invariancer¨  Å  sj   € ð €IÝ% aÑ(Ô(€Là×'Ò'¨i¨\Ð'Ñ:Ô:€FØ×'Ò'¨i¨\Ð'Ñ:Ô:€FÝ˜Ô€FÝ" 4¨°¸Ñ@Ô@Ð@Ð@Ð@rV   c                 ó2  — d}t          d¦  «        }|                     dd|f¬¦  «        }|                     dd|f¬¦  «        }|                     |f¬¦  «        }t          |          }| t          v rt          | |||¦  «         d S t          | |||¦  «         d S )Nr/  r   r\   r²   )r<   r¸   r§  r«   r©   r¥  )r®   r3  r¼   r½   r¾   rÔ   rÁ   s          rT   Ú$test_binary_sample_weight_invariancerª  Ö  s°   € ð €IÝ% aÑ(Ô(€LØ×!Ò! ! Q¨i¨\Ð!Ñ:Ô:€FØ×!Ò! ! Q¨i¨\Ð!Ñ:Ô:€FØ×(Ò(¨y¨lÐ(Ñ;Ô;€GÝ˜Ô€FØÕ"Ð"Ð"Ý& t¨V°V¸WÑEÔEÐEÐEÐEå& t¨V°V¸VÑDÔDÐDÐDÐDrV   c                 ó¸  — d}t          d¦  «        }|                     dd|f¬¦  «        }|                     dd|f¬¦  «        }|                     |df¬¦  «        }t          |          }| t          v rVt          j        | ¦  «        }||                     d¬¦  «                             dd¦  «        z  }t          | |||¦  «         d S t          | |||¦  «         d S )Nr/  r   r&  r²   rØ   rL   rK   )
r<   r¸   r§  r«   r©   rP   ÚexprO   rÛ   r¥  )	r®   r3  r¼   r½   r¾   rÔ   rÁ   ÚtempÚy_score_norms	            rT   Ú(test_multiclass_sample_weight_invariancer¯  í  së   € ð €IÝ% aÑ(Ô(€LØ×!Ò! ! Q¨i¨\Ð!Ñ:Ô:€FØ×!Ò! ! Q¨i¨\Ð!Ñ:Ô:€FØ×(Ò(¨y¸!¨nÐ(Ñ=Ô=€GÝ˜Ô€FØÕ"Ð"Ð"åŒv�w�hÑÔˆØ˜dŸhšh¨B˜hÑ/Ô/×7Ò7¸¸AÑ>Ô>Ñ>ˆÝ& t¨V°V¸\ÑJÔJÐJÐJÐJå& t¨V°V¸VÑDÔDÐDÐDÐDrV   c                 óŠ  — t          d¦  «        }t          ddddd¬¦  «        \  }}t          ddddd¬¦  «        \  }}t          j        ||g¦  «        }t          j        ||g¦  «        }|                     dd|j        ¬¦  «        }t          |          }| t          v rt          | |||¦  «         d S t          | |||¦  «         d S )	Nr   rK   r�  r/  Fr0  r  r²   )	r<   r   rP   r=  r¸   rÑ   r«   r©   r¥  )	r®   r¼   r+  ÚyaÚybr½   r¾   rÔ   rÁ   s	            rT   Ú(test_multilabel_sample_weight_invariancer³    sé   € õ & aÑ(Ô(€LÝ*Ø °¸bÐRWðñ ô �E€A€rõ +Ø °¸bÐRWðñ ô �E€A€rõ ŒY˜˜B�xÑ Ô €FÝŒY˜˜B�xÑ Ô €FØ×"Ò" 1 a¨f¬lÐ"Ñ;Ô;€Gå˜Ô€FØÕ"Ð"Ð"Ý& t¨V°V¸WÑEÔEÐEÐEÐEå& t¨V°V¸VÑDÔDÐDÐDÐDrV   c                  óþ  — t          j        g d¢g d¢g¦  «        } t          j        g d¢g d¢g¦  «        }t          j        g d¢¦  «        }t          j        g d¢¦  «        }t          j        g d¢¦  «        }t          j        |d¬¦  «        \  }}t          D ]e}||g| |gfD ]Z\  }}	|t          vr|	j        d	k    rŒt          |         }
 |
||	|d ¬
¦  «        } |
||	d ¬¦  «        }t          |||         ¦  «         Œ[Œfd S )N)rK   rK   r   r   )r   r   rK   rK   )r   rK   rK   r   )r   rK   r\   )r   r\   r  )r  r   rK   r\   T)Úreturn_inverserK   )rî   rb   rd   )rP   r„   Úuniquerv  r»   rÚ   r«   r7   )Úy_true_multilabelÚy_pred_multilabelÚy_true_multiclassÚy_pred_multiclassrî   r+  Úinverse_labelsr®   r½   r¾   rÁ   Úscore_labelsÚscores                rT   Útest_no_averaging_labelsr¾  "  sI  € õ œ , , ,°°°Ð!=Ñ>Ô>ÐÝœ , , ,°°°Ð!=Ñ>Ô>ÐÝœ   Ñ+Ô+ÐÝœ   Ñ+Ô+ÐÝŒX�l�l�lÑ#Ô#€FÝœ	 &¸Ð>Ñ>Ô>Ñ€A€~å&ð Dð DˆàÐ 1Ð2ØÐ 1Ð2ð
ð 	Dð 	D‰NˆF�Fð Õ.Ð.Ð.°6´;À²?°?Øå  Ô&ˆFà!˜6 &¨&¸ÈÐNÑNÔNˆLØ�F˜6 6°4Ð8Ñ8Ô8ˆEÝ˜|¨U°>Ô-BÑCÔCÐCÐCð	DðDð DrV   c                 óp  — t          d¦  «        }d\  }}|                     dd||f¬¦  «        }|                     dd||f¬¦  «        }t          |          } |||¦  «        }t          t	          |¦  «        |¦  «        D ]6}|d d …|f         }	|d d …|f         }
 ||
|	¦  «        }t          ||¦  «         Œ7d S )Nr   ©r±   r  r\   r²   )r<   r¸   r«   r   r(  r6   ©r®   r¼   r3  r2  r½   rÔ   rÁ   r½  r,  Úy_score_permÚy_true_permÚcurrent_scores               rT   Ú-test_multilabel_label_permutations_invariancerÅ  <  sæ   € õ & aÑ(Ô(€LØ Ñ€Iˆyà×!Ò! ! Q¨i¸Ð-CÐ!ÑDÔD€FØ×"Ò" 1 a¨y¸)Ð.DÐ"ÑEÔE€Gå˜Ô€FØˆF�6˜7Ñ#Ô#€Eå�U 9Ñ-Ô-¨yÑ9Ô9ð 2ð 2ˆØ˜q˜q˜q $˜wÔ'ˆØ˜Q˜Q˜Q ˜W”oˆà˜˜{¨LÑ9Ô9ˆÝ˜E =Ñ1Ô1Ð1Ð1ð2ð 2rV   c                 ó>  — t          d¦  «        }d\  }}|                     dd||f¬¦  «        }|                     |j        ¬¦  «        }d||                     d¦  «        dk    df<   d||                     d¦  «        dk    df<   t
          |          } |||¦  «        }t          t          |¦  «        |¦  «        D ]`}|d d …|f         }	|d d …|f         }
 ||
|	¦  «        }|t          k    rt          j
        |¦  «        sJ ‚|dk    sJ ‚ŒPt          ||¦  «         Œad S )Nr   rÀ  r\   r²   rK   r  g    €„.A)r<   r¸   rÐ   rÑ   rO   r«   r   r(  r!   rP   r  r6   rÁ  s               rT   Ú?test_thresholded_multilabel_multioutput_permutations_invariancerÇ  Q  sU  € õ & aÑ(Ô(€LØ Ñ€IˆyØ×!Ò! ! Q¨i¸Ð-CÐ!ÑDÔD€FØ×!Ò! v¤|Ð!Ñ4Ô4€Gð %&€Fˆ6�:Š:�a‰=Œ=˜AÒ˜qÐ Ñ!Ø$%€Fˆ6�:Š:�a‰=Œ=˜AÒ˜qÐ Ñ!å˜Ô€FØˆF�6˜7Ñ#Ô#€Eå�U 9Ñ-Ô-¨yÑ9Ô9ð 6ð 6ˆØ˜q˜q˜q $˜wÔ'ˆØ˜Q˜Q˜Q ˜W”oˆà˜˜{¨LÑ9Ô9ˆØÕ3Ò3Ð3Ý”;˜}Ñ-Ô-Ð-Ð-Ð-Ø  3Ò&Ð&Ð&Ð&Ð&õ    }Ñ5Ô5Ð5Ð5ð6ð 6rV   c                 óx  — d\  }}t          d¦  «        }|                     ||¦  «        }t          j        | ¦  «        }||                     d¬¦  «                             dd¦  «        z  }|                     d||¬¦  «        }t          |          } |||¦  «        }t          t          |¦  «        |¦  «        D ]~}	t          j
        |t          ¬¦  «        }
t          j        |¦  «        |
t          |	¦  «        <   |d d …|
f         }t          j        |	|¦  «        } |||¦  «        }t          ||¦  «         Œd S )N)r^  r  r   rØ   rL   rK   r²   rL  )r<   ÚrandrP   r¬  rO   rÛ   r¸   r«   r   r(  r…  rk  ÚarangerÙ   Útaker6   )r®   r3  r2  r¼   rÔ   r­  r½   rÁ   r½  r,  Úinverse_permrÂ  rÃ  rÄ  s                 rT   Ú.test_thresholded_metric_permutation_invariancerÍ  r  s>  € ð "Ñ€IˆyÝ% aÑ(Ô(€Là×Ò 	¨9Ñ5Ô5€GÝŒ6�7�(ÑÔ€DØ�T—X’X 2�XÑ&Ô&×.Ò.¨r°1Ñ5Ô5Ñ5€GØ×!Ò! ! Y°YÐ!Ñ?Ô?€Få˜Ô€FØˆF�6˜7Ñ#Ô#€EÝ�U 9Ñ-Ô-¨yÑ9Ô9ð 2ð 2ˆÝ”x 	µÐ5Ñ5Ô5ˆÝ#%¤9¨YÑ#7Ô#7ˆ•T˜$‘Z”ZÑ Ø˜q˜q˜q ,˜Ô/ˆÝ”g˜d FÑ+Ô+ˆà˜˜{¨LÑ9Ô9ˆÝ˜E =Ñ1Ô1Ð1Ð1ð2ð 2rV   Úmetric_namec                 ób  — t           j                             d¦  «        }t          j        dgdz  dgdz  z   t          ¬¦  «        }|                     dd|j        ¬¦  «        }d	}t          j        t          |¬
¦  «        5  t          |          ||¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )Né*   rè   r  rç   r\   rL  r   r²   z7Labels in y_true and y_pred should be of the same type.rÿ   )rP   r“  r”  r„   rK  r¸   r³   rÄ   rÅ   Ú	TypeErrorrï   )rÎ  r˜  r    r¡   r·   s        rT   Ú"test_metrics_consistent_type_errorrÒ  Š  sê   € õ Œ)×
Ò
 Ñ
#Ô
#€CÝ	Œ�6�(˜Q‘, & ¨A¡Ñ-µVÐ	<Ñ	<Ô	<€BØ	�Š�Q˜ ¤ˆÑ	(Ô	(€BàG€GÝ	Œ•y¨Ð	0Ñ	0Ô	0ð 4ð 4Ý˜{Ô+¨B°Ñ3Ô3Ð3ð4ð 4ð 4ñ 4ô 4ð 4ð 4ð 4ð 4ð 4ð 4ð 4øøøð 4ð 4ð 4ð 4ð 4ð 4s   Â B$Â$B(Â+B(zmetric, y_pred_thresholdÚdtype_y_strc                 óÚ  — t           j                             d¦  «        }t          j        dgdz  dgdz  z   |¬¦  «        }|                     dd|j        ¬¦  «        }|st          j        ddg|¬¦  «        |         }d	}d
}t          | ¦  «        j        d         j        }|dk    r|n|}	t          j
        t          |	¬¦  «        5   | ||¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )NrÐ  rè   r  rç   r\   rL  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ê   rK   rÿ   )rP   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
             rT   Ú test_metrics_pos_label_error_strrÛ  —  sK  € õ$ Œ)×
Ò
 Ñ
#Ô
#€CÝ	Œ�6�(˜Q‘, & ¨A¡Ñ-°[Ð	AÑ	AÔ	A€BØ	�Š�Q˜ ¤ˆÑ	(Ô	(€Bàð ?ÝŒX�v˜vÐ&¨kÐ:Ñ:Ô:¸2Ô>ˆð	"ð ð 	Xð õ " &Ñ)Ô)Ô4°[ÔAÔIÐà%6¸!Ò%;Ð%;Ð!Ð!ÐAW€GÝ	Œ•z¨Ð	1Ñ	1Ô	1ð ð Øˆˆr�2‰Œˆðð ð ñ ô ð ð ð ð ð ð ð øøøð ð ð ð ð ð s   ÃC Ã C$Ã'C$)—Ú	functoolsr   Úinspectr   Ú	itertoolsr   r   r   ÚnumpyrP   rÄ   Úscipy.sparseÚsparser>  Úsklearn.datasetsr   Úsklearn.metricsr	   r
   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r    r!   r"   r#   r$   r%   r&   r'   r(   r)   r*   r+   r,   r-   r.   r/   r0   r1   Úsklearn.metrics._baser2   Úsklearn.preprocessingr3   Úsklearn.utilsr4   Úsklearn.utils._testingr5   r6   r7   r8   r9   Úsklearn.utils.multiclassr:   Úsklearn.utils.validationr;   r<   ÚREGRESSION_METRICSrï   rŒ   ÚCURVE_METRICSr©   Údictr«   Úupdaterº   ÚMETRIC_UNDEFINED_MULTICLASSÚunionrª   rv  rw  rð   rò   ÚMETRICS_WITH_NORMALIZE_OPTIONrÒ   r»   rÓ   r¦   r§   ÚMETRICS_WITHOUT_SAMPLE_WEIGHTr¹   r£   r­   ÚmarkÚparametrizeÚsortedrÂ   rÈ   r¨   rÎ   rÖ   rå   rû   rý   Úinfr‡   Úinvalids_nan_infr  r  r  r  r  r  r  r!  r$  r-  rI  rP  rZ  r\  Úintersectionr_  rr  rx  r}  r�  r‡  r‹  rŽ  r¥  r¨  rª  r¯  r³  r¾  rÅ  rÇ  rÍ  rÒ  ÚstrrK  rÛ  r¬   rV   rT   ú<module>rù     s¤  ðØ Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø 2Ð 2Ð 2Ð 2Ð 2Ð 2Ð 2Ð 2Ð 2Ð 2à Ð Ð Ð Ø €€€Ø Ð Ð Ð Ð Ð à ;Ð ;Ð ;Ð ;Ð ;Ð ;ð*ð *ð *ð *ð *ð *ð *ð *ð *ð *ð *ð *ð *ð *ð *ð *ð *ð *ð *ð *ð *ð *ð *ð *ð *ð *ð *ð *ð *ð *ð *ð *ð *ð *ð *ð *ð *ð *ð *ð *ð *ð *ð *ð *ð *ð *ð *ð *ð *ð *ð *ð *ð *ð *ð *ð *ð *ð *ð *ð *ð *ð *ð *ð *ð *ð *ð *ð *ð *ð *ð *ð *ð *ð *ð *ð *ð *ð *ð *ð *ð *ð *ð *ð *ð *ð *ðV 8Ð 7Ð 7Ð 7Ð 7Ð 7Ø 0Ð 0Ð 0Ð 0Ð 0Ð 0Ø !Ð !Ð !Ð !Ð !Ð !ðð ð ð ð ð ð ð ð ð ð ð ð ð ð 4Ð 3Ð 3Ð 3Ð 3Ð 3Ø EÐ EÐ EÐ EÐ EÐ EÐ EÐ EðH Ø.Ø,Ø*Ø2Ø&DØ 8Ø�˜Ð.AÐBÑBÔBØ#˜GÐ$9ÀÐCÑCÔCØ2Ø.Ø&- gÐ.CÈ3Ð&OÑ&OÔ&OØ˜Ð 0¸Ð<Ñ<Ô<Ø(Ø6ðð Ð ð$6Ø�nð6àÐ6ð6ð '¨¨Ð0GÐRVÐ(WÑ(WÔ(Wð6ð " 7 7¨>ÀUÐ#KÑ#KÔ#Kð	6ð $Ð%5ð6ð "ð $ð $ð6ð /Ð0Kð6ð 6°w°wØ#°ð8ñ 8ô 8ð6ð$ �Lð%6ð& �]ð'6ð( ! ' '¨-À5Ð"IÑ"IÔ"Ið)6ð, �]ð-6ð. �ð/6ð0 �Lð16ð2 �ð36ð4 ��˜¨!Ð,Ñ,Ô,ð56ð6 �'�'˜+¨CÐ0Ñ0Ô0ð76ð 6ð8 Ð0ð96ð: ˜7˜7 ;¸
ÈÐMÑMÔMð;6ð< ˜˜ °:Ð>Ñ>Ô>ð=6ð> ˜˜ °jÀqÐIÑIÔIð?6ð@   ¨ÀÐ LÑ LÔ LðA6ðB ˜W˜W \¸:ÐFÑFÔFðC6ðD ˜g˜g m¸ZÐHÑHÔHðE6ðF ˜˜ °WÀ3ÐGÑGÔGðG6ðH �g�g˜h°Ð8Ñ8Ô8ðI6ðJ �g�g˜k°7ÀÐCÑCÔCðK6ðL ˜W˜W _¸gÐFÑFÔFðM6ðN ˜'˜' ,¸Ð@Ñ@Ô@ðO6ðP ˜7˜7 =¸'ÐBÑBÔBðQ6ðR ˜˜ °WÀ3ÐGÑGÔGðS6ðT �g�g˜h°Ð8Ñ8Ô8ðU6ðV �g�g˜k°7ÀÐCÑCÔCðW6ðX ˜W˜W _¸gÐFÑFÔFðY6ð 6ðZ "˜' ,¸Ð@Ñ@Ô@Ø"˜7 =¸'ÐBÑBÔBØ!˜' +°yÀsÐKÑKÔKØ˜ °)Ð<Ñ<Ô<Ø˜ °YÀQÐGÑGÔGØ&˜w À	ÐJÑJÔJØ#˜G L¸)ÐDÑDÔDØ$˜W ]¸IÐFÑFÔFØ*ðk6ð 6ð 6Ð ðrð ð ð@ ØFØðð €ð Ø�nð àÐ,ð ð �ð ð ˜W˜W X¸Ð?Ñ?Ô?ð	 ð
 �*ð ð Ð(ð ð �]ð ð ˜˜ °zÐBÑBÔBð ð �w�w˜}°iÐ@Ñ@Ô@ð ð �W�W˜]°GÐ<Ñ<Ô<ð ð �7�7˜=°'ÀuÐMÑMÔMð ð ˜G˜GØ˜z°uðñ ô ð ð �7�7˜=°'ÀuÐMÑMÔMð ð  ˜G˜GØ˜z°uðñ ô ð! ð& �w�w˜}°cÐ:Ñ:Ô:ð' ð( Ð6ð) ð* '¨¨Ø¨ð)ñ )ô )ð+ ð0 (/ wØ¨ð(ñ (ô (ð &- WÐ-DÈgÐ%VÑ%VÔ%VØ-RØØØ0ð? ð  ð  Ð ðD ˆd‰fŒf€Ø × Ò Ð&Ñ 'Ô 'Ð 'Ø × Ò Ð)Ñ *Ô *Ð *Ø × Ò Ð%Ñ &Ô &Ð &Ø × Ò �=Ñ !Ô !Ð !ðð ð Ð ð ð ð Ð ð* &=×%BÒ%BØñ&ô &Ð "ð
ð ð Ð ð&ð &ð &Ð "ðð ð Ð ð(!ð !ð !Ð ðH!ð !ð !Ð ð"ð "ð "Ð ð(ð ð Ð ðD
ð 
ð 
Ð ðð ð Ð ðB ð  ð  Ð ðH!ð !ð !Ð ðð ð Ð ðð ð ð	@ð 	@ð 	@ð „×Ò˜  Ð(9Ñ!:Ô!:Ñ;Ô;ð
ð 
ñ <Ô;ð
ð< „×Ò˜  Ð(=Ñ!>Ô!>Ñ?Ô?ð<ð <ñ @Ô?ð<ð" „×ÒØ
ˆFˆF�3�3�{Ñ#Ô#Ð&HÑHÑIÔIñô ð
ð 
ñô ð
ð& ð'
ð '
ñ „ð'
ðT „×ÒØ
ˆFˆF�3�3�{Ñ#Ô#Ð&HÑHÑIÔIñô ðs'ð s'ñô ðs'ðl „×ÒØ
ˆFˆF�3�3Ð-Ñ.Ô.Ð1SÑSÑTÔTñô ð2ð 2ñô ð2ðj „×Ò˜Ð!4Ñ5Ô5ð'/ð '/ñ 6Ô5ð'/ðV ˆ€VˆbŒf�b”fÐÐØˆ€VˆbŒf�b”fÐÐØˆ€VˆbŒf�b”fÐÐØˆ€VˆbŒf�aˆ[ÐØˆ€VˆbŒf�aˆ[ÐðÐ ð „×ÒØˆeˆeÐ'×.Ò.Ñ0Ô0Ð2D×2KÒ2KÑ2MÔ2MÑNÔNñô ð „×ÒÐ*Ð,<Ñ=Ô=ð ð  ñ >Ô=ñô ð ð „×Ò˜Ð#9×#@Ò#@Ñ#BÔ#BÑCÔCØ„×ÒØØð
 Œ&�!�Qˆ˜˜˜Ð#Ø
Œ&�!�Qˆ˜˜˜Ð#ðñ	ñ
ô 
ð ð  ñ
ô 
ñ DÔCð ð, „×Ò˜Ð#9×#@Ò#@Ñ#BÔ#BÑCÔCð ð  ñ DÔCð ð ðð ñ „ðð  ð7ð 7ñ „ð7ð „×ÒØ
Ø
€FØˆˆKÑÔð -ñ	-ð ˆ#Ð!Ñ
"Ô
"ñ		#ñô ñ	ô 	ðð ñ	ô 	ðð „×Ò˜  Ð(;Ð>QÑ(QÑ!RÔ!RÑSÔSð*ð *ñ TÔSð*ð „×Ò˜  Ð(;Ñ!<Ô!<Ñ=Ô=ðð ñ >Ô=ðð „×Ò˜  Ð(;Ñ!<Ô!<Ñ=Ô=ð
ð 
ñ >Ô=ð
ð$ ðH
ð H
ñ „ðH
ðV „×Ò˜  Ð(;Ñ!<Ô!<Ñ=Ô=ðð ñ >Ô=ðð  „×Ò˜  Ð(EÑ!FÔ!FÑGÔGðð ñ HÔGðð8 „×Ò˜  Ð(EÑ!FÔ!FÑGÔGðð ñ HÔGðð8 „×ÒØ
ˆFˆFÐ0×=Ò=Ð>QÑRÔRÑSÔSñô ð,ð ,ñô ð,ð^ ð32ð 32ñ „ð32ðlOð Oð Oð" „×Ò˜  Ð(>Ñ!?Ô!?Ñ@Ô@ðUð Uñ AÔ@ðUð „×ÒØ
ˆFˆFÐ)Ð,NÑNÑOÔOñô ðUð Uñô ðUð$ „×Ò˜  Ð(>Ñ!?Ô!?Ñ@Ô@ðUð Uñ AÔ@ðUðð ð ð& „×Ò˜  Ð(>Ñ!?Ô!?Ñ@Ô@ðUð Uñ AÔ@ðUð ð^Pð ^Pñ „ð^PðB „×ÒØ
Ø
€FØˆˆKÑÔ×%Ò% c cÐ*<Ñ&=Ô&=Ñ>Ô>Ø
'ñ	(ñô ñô ðAð Añô ðAð „×ÒØ
Ø
€FØˆˆKÑÔØ
ˆ#Ð Ñ
!Ô
!ñ	"à
'ñ	(ð "ñ	"ñô ñô ðEð Eñô ðEð „×ÒØ
Ø
€FØˆˆKÑÔØ
ˆ#Ð Ñ
!Ô
!ñ	"à
'ñ	(ð -ñ	-ñô ñô ðEð Eñô ðEð" „×ÒØ
Ø
€FØ	Ð=Ñ	=Ð@SÑ	SØ
'ñ	(ñô ñô ðEð Eñô ðEð( ðDð Dñ „ðDð2 „×ÒØ
ˆFˆFÐ&Ð*TÐ)UÑUÑVÔVñô ð2ð 2ñô ð2ð$ „×ÒØ
ˆFˆFÐ1Ð4GÑGÑHÔHñô ð6ð 6ñô ð6ð< „×ÒØ
ˆFˆF�3�3Ð*Ñ+Ô+Ð.PÑPÑQÔQñô ð2ð 2ñô ð2ð* „×Ò˜Ð(>Ñ?Ô?ð	4ð 	4ñ @Ô?ð	4ð „×ÒØà	  $Ð'Ø	˜4Ð Ø	�5ÐØ	ˆ� 1Ð	%Ñ	%Ô	% uÐ-Ø	˜ÐØ	 Ð&Ø	˜%Ð Ø	�uÐØ	�DÐð
ñô ð „×Ò˜¨¨f¨Ñ6Ô6ðð ñ 7Ô6ñô ðð ð rV   