Ë
    ÷Q(hŒ4  ã                   óR  — d dl Zd dlZd dlmZ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 d d	lmZmZ d d
lmZmZ  ed¬«      \  ZZ eed¬«      Zedd edd cZZej@                  jC                  dg d¢«      d„ «       Z"ej@                  jC                  dddg«      d„ «       Z#ej@                  jC                  dddddgg«      ej@                  jC                  dddg«      d„ «       «       Z$ej@                  jC                  dg d¢«      d„ «       Z%ej@                  jC                  dddg«      d„ «       Z&ej@                  jC                  dddg«      d„ «       Z'ej@                  jC                  dddg«      ej@                  jC                  dddg«      d„ «       «       Z(ej@                  jC                  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j@                  jC                  dddg«      d'„ «       Z*ej@                  jC                  dddg«      d(„ «       Z+ej@                  jC                  d) ed*d ¬+«      df ed*d ¬+«      df e«       dfg«      d,„ «       Z,d-„ Z-ej@                  jC                  dg d.¢«      d/„ «       Z.y)0é    N)Ú	load_irisÚmake_classificationÚmake_multilabel_classificationÚmake_regression)ÚIsolationForest)ÚLinearRegressionÚLogisticRegression)ÚClassifierChain)Úscale)ÚDecisionTreeClassifierÚDecisionTreeRegressor)Ú_MockEstimatorOnOffPrediction)Ú_get_response_valuesÚ_get_response_values_binary)Úassert_allcloseÚassert_array_equalT)Ú
return_X_yF)Úcopyéd   Úresponse_method)Údecision_functionÚpredict_probaÚpredict_log_probac                 óÐ   — t        | g¬«      }d}|j                  j                  › d�}t        j                  t
        |¬«      5  t        ||| ¬«       ddd«       y# 1 sw Y   yxY w)zLCheck the error message with regressor an not supported response
    method.)Úresponse_methods)Úmocking_dataÚmocking_targetz should either be a classifier©Úmatch©r   N)r   Ú	__class__Ú__name__ÚpytestÚraisesÚ
ValueErrorr   )r   Úmy_estimatorÚXÚerr_msgs       ú_/var/www/skyplay_api_hub/venv/lib/python3.12/site-packages/sklearn/utils/tests/test_response.pyÚ(test_get_response_values_regressor_errorr*      sc   € ô 1À?ÐBSÔT€LØ(€AØ×'Ñ'×0Ñ0Ð1Ð1OÐP€GÜ	�‰”z¨Ô	1ñ OÜ˜\¨1¸oÕN÷O÷ Oñ Oús   ÁAÁA%Úreturn_response_method_usedc                 óÚ   — t        dd¬«      \  }}t        «       j                  ||«      }t        ||d| ¬«      }t	        |d   |j                  |«      «       |d   �J ‚| r|d   dk(  sJ ‚yy)	z=Check the behaviour of `_get_response_values` with regressor.é
   r   ©Ú	n_samplesÚrandom_stateÚpredict©r   r+   é   Né   )r   r   Úfitr   r   r1   )r+   r'   ÚyÚ	regressorÚresultss        r)   Ú"test_get_response_values_regressorr9   )   s„   € ô  R°aÔ8�D€A€qÜ Ó"×&Ñ& q¨!Ó,€IÜ"ØØ	Ø!Ø$?ô	€Gô �w˜q‘z 9×#4Ñ#4°QÓ#7Ô8Ø�1‰:ÐÐÐÙ"Ø�q‰z˜YÒ&Ð&Ñ&ð #ó    r1   r   c                 ó  — t        dd¬«      \  }}t        d¬«      j                  ||«      }t        ||| |¬«      }t	        | t
        «      r| d   n| }t        ||«      }t        |d    ||«      «       |d   �J ‚|r|d   |k(  sJ ‚yy)	zDCheck the behaviour of `_get_response_values` with outlier detector.é2   r   r.   ©r0   r2   r3   Nr4   )r   r   r5   r   Ú
isinstanceÚlistÚgetattrr   )r   r+   r'   r6   Úoutlier_detectorr8   Úchosen_response_methodÚprediction_methods           r)   Ú*test_get_response_values_outlier_detectionrD   :   s¬   € ô ¨¸!Ô<�D€A€qÜ&°AÔ6×:Ñ:¸1¸aÓ@ÐÜ"ØØ	Ø'Ø$?ô	€Gô )¨¼$Ô?ˆ˜ÒÀ_ð ô  Ð 0Ð2HÓIÐÜ�w˜q‘zÑ#4°QÓ#7Ô8Ø�1‰:ÐÐÐÙ"Ø�q‰zÐ3Ò3Ð3Ñ3ð #r:   )r   r   r1   r   c                 óÜ   — 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-   r4   r   ©r/   Ú	n_classesr0   zDpos_label=whatever is not a valid label: It should be one of \[0 1\]r   Úwhatever©r   Ú	pos_labelN)r   r	   r5   r#   r$   r%   r   )r   r'   r6   Ú
classifierr(   s        r)   Ú5test_get_response_values_classifier_unknown_pos_labelrL   U   sj   € ô ¨°qÀqÔI�D€A€qÜ#Ó%×)Ñ)¨!¨QÓ/€Jð V€GÜ	�‰”z¨Ô	1ñ 
ÜØØØ+Ø õ		
÷
÷ 
ñ 
ús   Á	A"Á"A+r   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-   r4   r   rF   zJGot predict_proba of shape \(10, 1\), but need classifier with two classesr   r    N)	r   ÚnpÚ
zeros_liker   r5   r#   r$   r%   r   )r   r'   Úy_two_classÚy_single_classrK   r(   s         r)   ÚHtest_get_response_values_classifier_inconsistent_y_pred_for_binary_probarR   j   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-   r4   ç333333Ó?çffffffæ?r   ©r/   rG   Úweightsr0   r   N©r   rJ   r+   r3   éÿÿÿÿ)r   r	   r5   r   r   r   Úclasses_)r+   r'   r6   rK   r   r8   s         r)   Ú<test_get_response_values_binary_classifier_decision_functionr[   |   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-   r4   rT   rU   r   rV   NrX   r3   é   )r   r	   r5   r   r   r@   ÚlenrZ   )	r+   r   r'   r6   rK   r8   Úy_predrJ   Ú_s	            r)   Ú8test_get_response_values_binary_classifier_predict_probara   ¦   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\]ÚunknownrI   z.be a binary classifier. Got 3 classes instead.c                 ó¢   — | 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)r5   r#   r$   r%   r   )Ú	estimatorr'   r6   r(   Úparamss        r)   Útest_get_response_errorrg   Ñ   sD   € ð: ‡M�M�!�QÔÜ	�‰”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   r2   r   Nr3   r4   rX   )r   r5   ÚX_binaryÚy_binaryr   r   r   ©r+   rK   r8   s      r)   Útest_get_response_predict_probarl   ó   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   r2   r   r3   r4   rX   rY   N)r	   r5   ri   rj   r   r   r   rk   s      r)   Ú#test_get_response_decision_functionrn     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:   zestimator, response_methodr4   )Ú	max_depthr0   c                 ór  — | 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   r3   r   g        )
r5   r'   r6   r   Úshaper^   rZ   rN   Úlogical_andÚall)re   r   ÚpredictionsrJ   s       r)   Ú#test_get_response_values_multiclassru   +  s¶   € ð ‡M�M”!”QÔÜ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   Tr2   Nr3   )r	   r5   ri   rj   r   r   r   r   )rK   r_   rJ   r   s       r)   Ú+test_get_response_values_with_response_listrw   D  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   r1   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   r=   r    r   r3   r   )r   r
   r	   r5   r   rq   rN   rr   rs   ÚsumÚ
logical_or)r   r'   ÚYre   r_   rJ   s         r)   Ú-test_get_response_values_multilabel_indicatorr|   _  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:   )/ÚnumpyrN   r#   Úsklearn.datasetsr   r   r   r   Úsklearn.ensembler   Úsklearn.linear_modelr   r	   Úsklearn.multioutputr
   Úsklearn.preprocessingr   Úsklearn.treer   r   Úsklearn.utils._mockingr   Úsklearn.utils._responser   r   Úsklearn.utils._testingr   r   r'   r6   ri   rj   ÚmarkÚparametrizer*   r9   rD   rL   rR   r[   ra   rg   rl   rn   ru   rw   r|   © r:   r)   ú<module>rŠ      sC  ðÛ Û ÷ó õ -÷õ 0Ý 'ß FÝ @ß Uß Fá˜DÔ!�€€1á	ˆ!�%Ô€Ø�t˜�W˜a  ˜gÐ €ˆ(ð ‡�×ÑØÒRóñOóðOð ‡�×ÑÐ6¸¸u¸ÓFñ'ó Gð'ð  ‡�×ÑØØÐ#Ð&9¸9Ð%EÐFóð ‡�×ÑÐ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óñ=óñ=r:   