
    -i+:              
          S SK r S SKrS SKrS SKJrJr  S SKJrJ	r	J
r
  S SKJr  S SKJr  S SKJrJr  S SKJr  S SKJrJr  S S	KJr  \R2                  " S S
9rS rS rS rS rS rS r \RB                  RE                  S\\S    \RF                  " \S   \S   S-  S-   45      RH                  4/5      S 5       r%\RB                  RE                  S\\S    \RF                  " \S   \S   S-  S-   45      RH                  4/5      S 5       r&S r'S r(S r) " S S\	\5      r* " S S\5      r+S r, " S S\	\5      r-\RB                  RE                  S S!S"/5      S# 5       r. " S$ S%\5      r/S& r0S' r1 " S( S)\5      r2S* r3\RB                  RE                  S+S,S-/5      S. 5       r4 " S/ S0\5      r5\RB                  RE                  S1SS/5      S2 5       r6g)3    N)config_contextdatasets)BaseEstimatorTransformerMixinclone)TransformedTargetRegressor)DummyRegressor)LinearRegressionOrthogonalMatchingPursuit)Pipeline)FunctionTransformerStandardScalerassert_allclose)random_statec                  |   [         u  p[        [        5       [        5       [        R
                  [        R                  S9n[        R                  " [        SS9   UR                  X5        S S S 5        [        R                  " UR                  S   45      n[        [        5       [        5       S9n[        R                  " [        SS9   UR                  XUS9  S S S 5        [        [        R
                  S9n[        R                  " [        S	S9   UR                  X5        S S S 5        [        [        R                  S
9n[        R                  " [        SS9   UR                  X5        S S S 5        g ! , (       d  f       GN= f! , (       d  f       N= f! , (       d  f       N|= f! , (       d  f       g = f)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       T/var/www/html/venv/lib/python3.13/site-packages/sklearn/compose/tests/test_target.py%test_transform_target_regressor_errorr*      sF   DA%"$"$VVVV	D 
U
 		
 GGQWWQZM*M%+->;KD 
K
 	]3	
 &2662D	M
 		
 &266:D	M
 		
 
3
 

 

 

 
s0   E9FFF-9
F
F
F*-
F;c                  .   [         u  p[        [        5       [        R                  [        R
                  SS9n[        R                  " [        SS9   UR                  X5        S S S 5        [        [        5       [        R                  [        R
                  S9nUR                  SS9  [        R                  " 5          [        R                  " S[        5        UR                  X5        S S S 5        g ! , (       d  f       N= f! , (       d  f       g = f)	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    DA%"$WWVV	D 
Q
 		

 &"$277D 	OO%O(		 	 	"g{3 
#	"
 
 
#	"s   C5?-D5
D
Dc                 z    [         R                  " U SS9n[         R                  " U SS9n[        X-
  U-  U5        g )Nr   )axis)r   meanstdr   )r'   y_predy_meany_stds       r)   _check_standard_scaledr?   R   s3    WWQQFFF11EQZ5(&1    c                 "    [        U S-   U5        g N   r   )r'   r<   s     r)   _check_shifted_by_onerD   X   s    AE6"r@   c            	      b   [         u  p[        [        5       [        R                  [        R
                  S9nUR                  X5      R                  U 5      nUR                  R                  UR                  SS5      5      R                  5       n[        [        R                  " U5      U5        [        XR                  R                  UR                  SS5      5      R                  5       5        UR                  UR                  :X  d   e[        X2R                  UR                   R                  U 5      5      5        [        5       R                  XR#                  U5      5      n[        UR                   R$                  R'                  5       UR$                  R'                  5       5        g )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   \   s(   DA%"$266D XXa^##A&F((2q)9:BBDFBFF1Iv&	..v~~b!/DEMMO 77fll"""F--doo.E.Ea.HIJ				99Q<	0BDOO))//1288>>3CDr@   c                  X   [         S   n [        R                  " [         S   [         S   S-  S-   45      R                  n[	        [        5       [        R                  [        R                  S9nUR                  X5      R                  U 5      nUR                  R                  U5      n[        [        R                  " U5      U5        [        XR                  R                  U5      5        UR                  UR                  :X  d   e[        X2R                  UR                   R                  U 5      5      5        [        5       R                  XR#                  U5      5      n[        UR                   R$                  R'                  5       UR$                  R'                  5       5        g )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   s(   A
		8A;q 01 45688A%"$266D XXa^##A&F((+FBFF1Iv&A((::6BC77fll"""F--doo.E.Ea.HIJ				99Q<	0BDOO))//1288>>3CDr@   zX,yrC   rU   c                    [        S S S9n[        [        5       US9nUR                  X5      R	                  U 5      nUR
                  UR
                  :X  d   eUR                  R                  U5      n[        X5        UR
                  UR
                  :X  d   e[        XR                  R                  U5      R                  5       5        [        5       n[        U5      nUR                  XR                  U5      5        UR	                  U 5      n[        XGR                  U5      5        [        UR                  R                  UR                  5        g )Nc                     U S-   $ rB    xs    r)   <lambda>@test_transform_target_regressor_1d_transformer.<locals>.<lambda>   s    q1ur@   c                     U S-
  $ rB   r[   r\   s    r)   r^   r_      s    QUr@   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_transformerrf      s    &?K &"$+D XXa^##A&F77fll"""((+F!$77fll"""A((::6BJJLM		B%LFF1((+,

1IF::9EFDOO))2884r@   c           	      f   [        5       n[        [        5       US9nUR                  X5      R	                  U 5      nUR
                  UR
                  :X  d   eUR                  S:X  a,  UR                  R                  UR                  SS5      5      nOUR                  R                  U5      n[        XR                  5       5        UR
                  UR
                  :X  d   e[        XR                  R                  U5      R                  5       5        [        5       n[        U5      nUR                  S:X  a  UR                  XR                  UR                  SS5      5      R                  5       5        UR	                  U 5      R                  SS5      nUR                  U5      R                  5       n	OBUR                  XR                  U5      5        UR	                  U 5      nUR                  U5      n	[        XI5        [        UR                   R"                  UR"                  5        g )Nr   rC   rF   )r   r   r
   r"   rG   r$   ndimrH   rI   rJ   r?   rK   r   rL   r   rb   rM   rN   )
r&   r'   r   r(   r<   rQ   rR   rd   re   y_pred2s
             r)   .test_transform_target_regressor_2d_transformerrj      s    !"K%"$+D XXa^##A&F77fll"""vv{"",,QYYr1-=>"",,Q/1nn./77fll"""A((::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;F$DOO))2884r@   c                  .   [         S   n [        R                  " [         S   [         S   S-  S-   45      R                  n[	        5       n[        [        5       US9nUR                  X5      R                  U 5      nUR                  UR                  :X  d   eUR                  R                  U5      n[        X5        UR                  UR                  :X  d   e[        XR                  R                  U5      R                  5       5        [        5       n[!        U5      nUR                  XR#                  U5      5        UR                  U 5      n[        XGR                  U5      5        [        UR$                  R&                  UR&                  5        g )Nr   rC   rU   r   )r   r   rV   rW   r   r   r
   r"   rG   r$   rH   rI   r?   r   rL   rK   r   rb   rM   rN   rc   s	            r)   :test_transform_target_regressor_2d_transformer_multioutputrl      s9    	A
		8A;q 01 45688A "K%"$+D XXa^##A&F77fll"""((+F1%77fll"""A((::6BJJLM		B%LFF1((+,

1IF::9EFDOO))2884r@   c                  2   [         S   n [        R                  " [         S   R                  SSS5      / SQ5      nS nS n[	        X#S9n[        [        5       US9nUR                  X5      R                  U 5      nUR                  UR                  :X  d   eg )	Nr   rC   rF   )rC      rU   c                 @    U R                  U R                  S   S5      $ )Nr   rF   rJ   r$   datas    r)   flatten_data?test_transform_target_regressor_3d_target.<locals>.flatten_data   s    ||DJJqM2..r@   c                 B    U R                  U R                  S   SS5      $ )Nr   rF   rU   rp   rq   s    r)   unflatten_dataAtest_transform_target_regressor_3d_target.<locals>.unflatten_data   s    ||DJJqM2q11r@   ra   r   )
r   r   tilerJ   r   r   r
   r"   rG   r$   )r&   r'   rs   rv   r   r(   r<   s          r)   )test_transform_target_regressor_3d_targetry      s     	A
##B1-y9A/2 &<UK%"$+D XXa^##A&F77fll"""r@   c                     [         S   n [        R                  " [         S   [         S   S-  S-   /5      nS nS n[        X#SS9nUR	                  X5        UR                  U 5      nUR                  S:X  d   eS	 n[        X#SS9nUR	                  X5        UR                  U 5      nUR                  S:X  d   e[        Xe5        g )
Nr   rC   rU   c                     [         R                  " U S S 2S4   S-  U S S 2S4   S-  -   5      nUS S 2[         R                  4   $ Nr   rU   rC   )r   r/   newaxis)r'   outs     r)   r   =test_transform_target_regressor_multi_to_single.<locals>.func   s@    gga1glQq!tW\121bjj=!!r@   c                     U $ Nr[   r'   s    r)   r   Etest_transform_target_regressor_multi_to_single.<locals>.inverse_func       r@   F)r   r   r,   )d   rC   c                 \    [         R                  " U S S 2S4   S-  U S S 2S4   S-  -   5      $ r|   )r   r/   r   s    r)   r   r     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 FF1LZZ]N8+++4 
$E
B FF1LZZ]N8+++N3r@   c                   *    \ rS rSrSS jrS rS rSrg)DummyCheckerArrayTransformeri  Nc                 H    [        U[        R                  5      (       d   eU $ r   
isinstancer   ndarrayselfr&   r'   s      r)   r"    DummyCheckerArrayTransformer.fit  s    !RZZ((((r@   c                 H    [        U[        R                  5      (       d   eU$ r   r   r   r&   s     r)   rI   &DummyCheckerArrayTransformer.transform      !RZZ((((r@   c                 H    [        U[        R                  5      (       d   eU$ r   r   r   s     r)   rL   .DummyCheckerArrayTransformer.inverse_transform  r   r@   r[   r   )__name__
__module____qualname____firstlineno__r"   rI   rL   __static_attributes__r[   r@   r)   r   r     s    r@   r   c                   8   ^  \ rS rSrSU 4S jjrU 4S jrSrU =r$ )DummyCheckerListRegressori"  c                 R   > [        U[        5      (       d   e[        TU ]  XU5      $ r   )r   listsuperr"   )r   r&   r'   r   	__class__s       r)   r"   DummyCheckerListRegressor.fit#  s'    !T""""w{1//r@   c                 P   > [        U[        5      (       d   e[        TU ]  U5      $ r   )r   r   r   rG   )r   r&   r   s     r)   rG   !DummyCheckerListRegressor.predict'  s%    !T""""wq!!r@   r[   r   )r   r   r   r   r"   rG   r   __classcell__r   s   @r)   r   r   "  s    0" "r@   r   c                     [         u  p[        [        5       [        5       SS9nUR	                  U R                  5       UR                  5       5        UR                  U R                  5       5        [        R                  " [        5         UR	                  XR                  5       5        S S S 5        [        R                  " [        5         UR                  U 5        S S S 5        g ! , (       d  f       NC= f! , (       d  f       g = f)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     DA	#02+-
B
 FF188:qxxz"JJqxxz	~	&
q((* 
'	~	&


1 
'	& 
'	&	&	&s    C(C9(
C69
Dc                   8    \ rS rSrSrS	S jrS
S jrS rS rSr	g)DummyTransformeri>  z;Dummy transformer which count how many time fit was called.c                     Xl         g r   fit_counter)r   r   s     r)   __init__DummyTransformer.__init__A  s    &r@   Nc                 0    U =R                   S-  sl         U $ rB   r   r   s      r)   r"   DummyTransformer.fitD  s    Ar@   c                     U$ r   r[   r   s     r)   rI   DummyTransformer.transformH  r   r@   c                     U$ r   r[   r   s     r)   rL   "DummyTransformer.inverse_transformK  r   r@   r   )r   r   )
r   r   r   r   __doc__r   r"   rI   rL   r   r[   r@   r)   r   r   >  s    E'r@   r   r,   FTc                     [         u  p[        [        5       U S9nUR                  X5        UR                  R
                  S:X  d   eg )N)r   r,   rC   )r   r   r   r"   rH   r   )r,   r&   r'   ttrs       r)   )test_transform_target_regressor_count_fitr   O  sD     DA
$$&mC GGAM''1,,,r@   c                   ,   ^  \ rS rSrSU 4S jjrSrU =r$ ) DummyRegressorWithExtraFitParamsi[  c                 6   > U(       a   e[         TU ]  XU5      $ r   )r   r"   )r   r&   r'   r   check_inputr   s        r)   r"   $DummyRegressorWithExtraFitParams.fit\  s     w{1//r@   r[   NT)r   r   r   r   r"   r   r   r   s   @r)   r   r   [  s    0 0r@   r   c                      [         u  p[        [        5       [        5       S9nUR	                  XSS9  UR
                  R                  S:X  d   eg )Nr   Fr   rC   )r   r   r   r   r"   rH   r   r6   s      r)   3test_transform_target_regressor_pass_fit_parametersr   c  sK    DA%24BRBTD 	HHQuH%((A---r@   c                      [         u  p[        [        5       [        5       S9nS[	        5       4SU4/n[        U5      nUR                  " X40 SS0D6  UR                  R                  S:X  d   eg )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  sr    DA%24BRBTD  01E4=AJ
:
CGGA0'/0((A---r@   c                   ,   ^  \ rS rSrSU 4S jjrSrU =r$ )$DummyRegressorWithExtraPredictParamsi{  c                 B   > SU l         U(       a   e[        TU ]	  U5      $ r   )predict_calledr   rG   )r   r&   r   r   s      r)   rG   ,DummyRegressorWithExtraPredictParams.predict|  s$     #wq!!r@   )r   )T)r   r   r   r   rG   r   r   r   s   @r)   r   r   {  s    " "r@   r   c                      [         u  p[        [        5       [        5       S9nUR	                  X5        UR                  U SS9  UR                  R                  (       d   eg )Nr   Fr   )r   r   r   r   r"   rG   rM   r   r6   s      r)   =test_transform_target_regressor_pass_extra_predict_parametersr     sO    DA%68FVFXD 	HHQNLLL&??))))r@   output_formatpandaspolarsc                    [         R                  " 5       u  p[        R                  " U5      S-   n[	        U S9   [
        R                  " 5          [
        R                  " S5        [        [        5       [        R                  [        R                  S9R                  X5        SSS5        SSS5        g! , (       d  f       N= f! , (       d  f       g= f)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    
 ##%DA
q	AA		7$$&!!'*&*,266c!i	 ' 
8	7&& 
8	7s$   CAB6%C6
C	 C
Cc                   *    \ rS rSrSrS rS rS rSrg)ValidateDimensionRegressori  zLA regressor that expects the target to have a specific number of dimensions.c                     Xl         g r   rh   )r   rh   s     r)   r   #ValidateDimensionRegressor.__init__  s    	r@   c                 <    UR                   U R                   :X  d   eg r   r   r   s      r)   r"   ValidateDimensionRegressor.fit  s    vv"""r@   c                     g r   r[   r   s     r)   rG   "ValidateDimensionRegressor.predict  s    r@   r   N)	r   r   r   r   r   r   r"   rG   r   r[   r@   r)   r   r     s    V#r@   r   rh   c                     [         R                  " SSSS9u  pU S:X  a  UR                  SS5      n[        [	        U 5      S9nUR                  X5        g	)
zyCheck that TransformedTargetRegressor internally preserves the shape of the input

non-regression test for issue #26530.

      *   )	n_samples
n_featuresr   rU   rF   rC   )r   N)r   r   rJ   r   r   r"   )rh   r&   r'   r(   s       r)   5test_transform_target_regressor_preserves_input_shaper     sL     ##bQRPDAqyIIb!%0J40PQDHHQNr@   )7r3   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   rf   rj   rl   ry   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r[   r@   r)   <module>r      s      , ? ? 6 ( L % E 2""2&R.2#E&E$ 	Hx{BIIx{HQK1<Lq<P.Q$R$T$TUV558 	Hx{BIIx{HQK1<Lq<P.Q$R$T$TUV55D54#*4@#3] " "$' " 5$-8- 9-0~ 0.."> "	* 8X*>? @
 
 !Q(
 )
r@   