
    0Phd                        d dl Z d dlZd dlZd dlmZmZmZ d dlm	Z	m
Z
mZmZ d dlmZmZmZmZ d dlmZ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 Zd Z d Z!d Z"d Z#d Z$d Z%ej&        '                    de
eef          d             Z(ej&        '                    deee	f          d             Z)ej&        '                    deee	e
f          d             Z*d Z+ej&        '                    de	eee
f          ej&        '                    d e+                      d                         Z,ej&        '                    de
eee	f          d             Z-d Z.ej&        '                    dddg          d             Z/d  Z0d! Z1d" Z2d# Z3ej&        '                    d$eee	g          d%             Z4ej&        '                    d&d'd(g          ej&        '                    d$eee	g          d)                         Z5ej&        '                    d*e	e
eeg          d+             Z6ej&        '                    d*e	e
eeg          d,             Z7d- Z8d. Z9ej&        '                    d*ee	e
eg          d/             Z:ej&        '                    d*ee	e
eg          d0             Z;ej&        '                    d*ee	eg          d1             Z<dS )2    N)assert_allcloseassert_array_almost_equalassert_array_equal)CCAPLSSVDPLSCanonicalPLSRegression)_center_scale_xy(_get_first_singular_vectors_power_method_get_first_singular_vectors_svd_svd_flip_1d)load_linnerudmake_regression)VotingRegressor)ConvergenceWarning)LinearRegression)check_random_state)svd_flipc                     t          j        | j        |           }t          |t          j        t          j        |                               d S )N)npdotTr   diag)MKs     j/var/www/html/test/jupyter/venv/lib/python3.11/site-packages/sklearn/cross_decomposition/tests/test_pls.pyassert_matrix_orthogonalr      s;    
qsAAa!4!455555    c                     t                      } | j        }| j        }t          |j        d                   }|                    ||           t          |j                   t          |j                   t          |j	                   t          |j
                   |j	        }|j        }|j
        }|j        }t          |                                |                                d          \  }}	}
}}}t          |t!          j        ||j                             t          |	t!          j        ||j                             |                    |          }t          ||j	                   |                    ||          \  }}t          ||j	                   t          ||j
                   |                    |          }t          ||           |                    ||          \  }}t          ||           d S )N   n_componentsTscale)r   datatargetr   shapefitr   
x_weights_
y_weights_	_x_scores	_y_scoresx_loadings_y_loadings_r
   copyr   r   r   r   	transforminverse_transform)dXYplsr   PUQXcYcx_meany_meanx_stdy_stdXtYtX_back_Y_backs                      r   test_pls_canonical_basicsrD      s   A	A	A
AGAJ
/
/
/CGGAqMMMS^,,,S^,,,S]+++S]+++ 	AAAA+;	!&&(($, , ,(BFFE5 b"&AC..111b"&AC..111 
q		Bb#-000]]1a  FBb#-000b#-000 ""2&&Ffa(((%%b"--IAvfa(((((r   c                     t                      } | j        }| j        }t          |j        d                   }|                    ||          \  }}t          ||j                   t          j	        g dg dg dg          }t          j	        g dg dg dg          }t          j	        g d	g d
g dg          }t          j	        g d	g d
g dg          }	t          t          j        |j                  t          j        |                     t          t          j        |j                  t          j        |                     t          t          j        |j                  t          j        |	                     t          t          j        |j                  t          j        |                     t          j        |j        |z            }
t          j        |j        |z            }t          j        |j        |z            }t          j        |j        |	z            }t          |
|           t          ||           d S )Nr    r!   ),6gbx+rNF?);0g&Կf_)@mпg<-bL?ȣȿ)gHgtϿrG   )gE` gt[Wm¿rI   )ggLM3?rK   )g?g+E!?g4Ӝ@?)gsYO)?g`{?gA'?)g;Ծgпgſ)r   r%   r&   r	   r'   fit_transformr   	x_scores_r   arrayr   absr-   r)   r.   r*   sign)r2   r3   r4   r5   X_transrB   expected_x_weightsexpected_x_loadingsexpected_y_weightsexpected_y_loadingsx_loadings_sign_flipx_weights_sign_flipy_weights_sign_flipy_loadings_sign_flips                 r    test_sanity_check_pls_regressionrZ   C   sV    	A	A	A
QWQZ
0
0
0C""1a((JGQ
 GS]+++222333222	
  (222333222	
  111111333	
  (111111333	
  bfS_55rv>Q7R7RSSSbfS^44bf=O6P6PQQQbfS_55rv>Q7R7RSSSbfS^44bf=O6P6PQQQ 73?5H#HII'#.3E"EFF'#.3E"EFF73?5H#HII24GHHH24GHHHHHr   c                  @   t                      } | j        }| j        }d|d d df<   t          |j        d                   }|                    ||           t          j        g dg dg dg          }t          j        g dg dg d	g          }t          j        g d
g dg dg          }t          t          j	        |          t          j	        |j
                             t          t          j	        |          t          j	        |j                             t          t          j	        |j                  t          j	        |                     t          t          j	        |j                  t          j	        |                     t          j        ||j        z            }t          j        ||j
        z            }t          j        |dd          |j        dd          z            }	t          ||           t          |dd          |	           d S )Nr    r   r!   )g͝Og(}?:F?)gqgqdvgѿ|N<)g1, ˿g7Ƚ?\ƿ)gCgBg<&.̿r\   )gBg5_/Er]   )gQggr9?r^   )        r_   r_   )g ?gXZ?ghC%d?)gVSg{sɂϿg$(E,ǿ)r   r%   r&   r	   r'   r(   r   rN   r   rO   r)   r-   r.   r*   rP   r   )
r2   r3   r4   r5   rR   rS   rU   rV   rW   rY   s
             r   2test_sanity_check_pls_regression_constant_column_Yr`      s    	A	A	AAaaadG
QWQZ
0
0
0CGGAqMMM000222111	
  (000111000	
  (------000	
  bf%788"&:P:PQQQbf%89926#/;R;RSSSbfS_55rv>Q7R7RSSSbfS^44bf=P6Q6QRRR7#6#HII'"4s~"EFF7#6qrr#:S_QRR=P#PQQ+-@AAA+ABB/1EFFFFFr   c                     t                      } | j        }| j        }t          |j        d                   }|                    ||           t          j        g dg dg dg          }t          j        g dg dg dg          }t          j        g d	g d
g dg          }t          j        g dg dg dg          }t          t          j	        |j
                  t          j	        |                     t          t          j	        |j                  t          j	        |                     t          t          j	        |j                  t          j	        |                     t          t          j	        |j                  t          j	        |                     t          j        |j
        |z            }t          j        |j        |z            }	t          j        |j        |z            }
t          j        |j        |z            }t          ||	           t          |
|           t          |j                   t          |j                   t          |j                   t          |j                   d S )Nr    r!   )rF   g{cd?gr	)rH   g?g>c?)rJ   gP,"Pgͺ@)rF   gCj?g#i)rH   g2Щ?gr?)rJ   go _g<:ο)c?gD}Ȇ??g5?)UҮ?gOgөeJo?).a#οgbM4gYV?)rb   gͱ?g[K?)rc   g=mBgo1S?)rd   gP.%lgq!?)r   r%   r&   r   r'   r(   r   rN   r   rO   x_rotations_r)   y_rotations_r*   rP   r   r+   r,   )r2   r3   r4   r5   rR   expected_x_rotationsrT   expected_y_rotationsx_rotations_sign_fliprW   y_rotations_sign_fliprX   s               r   test_sanity_check_pls_canonicalrk      s|    	A	A	A
AGAJ
/
/
/CGGAqMMM222111333	
  8222111333	
  ///222222	
  8000222222	
  bfS%566?S8T8TUUUbfS^44bf=O6P6PQQQbfS%566?S8T8TUUUbfS^44bf=O6P6PQQQGC$47K$KLL'#.3E"EFFGC$47K$KLL'#.3E"EFF35HIII35HIIIS^,,,S^,,,S]+++S]+++++r   c                     d} d}d}t          d          }|                    |           }|                    |           }t          j        ||||g          j        }||                    d| z                                | df          z   }||                    d| z                                | df          z   }t          j        ||                    || z                                | |          fd          }t          j        ||                    || z                                | |          fd          }t          d	
          }	|	                    ||           t          j        g dg dg dg dg dg dg dg dg dg dg dg dg dg dg          }
t          j        g dg dg dg dg dg dg dg d g d!g d"g d#g d$g d%g d&g          }t          j        g d'g d(g d)g d*g d+g d,g d-g d.g d/g	          }t          j        g d0g d1g d2g d3g d4g d5g d6g d7g d8g	          }t          t          j
        |	j                  t          j
        |                     t          t          j
        |	j                  t          j
        |
                     t          t          j
        |	j                  t          j
        |                     t          t          j
        |	j                  t          j
        |                     t          j        |	j        |z            }t          j        |	j        |
z            }t          j        |	j        |z            }t          j        |	j        |z            }t          ||           t          ||           t!          |	j                   t!          |	j                   t!          |	j                   t!          |	j                   d S )9N  
         size   r    axis   r!   )gqAS?ģƒ?g	K?)g܈m?gr[q?g֎ ÿ)gոqjP?gͱgS?)g$$?g('G_g.k^)g~gsg
?)gjh?gfrg>uRz?)g$¯&?g		lgpO/?)g}W[g~glìǿ)gWX>egj8H@Zg˔Br?)g).egw4DgoP^?)gvzgqg1GZg}r5.?)gzϳJg1?g?)gMI?g,)Ɣg [u)gei?g⊬[gQ>Oƿ)gmƫ?gE^?g0?)gB+
?g,?gi)gi*?g_(gb#k4?)g*Vh{O?g׍o}sg+Kl)gݩFgJ,c")g#'v?)g,a?g9qbgSLRW?)g]@[?gO~gkE?)ggpBgR ?g;ȿ)g-ݿp?g;O<gxgGtK?)g$U\ngE	g?)g@~_V?g,8(g.^?)g)^D_jg2i?gs6Cm?)g.f2?ggRu)g9Me?gX㰿g <ۿ)gONz '?gsVF?gul-a7?)g0?g]4?goБο)g:8%?g!Hgl?)g5z?gy0/gofy&,)g
C?g͢A}?g_%_?)g޵?gHֆ/gL:ܿ)gcIȂg$E!?gfD¹?)gϫg35ϧ?g`"ĕs?)g$t?gWe?gY)ݟ?)g#bJ$?gtdn?gx/RѸ?)g
Jn?g׷?gʏSϽ)g= ?gNfg7jN?)g]w?g(.g^i׌%)g}P
?gO3IogD'?)ghE-(g?g0֢p?gn)gzgIT4g7Ʃ1|?)gO)֠gkp2F$?gA-c?)g&?gkh?g!L?)r   normalr   rN   r   reshapeconcatenater   r(   r   rO   r-   r)   r.   r*   rP   r   r+   r,   )np_noiseq_noiserngl1l2latentsr3   r4   r5   rR   rS   rT   rU   rV   rW   rX   rY   s                     r   &test_sanity_check_pls_canonical_randomr      s    	AGG
R
 
 C			B			BhBB'((*G#**!a%*((00!Q888A#**!a%*((00!Q888A
3::7Q;:77??7KKLSTUUUA
3::7Q;:77??7KKLSTUUUA
A
&
&
&CGGAqMMM000000111222222///111000222111222///222222	
 & (///111111111222111111111111222111000222111	
 & 000111111111000111111111000
	
  (...000111111000///222111000
	
  bfS_55rv>Q7R7RSSSbfS^44bf=O6P6PQQQbfS_55rv>Q7R7RSSSbfS^44bf=O6P6PQQQ73?5H#HII'#.3E"EFF'#.3E"EFF73?5H#HII24GHHH24GHHHS^,,,S^,,,S]+++S]+++++r   c                     t                      } | j        }| j        }t          |j        d         d          }t          j        t                    5  |                    ||           d d d            d S # 1 swxY w Y   d S )Nr       r"   max_iter)	r   r%   r&   r   r'   pytestwarnsr   r(   )r2   r3   r4   
pls_nipalss       r   test_convergence_failr   Z  s    A	A	A171:BBBJ	(	)	)  q!                 s   A66A:=A:Estc                     t                      }|j        }|j        }d |           }|                    ||           t	          fd|j        |j        fD                       sJ d S )Nr   r!   c              3   :   K   | ]}|j         d          k    V  dS )r    N)r'   ).0attrr"   s     r   	<genexpr>z(test_attibutes_shapes.<locals>.<genexpr>m  s?        *.
1%     r   )r   r%   r&   r(   allr)   r*   )r   r2   r3   r4   r5   r"   s        @r   test_attibutes_shapesr   d  s     	A	A	AL
#<
(
(
(CGGAqMMM    36>3>2R         r   c                 2   t                      }|j        }|j        } | d          }|                    ||d d df                   j        }|                    ||d d d df                   j        }|j        |j        k    sJ t          ||           d S )Nr    r!   r   )r   r%   r&   r(   coef_r'   r   )r   r2   r3   r4   estone_d_coefftwo_d_coeffs          r   test_univariate_equivalencer   r  s     	A	A	A
#1


C''!Qqqq!tW%%+K''!Qqqq"1"uX&&,K 11111k;77777r   c                    t                      }|j        }|j        }|                                } | d                              ||          }t          ||           t          j        t                    5   | d                              ||           t          ||           d d d            n# 1 swxY w Y   | t          u rd S |                                }t          j        t                    5  |                    ||d          f t          ||           d d d            n# 1 swxY w Y   |                                }t          j        t                    5  |                    |d          f t          ||           d d d            n# 1 swxY w Y   t          |                    ||d          |                    |                                |                                d                     t          |                    |d          |                    |                                d                     d S )NTr/   F)r   r%   r&   r/   r(   r   r   raisesAssertionErrorr   r   r0   predict)r   r2   r3   r4   X_origr5   s         r   	test_copyr     s    	A	A	AVVXXF #4...

Q
"
"Cq&!!! 
~	&	& - -Aq!!!!!V,,,- - - - - - - - - - - - - - - f}}VVXXF	~	&	& - -a''((!!V,,,- - - - - - - - - - - - - - - VVXXF	~	&	& - -AE""##!!V,,,- - - - - - - - - - - - - - -
 a&&affhhu(U(U   AD!!3;;qvvxxe;#D#D    s6   :1B77B;>B;:*D00D47D4()FF!$F!c               #     K   t           j                            d          } d}d}d}|                     ||          }|                     ||          }t          j        ||          d|                     ||          z  z   dz   }|dz  }||fV  t          d          \  }}d	|d
d
df<   ||fV  t          j        g dg dg dg dg          }t          j        ddgddgddgddgg          }||fV  ddg}|D ]S}t           j                            |          } |                     dd          }|                     dd          }||fV  Td
S )z-Generate dataset for test_scale_and_stabilityr   i  ro   rn   r   r    T
return_X_y      ?N)r_   r_   r   )r   r_   r_   )       @r   r   )g      @g      @g      @g?gɿg?g?g@g@g'@g(@i  i  rs   rv   )r   randomRandomStaterandnr   r   rN   )	r}   	n_samples	n_targets
n_featuresr8   r4   r3   seedsseeds	            r   +_generate_test_scale_and_stability_datasetsr     s      )


"
"CIIJ		)Z((A		)Y''A
q!q399Y
;;;;a?AIA
Q$JJJ D)))DAqAaaaeH
Q$JJJ
///???OOO___UVVA
3+SzC:d|DEEA
Q$JJJ #JE  i##D))IIaOOIIaOOd



	 r   zX, Yc                     t          ||          ^}}} | d                              ||          \  }} | d                              ||          \  }}	t          ||d           t          |	|d           dS )zscale=True is equivalent to scale=False on centered/scaled data
    This allows to check numerical stability over platforms as wellTr#   Fg-C6?atolN)r
   rL   r   )
r   r3   r4   X_sY_srB   X_scoreY_score	X_s_score	Y_s_scores
             r   test_scale_and_stabilityr     s     $Aq))LCqs44Q::GW3U+++99#sCCIyIwT2222IwT222222r   	Estimatorc                 L   t           j                            d          }|                    dd          }|                    dd          } | d          }d}t	          j        t          |          5  |                    ||           ddd           dS # 1 swxY w Y   dS )	zICheck the validation of `n_components` upper bounds for `PLS` regressors.r   rn   ro   rv   r!   zH`n_components` upper bound is .*. Got 10 instead. Reduce `n_components`.matchN)r   r   r   r   r   r   
ValueErrorr(   )r   r}   r3   r4   r   err_msgs         r   test_n_components_upper_boundsr     s     )


"
"C		"aA		"aA
)
$
$
$CXG	z	1	1	1  1                 s   5BB Bc                  T   t           j                            d          } |                     dd          }|                     dd          }t	          d          }d}t          j        t          |          5  |                    ||           d	d	d	           d	S # 1 swxY w Y   d	S )
zFCheck the validation of `n_components` upper bounds for PLSRegression.r      @   rv      r!   zH`n_components` upper bound is 20. Got 30 instead. Reduce `n_components`.r   N)	r   r   r   r   r	   r   r   r   r(   )r}   r3   r4   r   r   s        r   %test_n_components_upper_PLSRegressionr     s    
)


"
"C		"bA		"aA
R
(
(
(CXG	z	1	1	1  1                 s   9BB!$B!zn_samples, n_features)d   rn   )r      c                 d   t          | |d|          \  }}t          ||d          \  }}}t          ||          \  }}	t          ||           t          ||	           d}
t	          |||                                |
z             t	          ||	|	                                |
z             d S )Nro   r   random_stateT)norm_y_weightsMbP?r   )r   r   r   r   r   max)r   r   global_random_seedr3   r4   u1v1rB   u2v2rtols              r   test_singular_value_helpersr     s     :9K  DAq 9AdSSSIBA,Q22FBRRDBD1111BD111111r   c                    t          ddd|           \  }}t          d                              ||                              |          }t	          d                              ||                              |          }t          d                              ||                              |          }d}t          |||                                |z             t          |||                                |z             d S )	Nr   rn   ro   r   r    r!   r   r   )r   r   r(   r0   r	   r   r   r   )r   r3   r4   svdreg	canonicalr   s          r   test_one_component_equivalencer      s     3a>PQQQDAq
a
 
 
 
$
$Q
*
*
4
4Q
7
7C
Q
'
'
'
+
+Aq
1
1
;
;A
>
>C!,,,00A66@@CCIDC37799t#34444C4)?@@@@@@r   c                     t          j        g d          } t          j        g d          }t          |                     dd          |                    dd                    \  }}t	          | |           t          | |                                           t          | g d           t          ||                                           t          |g d           d S )N)r    r   )r    r   rv   r   r    )r   rs   )r   r   )r   rN   r   rx   r   r   ravel)uv
u_expected
v_expecteds       r   test_svd_flip_1dr     s    
A
A%aiiA&6&6		!R8H8HIIJ
AAz''))***A{{{###Az''))***A|||$$$$$r   c                 l   t          ddd|           \  }}t          dd          }t          j                    5  t          j        dt
                     |                    ||           ddd           n# 1 swxY w Y   t          j        t          j	        |j
                  d	k               sJ dS )
z8Test that CCA converges. Non-regression test for #19549.r   r   )r   r   r   r   rn   rm   r   errorNr    )r   r   warningscatch_warningssimplefilterr   r(   r   r   rO   r-   )r   r3   yccas       r   test_loadings_convergesr     s    "AS  DAq 2
,
,
,C		 	"	"  g'9:::1               6"&))A-.......s   1A88A<?A<c                  t   t           j                            d          } |                     dd          }t          j        d          }t                      }d}t          j        t          |          5  |	                    ||           ddd           n# 1 swxY w Y   t          |j        d           dS )zAChecks warning when y is constant. Non-regression test for #19831*   r   rv   z#y residual is constant at iterationr   Nr   )r   r   r   randzerosr	   r   r   UserWarningr(   r   re   )r}   xr   r5   msgs        r   test_pls_constant_yr   .  s    
)


#
#CaA
A
//C
/C	k	-	-	-  1               C$a(((((s   5BBBPLSEstimatorc                     t                      }|j        }|j        } | d                              ||          }|j        d         |j        d         }}|j        j        ||fk    sJ dS )zCheck the shape of `coef_` attribute.

    Non-regression test for:
    https://github.com/scikit-learn/scikit-learn/issues/12410
    Tr   r    N)r   r%   r&   r(   r'   r   )r   r2   r3   r4   r5   r   r   s          r   test_pls_coef_shaper   =  sr     	A	A	A
,D
!
!
!
%
%a
+
+CGAJ
zI9?y*5555555r   r$   TFc                    t                      }|j        }|j        } | d|                              ||          }|                    |d          }|                    d          }||                    d          z
  }t          |j        |           t          |||j        j	        z  |j        z              dS )z/Check the behaviour of the prediction function.T)r/   r$   r   r   rt   N)
r   r%   r&   r(   r   meanr   
intercept_r   r   )	r   r$   r2   r3   r4   r5   Y_predr<   rQ   s	            r   test_pls_predictionr   N  s     	A	A	A
,D
.
.
.
2
21a
8
8C[[[&&FVVV^^F!&&a&.. GCNF+++FGcik1CNBCCCCCr   Klassc                 l   t          d          \  }} |                                 ||          }|                                }| j                                        t          j        fdt          |j        j	        d                   D             t                    }t          ||           dS )z9Check `get_feature_names_out` cross_decomposition module.Tr   c                     g | ]} | 	S  r   )r   iclass_name_lowers     r   
<listcomp>z.test_pls_feature_names_out.<locals>.<listcomp>j  s%    JJJa	!a	!	!JJJr   r    )dtypeN)r   r(   get_feature_names_out__name__lowerr   rN   ranger)   r'   objectr   )r   r3   r4   r   	names_outexpected_names_outr   s         @r   test_pls_feature_names_outr	  `  s     D)))DAq
%''++a

C))++I~++--JJJJ51Ea1H+I+IJJJ   y"455555r   c                    t          j        d          }t          dd          \  }} |                                 d                              ||          }|                    ||          \  }}t          |t          j                  sJ t          ||j	                  sJ t          |j        |                                           dS )z1Check `set_output` in cross_decomposition module.pandasT)r   as_frame)r0   N)r   importorskipr   
set_outputr(   r0   
isinstancer   ndarray	DataFramer   columnsr  )r   pdr3   r4   r   rQ   y_transs          r   test_pls_set_outputr  p  s     
	X	&	&BD4888DAq
%''

x

0
0
4
4Q
:
:C}}Q**GWgrz*****gr|,,,,,w(A(A(C(CDDDDDr   c            	      <   t          j        ddgddgddgddgddgd	d
gg          } t          j        g d          }|                                }t                                          | |          }|                    |           }|j        |j        k    sJ t                                          | |          }t          d|fd|fg          }|                    | |                              |           }|j        |j        k    sJ t          ||           dS )zrCheck that when fitting with 1d `y`, prediction should also be 1d.

    Non-regression test for Issue #26549.
    r    r   rs   rv   	      ro         $   )r   r     r   r   r   lrplsrN)
r   rN   r/   r	   r(   r   r'   r   r   r   )r3   r   expectedr  y_predr  vrs          r   test_pls_regression_fit_1d_yr"  }  s   
 	1a&1a&1a&1b'Ar7QGDEEA
'''((AvvxxH??q!$$D\\!__F<8>)))) 
				1	%	%B	4*vtn5	6	6BVVAq\\!!!$$F<8>))))FH%%%%%r   c                  l   t           j                            d          } |                     d          }|                     dd          }||j        z  }t          dd	                              ||          }t          |j	        |           t          |
                    |          |           d
S )zCheck that when using `scale=True`, the coefficients are using the std. dev. from
    both `X` and `Y`.

    Non-regression test for:
    https://github.com/scikit-learn/scikit-learn/issues/27964
    r   )rv   ro   rq   rn   )r   ro   )r$   rr   ro   T)r"   r$   N)r   r   r   uniformrw   r   r	   r(   r   r   r   )r}   coefr3   r4   r5   s        r    test_pls_regression_scaling_coefr&    s     )


"
"C;;F;##D

'
**A	DF
A Qd
3
3
3
7
71
=
=CCIt$$$ CKKNNA&&&&&r   c                    t                      }|j        }|j        }|j        }d}t          j        t
          |          5   |                                 ||           d d d            n# 1 swxY w Y   d}t          j        t
          |          5  t          j        t          |          5   |                                 |||           d d d            n# 1 swxY w Y   d d d            n# 1 swxY w Y   d}t          j        t          |          5   |                                 |           d d d            d S # 1 swxY w Y   d S )NE`Y` is deprecated in 1.5 and will be removed in 1.7. Use `y` instead.r   r3   r4   ?Cannot use both `y` and `Y`. Use only `y` as `Y` is deprecated.zy is required.)	r   r%   r&   r   r   FutureWarningr(   r   r   )r   r2   r3   r4   r   r   err_msg1err_msg2s           r   -test_pls_fit_warning_on_deprecated_Y_argumentr.    s<    	A	A	A	A
QC	m3	/	/	/  a1               QH]#... j111  	Aq!	                               H	z	2	2	2  A                 sZ    A--A14A1C41 CC4C!	!C4$C!	%C44C8;C8EEEc                     t                      }|j        }|j        }|j        } |                                 ||          }d}t	          j        t          |          5  |                    ||           d d d            n# 1 swxY w Y   d}t	          j        t          |          5  t	          j        t          |          5  |                    |||           d d d            n# 1 swxY w Y   d d d            d S # 1 swxY w Y   d S )Nr(  r   r)  r*  )
r   r%   r&   r(   r   r   r+  r0   r   r   )r   r2   r3   r4   r   r  r   r,  s           r   3test_pls_transform_warning_on_deprecated_Y_argumentr0    s    	A	A	A	A577;;q!D
QC	m3	/	/	/ ! !a   ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! QH]#...   j111    	q!Q	                                                                 sH   BB
B+DC+D+C/	/D2C/	3DD
Dc                 F   t                      }|j        }|j        } |                                 ||          }|                    ||          \  }}d}t          j        t          |          5  |                    ||           d d d            n# 1 swxY w Y   d}t          j        t          |          5  t          j	        t          |          5  |                    |||           d d d            n# 1 swxY w Y   d d d            d S # 1 swxY w Y   d S )Nr(  r   r)  r*  )r3   r   r4   )r   r%   r&   r(   r0   r   r   r+  r1   r   r   )	r   r2   r3   r   r  X_transformedy_transformedr   r,  s	            r   ;test_pls_inverse_transform_warning_on_deprecated_Y_argumentr4    s    	A	A	A577;;q!D#'>>!Q#7#7 M=
QC	m3	/	/	/ A A-@@@A A A A A A A A A A A A A A A QH]#...R Rj111R R 	-=QQQ	R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R RsH   1BBB=DC>2D>D	DD	DDD)=r   numpyr   r   numpy.testingr   r   r   sklearn.cross_decompositionr   r   r   r	    sklearn.cross_decomposition._plsr
   r   r   r   sklearn.datasetsr   r   sklearn.ensembler   sklearn.exceptionsr   sklearn.linear_modelr   sklearn.utilsr   sklearn.utils.extmathr   r   rD   rZ   r`   rk   r   r   markparametrizer   r   r   r   r   r   r   r   r   r   r   r   r   r   r	  r  r"  r&  r.  r0  r4  r   r   r   <module>rA     s2         X X X X X X X X X X P P P P P P P P P P P P            < ; ; ; ; ; ; ; , , , , , , 1 1 1 1 1 1 1 1 1 1 1 1 , , , , , , * * * * * *6 6 6
%) %) %)P<I <I <I~/G /G /Gd;, ;, ;,|e, e, e,P    EFF
 
 GF
 c BCC8 8 DC8 c6 JKK# # LK#L  @ lM6 JKK!L!L!N!NOO
3 
3 PO LK
3 v}lC&PQQ  RQ   09j2IJJ2 2 KJ2"A A A% % %/ / /") ) ) -s)KLL6 6 ML6  4-00-s)KLLD D ML 10D  3|"LMM6 6 NM6 3|"LMM	E 	E NM	E& & &*' ' '. =#v|"LMM  NM2 =#v|"LMM    NM , =#|"DEER R FER R Rr   