§
    qŠtj1\  ã                   ó´  — 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.„ Z9dS )/é    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     úh/var/www/html/CA-Chatbot/venv/lib/python3.11/site-packages/sklearn/cross_decomposition/tests/test_pls.pyÚassert_matrix_orthogonalr      s;   € Ý
ŒˆqŒs�A‰Œ€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å
 A¤G¨A¤JÐ
/Ñ
/Ô
/€CØ‡G‚GˆAˆq�M„M€Må˜Sœ^Ñ,Ô,Ð,Ý˜Sœ^Ñ,Ô,Ð,Ý˜Sœ]Ñ+Ô+Ð+Ý˜Sœ]Ñ+Ô+Ð+ð 	Œ€AØŒ€AØŒ€AØŒ€Aå+;Ø	�Š‰Œ�!—&’&‘(”( $ð,ñ ,ô ,Ñ(€BˆˆF�F˜E 5õ ˜b¥"¤&¨¨A¬C¡.¤.Ñ1Ô1Ð1Ý˜b¥"¤&¨¨A¬C¡.¤.Ñ1Ô1Ð1ð 
�Š�qÑ	Ô	€BÝ˜b #¤-Ñ0Ô0Ð0Ø�]Š]˜1˜aÑ Ô �F€BˆÝ˜b #¤-Ñ0Ô0Ð0Ý˜b #¤-Ñ0Ô0Ð0ð ×"Ò" 2Ñ&Ô&€FÝ˜f aÑ(Ô(Ð(Ø×%Ò% b¨"Ñ-Ô-�I€A€vÝ˜f aÑ(Ô(Ð(Ð(Ð(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!   )ç,œæ6 ã¿gbxôØù+r¿çºÂõNFé?)ç¦;¦0çç¿gÌ&Ÿ¢—Ô¿çfé–_žâ¿)çÛÓ@¹ŽmÐ¿g¤<-bLî?ç�È£†üÔÈ¿)gìHý¨«ã¿gîÿ©ÙtÏ¿rG   )gE`Õ å¿g¶tÜ[WmÂ¿rI   )gþ¦¨áø�à¿gLŠM3öð?rK   )gêŸÅÔ?g+Eú‰!Ó?gñ4Óœ@Ê?)gËs¯YO)Û?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å
 Q¤W¨Q¤ZÐ
0Ñ
0Ô
0€CØ×"Ò" 1 aÑ(Ô(�J€GˆQõ
 �G˜Sœ]Ñ+Ô+Ð+åœà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ð	
ñô Ðõ �bœf S¤_Ñ5Ô5µr´vÐ>QÑ7RÔ7RÑSÔSÐSÝ�bœf S¤^Ñ4Ô4µb´fÐ=OÑ6PÔ6PÑQÔQÐQÝ�bœf S¤_Ñ5Ô5µr´vÐ>QÑ7RÔ7RÑSÔSÐSÝ�bœf S¤^Ñ4Ô4µb´fÐ=OÑ6PÔ6PÑQÔQÐQõ œ7 3¤?Ð5HÑ#HÑIÔIÐÝœ' #¤.Ð3EÑ"EÑFÔFÐÝœ' #¤.Ð3EÑ"EÑFÔFÐÝœ7 3¤?Ð5HÑ#HÑIÔIÐÝÐ2Ð4GÑHÔHÐHÝÐ2Ð4GÑ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ëè?)gìíàq›úç¿gqdvúgÄÑ¿ç|�¯Nß<ã¿)g¨1Æ, Ë¿gç¾7®È½î?ç\ªÒ×øÆ¿)gCgãÒBä¿g<&.ÁÌ¿r\   )g¯ÊBå¿gè5_/E¹¿r]   )g—žúQgà¿gç¯ër¥9ð?r^   )ç        r_   r_   )g‰µø ãÛ?gXZ¡£°¦â?gh†C%dÖË?)gV±�”îSÁ¿gù{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Ø€A€a€a€aˆ€d�GÝ
 Q¤W¨Q¤ZÐ
0Ñ
0Ô
0€CØ‡G‚GˆAˆq�M„M€Måœà0Ð0Ð0Ø2Ð2Ð2Ø1Ð1Ð1ð	
ñô Ðõ œ(à0Ð0Ð0Ø1Ð1Ð1Ø0Ð0Ð0ð	
ñô Ðõ œ(à-Ð-Ð-Ø-Ð-Ð-Ø0Ð0Ð0ð	
ñô Ðõ �bœfÐ%7Ñ8Ô8½"¼&ÀÄÑ:PÔ:PÑQÔQÐQÝ�bœfÐ%8Ñ9Ô9½2¼6À#Ä/Ñ;RÔ;RÑSÔSÐSå�bœf S¤_Ñ5Ô5µr´vÐ>QÑ7RÔ7RÑSÔSÐSÝ�bœf S¤^Ñ4Ô4µb´fÐ=PÑ6QÔ6QÑRÔRÐRåœ7Ð#6¸¼Ñ#HÑIÔIÐÝœ'Ð"4°s´~Ñ"EÑFÔFÐåœ7Ð#6°q°r°rÔ#:¸S¼_ÈQÈRÈRÔ=PÑ#PÑQÔQÐåÐ+Ð-@ÑAÔAÐAÝÐ+¨A¨B¨BÔ/Ð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û{cçñdÐ?g£rÙ	«èç¿)rH   g§š“öŠ¾?g¿>côîä?)rJ   gP,"P²î¿gÍº‘@¾¿)rF   gù«•CjžÚ?g#õžÊiïã¿)rH   g2�Ð©Ô?g‚úrÂè?)rJ   g·o ê_Žì¿gè¼ç<:àÎ¿)ç©¨càâ?gD}ÜÈ†?é?gÞ5âüÅ?)çâ¼ÍUÒ®è?g‹ºÞOð¡ã¿gÓ©eJo¨Å?)ç.a#ÿ‚“Î¿gbMá4º ¿gýÎþYVï?)rb   gÍ±¼«ðæ?gå¹[åK Ó?)rc   gÆ=m¿B§æ¿go·‡1§SÉ?)rd   gPŸ.œµ%l¿gq¶–Ñ!î?)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å
 A¤G¨A¤JÐ
/Ñ
/Ô
/€CØ‡G‚GˆAˆq�M„M€Måœà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ð	
ñô Ðõ �bœf SÔ%5Ñ6Ô6½¼Ð?SÑ8TÔ8TÑUÔUÐUÝ�bœf S¤^Ñ4Ô4µb´fÐ=OÑ6PÔ6PÑQÔQÐQÝ�bœf SÔ%5Ñ6Ô6½¼Ð?SÑ8TÔ8TÑUÔUÐUÝ�bœf S¤^Ñ4Ô4µb´fÐ=OÑ6PÔ6PÑQÔQÐQåœG CÔ$4Ð7KÑ$KÑLÔLÐÝœ' #¤.Ð3EÑ"EÑFÔFÐÝœG CÔ$4Ð7KÑ$KÑLÔLÐÝœ' #¤.Ð3EÑ"EÑFÔFÐÝÐ3Ð5HÑIÔIÐIÝÐ3Ð5HÑ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Õ¸qjëPÁ?gÛø—Í±öå¿g«‡Sƒ¼Á?)g$—$è’Å?gŽ('¹G_å¿gš.›k^ö¿¿)g²á~ú®Œ ¿gƒèÿºs¥¿g¶·¬
Ú?)gæ‚éjáh½?gÃÏfr½¯¸¿g>u¬Rz¦Ä?)gþ$Â¯&‰¨?g	¦	l˜¿gpO/üÅ?)g•}Wÿ[±¿g~¶�­‘¿g®ülÃ¬ÀÇ¿)gWˆX>Þe¿gj8ŸH@Z¿gË”½Br¾?)g´).ùe�¿gw4Dº³¿gˆoP^Ä?)gvãzgöqƒ¿g1õGZž¿gë }r5.Ö?)gÒzÏ³J¢¿g¥¬•¿1¸?g®¹£ÿåÚÕ?)gŸíMãI˜¬?g,)˜­ÌÆ”¿gŠùâ [uâ¿)gÚùeÍi­?gòâŠ¬±[Ž¿gQ¿É>áOÆ¿)gmÆ«¤üå?g¬Eú£^¦Ç?g0Öõç‹Ã?)gB +ø
žå?g,¦©Ð�Ã?gé°i­�·¿)gÆiˆ*ü™È?gŒ_í(®å¿gbå#k4¶?)g¯*Vh{OË?g×�oÖ}så¿gø+Klž¶¿)gˆ‰Ý©F ¿gJ,c")±¿g°#'váÅÛ?)g,aŽš†Ä?g9�qb›Á¿gÐSLRWÊ?)g]î@[Ö¡?gÑçO~£¿gõÄkE¹?)gògpB¾¯¿gã¡R™ ò�?g¹§«;È¿)g-ôûÝ¿¢p?g§;O<gx¿g†¥GtKÅ?)g$†U\¨n¿gE	Œ³ñ­¿g§²ÅÁçÈ?)g@~_ñÏV?g¥,…8½(…¿g.¡í^¢Ô?)g)^D_j«¿g2Ðéi¸?gs›6CmÔ?)g³.f2¹¤¤?gð­£Ã”¿gRÝu™Ûä¿)gð9Mòeš¯?g½ðX¦ã°¿g <ïÛ¿¿)gÄONz 'å?gsÑVFŸæÇ?gul-a§7Í?)gžÍú0æ?g]”4¢Ç?go¢Ð‘à¶Î¿)g:“ô8%ƒÂ?g!¨¿Hå¿g—”Ôl’ÝÅ?)g�¯£»5zÌ?g·yã¤0/æ¿gof‘y&,¹¿)g˜ì
C²?gÍ¢ÔÌA}?g_ª%_³å?)g±žÞµá³?gHÖ†/¸‹…¿g»‚L¶ª:Ü¿)gc½IºÈ‚¿g¢$Eà!¦?gâfD«‹Â¹?)gº§Ï«�“¿g35èÏ§¯?g`"Ä•sÒ?)gþ¿$tý‘?g¶W“e�¨?gY)¶ÝŸÔ?)gâ#bJ$ñå?gtd˜nÅ?gx/RƒÄÑ¸?)g�
Jn æ?g�×·ÁÊ?gÿÊ�SÏ½¿)g½= �°û½?g–N¹üfÆå¿g7ÇjN¹¾?)g]wˆ¹ƒÜÆ?g¡á(Ô.Áå¿g^i×Œ%ª¿)g}ç�P
°?g¹O3IÑoœ¿gD”'÷Øéç?)gh³E-(g·?g§0„Ö¢‰p?g†µçè§nà¿)g×Ðz¶–¿gþIñT4Œ¿g‡7Æ©1|¸?)gOñ�)åÖ ¿gkp2ÜF$·?gAÌ-ÆcÔ?)gÿ &áßó¥?gÜèk¯hçª?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Ñ8€AØ�#—*’* ! a¡%�*Ñ(Ô(×0Ò0°!°Q°Ñ8Ô8Ñ8€AÝ
Œ˜˜3Ÿ:š:¨7°Q©;˜:Ñ7Ô7×?Ò?ÀÀ7ÑKÔKÐLÐSTÐUÑUÔU€AÝ
Œ˜˜3Ÿ:š:¨7°Q©;˜:Ñ7Ô7×?Ò?ÀÀ7ÑKÔKÐLÐSTÐUÑUÔU€Aå
 AÐ
&Ñ
&Ô
&€CØ‡G‚GˆAˆq�M„M€Måœà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ð
	
ñô Ðõ �bœf S¤_Ñ5Ô5µr´vÐ>QÑ7RÔ7RÑSÔSÐSÝ�bœf S¤^Ñ4Ô4µb´fÐ=OÑ6PÔ6PÑQÔQÐQÝ�bœf S¤_Ñ5Ô5µr´vÐ>QÑ7RÔ7RÑSÔSÐSÝ�bœf S¤^Ñ4Ô4µb´fÐ=OÑ6PÔ6PÑQÔQÐQåœ7 3¤?Ð5HÑ#HÑIÔIÐÝœ' #¤.Ð3EÑ"EÑFÔFÐÝœ' #¤.Ð3EÑ"EÑFÔFÐÝœ7 3¤?Ð5HÑ#HÑIÔIÐÝÐ2Ð4GÑHÔHÐHÝÐ2Ð4GÑ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Ý¨1¬7°1¬:ÀÐBÑBÔB€JÝ	ŒÕ(Ñ	)Ô	)ð ð Ø�Š�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_attributes_shapes.<locals>.<genexpr>m  s?   øè è € ð ð Ø*.ˆŒ
�1Œ˜Ò%ðð ð ð ð ð r   )r   r%   r&   r(   Úallr)   r*   )rŠ   r2   r3   r4   r5   r"   s        @r   Útest_attributes_shapesr‘   d  s™   ø€ õ 	‰Œ€AØ	Œ€AØ	Œ€AØ€LØ
ˆ#˜<Ð
(Ñ
(Ô
(€CØ‡G‚GˆAˆq�M„M€MÝð ð ð ð Ø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Ø—'’'˜!˜Q˜q˜q˜q !˜tœWÑ%Ô%Ô+€KØ—'’'˜!˜Q˜q˜q˜q " 1 "˜uœXÑ&Ô&Ô,€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¬¦  «         t          ||¦  «         d d d ¦  «         n# 1 swxY w Y   |                     ¦   «         }t          j        t          ¦  «        5  |                     |d¬¦  «         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Ø�VŠV‰XŒX€Fð ˆ#�4ˆ.‰.Œ.×
Ò
˜Q Ñ
"Ô
"€CÝ�q˜&Ñ!Ô!Ð!õ 
Œ•~Ñ	&Ô	&ð -ð -Øˆ�ˆ‰Œ×Ò˜A˜qÑ!Ô!Ð!Ý! ! VÑ,Ô,Ð,ð-ð -ð -ñ -ô -ð -ð -ð -ð -ð -ð -øøøð -ð -ð -ð -ð �f€}€}Øˆà�VŠV‰XŒX€FÝ	Œ•~Ñ	&Ô	&ð -ð -Ø�Š�a˜ ˆÑ'Ô'Ð'Ý! ! VÑ,Ô,Ð,ð-ð -ð -ñ -ô -ð -ð -ð -ð -ð -ð -øøøð -ð -ð -ð -ð �VŠV‰XŒX€FÝ	Œ•~Ñ	&Ô	&ð -ð -Ø�Š�A˜EˆÑ"Ô"Ð"Ý! ! VÑ,Ô,Ð,ð-ð -ð -ñ -ô -ð -ð -ð -ð -ð -ð -øøøð -ð -ð -ð -õ
 Ø�Š�a˜ ˆÑ&Ô&¨¯ª°a·f²f±h´hÀÇÂÁÄÈu¨Ñ(UÔ(Uñô ð õ Ø�Š�A˜DˆÑ!Ô! 3§;¢;¨q¯vªv©x¬x¸e ;Ñ#DÔ#Dñô ð ð ð s6   Á:1B7Â7B;Â>B;Ã:)D/Ä/D3Ä6D3Å'(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�!‰Œ�q˜3Ÿ9š9 Y°
Ñ;Ô;Ñ;Ñ;¸aÑ?€AØˆ�I€AØ
ˆQˆ$€J€J€Jõ  DÐ)Ñ)Ô)�D€A€qà€A€a€a€aˆ€e�HØ
ˆQˆ$€J€J€Jå
Œ�/�/�/ ? ? ?°O°O°OÀ_À_À_ÐUÑVÔV€AÝ
Œ�3˜�+  S˜z¨C°¨:¸¸d°|ÐDÑEÔE€AØ
ˆQˆ$€J€J€Jð �#ˆJ€EØð ð ˆÝŒi×#Ò# DÑ)Ô)ˆØ�IŠI�a˜‰OŒOˆØ�IŠI�a˜‰OŒOˆØ�ˆdˆ
ˆ
ˆ
ˆ
ð	ð r   zX, yc                 óP  — |                      ¦   «         |                      ¦   «         }}t          ||¦  «        ^}}} | d¬¦  «                             ||¦  «        \  }} | d¬¦  «                             ||¦  «        \  }}	t          ||d¬¦  «         t          |	|d¬¦  «         dS )zƒscale=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/   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­   € ð �6Š6‰8Œ8�Q—V’V‘X”X€q€AÝ# A qÑ)Ô)€L€Cˆˆqà�s �‘”×4Ò4°Q¸Ñ:Ô:Ñ€GˆWØ˜3 UÐ+Ñ+Ô+×9Ò9¸#¸sÑCÔCÑ€Iˆyå�I˜w¨TÐ2Ñ2Ô2Ð2Ý�I˜w¨TÐ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ØX€GÝ	Œ•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ØX€GÝ	Œ•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_weightsçü©ñÒMbP?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ðñ ô �D€A€qõ 9¸¸AÈdÐSÑSÔS�I€BˆˆAÝ,¨Q°Ñ2Ô2�F€Bˆå��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ÔQ�D€A€qÝ
˜aÐ
 Ñ
 Ô
 ×
$Ò
$ Q¨Ñ
*Ô
*×
4Ò
4°QÑ
7Ô
7€CÝ
 QÐ
'Ñ
'Ô
'×
+Ò
+¨A¨qÑ
1Ô
1×
;Ò
;¸AÑ
>Ô
>€CÝ¨!Ð,Ñ,Ô,×0Ò0°°AÑ6Ô6×@Ò@ÀÑCÔC€Ià€Då�C˜ 3§7¢7¡9¤9¨tÑ#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å% a§i¢i°°AÑ&6Ô&6¸¿	º	À!ÀRÑ8HÔ8HÑIÔIÑ€J�
Ý��AÑÔÐå�A�z×'Ò'Ñ)Ô)Ñ*Ô*Ð*Ý�A�{�{�{Ñ#Ô#Ð#å�A�z×'Ò'Ñ)Ô)Ñ*Ô*Ð*Ý�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   r4   Úccas       r   Útest_loadings_convergesrè     sð   € åØ "°ÐASðñ ô �D€A€qõ ˜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}   Úxr4   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 )z†Check 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àœG AœJ¨¬°¬
ˆz€IØŒ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ø   O  s³   € õ 	‰Œ€AØ	Œ€AØ	Œ€Aà
ˆ,˜D¨Ð
.Ñ
.Ô
.×
2Ò
2°1°aÑ
8Ô
8€CØ�[Š[˜ ˆ[Ñ&Ô&€Fà�VŠV˜ˆV‰^Œ^€FØ�!—&’&˜a�&‘.”.Ñ €Gå�C”N FÑ+Ô+Ð+Ý�F˜G c¤i¤kÑ1°C´NÑ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>k  s%   ø€ ÐJÐJÐJ aÐÐ	!˜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  a  s³   ø€ õ  DÐ)Ñ)Ô)�D€A€qà
ˆ%‰'Œ'�+Š+�a˜Ñ
Ô
€CØ×)Ò)Ñ+Ô+€Ià”~×+Ò+Ñ-Ô-ÐÝœØJÐJÐJÐJ­5°´Ô1EÀaÔ1HÑ+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  q  sÂ   € õ 
Ô	˜XÑ	&Ô	&€BÝ D°4Ð8Ñ8Ô8�D€A€qà
ˆ%‰'Œ'×
Ò
 xÐ
Ñ
0Ô
0×
4Ò
4°Q¸Ñ
:Ô
:€CØ—}’} Q¨Ñ*Ô*Ñ€GˆWÝ�g�rœzÑ*Ô*Ð*Ð*Ð*Ý�g˜rœ|Ñ,Ô,Ð,Ð,Ð,Ý�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   r4   Úexpectedr  r÷   r  Úvrs          r   Útest_pls_regression_fit_1d_yr   ~  s  € õ
 	Œ�1�a�&˜1˜a˜& 1 a &¨1¨b¨'°A°r°7¸QÀ¸GÐDÑEÔE€AÝ
ŒÐ'Ð'Ð'Ñ(Ô(€AØ�vŠv‰xŒx€Hå‰?Œ?×Ò˜q !Ñ$Ô$€DØ�\Š\˜!‰_Œ_€FØŒ<˜8œ>Ò)Ð)Ð)Ð)õ 
Ñ	Ô	×	Ò	  1Ñ	%Ô	%€BÝ	˜4 ˜* v¨t nÐ5Ñ	6Ô	6€BØ�VŠV�A�q‰\Œ\×!Ò! !Ñ$Ô$€FØŒ<˜8œ>Ò)Ð)Ð)Ð)Ý�F˜HÑ%Ô%Ð%Ð%Ð%r   c                  ól  — t           j                             d¦  «        } |                      d¬¦  «        }|                      dd¬¦  «        }||j        z  }t          dd¬	¦  «                             ||¦  «        }t          |j	        |¦  «         t          | 
                    |¦  «        |¦  «         d
S )zÈCheck 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Ø	ˆDŒF‰
€Aõ  Q¨dÐ
3Ñ
3Ô
3×
7Ò
7¸¸1Ñ
=Ô
=€CÝ�C”I˜tÑ$Ô$Ð$õ �C—K’K ‘N”N AÑ&Ô&Ð&Ð&Ð&r   ):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ü   r   r   ú<module>r1     s‡  ðØ €€€à Ð Ð Ð Ø €€€Ø 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ð „×Ò˜ °¸cÀ6Ð JÑKÔKð#ð #ñ LÔKð#ðLð ð ð@ „×Ò˜  l°MÀ6Ð JÑKÔKØ„×Ò˜Ð!LÐ!LÑ!NÔ!NÑOÔOð3ð 3ñ PÔOñ LÔKð3ð „×Ò˜ v¨}¸lÈCÐ&PÑQÔQðð ñ RÔQððð ð ð „×ÒÐ0°9¸jÐ2IÑ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ð&ð &ð &ð*'ð 'ð 'ð 'ð 'r   