o
    tBh3                  
   @   s  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 dZdd Zdd Zdd Zdd Zdd Zdd Zej !deed  e"ed ed d d fj#fgdd Z$ej !deed  e"ed ed d d fj#fgd d! Z%d"d# Z&d$d% Z'd&d' Z(G d(d) d)eeZ)G d*d+ d+eZ*d,d- Z+G d.d/ d/eeZ,ej !d0d1d2gd3d4 Z-G d5d6 d6eZ.d7d8 Z/d9d: Z0G d;d< d<eZ1d=d> Z2dS )?    N)clone)BaseEstimator)TransformerMixin)DummyRegressorassert_allclose)assert_no_warnings)FunctionTransformer)StandardScaler)Pipeline)LinearRegressionOrthogonalMatchingPursuit)datasets)TransformedTargetRegressor)random_statec                  C   s  t \} }tt t tjtjd}tjt	dd |
| | W d    n1 s(w   Y  t|jd f}tt t d}tjtdd |j
| ||d W d    n1 sXw   Y  ttjd}tjt	d	d |
| | W d    d S 1 s|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    r'   x/var/www/html/riverr-enterprise-integrations-main/venv/lib/python3.10/site-packages/sklearn/compose/tests/test_target.py%test_transform_target_regressor_error   s<   "r)   c                  C   s   t \} }tt tjtjdd}tjtdd |	| | W d    n1 s'w   Y  tt tjtjd}|j
d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&   r'   r'   r(   *test_transform_target_regressor_invertible<   s$   r1   c                 C   s2   t j| dd}t j| dd}t| | | | d S )Nr   )axis)r   meanstdr   )r%   y_predy_meany_stdr'   r'   r(   _check_standard_scaledS   s   r8   c                 C   s   t | d | d S N   r   )r%   r5   r'   r'   r(   _check_shifted_by_oneY      r;   c                  C   s   t \} }tt tjtjd}|| || }|j	|
dd }tt|| t||j|
dd  |j|jksBJ 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&   r5   y_tranlrr'   r'   r(   )test_transform_target_regressor_functions]   s   rJ   c                  C   s   t d } tt d t d d d fj}tt tjtjd}|| |	| }|j
|}tt|| t||j
| |j|jksFJ t|||j	|  t | ||}t|jj |j  d S )Nr   r:      r+   )r   r   vstackTr   r   r   r   r    r>   r?   r@   r   rC   r"   r   rD   r   rE   rF   rG   r'   r'   r(   5test_transform_target_regressor_functions_multioutputp   s    rN   zX,yr:   rK   c           	      C   s   t dd dd d}tt |d}|| || }|j|jks"J |j|}t|| |j|jks5J t	||j
|  t }t|}|| || || }t	||
| t	|jj|j d S )Nc                 S   s   | d S r9   r'   xr'   r'   r(   <lambda>       z@test_transform_target_regressor_1d_transformer.<locals>.<lambda>c                 S   s   | d S r9   r'   rO   r'   r'   r(   rQ      rR   r   r   r   )r	   r   r   r    r>   r"   r?   r@   r;   r   rC   rB   r   fit_transformrD   rE   	r$   r%   r   r&   r5   rH   rI   transformer2	y_lr_predr'   r'   r(   .test_transform_target_regressor_1d_transformer   s$   

rX   c           
   	   C   s2  t  }tt |d}|| || }|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rw|| ||	dd  || 	dd}|| }	n|| || || }||}	t||	 t|jj|j d S )Nr   r:   r=   )r
   r   r   r    r>   r"   ndimr?   r@   rA   r8   rB   r   rC   r   rT   rD   rE   )
r$   r%   r   r&   r5   rH   rI   rV   rW   y_pred2r'   r'   r(   .test_transform_target_regressor_2d_transformer   s.   




r[   c            	      C   s   t d } tt d t d d d fj}t }tt |d}|| || }|j	|j	ks/J |j
|}t|| |j	|j	ksBJ t||j
|  t }t|}|| || || }t||| t|jj|j d S )Nr   r:   rK   r   )r   r   rL   rM   r
   r   r   r    r>   r"   r?   r@   r8   r   rC   rB   r   rT   rD   rE   rU   r'   r'   r(   :test_transform_target_regressor_2d_transformer_multioutput   s$    

r\   c                  C   sv   t d } tt d dddg d}dd }dd }t||d	}tt |d
}|| || }|j	|j	ks9J d S )Nr   r:   r=   )r:      rK   c                 S   s   |  | jd dS )Nr   r=   rA   r"   datar'   r'   r(   flatten_data   r<   z?test_transform_target_regressor_3d_target.<locals>.flatten_datac                 S   s   |  | jd ddS )Nr   r=   rK   r^   r_   r'   r'   r(   unflatten_data   s   zAtest_transform_target_regressor_3d_target.<locals>.unflatten_datarS   r   )
r   r   tilerA   r	   r   r   r    r>   r"   )r$   r%   ra   rb   r   r&   r5   r'   r'   r(   )test_transform_target_regressor_3d_target   s   rd   c                  C   s   t d } tt d t d d d g}dd }dd }t||dd	}|| | || }|jd
ks4J dd }t||dd	}|| | || }|jd
ksQJ t|| d S )Nr   r:   rK   c                 S   s@   t | d d df d | d d df d  }|d d t jf S Nr   rK   r:   )r   r,   newaxis)r%   outr'   r'   r(   r      s   .z=test_transform_target_regressor_multi_to_single.<locals>.funcc                 S   s   | S Nr'   r%   r'   r'   r(   r         zEtest_transform_target_regressor_multi_to_single.<locals>.inverse_funcF)r   r   r*   )d   r:   c                 S   s.   t | d d df d | d d df d  S re   )r   r,   ri   r'   r'   r(   r     s   .)r   r   	transposer   r    r>   r"   r   )r$   r%   r   r   tty_pred_2d_funcy_pred_1d_funcr'   r'   r(   /test_transform_target_regressor_multi_to_single   s$   

rp   c                   @   s&   e Zd ZdddZdd Zdd ZdS )	DummyCheckerArrayTransformerNc                 C   s   t |tjsJ | S rh   
isinstancer   ndarrayselfr$   r%   r'   r'   r(   r         z DummyCheckerArrayTransformer.fitc                 C      t |tjsJ |S rh   rr   rv   r$   r'   r'   r(   r@     rw   z&DummyCheckerArrayTransformer.transformc                 C   rx   rh   rr   ry   r'   r'   r(   rC     rw   z.DummyCheckerArrayTransformer.inverse_transformrh   )__name__
__module____qualname__r    r@   rC   r'   r'   r'   r(   rq     s    
rq   c                       s*   e Zd Zd fdd	Z fddZ  ZS )DummyCheckerListRegressorNc                    s   t |tsJ t |||S rh   )rs   listsuperr    )rv   r$   r%   r   	__class__r'   r(   r    $  s   zDummyCheckerListRegressor.fitc                    s   t |tsJ t |S rh   )rs   r~   r   r>   ry   r   r'   r(   r>   (  s   z!DummyCheckerListRegressor.predictrh   )rz   r{   r|   r    r>   __classcell__r'   r'   r   r(   r}   #  s    r}   c                  C   s   t \} }tt t dd}||  |  ||   tt	 || |  W d    n1 s6w   Y  tt	 ||  W d    d S 1 sQw   Y  d S )NF)r   r   r*   )
r   r   rq   r}   r    tolistr>   r   r   AssertionError)r$   r%   rm   r'   r'   r(   .test_transform_target_regressor_ensure_y_array-  s   "r   c                   @   s4   e Zd ZdZdddZdddZdd	 Zd
d ZdS )DummyTransformerz;Dummy transformer which count how many time fit was called.r   c                 C   s
   || _ d S rh   fit_counter)rv   r   r'   r'   r(   __init__B  s   
zDummyTransformer.__init__Nc                 C   s   |  j d7  _ | S r9   r   ru   r'   r'   r(   r    E  s   zDummyTransformer.fitc                 C      |S rh   r'   ry   r'   r'   r(   r@   I  rj   zDummyTransformer.transformc                 C   r   rh   r'   ry   r'   r'   r(   rC   L  rj   z"DummyTransformer.inverse_transform)r   rh   )rz   r{   r|   __doc__r   r    r@   rC   r'   r'   r'   r(   r   ?  s    

r   r*   FTc                 C   s6   t \}}tt | d}||| |jjdksJ d S )N)r   r*   r:   )r   r   r   r    r?   r   )r*   r$   r%   ttrr'   r'   r(   )test_transform_target_regressor_count_fitP  s   r   c                       s   e Zd Zd fdd	Z  ZS ) DummyRegressorWithExtraFitParamsNTc                    s   |rJ t  |||S rh   )r   r    )rv   r$   r%   r   check_inputr   r'   r(   r    ]  s   z$DummyRegressorWithExtraFitParams.fitNT)rz   r{   r|   r    r   r'   r'   r   r(   r   \      r   c                  C   s<   t \} }tt t d}|j| |dd |jjdksJ d S )Nr   Fr   r:   )r   r   r   r   r    r?   r   r0   r'   r'   r(   3test_transform_target_regressor_pass_fit_parametersd  s   r   c                  C   s^   t \} }tt t d}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    r?   r   )r$   r%   r&   
estimatorspipr'   r'   r(   .test_transform_target_regressor_route_pipelinen  s   r   c                       s   e Zd Zd fdd	Z  ZS )$DummyRegressorWithExtraPredictParamsTc                    s   d| _ |rJ t |S r   )predict_calledr   r>   )rv   r$   r   r   r'   r(   r>   }  s   z,DummyRegressorWithExtraPredictParams.predict)T)rz   r{   r|   r>   r   r'   r'   r   r(   r   |  r   r   c                  C   sB   t \} }tt t d}|| | |j| dd |jjsJ d S )Nr   Fr   )r   r   r   r   r    r>   rD   r   r0   r'   r'   r(   =test_transform_target_regressor_pass_extra_predict_parameters  s   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)   r1   r8   r;   rJ   rN   markparametrizerL   rM   rX   r[   r\   rd   rp   rq   r}   r   r   r   r   r   r   r   r   r'   r'   r'   r(   <module>   sV    !,
,
" 


	