
     h3              
       J   d dl Zd dlZd dlmZ d dlmZ d dlmZ d dlmZ d dl	m
Z
 d dl	mZ d dl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  ej        d           Zd Zd Zd Zd Zd Zd Zej         !                    deed           ej"        ed         ed         dz  dz   f          j#        fg          d             Z$ej         !                    deed           ej"        ed         ed         dz  dz   f          j#        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j         !                    d$d%d&g          d'             Z- G d( d)e          Z.d* Z/d+ Z0 G d, d-e          Z1d. Z2dS )/    N)clone)BaseEstimator)TransformerMixin)DummyRegressorassert_allclose)assert_no_warnings)FunctionTransformer)StandardScaler)Pipeline)LinearRegressionOrthogonalMatchingPursuit)datasets)TransformedTargetRegressor)random_statec                     t           \  } }t          t                      t                      t          j        t          j                  }t          j        t          d          5  |
                    | |           d d d            n# 1 swxY w Y   t	          j        |j        d         f          }t          t                      t                                }t          j        t          d          5  |
                    | ||           d d d            n# 1 swxY w Y   t          t          j                  }t          j        t          d	          5  |
                    | |           d d d            d S # 1 swxY w Y   d S )
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)friedmanr   r   r   npexplogpytestraises
ValueErrorfitonesshaper   	TypeError)Xyregrr   s       ]/var/www/html/Sam_Eipo/venv/lib/python3.11/site-packages/sklearn/compose/tests/test_target.py%test_transform_target_regressor_errorr*      s6   DAq%"$$"$$VV	  D 
U
 
 
   	A	               GQWQZM**M%+-->;K;K  D 
N
 
 
 4 4 	A]333	4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 &26222D	M
 
 
   	A	                 s6   %BBB7DD #D F  FFc                     t           \  } }t          t                      t          j        t          j        d          }t          j        t          d          5  |	                    | |           d d d            n# 1 swxY w Y   t          t                      t          j        t          j                  }|
                    d           t          |j	        | |           d S )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%"$$WV	  D 
C
 
 
   	A               &"$$27  D 	OO%O(((txA&&&&&s   A<<B B c                     t          j        | d          }t          j        | d          }t          | |z
  |z  |           d S )Nr   )axis)r   meanstdr   )r'   y_predy_meany_stds       r)   _check_standard_scaledr;   S   sI    WQQFF11EQZ5(&11111    c                 ,    t          | dz   |           d S N   r   )r'   r8   s     r)   _check_shifted_by_oner@   Y   s    AE6"""""r<   c            	         t           \  } }t          t                      t          j        t          j                  }|                    | |                              |           }|j        	                    |
                    dd                                                    }t          t          j        |          |           t          ||j                            |
                    dd                                                               |j        |j        k    sJ t          ||                    |j                            |                                t                                          | |                    |                    }t          |j        j                                        |j                                                   d S )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   ]   sx   DAq%"$$26  D XXa^^##A&&F((2q)9)9::BBDDFBF1IIv&&&	4..v~~b!/D/DEEMMOO   7fl""""FD--do.E.Ea.H.HIIJJJ					499Q<<	0	0BDO)//1128>>3C3CDDDDDr<   c                     t           d         } t          j        t           d         t           d         dz  dz   f          j        }t	          t                      t          j        t          j                  }|                    | |          	                    |           }|j
                            |          }t          t          j        |          |           t          ||j
                            |                     |j        |j        k    sJ t          ||                    |j        	                    |                                t                                          | |                    |                    }t          |j        j                                        |j                                                   d S )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   p   sd   A
	8A;q 01 45668A%"$$26  D XXa^^##A&&F((++FBF1IIv&&&At(::6BBCCC7fl""""FD--do.E.Ea.H.HIIJJJ					499Q<<	0	0BDO)//1128>>3C3CDDDDDr<   zX,yr?   rQ   c                    t          d d           }t          t                      |          }|                    | |                              |           }|j        |j        k    sJ |j                            |          }t          ||           |j        |j        k    sJ t          ||j        
                    |                                                     t                      }t          |          }|                    | |                    |                     |                    |           }t          ||
                    |                     t          |j        j        |j                   d S )Nc                     | dz   S r>    xs    r)   <lambda>z@test_transform_target_regressor_1d_transformer.<locals>.<lambda>   s
    q1u r<   c                     | dz
  S r>   rW   rX   s    r)   rZ   z@test_transform_target_regressor_1d_transformer.<locals>.<lambda>   s
    QU r<   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      sd    &_??  K &"$$+  D XXa^^##A&&F7fl""""((++F!V$$$7fl""""At(::6BBJJLLMMM			B%%LFF1l((++,,,

1IFL::9EEFFFDO)2844444r<   c           	         t                      }t          t                      |          }|                    | |                              |           }|j        |j        k    sJ |j        dk    r/|j                            |	                    dd                    }n|j                            |          }t          ||                                           |j        |j        k    sJ t          ||j                            |                                                     t                      }t          |          }|j        dk    r|                    | |                    |	                    dd                                                               |                    |           	                    dd          }|                    |                                          }	nS|                    | |                    |                     |                    |           }|                    |          }	t          ||	           t          |j        j        |j                   d S )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7fl""""v{{",,QYYr1-=-=>>",,Q//1fnn..///7fl""""At(::6BBJJLLMMM			B%%Lv{{
q,,,QYYr1-=-=>>FFHHIIIJJqMM))"a00	00;;CCEE
q,,,Q//000JJqMM	00;;FG$$$DO)2844444r<   c                     t           d         } t          j        t           d         t           d         dz  dz   f          j        }t	                      }t          t                      |          }|                    | |                              |           }|j	        |j	        k    sJ |j
                            |          }t          ||           |j	        |j	        k    sJ t          ||j
                            |                                                     t                      }t!          |          }|                    | |                    |                     |                    |           }t          ||                    |                     t          |j        j        |j                   d S )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      s    	A
	8A;q 01 45668A ""K%"$$+  D XXa^^##A&&F7fl""""((++F1f%%%7fl""""At(::6BBJJLLMMM			B%%LFF1l((++,,,

1IFL::9EEFFFDO)2844444r<   c                  l   t           d         } t          j        t           d                             ddd          g d          }d }d }t	          ||          }t          t                      |          }|                    | |                              |           }|j	        |j	        k    sJ d S )	Nr   r?   rB   )r?      rQ   c                 D    |                      | j        d         d          S )Nr   rB   rF   r$   datas    r)   flatten_dataz?test_transform_target_regressor_3d_target.<locals>.flatten_data   s    ||DJqM2...r<   c                 F    |                      | j        d         dd          S )Nr   rB   rQ   rk   rl   s    r)   unflatten_datazAtest_transform_target_regressor_3d_target.<locals>.unflatten_data   s    ||DJqM2q1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--yyy99A/ / /2 2 2 &<nUUUK%"$$+  D XXa^^##A&&F7fl""""""r<   c                     t           d         } t          j        t           d         t           d         dz  dz   g          }d }d }t          ||d          }|                    | |           |                    |           }|j        dk    sJ d	 }t          ||d          }|                    | |           |                    |           }|j        dk    sJ t          ||           d S )
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   sK    ga1glQqqq!tW\122111bj=!!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                 d    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  s7    wqAw!|a1gl23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 FF1aLLLZZ]]N8++++4 4 4 
$E
 
 
B FF1aLLLZZ]]N8++++NN33333r<   c                   "    e Zd ZddZd Zd ZdS )DummyCheckerArrayTransformerNc                 >    t          |t          j                  sJ | S ry   
isinstancer   ndarrayselfr&   r'   s      r)   r"   z DummyCheckerArrayTransformer.fit  s    !RZ(((((r<   c                 >    t          |t          j                  sJ |S ry   r   r   r&   s     r)   rE   z&DummyCheckerArrayTransformer.transform      !RZ(((((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     sF                 r<   r   c                   *     e Zd Zd fd	Z fdZ xZS )DummyCheckerListRegressorNc                 x    t          |t                    sJ t                                          |||          S ry   )r   listsuperr"   )r   r&   r'   r   	__class__s       r)   r"   zDummyCheckerListRegressor.fit$  s3    !T"""""ww{{1a///r<   c                 t    t          |t                    sJ t                                          |          S ry   )r   r   r   rC   )r   r&   r   s     r)   rC   z!DummyCheckerListRegressor.predict(  s/    !T"""""wwq!!!r<   ry   )r   r   r   r"   rC   __classcell__r   s   @r)   r   r   #  sV        0 0 0 0 0 0" " " " " " " " "r<   r   c                  p   t           \  } }t          t                      t                      d          }|                    |                                 |                                           |                    |                                            t          j        t                    5  |                    | |                                           d d d            n# 1 swxY w Y   t          j        t                    5  |                    |            d d d            d S # 1 swxY w Y   d S )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   -  sz    DAq	#022+--
 
 
B
 FF188::qxxzz"""JJqxxzz	~	&	&  
q!((**              	~	&	&  


1                 s$   /)C$$C(+C(D++D/2D/c                   .    e Zd ZdZddZd	dZd Zd ZdS )
DummyTransformerz;Dummy transformer which count how many time fit was called.r   c                     || _         d S ry   fit_counter)r   r   s     r)   __init__zDummyTransformer.__init__B  s    &r<   Nc                 &    | xj         dz  c_         | S r>   r   r   s      r)   r"   zDummyTransformer.fitE  s    Ar<   c                     |S ry   rW   r   s     r)   rE   zDummyTransformer.transformI  r{   r<   c                     |S ry   rW   r   s     r)   rH   z"DummyTransformer.inverse_transformL  r{   r<   )r   ry   )r   r   r   __doc__r   r"   rE   rH   rW   r<   r)   r   r   ?  s`        EE' ' ' '         r<   r   r,   FTc                     t           \  }}t          t                      |           }|                    ||           |j        j        dk    sJ d S )N)r   r,   r?   )r   r   r   r"   rD   r   )r,   r&   r'   ttrs       r)   )test_transform_target_regressor_count_fitr   P  s\     DAq
$$&&m  C GGAqMMM'1,,,,,,r<   c                         e Zd Zd fd	Z xZS ) DummyRegressorWithExtraFitParamsNTc                 R    |rJ t                                          |||          S ry   )r   r"   )r   r&   r'   r   check_inputr   s        r)   r"   z$DummyRegressorWithExtraFitParams.fit]  s*     ww{{1a///r<   NT)r   r   r   r"   r   r   s   @r)   r   r   \  s=        0 0 0 0 0 0 0 0 0 0r<   r   c                      t           \  } }t          t                      t                                }|                    | |d           |j        j        dk    sJ d S )Nr   Fr   r?   )r   r   r   r   r"   rD   r   r2   s      r)   3test_transform_target_regressor_pass_fit_parametersr   d  sh    DAq%244BRBTBT  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 d S )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   n  s    DAq%244BRBTBT  D  0 01E4=AJ
:

CCGAq00'/000(A------r<   c                         e Zd Zd fd	Z xZS )$DummyRegressorWithExtraPredictParamsTc                 \    d| _         |rJ t                                          |          S r   )predict_calledr   rC   )r   r&   r   r   s      r)   rC   z,DummyRegressorWithExtraPredictParams.predict}  s.     #wwq!!!r<   )T)r   r   r   rC   r   r   s   @r)   r   r   |  s=        " " " " " " " " " "r<   r   c                      t           \  } }t          t                      t                                }|                    | |           |                    | d           |j        j        sJ d S )Nr   Fr   )r   r   r   r   r"   rC   rI   r   r2   s      r)   =test_transform_target_regressor_pass_extra_predict_parametersr     sq    DAq%688FVFXFX  D 	HHQNNNLLL&&&?))))))r<   )3numpyr   r   sklearn.baser   r   r   sklearn.dummyr   sklearn.utils._testingr   r	   sklearn.preprocessingr
   r   sklearn.pipeliner   sklearn.linear_modelr   r   sklearnr   sklearn.composer   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   rW   r<   r)   <module>r      s              & & & & & & ) ) ) ) ) ) ( ( ( ( ( ( 2 2 2 2 2 2 5 5 5 5 5 5 5 5 5 5 5 5 0 0 0 0 0 0 % % % % % % L L L L L L L L       6 6 6 6 6 6"8"222  B' ' '.2 2 2# # #E E E&E E E$ 	Hx{IBIx{HQK1<Lq<P.Q$R$R$TUV 5 5 58 	Hx{IBIx{HQK1<Lq<P.Q$R$R$TUV 5 5 5D5 5 54# # #*4 4 4@    #3]   " " " " " " " "  $    '   " 5$-88- - 98-0 0 0 0 0~ 0 0 0. . .. . ." " " " "> " " "	* 	* 	* 	* 	*r<   