
    {Kg7              
       N   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mZ  ej4                  d 
      Zd Zd Zd Zd Zd Z d Z!ejD                  jG                  deed     ejH                  ed   ed   dz  dz   f      jJ                  fg      d        Z&ejD                  jG                  deed     ejH                  ed   ed   dz  dz   f      jJ                  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jD                  jG                  d d!d"g      d#        Z/ G d$ d%e      Z0d& Z1d' Z2 G d( d)e      Z3d* Z4ejD                  jG                  d+d,d-g      d.        Z5y)/    N)config_contextdatasets)BaseEstimatorTransformerMixinclone)TransformedTargetRegressor)DummyRegressor)LinearRegressionOrthogonalMatchingPursuit)Pipeline)FunctionTransformerStandardScaler)assert_allcloseassert_no_warnings)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       e/home/alanp/www/video.onchill/myenv/lib/python3.12/site-packages/sklearn/compose/tests/test_target.py%test_transform_target_regressor_errorr*      sP   DAq%"$"$VVVV	D 
U
 	A	
 GGQWWQZM*M%+->;KD 
N
 	A]3	
 &2662D	M
 	A	
 &266:D	M
 	A	
 
3
 

 

 

 
s0    FF!(F-8F9F!F*-F69Gc                     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                  | |       y # 1 sw Y   exY w)NT)r   r   r   check_inversezMThe provided functions or transformer are not strictly inverse of each other.r   r   r   r   F)r,   )r   r   r
   r   sqrtr   r   warnsUserWarningr"   
set_paramsr   r&   r'   r(   s      r)   *test_transform_target_regressor_invertibler3   ;   s    DAq%"$WWVV	D 
C
 	A
 &"$277D 	OO%O(txxA&
 
s   CC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'   r8   s     r)   _check_shifted_by_oner@   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-   r?   )r   r   r
   r   r   r   r"   predicttransformer_	transformreshapesqueezer   inverse_transformr$   r   
regressor_r   coef_ravelr&   r'   r(   r8   y_tranlrs         r)   )test_transform_target_regressor_functionsrO   \   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   r?      r-   )r   r   vstackTr   r
   r   r   r"   rC   rD   rE   r   rH   r$   r   rI   r   rJ   rK   rL   s         r)   5test_transform_target_regressor_functions_multioutputrT   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,yr?   rQ   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 r>    xs    r)   <lambda>z@test_transform_target_regressor_1d_transformer.<locals>.<lambda>   s    q1ur<   c                     | dz
  S r>   rW   rX   s    r)   rZ   z@test_transform_target_regressor_1d_transformer.<locals>.<lambda>   s    QUr<   r   r   r   )r   r   r
   r"   rC   r$   rD   rE   r@   r   rH   rG   r   fit_transformrI   rJ   	r&   r'   r   r(   r8   rM   rN   transformer2	y_lr_preds	            r)   .test_transform_target_regressor_1d_transformerra      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   r?   rB   )r   r   r
   r"   rC   r$   ndimrD   rE   rF   r;   rG   r   rH   r   r]   rI   rJ   )
r&   r'   r   r(   r8   rM   rN   r_   r`   y_pred2s
             r)   .test_transform_target_regressor_2d_transformerre      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   r?   rQ   r   )r   r   rR   rS   r   r   r
   r"   rC   r$   rD   rE   r;   r   rH   rG   r   r]   rI   rJ   r^   s	            r)   :test_transform_target_regressor_2d_transformer_multioutputrg      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   r?   rB   )r?      rQ   c                 @    | j                  | j                  d   d      S )Nr   rB   rF   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   rB   rQ   rk   rl   s    r)   unflatten_datazAtest_transform_target_regressor_3d_target.<locals>.unflatten_data   s    ||DJJqM2q11r<   r\   r   )
r   r   tilerF   r   r   r
   r"   rC   r$   )r&   r'   rn   rp   r   r(   r8   s          r)   )test_transform_target_regressor_3d_targetrr      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   r?   rQ   c                     t        j                  | d d df   dz  | d d df   dz  z         }|d d t         j                  f   S Nr   rQ   r?   )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 NrW   r'   s    r)   r   zEtest_transform_target_regressor_multi_to_single.<locals>.inverse_func       r<   F)r   r   r,   )d   r?   c                 Z    t        j                  | d d df   dz  | d d df   dz  z         S ru   )r   r.   rz   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"   rC   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 ry   
isinstancer   ndarrayselfr&   r'   s      r)   r"   z DummyCheckerArrayTransformer.fit  s    !RZZ(((r<   c                 >    t        |t        j                        sJ |S ry   r   r   r&   s     r)   rE   z&DummyCheckerArrayTransformer.transform      !RZZ(((r<   c                 >    t        |t        j                        sJ |S ry   r   r   s     r)   rH   z.DummyCheckerArrayTransformer.inverse_transform  r   r<   ry   )__name__
__module____qualname__r"   rE   rH   rW   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 ry   )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 ry   )r   r   r   rC   )r   r&   r   s     r)   rC   z!DummyCheckerListRegressor.predict'  s"    !T"""wq!!r<   ry   )r   r   r   r"   rC   __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"   tolistrC   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 ry   fit_counter)r   r   s     r)   __init__zDummyTransformer.__init__A  s
    &r<   Nc                 0    | xj                   dz  c_         | S r>   r   r   s      r)   r"   zDummyTransformer.fitD  s    Ar<   c                     |S ry   rW   r   s     r)   rE   zDummyTransformer.transformH  r{   r<   c                     |S ry   rW   r   s     r)   rH   z"DummyTransformer.inverse_transformK  r{   r<   )r   ry   )r   r   r   __doc__r   r"   rE   rH   rW   r<   r)   r   r   >  s    E'r<   r   r,   FTc                     t         \  }}t        t               |       }|j                  ||       |j                  j
                  dk(  sJ y )N)r   r,   r?   )r   r   r   r"   rD   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 ry   )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   r?   )r   r   r   r   r"   rD   r   r2   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_inputFr?   )	r   r   r   r   r   r   r"   rD   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   rC   )r   r&   r   r   s      r)   rC   z,DummyRegressorWithExtraPredictParams.predict|  s$     #wq!!r<   )T)r   r   r   rC   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"   rC   rI   r   r2   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.r?   )transform_outputerrorr-   N)r   make_regressionr   absr   warningscatch_warningssimplefilterr   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	 ' 
8	7&& 
8	7s$   CAB:)C:C	?CC)6r   numpyr   r   sklearnr   r   sklearn.baser   r   r   sklearn.composer   sklearn.dummyr	   sklearn.linear_modelr
   r   sklearn.pipeliner   sklearn.preprocessingr   r   sklearn.utils._testingr   r   make_friedman1r   r*   r3   r;   r@   rO   rT   markparametrizerR   rS   ra   re   rg   rr   r   r   r   r   r   r   r   r   r   r   r   r   rW   r<   r)   <module>r      s      , ? ? 6 ( L % E F"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<   