
    e!h7              
       J   d dl Z d dlZd dl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 d dlmZmZ d dlmZ d dlmZmZ d d	lmZ  ej2                  d 
      Zd Zd Zd Zd Zd Zd Z ejB                  jE                  deed     ejF                  ed   ed   dz  dz   f      jH                  fg      d        Z%ejB                  jE                  deed     ejF                  ed   ed   dz  dz   f      jH                  fg      d        Z&d Z'd Z(d Z) G d de	e      Z* G d de      Z+d Z, G d de	e      Z-ejB                  jE                  d d!d"g      d#        Z. G d$ d%e      Z/d& Z0d' Z1 G d( d)e      Z2d* Z3ejB                  jE                  d+d,d-g      d.        Z4y)/    N)config_contextdatasets)BaseEstimatorTransformerMixinclone)TransformedTargetRegressor)DummyRegressor)LinearRegressionOrthogonalMatchingPursuit)Pipeline)FunctionTransformerStandardScalerassert_allclose)random_statec                     t         \  } }t        t               t               t        j
                  t        j                        }t        j                  t        d      5  |j                  | |       d d d        t	        j                  |j                  d   f      }t        t               t                     }t        j                  t        d      5  |j                  | ||       d d d        t        t        j
                        }t        j                  t        d	      5  |j                  | |       d d d        t        t        j                  
      }t        j                  t        d      5  |j                  | |       d d d        y # 1 sw Y   #xY w# 1 sw Y   xY w# 1 sw Y   sxY w# 1 sw Y   y xY w)N)	regressortransformerfuncinverse_funczE'transformer' and functions 'func'/'inverse_func' cannot both be set.matchr   r   r   z:fit\(\) got an unexpected keyword argument 'sample_weight')sample_weight)r   z=When 'func' is provided, 'inverse_func' must also be provided)r   z=When 'inverse_func' is provided, 'func' must also be provided)friedmanr   r
   r   npexplogpytestraises
ValueErrorfitonesshaper   	TypeError)Xyregrr   s       i/var/www/html/diagnosisapp-backend/venv/lib/python3.12/site-packages/sklearn/compose/tests/test_target.py%test_transform_target_regressor_errorr*      sd   DAq%"$"$VVVV	D 
U
  	A	 GGQWWQZM*M%+->;KD 
N
 4 	A]3	4 &2662D	M
  	A	 &266:D	M
  	A	 3 4 4  s0    FF!(F-8F9F!F*-F69Gc                  2   t         \  } }t        t               t        j                  t        j
                  d      }t        j                  t        d      5  |j                  | |       d d d        t        t               t        j                  t        j
                        }|j                  d       t        j                         5  t        j                  dt               |j                  | |       d d d        y # 1 sw Y   xY w# 1 sw Y   y xY w)	NT)r   r   r   check_inversez?The provided functions.* are not strictly inverse of each otherr   r   r   r   F)r,   error)r   r   r
   r   sqrtr   r   warnsUserWarningr"   
set_paramswarningscatch_warningssimplefilterr&   r'   r(   s      r)   *test_transform_target_regressor_invertibler7   ;   s    DAq%"$WWVV	D 
Q
  	A	
 &"$277D 	OO%O(		 	 	" g{3A   s   D-DD
Dc                     t        j                  | d      }t        j                  | d      }t        | |z
  |z  |       y )Nr   )axis)r   meanstdr   )r'   y_predy_meany_stds       r)   _check_standard_scaledr?   R   s5    WWQQFFF11EQZ5(&1    c                 "    t        | dz   |       y N   r   )r'   r<   s     r)   _check_shifted_by_onerD   X   s    AE6"r@   c            	      n   t         \  } }t        t               t        j                  t        j
                        }|j                  | |      j                  |       }|j                  j                  |j                  dd            j                         }t        t        j                  |      |       t        ||j                  j                  |j                  dd            j                                |j                  |j                  k(  sJ t        ||j                  |j                   j                  |                    t               j                  | |j#                  |            }t        |j                   j$                  j'                         |j$                  j'                                y )Nr-   rC   )r   r   r
   r   r   r   r"   predicttransformer_	transformreshapesqueezer   inverse_transformr$   r   
regressor_r   coef_ravelr&   r'   r(   r<   y_tranlrs         r)   )test_transform_target_regressor_functionsrS   \   s2   DAq%"$266D XXa^##A&F((2q)9:BBDFBFF1Iv&	4..v~~b!/DEMMO 77fll"""FD--doo.E.Ea.HIJ				499Q<	0BDOO))//1288>>3CDr@   c                  `   t         d   } t        j                  t         d   t         d   dz  dz   f      j                  }t	        t               t        j                  t        j                        }|j                  | |      j                  |       }|j                  j                  |      }t        t        j                  |      |       t        ||j                  j                  |             |j                  |j                  k(  sJ t        ||j                  |j                   j                  |                    t               j                  | |j#                  |            }t        |j                   j$                  j'                         |j$                  j'                                y )Nr   rC      r-   )r   r   vstackTr   r
   r   r   r"   rG   rH   rI   r   rL   r$   r   rM   r   rN   rO   rP   s         r)   5test_transform_target_regressor_functions_multioutputrX   o   s0   A
		8A;q 01 45688A%"$266D XXa^##A&F((+FBFF1Iv&At((::6BC77fll"""FD--doo.E.Ea.HIJ				499Q<	0BDOO))//1288>>3CDr@   zX,yrC   rU   c                    t        d d       }t        t               |      }|j                  | |      j	                  |       }|j
                  |j
                  k(  sJ |j                  j                  |      }t        ||       |j
                  |j
                  k(  sJ t        ||j                  j                  |      j                                t               }t        |      }|j                  | |j                  |             |j	                  |       }t        ||j                  |             t        |j                  j                  |j                         y )Nc                     | dz   S rB    xs    r)   <lambda>z@test_transform_target_regressor_1d_transformer.<locals>.<lambda>   s
    q1u r@   c                     | dz
  S rB   r[   r\   s    r)   r^   z@test_transform_target_regressor_1d_transformer.<locals>.<lambda>   s
    QU r@   r   r   r   )r   r   r
   r"   rG   r$   rH   rI   rD   r   rL   rK   r   fit_transformrM   rN   	r&   r'   r   r(   r<   rQ   rR   transformer2	y_lr_preds	            r)   .test_transform_target_regressor_1d_transformerre      s    &?K &"$+D XXa^##A&F77fll"""((+F!V$77fll"""At((::6BJJLM		B%LFF1l((+,

1IFL::9EFDOO))2884r@   c           	      p   t               }t        t               |      }|j                  | |      j	                  |       }|j
                  |j
                  k(  sJ |j                  dk(  r,|j                  j                  |j                  dd            }n|j                  j                  |      }t        ||j                                |j
                  |j
                  k(  sJ t        ||j                  j                  |      j                                t               }t        |      }|j                  dk(  r|j                  | |j                  |j                  dd            j                                |j	                  |       j                  dd      }|j                  |      j                         }	nC|j                  | |j                  |             |j	                  |       }|j                  |      }	t        ||	       t        |j                   j"                  |j"                         y )Nr   rC   rF   )r   r   r
   r"   rG   r$   ndimrH   rI   rJ   r?   rK   r   rL   r   ra   rM   rN   )
r&   r'   r   r(   r<   rQ   rR   rc   rd   y_pred2s
             r)   .test_transform_target_regressor_2d_transformerri      s    !"K%"$+D XXa^##A&F77fll"""vv{"",,QYYr1-=>"",,Q/1fnn./77fll"""At((::6BJJLM		B%Lvv{
q,,,QYYr1-=>FFHIJJqM))"a0	00;CCE
q,,,Q/0JJqM	00;FG$DOO))2884r@   c                  8   t         d   } t        j                  t         d   t         d   dz  dz   f      j                  }t	               }t        t               |      }|j                  | |      j                  |       }|j                  |j                  k(  sJ |j                  j                  |      }t        ||       |j                  |j                  k(  sJ t        ||j                  j                  |      j                                t               }t!        |      }|j                  | |j#                  |             |j                  |       }t        ||j                  |             t        |j$                  j&                  |j&                         y )Nr   rC   rU   r   )r   r   rV   rW   r   r   r
   r"   rG   r$   rH   rI   r?   r   rL   rK   r   ra   rM   rN   rb   s	            r)   :test_transform_target_regressor_2d_transformer_multioutputrk      sC    	A
		8A;q 01 45688A "K%"$+D XXa^##A&F77fll"""((+F1f%77fll"""At((::6BJJLM		B%LFF1l((+,

1IFL::9EFDOO))2884r@   c                  >   t         d   } t        j                  t         d   j                  ddd      g d      }d }d }t	        ||      }t        t               |      }|j                  | |      j                  |       }|j                  |j                  k(  sJ y )	Nr   rC   rF   )rC      rU   c                 @    | j                  | j                  d   d      S )Nr   rF   rJ   r$   datas    r)   flatten_dataz?test_transform_target_regressor_3d_target.<locals>.flatten_data   s    ||DJJqM2..r@   c                 B    | j                  | j                  d   dd      S )Nr   rF   rU   ro   rp   s    r)   unflatten_datazAtest_transform_target_regressor_3d_target.<locals>.unflatten_data   s    ||DJJqM2q11r@   r`   r   )
r   r   tilerJ   r   r   r
   r"   rG   r$   )r&   r'   rr   rt   r   r(   r<   s          r)   )test_transform_target_regressor_3d_targetrv      s     	A
##B1-y9A/2 &<nUK%"$+D XXa^##A&F77fll"""r@   c                     t         d   } t        j                  t         d   t         d   dz  dz   g      }d }d }t        ||d      }|j	                  | |       |j                  |       }|j                  dk(  sJ d	 }t        ||d      }|j	                  | |       |j                  |       }|j                  dk(  sJ t        ||       y )
Nr   rC   rU   c                     t        j                  | d d df   dz  | d d df   dz  z         }|d d t         j                  f   S Nr   rU   rC   )r   r/   newaxis)r'   outs     r)   r   z=test_transform_target_regressor_multi_to_single.<locals>.func   s@    gga1glQq!tW\121bjj=!!r@   c                     | S Nr[   r'   s    r)   r   zEtest_transform_target_regressor_multi_to_single.<locals>.inverse_func       r@   F)r   r   r,   )d   rC   c                 Z    t        j                  | d d df   dz  | d d df   dz  z         S ry   )r   r/   r~   s    r)   r   z=test_transform_target_regressor_multi_to_single.<locals>.func  s.    wwqAw!|a1gl233r@   )r   r   	transposer   r"   rG   r$   r   )r&   r'   r   r   tty_pred_2d_funcy_pred_1d_funcs          r)   /test_transform_target_regressor_multi_to_singler      s    A
hqkHQK1$4q$8:;A" 
$E
B FF1aLZZ]N8+++4 
$E
B FF1aLZZ]N8+++NN3r@   c                        e Zd ZddZd Zd Zy)DummyCheckerArrayTransformerNc                 >    t        |t        j                        sJ | S r}   
isinstancer   ndarrayselfr&   r'   s      r)   r"   z DummyCheckerArrayTransformer.fit  s    !RZZ(((r@   c                 >    t        |t        j                        sJ |S r}   r   r   r&   s     r)   rI   z&DummyCheckerArrayTransformer.transform      !RZZ(((r@   c                 >    t        |t        j                        sJ |S r}   r   r   s     r)   rL   z.DummyCheckerArrayTransformer.inverse_transform  r   r@   r}   )__name__
__module____qualname__r"   rI   rL   r[   r@   r)   r   r     s    r@   r   c                   *     e Zd Zd fd	Z fdZ xZS )DummyCheckerListRegressorc                 J    t        |t              sJ t        |   |||      S r}   )r   listsuperr"   )r   r&   r'   r   	__class__s       r)   r"   zDummyCheckerListRegressor.fit#  s&    !T"""w{1a//r@   c                 F    t        |t              sJ t        |   |      S r}   )r   r   r   rG   )r   r&   r   s     r)   rG   z!DummyCheckerListRegressor.predict'  s"    !T"""wq!!r@   r}   )r   r   r   r"   rG   __classcell__r   s   @r)   r   r   "  s    0" "r@   r   c                     t         \  } }t        t               t               d      }|j	                  | j                         |j                                |j                  | j                                t        j                  t              5  |j	                  | |j                                d d d        t        j                  t              5  |j                  |        d d d        y # 1 sw Y   =xY w# 1 sw Y   y xY w)NF)r   r   r,   )
r   r   r   r   r"   tolistrG   r   r    AssertionError)r&   r'   r   s      r)   .test_transform_target_regressor_ensure_y_arrayr   ,  s     DAq	#02+-
B
 FF188:qxxz"JJqxxz	~	& 
q!((*	~	& 


1   s   !C+C7+C47D c                   ,    e Zd ZdZddZddZd Zd Zy)	DummyTransformerz;Dummy transformer which count how many time fit was called.c                     || _         y r}   fit_counter)r   r   s     r)   __init__zDummyTransformer.__init__A  s
    &r@   Nc                 0    | xj                   dz  c_         | S rB   r   r   s      r)   r"   zDummyTransformer.fitD  s    Ar@   c                     |S r}   r[   r   s     r)   rI   zDummyTransformer.transformH  r   r@   c                     |S r}   r[   r   s     r)   rL   z"DummyTransformer.inverse_transformK  r   r@   )r   r}   )r   r   r   __doc__r   r"   rI   rL   r[   r@   r)   r   r   >  s    E'r@   r   r,   FTc                     t         \  }}t        t               |       }|j                  ||       |j                  j
                  dk(  sJ y )N)r   r,   rC   )r   r   r   r"   rH   r   )r,   r&   r'   ttrs       r)   )test_transform_target_regressor_count_fitr   O  sH     DAq
$$&mC GGAqM''1,,,r@   c                         e Zd Zd fd	Z xZS ) DummyRegressorWithExtraFitParamsc                 .    |rJ t         |   |||      S r}   )r   r"   )r   r&   r'   r   check_inputr   s        r)   r"   z$DummyRegressorWithExtraFitParams.fit\  s      w{1a//r@   NT)r   r   r   r"   r   r   s   @r)   r   r   [  s    0 0r@   r   c                      t         \  } }t        t               t                     }|j	                  | |d       |j
                  j                  dk(  sJ y )Nr   Fr   rC   )r   r   r   r   r"   rH   r   r6   s      r)   3test_transform_target_regressor_pass_fit_parametersr   c  sO    DAq%24BRBTD 	HHQuH%((A---r@   c                      t         \  } }t        t               t                     }dt	               fd|fg}t        |      } |j                  | |fi ddi |j                  j                  dk(  sJ y )Nr   	normalizeestest__check_inputFrC   )	r   r   r   r   r   r   r"   rH   r   )r&   r'   r(   
estimatorspips        r)   .test_transform_target_regressor_route_pipeliner   m  sx    DAq%24BRBTD  01E4=AJ
:
CCGGAq0'/0((A---r@   c                         e Zd Zd fd	Z xZS )$DummyRegressorWithExtraPredictParamsc                 8    d| _         |rJ t        | 	  |      S r   )predict_calledr   rG   )r   r&   r   r   s      r)   rG   z,DummyRegressorWithExtraPredictParams.predict|  s$     #wq!!r@   )T)r   r   r   rG   r   r   s   @r)   r   r   {  s    " "r@   r   c                      t         \  } }t        t               t                     }|j	                  | |       |j                  | d       |j                  j                  sJ y )Nr   Fr   )r   r   r   r   r"   rG   rM   r   r6   s      r)   =test_transform_target_regressor_pass_extra_predict_parametersr     sS    DAq%68FVFXD 	HHQNLLL&??))))r@   output_formatpandaspolarsc                    t        j                         \  }}t        j                  |      dz   }t	        |       5  t        j                         5  t        j                  d       t        t               t        j                  t        j                        j                  ||       ddd       ddd       y# 1 sw Y   xY w# 1 sw Y   yxY w)zTest that TransformedTargetRegressor will not raise warnings if
    set_config(transform_output="pandas"/"polars") is set globally; regression test for
    issue #29361.rC   )transform_outputr.   r-   N)r   make_regressionr   absr   r3   r4   r5   r   r
   r   r   r"   )r   r&   r'   s      r)   @test_transform_target_regressor_not_warns_with_global_output_setr     s    
 ##%DAq
q	AA		7 $$& 	!!'*&*,266c!Qi		 	 	 s$   CAB:)C:C	?CC)5r3   numpyr   r   sklearnr   r   sklearn.baser   r   r   sklearn.composer   sklearn.dummyr	   sklearn.linear_modelr
   r   sklearn.pipeliner   sklearn.preprocessingr   r   sklearn.utils._testingr   make_friedman1r   r*   r7   r?   rD   rS   rX   markparametrizerV   rW   re   ri   rk   rv   r   r   r   r   r   r   r   r   r   r   r   r   r[   r@   r)   <module>r      s      , ? ? 6 ( L % E 2"8""2&R.2#E&E$ 	Hx{IBIIx{HQK1<Lq<P.Q$R$T$TUV558 	Hx{IBIIx{HQK1<Lq<P.Q$R$T$TUV55D54#*4@#3] " "$' " 5$-8- 9-0~ 0.."> "	* 8X*>? @r@   