§
    ¦˜ºh£#  ã                   ó   — d dl Zd dlZd dlmZmZmZ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                             dddg¦  «        d„ ¦   «         Z d„ Z!ej                             dg d¢¦  «        d„ ¦   «         Z"d„ Z#d„ Z$d„ Z%ej                             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&d!„ Z'd"„ Z(ej                             d# ed$d ¬%¦  «        df e
¦   «         dfg¦  «        d&„ ¦   «         Z)ej                             dg d¢¦  «        d'„ ¦   «         Z*dS )(é    N)Ú	load_irisÚmake_classificationÚmake_multilabel_classificationÚmake_regression)Ú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_probac                 óÖ   — t          | g¬¦  «        }d}|j        j        › d�}t          j        t
          |¬¦  «        5  t          ||| ¬¦  «         ddd¦  «         dS # 1 swxY w Y   dS )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       úi/var/www/html/services/rag-service/venv/lib/python3.11/site-packages/sklearn/utils/tests/test_response.pyÚ(test_get_response_values_regressor_errorr(      sÒ   € õ 1À?ÐBSÐTÑTÔT€LØ(€AØÔ'Ô0ÐPÐPÐP€GÝ	Œ•z¨Ð	1Ñ	1Ô	1ð Oð OÝ˜\¨1¸oÐNÑNÔNÐNðOð Oð Oñ Oô Oð Oð Oð Oð Oð Oð Oð Oøøøð Oð Oð Oð Oð Oð Os   ¾AÁA"Á%A"c                  óê   — t          dd¬¦  «        \  } }t          ¦   «                              | |¦  «        }t          || d¬¦  «        \  }}t	          ||                     | ¦  «        ¦  «         |�J ‚dS )z=Check the behaviour of `_get_response_values` with regressor.é
   r   )Ú	n_samplesÚrandom_stateÚpredictr   N)r   r   Úfitr   r   r-   )r%   ÚyÚ	regressorÚy_predÚ	pos_labels        r'   Ú"test_get_response_values_regressorr3   &   s‡   € å R°aÐ8Ñ8Ô8�D€A€qÝ Ñ"Ô"×&Ò& q¨!Ñ,Ô,€IÝ,ØØ	Ø!ðñ ô Ñ€FˆIõ
 �v˜y×0Ò0°Ñ3Ô3Ñ4Ô4Ð4ØÐÐÐÐÐó    )r   r   r-   c                 ó  — t          ddd¬¦  «        \  }}t          ¦   «                              ||¦  «        }d}t          j        t
          |¬¦  «        5  t          ||| d¬¦  «         d	d	d	¦  «         d	S # 1 swxY w Y   d	S )
zVCheck that `_get_response_values` raises the proper error message with
    classifier.r*   é   r   ©r+   Ú	n_classesr,   zDpos_label=whatever is not a valid label: It should be one of \[0 1\]r   Úwhatever©r   r2   N)r   r   r.   r!   r"   r#   r   )r   r%   r/   Ú
classifierr&   s        r'   Ú5test_get_response_values_classifier_unknown_pos_labelr<   3   sÛ   € õ ¨°qÀqÐIÑIÔI�D€A€qÝ#Ñ%Ô%×)Ò)¨!¨QÑ/Ô/€Jð V€GÝ	Œ•z¨Ð	1Ñ	1Ô	1ð 
ð 
ÝØØØ+Ø ð		
ñ 	
ô 	
ð 	
ð
ð 
ð 
ñ 
ô 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
øøøð 
ð 
ð 
ð 
ð 
ð 
s   ÁA6Á6A:Á=A:c                  ó,  — t          ddd¬¦  «        \  } }t          j        |¦  «        }t          ¦   «                              | |¦  «        }d}t          j        t          |¬¦  «        5  t          || d¬¦  «         d	d	d	¦  «         d	S # 1 swxY w Y   d	S )
zpCheck that `_get_response_values` will raise an error when `y_pred` has a
    single class with `predict_proba`.r*   r6   r   r7   zJGot predict_proba of shape \(10, 1\), but need classifier with two classesr   r   r   N)	r   ÚnpÚ
zeros_liker   r.   r!   r"   r#   r   )r%   Úy_two_classÚy_single_classr;   r&   s        r'   ÚHtest_get_response_values_classifier_inconsistent_y_pred_for_binary_probarB   H   sõ   € õ )°2ÀÐQRÐSÑSÔS�N€A€{Ý”] ;Ñ/Ô/€NÝ'Ñ)Ô)×-Ò-¨a°Ñ@Ô@€Jð	ð õ 
Œ•z¨Ð	1Ñ	1Ô	1ð Mð MÝ˜Z¨¸OÐLÑLÔLÐLðMð Mð Mñ Mô Mð Mð Mð Mð Mð Mð Mð Møøøð Mð Mð Mð Mð Mð Ms   Á)B	Â	BÂBc                  óž  — t          ddddgd¬¦  «        \  } }t          ¦   «                              | |¦  «        }d}t          || |d¬	¦  «        \  }}t	          ||                     | ¦  «        ¦  «         |d
k    sJ ‚t          || ||j        d         ¬	¦  «        \  }}t	          ||                     | ¦  «        dz  ¦  «         |dk    sJ ‚dS )zaCheck the behaviour of `_get_response_values` with `decision_function`
    and binary classifier.r*   r6   ç333333Ó?çffffffæ?r   ©r+   r8   Úweightsr,   r   Nr:   é   éÿÿÿÿ)r   r   r.   r   r   r   Úclasses_©r%   r/   r;   r   r1   r2   s         r'   Ú<test_get_response_values_binary_classifier_decision_functionrL   W   s  € õ ØØØ�c�
Øð	ñ ô �D€A€qõ $Ñ%Ô%×)Ò)¨!¨QÑ/Ô/€JØ)€Oõ -ØØ	Ø'Øð	ñ ô Ñ€FˆIõ �F˜J×8Ò8¸Ñ;Ô;Ñ<Ô<Ð<Ø˜Š>ˆ>ˆ>ˆ>õ -ØØ	Ø'ØÔ% aÔ(ð	ñ ô Ñ€FˆIõ �F˜J×8Ò8¸Ñ;Ô;¸bÑ@ÑAÔAÐAØ˜Š>ˆ>ˆ>ˆ>ˆ>ˆ>r4   c                  óÀ  — t          ddddgd¬¦  «        \  } }t          ¦   «                              | |¦  «        }d}t          || |d¬	¦  «        \  }}t	          ||                     | ¦  «        dd…d
f         ¦  «         |d
k    sJ ‚t          || ||j        d         ¬	¦  «        \  }}t	          ||                     | ¦  «        dd…df         ¦  «         |dk    sJ ‚dS )zQCheck that `_get_response_values` with `predict_proba` and binary
    classifier.r*   r6   rD   rE   r   rF   r   Nr:   rH   )r   r   r.   r   r   r   rJ   rK   s         r'   Ú8test_get_response_values_binary_classifier_predict_probarN   x   s  € õ ØØØ�c�
Øð	ñ ô �D€A€qõ $Ñ%Ô%×)Ò)¨!¨QÑ/Ô/€JØ%€Oõ -ØØ	Ø'Øð	ñ ô Ñ€FˆIõ �F˜J×4Ò4°QÑ7Ô7¸¸¸¸1¸Ô=Ñ>Ô>Ð>Ø˜Š>ˆ>ˆ>ˆ>õ -ØØ	Ø'ØÔ% aÔ(ð	ñ ô Ñ€FˆIõ �F˜J×4Ò4°QÑ7Ô7¸¸¸¸1¸Ô=Ñ>Ô>Ð>Ø˜Š>ˆ>ˆ>ˆ>ˆ>ˆ>r4   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\]Úunknownr:   z.be a binary classifier. Got 3 classes instead.c                 ó¶   — |                       ||¦  «         t          j        t          |¬¦  «        5  t	          | |fi |¤Ž ddd¦  «         dS # 1 swxY w Y   dS )zMCheck that we raise the proper error messages in _get_response_values_binary.r   N)r.   r!   r"   r#   r   )Ú	estimatorr%   r/   r&   Úparamss        r'   Útest_get_response_errorrT   ™   s©   € ð: ‡M‚M�!�QÑÔÐÝ	Œ•z¨Ð	1Ñ	1Ô	1ð <ð <Ý# I¨qÐ;Ð;°FÐ;Ð;Ð;ð<ð <ð <ñ <ô <ð <ð <ð <ð <ð <ð <ð <øøøð <ð <ð <ð <ð <ð <s   ²AÁAÁAc                  óð  — t          ¦   «                              t          t          ¦  «        } t	          | t          d¬¦  «        \  }}t
          j                             ||                      t          ¦  «        dd…df         ¦  «         |dk    sJ ‚t	          | t          dd¬¦  «        \  }}t
          j                             ||                      t          ¦  «        dd…df         ¦  «         |dk    sJ ‚dS )zKCheck the behaviour of `_get_response_values_binary` using `predict_proba`.r   r   NrH   r   r:   )	r   r.   ÚX_binaryÚy_binaryr   r>   Útestingr   r   )r;   Úy_probar2   s      r'   Útest_get_response_predict_probarZ   »   sç   € å'Ñ)Ô)×-Ò-­h½ÑAÔA€JÝ4Ø•H¨oðñ ô Ñ€GˆYõ „J×Ò˜w¨
×(@Ò(@ÅÑ(JÔ(JÈ1È1È1ÈaÈ4Ô(PÑQÔQÐQØ˜Š>ˆ>ˆ>ˆ>å4Ø•H¨oÈðñ ô Ñ€GˆYõ „J×Ò˜w¨
×(@Ò(@ÅÑ(JÔ(JÈ1È1È1ÈaÈ4Ô(PÑQÔQÐQØ˜Š>ˆ>ˆ>ˆ>ˆ>ˆ>r4   c                  óÎ  — t          ¦   «                              t          t          ¦  «        } t	          | t          d¬¦  «        \  }}t
          j                             ||                      t          ¦  «        ¦  «         |dk    sJ ‚t	          | t          dd¬¦  «        \  }}t
          j                             ||                      t          ¦  «        dz  ¦  «         |dk    sJ ‚dS )zMCheck the behaviour of `_get_response_values_binary` using decision_function.r   r   rH   r   r:   rI   N)	r   r.   rV   rW   r   r>   rX   r   r   )r;   Úy_scorer2   s      r'   Ú#test_get_response_decision_functionr]   Ë   sÕ   € å#Ñ%Ô%×)Ò)­(µHÑ=Ô=€JÝ4Ø•HÐ.Aðñ ô Ñ€GˆYõ „J×Ò˜w¨
×(DÒ(DÅXÑ(NÔ(NÑOÔOÐOØ˜Š>ˆ>ˆ>ˆ>å4Ø•HÐ.AÈQðñ ô Ñ€GˆYõ „J×Ò˜w¨
×(DÒ(DÅXÑ(NÔ(NÐQSÑ(SÑTÔTÐTØ˜Š>ˆ>ˆ>ˆ>ˆ>ˆ>r4   zestimator, response_methodr6   )Ú	max_depthr,   c                 óV  — |                       t          t          ¦  «         t          | t          |¬¦  «        \  }}|�J ‚|j        t          j        d         t          | j        ¦  «        fk    sJ ‚|dk    r1t          j        |dk    |dk    ¦  «         	                    ¦   «         sJ ‚dS dS )zCheck that we can call `_get_response_values` with a multiclass estimator.
    It should return the predictions untouched.
    r   Nr   r   rH   )
r.   r%   r/   r   ÚshapeÚlenrJ   r>   Úlogical_andÚall)rR   r   Úpredictionsr2   s       r'   Ú#test_get_response_values_multiclassre   Û   s·   € ð ‡M‚M•!•QÑÔÐÝ1Ø•1 oðñ ô Ñ€K�ð ÐÐÐØÔ¥¤¨¤­S°Ô1CÑ-DÔ-DÐ EÒEÐEÐEÐEØ˜/Ò)Ð)ÝŒ~˜k¨QÒ.°¸qÒ0@ÑAÔA×EÒEÑGÔGÐGÐGÐGð *Ð)ØGÐGr4   c                 ó<  — t          d¬¦  «        \  }}t          t          ¦   «         ¦  «                             ||¦  «        }t	          ||| ¬¦  «        \  }}|�J ‚|j        |j        k    sJ ‚| dk    r3t          j        |dk    |dk    ¦  «                             ¦   «         sJ ‚d S | dk    r>|dk      	                    ¦   «         dk    sJ ‚|dk     	                    ¦   «         dk    sJ ‚d S t          j
        |dk    |dk    ¦  «                             ¦   «         sJ ‚d S )Nr   )r,   r   r   rH   r   )r   r	   r   r.   r   r`   r>   rb   rc   ÚsumÚ
logical_or)r   r%   ÚYrR   r1   r2   s         r'   Ú-test_get_response_values_multilabel_indicatorrj   ñ   sB  € õ *°qÐ9Ñ9Ô9�D€A€qÝÕ 2Ñ 4Ô 4Ñ5Ô5×9Ò9¸!¸QÑ?Ô?€Iå,Ø�1 oðñ ô Ñ€FˆIð ÐÐÐØŒ<˜1œ7Ò"Ð"Ð"Ð"à˜/Ò)Ð)ÝŒ~˜f¨šk¨6°Qª;Ñ7Ô7×;Ò;Ñ=Ô=Ð=Ð=Ð=Ð=Ð=Ø	Ð/Ò	/Ð	/à˜’
×ÒÑ!Ô! AÒ%Ð%Ð%Ð%Ø˜’
×ÒÑ!Ô! AÒ%Ð%Ð%Ð%Ð%Ð%åŒ}˜V qš[¨&°Aª+Ñ6Ô6×:Ò:Ñ<Ô<Ð<Ð<Ð<Ð<Ð<r4   )+Únumpyr>   r!   Úsklearn.datasetsr   r   r   r   Úsklearn.linear_modelr   r   Úsklearn.multioutputr	   Úsklearn.preprocessingr
   Úsklearn.treer   r   Úsklearn.utils._mockingr   Úsklearn.utils._responser   r   Úsklearn.utils._testingr   r   r%   r/   rV   rW   ÚmarkÚparametrizer(   r3   r<   rB   rL   rN   rT   rZ   r]   re   rj   © r4   r'   ú<module>rw      sj  ðØ Ð Ð Ð Ø €€€ðð ð ð ð ð ð ð ð ð ð ð ðð ð ð ð ð ð ð ð 0Ð /Ð /Ð /Ð /Ð /Ø 'Ð 'Ð 'Ð 'Ð 'Ð 'Ø FÐ FÐ FÐ FÐ FÐ FÐ FÐ FØ @Ð @Ð @Ð @Ð @Ð @Ø UÐ UÐ UÐ UÐ UÐ UÐ UÐ UØ FÐ FÐ FÐ FÐ FÐ FÐ FÐ Fà€y˜DÐ!Ñ!Ô!�€€1à	€Eˆ!�%ÐÑÔ€Ø�t˜�t”W˜a   œgÐ €ˆ(ð „×ÒÐ*Ð-@À/Ð,RÑSÔSðOð Oñ TÔSðOð
ð 
ð 
ð „×ÒØØ5Ð5Ð5ñô ð
ð 
ñ	ô ð
ð"Mð Mð Mðð ð ðBð ð ðB „×ÒØ&ð "Ð!Ñ#Ô#ØØØ<Ø Ð'ð	
ð #Ð"Ñ$Ô$ØØØRØ &°YÐ?Ð?ð	
ð #Ð"Ñ$Ô$ØØØ<Ø Ð0ð	
ðñô ð4<ð <ñ5ô ð4<ðð ð ð ð ð ð  „×ÒØ à	Ð	¨!¸!Ð	<Ñ	<Ô	<¸oÐNØ	Ð	Ñ	Ô	Ð2Ð3ðñô ðHð Hñô ðHð „×ÒØÐHÐHÐHñô ð=ð =ñô ð=ð =ð =r4   