Ë
    ÜÍ:jA  ã                   óÈ  — d dl Z d dlZd dlZd dlmZ d dlmZmZ d dl	m
Z
mZmZ d dlmZ d dlmZmZ d dlmZ d dlmZ d d	lmZmZ d d
lmZmZ d dlmZ  e
d¬«      \  ZZ eed¬«      Zedd edd cZ Z!ejD                  jG                  d e«       df e«       ddgf ed¬«      df ed¬«      ddgf e«       df e«       df e«       ddgfg«      d„ «       Z$ejD                  jG                  d e«       df edd ¬«      df edd ¬«      df edd ¬«      ddgf ed ¬«      df ed ¬«      df ed ¬«      ddgfg«      ejD                  jG                  dddg«      d„ «       «       Z%ejD                  jG                  dg d¢«      d„ «       Z&ejD                  jG                  ddd g«      d!„ «       Z'ejD                  jG                  dddg«      d"„ «       Z(ejD                  jG                  dddg«      ejD                  jG                  ddd g«      d#„ «       «       Z)ejD                  jG                  d$ e«       e e!d%dd&if e«       e e!d'd&d(d)œf e«       eed*ddifg«      d+„ «       Z*ejD                  jG                  dddg«      d,„ «       Z+ejD                  jG                  dddg«      d-„ «       Z,ejD                  jG                  d edd ¬.«      df edd ¬.«      d f e«       dfg«      d/„ «       Z-d0„ Z.ejD                  jG                  dg d1¢«      d2„ «       Z/d3„ Z0ejD                  jG                  d4 e«       dd5d6f e«       dd5d6f e«       dd5d6f e«       dd7d6f e«       dd7d8f e«       dd7d8f e e«       «      dd9d:f e e«       «      dd9d:f e e«       «      dd9d:f e«       dd5d6f e«       dd7d6f e«       dd5d6f e«       dd7d6f ed¬«      dd5d6f ed;¬«      dd7d6fg«      d<„ «       Z1y)=é    N)Úclone)ÚDBSCANÚKMeans)Ú	load_irisÚmake_classificationÚmake_multilabel_classification)ÚIsolationForest)ÚLinearRegressionÚLogisticRegression)ÚClassifierChain)Úscale)ÚDecisionTreeClassifierÚDecisionTreeRegressor)Ú_get_response_valuesÚ_get_response_values_binary)Úassert_allcloseT)Ú
return_X_yF)Úcopyéd   zestimator, response_methodÚpredict_probaÚdecision_functioné   )Ú
n_clustersÚpredictÚscorec                 óL  — t         j                  j                  d«      j                  dd«      t        j                  ddgdz  «      }}t        | «      j                  ||«      } d}t        j                  t        |¬«      5  t        | ||¬«       d	d	d	«       y	# 1 sw Y   y	xY w)
z;Check the error message with not supported response method.r   é
   r   é   é   z%has none of the following attributes:©Úmatch©Úresponse_methodN)ÚnpÚrandomÚRandomStateÚrandnÚarrayr   ÚfitÚpytestÚraisesÚAttributeErrorr   )Ú	estimatorr#   ÚXÚyÚerr_msgs        úv/home/mcse/projects/srt_converter/srt-converter-venv/lib/python3.12/site-packages/sklearn/utils/tests/test_response.pyÚ#test_estimator_unsupported_responser2      sŠ   € ô �9‰9× Ñ  Ó#×)Ñ)¨"¨aÓ0´"·(±(¸A¸q¸6ÀA¹:Ó2F€q€AÜ�iÓ ×$Ñ$ Q¨Ó*€IØ5€GÜ	�‰”~¨WÔ	5ñ 
ÜØØØ+õ	
÷
÷ 
ñ 
ús   ÂBÂB#)r   Úrandom_state©r3   Úreturn_response_method_usedc                 ó‚  — t         j                  j                  d«      j                  dd«      t        j                  ddgdz  «      }}t        | «      j                  ||«      } t        | |||¬«      }t        |t        «      r|d   n|}t        | |«      }t        |d    ||«      «       |d   �J ‚|r|d   |k(  sJ ‚yy)z.Check the behaviour of `_get_response_values`.r   r   r   r   r   ©r#   r5   N)r$   r%   r&   r'   r(   r   r)   r   Ú
isinstanceÚlistÚgetattrr   )r-   r#   r5   r.   r/   ÚresultsÚchosen_response_methodÚprediction_methods           r1   Ú"test_estimator_get_response_valuesr>   4   sÐ   € ô" �9‰9× Ñ  Ó#×)Ñ)¨"¨aÓ0´"·(±(¸A¸q¸6ÀA¹:Ó2F€q€AÜ�iÓ ×$Ñ$ Q¨Ó*€IÜ"ØØ	Ø'Ø$?ô	€Gô )¨¼$Ô?ˆ˜ÒÀ_ð ô   	Ð+AÓBÐÜ�G˜A‘JÑ 1°!Ó 4Ô5Ø�1‰:ÐÐÐÙ"Ø�q‰zÐ3Ò3Ð3Ñ3ð #ó    r#   )r   r   r   Úpredict_log_probac                 óÜ   — t        ddd¬«      \  }}t        «       j                  ||«      }d}t        j                  t
        |¬«      5  t        ||| d¬«       d	d	d	«       y	# 1 sw Y   y	xY w)
zVCheck that `_get_response_values` raises the proper error message with
    classifier.r   r   r   ©Ú	n_samplesÚ	n_classesr3   zDpos_label=whatever is not a valid label: It should be one of \[0 1\]r    Úwhatever©r#   Ú	pos_labelN)r   r   r)   r*   r+   Ú
ValueErrorr   )r#   r.   r/   Ú
classifierr0   s        r1   Ú5test_get_response_values_classifier_unknown_pos_labelrJ   W   sj   € ô ¨°qÀqÔI�D€A€qÜ#Ó%×)Ñ)¨!¨QÓ/€Jð V€GÜ	�‰”z¨Ô	1ñ 
ÜØØØ+Ø õ		
÷
÷ 
ñ 
ús   Á	A"Á"A+r@   c                 ó  — t        ddd¬«      \  }}t        j                  |«      }t        «       j	                  ||«      }d}t        j                  t        |¬«      5  t        ||| ¬«       ddd«       y# 1 sw Y   yxY w)	zpCheck that `_get_response_values` will raise an error when `y_pred` has a
    single class with `predict_proba`.r   r   r   rB   zJGot predict_proba of shape \(10, 1\), but need classifier with two classesr    r"   N)	r   r$   Ú
zeros_liker   r)   r*   r+   rH   r   )r#   r.   Úy_two_classÚy_single_classrI   r0   s         r1   ÚHtest_get_response_values_classifier_inconsistent_y_pred_for_binary_probarO   l   sy   € ô )°2ÀÐQRÔS�N€A€{Ü—]‘] ;Ó/€NÜ'Ó)×-Ñ-¨a°Ó@€Jð	ð ô 
�‰”z¨Ô	1ñ MÜ˜Z¨¸OÕL÷M÷ Mñ Mús   ÁA6Á6A?c                 ó–  — t        ddddgd¬«      \  }}t        «       j                  ||«      }d}t        |||d| ¬	«      }t	        |d   |j                  |«      «       |d
   d
k(  sJ ‚| r
|d   dk(  sJ ‚t        ||||j                  d   | ¬	«      }t	        |d   |j                  |«      dz  «       |d
   dk(  sJ ‚| r|d   dk(  sJ ‚yy)zaCheck the behaviour of `_get_response_values` with `decision_function`
    and binary classifier.r   r   ç333333Ó?çffffffæ?r   ©rC   rD   Úweightsr3   r   N©r#   rG   r5   r   éÿÿÿÿ)r   r   r)   r   r   r   Úclasses_)r5   r.   r/   rI   r#   r;   s         r1   Ú<test_get_response_values_binary_classifier_decision_functionrX   ~   s  € ô ØØØ�c�
Øô	�D€A€qô $Ó%×)Ñ)¨!¨QÓ/€JØ)€Oô #ØØ	Ø'ØØ$?ô€Gô �G˜A‘J 
× <Ñ <¸QÓ ?Ô@Ø�1‰:˜Š?Ðˆ?Ù"Ø�q‰zÐ0Ò0Ð0Ð0ô #ØØ	Ø'Ø×%Ñ% aÑ(Ø$?ô€Gô �G˜A‘J 
× <Ñ <¸QÓ ?À"Ñ DÔEØ�1‰:˜Š?Ðˆ?Ù"Ø�q‰zÐ0Ò0Ð0Ñ0ð #r?   c                 óÌ  — t        ddddgd¬«      \  }}t        «       j                  ||«      }t        |||d| ¬«      }t	        |d    t        ||«      |«      dd…d	f   «       |d	   d	k(  sJ ‚| rt        |«      d
k(  sJ ‚|d   |k(  sJ ‚t        |«      dk(  sJ ‚t        ||||j                  d   | ¬«      ^}}}t	        | t        ||«      |«      dd…df   «       |dk(  sJ ‚y)zQCheck that `_get_response_values` with `predict_proba` and binary
    classifier.r   r   rQ   rR   r   rS   NrU   r   é   )r   r   r)   r   r   r:   ÚlenrW   )	r5   r#   r.   r/   rI   r;   Úy_predrG   Ú_s	            r1   Ú8test_get_response_values_binary_classifier_predict_probar^   ¨   s"  € ô ØØØ�c�
Øô	�D€A€qô $Ó%×)Ñ)¨!¨QÓ/€Jô #ØØ	Ø'ØØ$?ô€Gô �G˜A‘JÐ D¤¨
°OÓ DÀQÓ GÊÈ1ÈÑ MÔNØ�1‰:˜Š?Ðˆ?Ù"Ü�7‹|˜qÒ Ð Ð Ø�q‰z˜_Ò,Ð,Ð,ä�7‹|˜qÒ Ð Ð ô 1ØØ	Ø'Ø×%Ñ% aÑ(Ø$?ôÐ€FˆI˜ô �FÐ@œG J°Ó@ÀÓCÂAÀqÀDÑIÔJØ˜Š>Ð‰>r?   z estimator, X, y, err_msg, paramsz.Expected 'estimator' to be a binary classifierÚautozCpos_label=unknown is not a valid label: It should be one of \[0 1\]ÚunknownrF   z.be a binary classifier. Got 3 classes instead.c                 ó´   — t        | «      j                  ||«      } t        j                  t        |¬«      5  t        | |fi |¤Ž ddd«       y# 1 sw Y   yxY w)zMCheck that we raise the proper error messages in _get_response_values_binary.r    N)r   r)   r*   r+   rH   r   )r-   r.   r/   r0   Úparamss        r1   Útest_get_response_errorrc   Ó   sM   € ô: �iÓ ×$Ñ$ Q¨Ó*€IÜ	�‰”z¨Ô	1ñ <Ü# I¨qÑ;°FÒ;÷<÷ <ñ <ús   ·AÁAc                 ó”  — t        «       j                  t        t        «      }t	        |t        d| ¬«      }t        |d   |j                  t        «      dd…df   «       |d   dk(  sJ ‚| r
|d   dk(  sJ ‚t	        |t        dd| ¬«      }t        |d   |j                  t        «      dd…df   «       |d   dk(  sJ ‚| r|d   dk(  sJ ‚yy)zKCheck the behaviour of `_get_response_values_binary` using `predict_proba`.r   r7   r   Nr   r   rU   )r   r)   ÚX_binaryÚy_binaryr   r   r   ©r5   rI   r;   s      r1   Útest_get_response_predict_probarh   õ   sß   € ô (Ó)×-Ñ-¬h¼ÓA€JÜ)ØÜØ'Ø$?ô	€Gô �G˜A‘J 
× 8Ñ 8¼Ó BÂ1ÀaÀ4Ñ HÔIØ�1‰:˜Š?Ðˆ?Ù"Ø�q‰z˜_Ò,Ð,Ð,ä)ØÜØ'ØØ$?ô€Gô �G˜A‘J 
× 8Ñ 8¼Ó BÂ1ÀaÀ4Ñ HÔIØ�1‰:˜Š?Ðˆ?Ù"Ø�q‰z˜_Ò,Ð,Ñ,ð #r?   c                 ó~  — t        «       j                  t        t        «      }t	        |t        d| ¬«      }t        |d   |j                  t        «      «       |d   dk(  sJ ‚| r
|d   dk(  sJ ‚t	        |t        dd| ¬«      }t        |d   |j                  t        «      dz  «       |d   dk(  sJ ‚| r|d   dk(  sJ ‚yy)	zMCheck the behaviour of `_get_response_values_binary` using decision_function.r   r7   r   r   r   rU   rV   N)r   r)   re   rf   r   r   r   rg   s      r1   Ú#test_get_response_decision_functionrj     sÔ   € ô $Ó%×)Ñ)¬(´HÓ=€JÜ)ØÜØ+Ø$?ô	€Gô �G˜A‘J 
× <Ñ <¼XÓ FÔGØ�1‰:˜Š?Ðˆ?Ù"Ø�q‰zÐ0Ò0Ð0Ð0ä)ØÜØ+ØØ$?ô€Gô �G˜A‘J 
× <Ñ <¼XÓ FÈÑ KÔLØ�1‰:˜Š?Ðˆ?Ù"Ø�q‰zÐ0Ò0Ð0Ñ0ð #r?   )Ú	max_depthr3   c                 ó„  — t        | «      j                  t        t        «      } t	        | t        |¬«      \  }}|�J ‚|j
                  t        j
                  d   t        | j                  «      fk(  sJ ‚|dk(  r-t        j                  |dk\  |dk  «      j                  «       sJ ‚y|dk(  r|dk  j                  «       sJ ‚yy)zCheck that we can call `_get_response_values` with a multiclass estimator.
    It should return the predictions untouched.
    r"   Nr   r   r   r@   g        )r   r)   r.   r/   r   Úshaper[   rW   r$   Úlogical_andÚall)r-   r#   ÚpredictionsrG   s       r1   Ú#test_get_response_values_multiclassrq   -  s¿   € ô �iÓ ×$Ñ$¤Q¬Ó*€IÜ1Ø”1 oôÑ€K�ð ÐÐÐØ×Ñ¤§¡¨¡¬S°×1CÑ1CÓ-DÐ EÒEÐEÐEØ˜/Ò)Ü�~‰~˜k¨QÑ.°¸qÑ0@ÓA×EÑEÔGÐGÑGØ	Ð/Ò	/Ø˜sÑ"×'Ñ'Ô)Ð)Ñ)ð 
0r?   c                  ón  — t        «       j                  t        t        «      } t	        | t        ddgd¬«      \  }}}t        || j                  t        «      dd…df   «       |dk(  sJ ‚|dk(  sJ ‚t	        | t        ddgd¬«      \  }}}t        || j                  t        «      «       |dk(  sJ ‚|dk(  sJ ‚y)zMCheck the behaviour of passing a list of responses to `_get_response_values`.r   r   Tr7   Nr   )r   r)   re   rf   r   r   r   r   )rI   r\   rG   r#   s       r1   Ú+test_get_response_values_with_response_listrs   F  sÌ   € ä#Ó%×)Ñ)¬(´HÓ=€Jô *>ØÜØ(Ð*=Ð>Ø$(ô	*Ñ&€FˆI�ô �F˜J×4Ñ4´XÓ>ºqÀ!¸tÑDÔEØ˜Š>Ðˆ>Ø˜oÒ-Ð-Ð-ô *>ØÜØ,¨oÐ>Ø$(ô	*Ñ&€FˆI�ô �F˜J×8Ñ8¼ÓBÔCØ˜Š>Ðˆ>ØÐ1Ò1Ð1Ñ1r?   )r   r   r   c                 óð  — t        d¬«      \  }}t        t        «       «      j                  ||«      }t	        ||| ¬«      \  }}|�J ‚|j
                  |j
                  k(  sJ ‚| dk(  r-t        j                  |dk\  |dk  «      j                  «       sJ ‚y | dk(  r1|dk  j                  «       dkD  sJ ‚|dkD  j                  «       dkD  sJ ‚y t        j                  |dk(  |dk(  «      j                  «       sJ ‚y )Nr   r4   r"   r   r   r   )r   r   r   r)   r   rm   r$   rn   ro   ÚsumÚ
logical_or)r#   r.   ÚYr-   r\   rG   s         r1   Ú-test_get_response_values_multilabel_indicatorrx   a  sø   € ô *°qÔ9�D€A€qÜÔ 2Ó 4Ó5×9Ñ9¸!¸QÓ?€Iä,Ø�1 oôÑ€FˆIð ÐÐÐØ�<‰<˜1Ÿ7™7Ò"Ð"Ð"à˜/Ò)Ü�~‰~˜f¨™k¨6°Q©;Ó7×;Ñ;Ô=Ð=Ñ=Ø	Ð/Ò	/à˜‘
×ÑÓ! AÒ%Ð%Ð%Ø˜‘
×ÑÓ! AÒ%Ð%Ñ%ä�}‰}˜V q™[¨&°A©+Ó6×:Ñ:Ô<Ð<Ñ<r?   c                  óŠ  — t         j                  j                  d«      j                  dd«      } t        j                  t        j
                  d«      d«      }t        «       j                  | |«      }t        j                  «       5  t        j                  dt        «       t        || d¬«       d	d	d	«       y	# 1 sw Y   y	xY w)
a  
    Ensure `_get_response_values` doesn't raise spurious warning.

    "The number of unique classes is greater than > 50% of samples"
    warning should not be raised when calling `type_of_target(classes_)`.

    Non-regression test for issue #31583.
    r   éx   rZ   é   é   Úerrorr   r"   N)r$   r%   r&   r'   ÚrepeatÚaranger   r)   ÚwarningsÚcatch_warningsÚsimplefilterÚUserWarningr   )r.   r/   Úclfs      r1   Ú9test_response_values_type_of_target_on_classes_no_warningr…   x  s“   € ô 	�	‰	×Ñ˜aÓ ×&Ñ& s¨AÓ.€Aä
�	‰	”"—)‘)˜B“- Ó#€Aä
Ó
×
"Ñ
" 1 aÓ
(€Cä	×	 Ñ	 Ó	"ñ FÜ×Ñ˜g¤{Ô3ä˜S !°_ÕE÷F÷ Fñ Fús   Â)B9Â9Cz7estimator, response_method, target_type, expected_shapeÚbinary)r   Ú
multiclass)r   r|   Ú
multilabel)r   r   r|   c                 ól  — t         j                  j                  d«      j                  dd«      }|dk(  rt        j                  ddgdz  «      }n(|dk(  rg d¢}nt        j                  ddgddggdz  «      }t        | «      j                  ||«      } t        | ||¬	«      \  }}|j                  |k(  sJ ‚y
)a  
    Check that output shape corresponds to docstring description

    - for binary classification, it is a 1d array of shape `(n_samples,)`;
    - for multiclass classification
        - with response_method="predict", it is a 1d array of shape `(n_samples,)`;
        - otherwise, it is a 2d array of shape `(n_samples, n_classes)`;
    - for multilabel classification, it is a 2d array of shape `(n_samples, n_outputs)`;
    - for outlier detection, regression and clustering,
      it is a 1d array of shape `(n_samples,)`.
    r   r   r   r†   r   r   r‡   )
r   r   r   rZ   r   r   r   rZ   rZ   r   r"   N)	r$   r%   r&   r'   r(   r   r)   r   rm   )r-   r#   Útarget_typeÚexpected_shaper.   r/   r\   r]   s           r1   Ú"test_response_values_output_shape_rŒ   �  s¬   € ôN 	�	‰	×Ñ˜aÓ ×&Ñ& r¨1Ó-€AØ�hÒÜ�H‰H�a˜�V˜a‘ZÓ ‰Ø	˜Ò	$Ú*‰ä�H‰H�q˜!�f˜q !˜fÐ%¨Ñ)Ó*ˆä�iÓ ×$Ñ$ Q¨Ó*€Iä$ Y°À?ÔS�I€FˆAà�<‰<˜>Ò)Ð)Ñ)r?   )2r€   Únumpyr$   r*   Úsklearn.baser   Úsklearn.clusterr   r   Úsklearn.datasetsr   r   r   Úsklearn.ensembler	   Úsklearn.linear_modelr
   r   Úsklearn.multioutputr   Úsklearn.preprocessingr   Úsklearn.treer   r   Úsklearn.utils._responser   r   Úsklearn.utils._testingr   r.   r/   re   rf   ÚmarkÚparametrizer2   r>   rJ   rO   rX   r^   rc   rh   rj   rq   rs   rx   r…   rŒ   © r?   r1   ú<module>r›      s  ðÛ ã Û å ß *÷ñ õ
 -ß EÝ /Ý 'ß Fß UÝ 2á˜DÔ!�€€1á	ˆ!�%Ô€Ø�t˜�W˜a  ˜gÐ €ˆ(ð ‡�×ÑØ á	Ó	  /Ð2Ù	Ó	  ?Ð4GÐ"HÐIÙ	˜1Ô	˜Ð/Ù	˜1Ô	 Ð1DÐEÐFÙ	‹�9ÐÙ	Ó	˜OÐ,Ù	Ó	˜_¨gÐ6Ð7ðóñ

óð

ð ‡�×ÑØ á	Ó	˜YÐ'Ù	˜1¨1Ô	-¨yÐ9Ù	˜1¨1Ô	-¨wÐ7Ù	˜1¨1Ô	-°	¸7Ð/CÐDÙ	 aÔ	(¨)Ð4Ù	 aÔ	(Ð*=Ð>Ù	 aÔ	(Ð+>À	Ð*JÐKðóð ‡�×ÑÐ6¸¸u¸ÓFñ4ó Góð4ð, ‡�×ÑØÚJóñ
ó	ð
ð" ‡�×ÑÐ*¨_Ð>QÐ,RÓSñMó TðMð" ‡�×ÑÐ6¸¸u¸ÓFñ&1ó Gð&1ðR ‡�×ÑÐ6¸¸u¸ÓFØ‡�×ÑÐ*¨_Ð>QÐ,RÓSñ&ó Tó Gð&ðR ‡�×ÑØ&ñ "Ó#ØØØ<Ø Ð'ð	
ñ #Ó$ØØØRØ &°YÑ?ð	
ñ #Ó$ØØØ<Ø Ð0ð	
ðóñ4<ó5ð4<ð ‡�×ÑÐ6¸¸u¸ÓFñ-ó Gð-ð6 ‡�×ÑÐ6¸¸u¸ÓFñ1ó Gð1ð6 ‡�×ÑØ á	¨!¸!Ô	<¸oÐNÙ	¨!¸!Ô	<Ð>QÐRÙ	Ó	Ð2Ð3ðóñ*óð*ò"2ð6 ‡�×ÑØÒHóñ=óð=ò(Fð* ‡�×ÑØ=á	Ó	˜y¨(°EÐ:Ù	Ó	˜°¸%Ð@Ù	Ó	Ð2°H¸eÐDÙ	Ó	˜y¨,¸Ð>Ù	Ó	˜°¸gÐFÙ	Ó	Ð2°LÀ'ÐJÙ	Ñ+Ó-Ó	.°	¸<ÈÐQÙ	Ñ+Ó-Ó	.°ÀÈwÐWáÑ.Ó0Ó1ØØØð		
ñ 
Ó	˜I x°Ð7Ù	Ó	˜I |°UÐ;Ù	Ó	  )¨X°uÐ=Ù	Ó	  )¨\¸5ÐAÙ	˜1Ô	˜y¨(°EÐ:Ù	˜1Ô	˜y¨,¸Ð>ð)óñ2*ó3ñ2*r?   